From 8fa441e284e9f61bb27403074fd3a49cd3f0f96e Mon Sep 17 00:00:00 2001 From: John Date: Fri, 2 Jun 2017 21:59:00 +0800 Subject: [PATCH 01/17] [csharp] Return true from AnimationState#apply if any animation was applied. --- spine-csharp/src/AnimationState.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spine-csharp/src/AnimationState.cs b/spine-csharp/src/AnimationState.cs index 937f8eb7a..96e1df377 100644 --- a/spine-csharp/src/AnimationState.cs +++ b/spine-csharp/src/AnimationState.cs @@ -159,16 +159,18 @@ namespace Spine { /// /// Poses the skeleton using the track entry animations. There are no side effects other than invoking listeners, so the /// animation state can be applied to multiple skeletons to pose them identically. - public void Apply (Skeleton skeleton) { + public bool Apply (Skeleton skeleton) { if (skeleton == null) throw new ArgumentNullException("skeleton", "skeleton cannot be null."); if (animationsChanged) AnimationsChanged(); var events = this.events; + bool applied = false; var tracksItems = tracks.Items; for (int i = 0, m = tracks.Count; i < m; i++) { TrackEntry current = tracksItems[i]; if (current == null || current.delay > 0) continue; + applied = true; // Apply mixing from entries first. float mix = current.alpha; @@ -210,6 +212,7 @@ namespace Spine { } queue.Drain(); + return applied; } private float ApplyMixingFrom (TrackEntry to, Skeleton skeleton) { From 3c194a5c9de43a7bfecbd79bbf2c3cef921f9095 Mon Sep 17 00:00:00 2001 From: John Date: Fri, 2 Jun 2017 21:59:45 +0800 Subject: [PATCH 02/17] [csharp] Fixed deform timelines not mixing to/from setup pose. https://github.com/EsotericSoftware/spine-runtimes/commit/ef6ccb84d316b7e9fc62b363fe39b206063523a7 --- spine-csharp/src/Animation.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spine-csharp/src/Animation.cs b/spine-csharp/src/Animation.cs index b2b3d5706..cdbca44dc 100644 --- a/spine-csharp/src/Animation.cs +++ b/spine-csharp/src/Animation.cs @@ -773,7 +773,7 @@ namespace Spine { float[][] frameVertices = this.frameVertices; int vertexCount = frameVertices[0].Length; - if (verticesArray.Count != vertexCount) alpha = 1; // Don't mix from uninitialized slot vertices. + if (verticesArray.Count != vertexCount && !setupPose) alpha = 1; // Don't mix from uninitialized slot vertices. // verticesArray.SetSize(vertexCount) // Ensure size and preemptively set count. if (verticesArray.Capacity < vertexCount) verticesArray.Capacity = vertexCount; verticesArray.Count = vertexCount; From b5e08f59e160f3d732732d8cc828b47ddcdaefed Mon Sep 17 00:00:00 2001 From: badlogic Date: Sun, 4 Jun 2017 10:53:09 +0200 Subject: [PATCH 03/17] [ts] AnimationState#apply returns boolean indicating if any timeline was applied. #919 --- CHANGELOG.md | 6 + spine-ts/build/spine-all.d.ts | 592 +- spine-ts/build/spine-all.js | 2478 ++-- spine-ts/build/spine-all.js.map | 2 +- spine-ts/build/spine-canvas.d.ts | 486 +- spine-ts/build/spine-canvas.js | 1923 ++- spine-ts/build/spine-canvas.js.map | 2 +- spine-ts/build/spine-core.d.ts | 298 +- spine-ts/build/spine-core.js | 1035 +- spine-ts/build/spine-core.js.map | 2 +- spine-ts/build/spine-threejs.d.ts | 298 +- spine-ts/build/spine-threejs.js | 1073 +- spine-ts/build/spine-threejs.js.map | 2 +- spine-ts/build/spine-webgl.d.ts | 2950 ++--- spine-ts/build/spine-webgl.js | 16927 +++++++++++++------------- spine-ts/build/spine-webgl.js.map | 2 +- spine-ts/build/spine-widget.d.ts | 330 +- spine-ts/build/spine-widget.js | 1138 +- spine-ts/build/spine-widget.js.map | 2 +- spine-ts/core/src/AnimationState.ts | 7 +- 20 files changed, 14731 insertions(+), 14822 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37b4d729d..d2656360a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,6 +42,7 @@ * Added macros to define typed dynamic arrays, see `Array.h/.c` * Added `spClippingAttachment` and respective enum. * Added `spSkeletonClipper` and `spTriangulator`, used to implement software clipping of attachments. + * `AnimationState#apply` returns boolean indicating if any timeline was applied or not. ### Cocos2d-X * Fixed renderer to work with 3.6 changes @@ -71,6 +72,8 @@ ## C# * **Breaking changes** * `MeshAttachment.parentMesh` is now a private field to enforce using the `.ParentMesh` setter property in external code. The `MeshAttachment.ParentMesh` property is an appropriate replacement wherever `.parentMesh` was used. + * **Additions** + * `AnimationState#apply` returns boolean indicating if any timeline was applied or not. ### Unity * Refactored renderer to work with new 3.6 features. @@ -127,6 +130,7 @@ * Added `PointAttachment`, additional method `newPointAttachment` in `AttachmentLoader` interface. * Added `ClippingAttachment`, additional method `newClippingAttachment` in `AttachmentLoader` interface. * Added `SkeletonClipper` and `Triangulator`, used to implement software clipping of attachments. + * `AnimationState#apply` returns boolean indicating if any timeline was applied or not. ### libGDX * Fixed renderer to work with 3.6 changes @@ -147,6 +151,7 @@ * Added support for local and relative transform constraint calculation, including additional fields in `TransformConstraintData` * Added `ClippingAttachment`, additional method `newClippingAttachment` in `AttachmentLoader` interface. * Added `SkeletonClipper` and `Triangulator`, used to implement software clipping of attachments. + * `AnimationState#apply` returns boolean indicating if any timeline was applied or not. ### Love2D * Fixed renderer to work with 3.6 changes @@ -171,6 +176,7 @@ * Added `PointAttachment`, additional method `newPointAttachment` in `AttachmentLoader` interface. * Added `ClippingAttachment`, additional method `newClippingAttachment` in `AttachmentLoader` interface. * Added `SkeletonClipper` and `Triangulator`, used to implement software clipping of attachments. + * `AnimationState#apply` returns boolean indicating if any timeline was applied or not. ### WebGL backend * Fixed WebGL context loss diff --git a/spine-ts/build/spine-all.d.ts b/spine-ts/build/spine-all.d.ts index f60aee81b..c94261fab 100644 --- a/spine-ts/build/spine-all.d.ts +++ b/spine-ts/build/spine-all.d.ts @@ -1,3 +1,97 @@ +declare module spine { + class AssetManager implements Disposable { + private pathPrefix; + private textureLoader; + private assets; + private errors; + private toLoad; + private loaded; + constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); + loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; + loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + get(path: string): any; + remove(path: string): void; + removeAll(): void; + isLoadingComplete(): boolean; + getToLoad(): number; + getLoaded(): number; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } +} +declare module spine.canvas { + class AssetManager extends spine.AssetManager { + constructor(pathPrefix?: string); + } +} +declare module spine { + abstract class Texture { + protected _image: HTMLImageElement; + constructor(image: HTMLImageElement); + getImage(): HTMLImageElement; + abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + abstract dispose(): void; + static filterFromString(text: string): TextureFilter; + static wrapFromString(text: string): TextureWrap; + } + enum TextureFilter { + Nearest = 9728, + Linear = 9729, + MipMap = 9987, + MipMapNearestNearest = 9984, + MipMapLinearNearest = 9985, + MipMapNearestLinear = 9986, + MipMapLinearLinear = 9987, + } + enum TextureWrap { + MirroredRepeat = 33648, + ClampToEdge = 33071, + Repeat = 10497, + } + class TextureRegion { + renderObject: any; + u: number; + v: number; + u2: number; + v2: number; + width: number; + height: number; + rotate: boolean; + offsetX: number; + offsetY: number; + originalWidth: number; + originalHeight: number; + } +} +declare module spine.canvas { + class CanvasTexture extends Texture { + constructor(image: HTMLImageElement); + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + dispose(): void; + } +} +declare module spine.canvas { + class SkeletonRenderer { + static QUAD_TRIANGLES: number[]; + static VERTEX_SIZE: number; + private ctx; + triangleRendering: boolean; + debugRendering: boolean; + private vertices; + private tempColor; + constructor(context: CanvasRenderingContext2D); + draw(skeleton: Skeleton): void; + private drawImages(skeleton); + private drawTriangles(skeleton); + private drawTriangle(img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); + private computeRegionVertices(slot, region, pma); + private computeMeshVertices(slot, mesh, pma); + } +} declare module spine { class Animation { name: string; @@ -245,7 +339,7 @@ declare module spine { constructor(data: AnimationStateData); update(delta: number): void; updateMixingFrom(to: TrackEntry, delta: number): boolean; - apply(skeleton: Skeleton): void; + apply(skeleton: Skeleton): boolean; applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; queueEvents(entry: TrackEntry, animationTime: number): void; @@ -355,29 +449,6 @@ declare module spine { getMix(from: Animation, to: Animation): number; } } -declare module spine { - class AssetManager implements Disposable { - private pathPrefix; - private textureLoader; - private assets; - private errors; - private toLoad; - private loaded; - constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); - loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; - loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - get(path: string): any; - remove(path: string): void; - removeAll(): void; - isLoadingComplete(): boolean; - getToLoad(): number; - getLoaded(): number; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } -} declare module spine { class AtlasAttachmentLoader implements AttachmentLoader { atlas: TextureAtlas; @@ -390,6 +461,154 @@ declare module spine { newClippingAttachment(skin: Skin, name: string): ClippingAttachment; } } +declare module spine { + abstract class Attachment { + name: string; + constructor(name: string); + } + abstract class VertexAttachment extends Attachment { + bones: Array; + vertices: ArrayLike; + worldVerticesLength: number; + constructor(name: string); + computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + } +} +declare module spine { + interface AttachmentLoader { + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } +} +declare module spine { + enum AttachmentType { + Region = 0, + BoundingBox = 1, + Mesh = 2, + LinkedMesh = 3, + Path = 4, + Point = 5, + } +} +declare module spine { + class BoundingBoxAttachment extends VertexAttachment { + color: Color; + constructor(name: string); + } +} +declare module spine { + class ClippingAttachment extends VertexAttachment { + endSlot: SlotData; + color: Color; + constructor(name: string); + } +} +declare module spine { + class MeshAttachment extends VertexAttachment { + region: TextureRegion; + path: string; + regionUVs: ArrayLike; + uvs: ArrayLike; + triangles: Array; + color: Color; + hullLength: number; + private parentMesh; + inheritDeform: boolean; + tempColor: Color; + constructor(name: string); + updateUVs(): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + getParentMesh(): MeshAttachment; + setParentMesh(parentMesh: MeshAttachment): void; + } +} +declare module spine { + class PathAttachment extends VertexAttachment { + lengths: Array; + closed: boolean; + constantSpeed: boolean; + color: Color; + constructor(name: string); + } +} +declare module spine { + class PointAttachment extends VertexAttachment { + x: number; + y: number; + rotation: number; + color: Color; + constructor(name: string); + computeWorldPosition(bone: Bone, point: Vector2): Vector2; + computeWorldRotation(bone: Bone): number; + } +} +declare module spine { + class RegionAttachment extends Attachment { + static OX1: number; + static OY1: number; + static OX2: number; + static OY2: number; + static OX3: number; + static OY3: number; + static OX4: number; + static OY4: number; + static X1: number; + static Y1: number; + static C1R: number; + static C1G: number; + static C1B: number; + static C1A: number; + static U1: number; + static V1: number; + static X2: number; + static Y2: number; + static C2R: number; + static C2G: number; + static C2B: number; + static C2A: number; + static U2: number; + static V2: number; + static X3: number; + static Y3: number; + static C3R: number; + static C3G: number; + static C3B: number; + static C3A: number; + static U3: number; + static V3: number; + static X4: number; + static Y4: number; + static C4R: number; + static C4G: number; + static C4B: number; + static C4A: number; + static U4: number; + static V4: number; + x: number; + y: number; + scaleX: number; + scaleY: number; + rotation: number; + width: number; + height: number; + color: Color; + path: string; + rendererObject: any; + region: TextureRegion; + offset: ArrayLike; + uvs: ArrayLike; + tempColor: Color; + constructor(name: string); + updateOffset(): void; + setRegion(region: TextureRegion): void; + computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; + } +} declare module spine { enum BlendMode { Normal = 0, @@ -775,46 +994,6 @@ declare module spine { constructor(index: number, name: string, boneData: BoneData); } } -declare module spine { - abstract class Texture { - protected _image: HTMLImageElement; - constructor(image: HTMLImageElement); - getImage(): HTMLImageElement; - abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - abstract dispose(): void; - static filterFromString(text: string): TextureFilter; - static wrapFromString(text: string): TextureWrap; - } - enum TextureFilter { - Nearest = 9728, - Linear = 9729, - MipMap = 9987, - MipMapNearestNearest = 9984, - MipMapLinearNearest = 9985, - MipMapNearestLinear = 9986, - MipMapLinearLinear = 9987, - } - enum TextureWrap { - MirroredRepeat = 33648, - ClampToEdge = 33071, - Repeat = 10497, - } - class TextureRegion { - renderObject: any; - u: number; - v: number; - u2: number; - v2: number; - width: number; - height: number; - rotate: boolean; - offsetX: number; - offsetY: number; - originalWidth: number; - originalHeight: number; - } -} declare module spine { class TextureAtlas implements Disposable { pages: TextureAtlasPage[]; @@ -1010,183 +1189,51 @@ declare module spine { getMean(): number; } } -declare module spine { - abstract class Attachment { - name: string; - constructor(name: string); - } - abstract class VertexAttachment extends Attachment { - bones: Array; - vertices: ArrayLike; - worldVerticesLength: number; - constructor(name: string); - computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - } -} -declare module spine { - interface AttachmentLoader { - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } -} -declare module spine { - enum AttachmentType { - Region = 0, - BoundingBox = 1, - Mesh = 2, - LinkedMesh = 3, - Path = 4, - Point = 5, - } -} -declare module spine { - class BoundingBoxAttachment extends VertexAttachment { - color: Color; - constructor(name: string); - } -} -declare module spine { - class ClippingAttachment extends VertexAttachment { - endSlot: SlotData; - color: Color; - constructor(name: string); - } -} -declare module spine { - class MeshAttachment extends VertexAttachment { - region: TextureRegion; - path: string; - regionUVs: ArrayLike; - uvs: ArrayLike; - triangles: Array; - color: Color; - hullLength: number; - private parentMesh; - inheritDeform: boolean; - tempColor: Color; - constructor(name: string); - updateUVs(): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - getParentMesh(): MeshAttachment; - setParentMesh(parentMesh: MeshAttachment): void; - } -} -declare module spine { - class PathAttachment extends VertexAttachment { - lengths: Array; - closed: boolean; - constantSpeed: boolean; - color: Color; - constructor(name: string); - } -} -declare module spine { - class PointAttachment extends VertexAttachment { - x: number; - y: number; - rotation: number; - color: Color; - constructor(name: string); - computeWorldPosition(bone: Bone, point: Vector2): Vector2; - computeWorldRotation(bone: Bone): number; - } -} -declare module spine { - class RegionAttachment extends Attachment { - static OX1: number; - static OY1: number; - static OX2: number; - static OY2: number; - static OX3: number; - static OY3: number; - static OX4: number; - static OY4: number; - static X1: number; - static Y1: number; - static C1R: number; - static C1G: number; - static C1B: number; - static C1A: number; - static U1: number; - static V1: number; - static X2: number; - static Y2: number; - static C2R: number; - static C2G: number; - static C2B: number; - static C2A: number; - static U2: number; - static V2: number; - static X3: number; - static Y3: number; - static C3R: number; - static C3G: number; - static C3B: number; - static C3A: number; - static U3: number; - static V3: number; - static X4: number; - static Y4: number; - static C4R: number; - static C4G: number; - static C4B: number; - static C4A: number; - static U4: number; - static V4: number; - x: number; - y: number; - scaleX: number; - scaleY: number; - rotation: number; - width: number; - height: number; - color: Color; - path: string; - rendererObject: any; - region: TextureRegion; - offset: ArrayLike; - uvs: ArrayLike; - tempColor: Color; - constructor(name: string); - updateOffset(): void; - setRegion(region: TextureRegion): void; - computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; - } -} -declare module spine.canvas { +declare module spine.threejs { class AssetManager extends spine.AssetManager { constructor(pathPrefix?: string); } } -declare module spine.canvas { - class CanvasTexture extends Texture { +declare module spine.threejs { + class MeshBatcher { + mesh: THREE.Mesh; + private static VERTEX_SIZE; + private vertexBuffer; + private vertices; + private verticesLength; + private indices; + private indicesLength; + constructor(mesh: THREE.Mesh, maxVertices?: number); + begin(): void; + batch(vertices: ArrayLike, verticesLength: number, indices: ArrayLike, indicesLength: number, z?: number): void; + end(): void; + } +} +declare module spine.threejs { + class SkeletonMesh extends THREE.Mesh { + skeleton: Skeleton; + state: AnimationState; + zOffset: number; + private batcher; + private clipper; + static QUAD_TRIANGLES: number[]; + static VERTEX_SIZE: number; + private vertices; + private tempColor; + constructor(skeletonData: SkeletonData); + update(deltaTime: number): void; + private updateGeometry(); + } +} +declare module spine.threejs { + class ThreeJsTexture extends Texture { + texture: THREE.Texture; constructor(image: HTMLImageElement); setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; dispose(): void; - } -} -declare module spine.canvas { - class SkeletonRenderer { - static QUAD_TRIANGLES: number[]; - static VERTEX_SIZE: number; - private ctx; - triangleRendering: boolean; - debugRendering: boolean; - private vertices; - private tempColor; - constructor(context: CanvasRenderingContext2D); - draw(skeleton: Skeleton): void; - private drawImages(skeleton); - private drawTriangles(skeleton); - private drawTriangle(img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); - private computeRegionVertices(slot, region, pma); - private computeMeshVertices(slot, mesh, pma); + static toThreeJsTextureFilter(filter: TextureFilter): THREE.TextureFilter; + static toThreeJsTextureWrap(wrap: TextureWrap): THREE.Wrapping; } } declare module spine.webgl { @@ -1280,22 +1327,22 @@ declare module spine.webgl { } } declare module spine.webgl { - const M00 = 0; - const M01 = 4; - const M02 = 8; - const M03 = 12; - const M10 = 1; - const M11 = 5; - const M12 = 9; - const M13 = 13; - const M20 = 2; - const M21 = 6; - const M22 = 10; - const M23 = 14; - const M30 = 3; - const M31 = 7; - const M32 = 11; - const M33 = 15; + const M00: number; + const M01: number; + const M02: number; + const M03: number; + const M10: number; + const M11: number; + const M12: number; + const M13: number; + const M20: number; + const M21: number; + const M22: number; + const M23: number; + const M30: number; + const M31: number; + const M32: number; + const M33: number; class Matrix4 { temp: Float32Array; values: Float32Array; @@ -1614,53 +1661,6 @@ declare module spine.webgl { static getSourceGLBlendMode(blendMode: BlendMode, premultipliedAlpha?: boolean): number; } } -declare module spine.threejs { - class AssetManager extends spine.AssetManager { - constructor(pathPrefix?: string); - } -} -declare module spine.threejs { - class MeshBatcher { - mesh: THREE.Mesh; - private static VERTEX_SIZE; - private vertexBuffer; - private vertices; - private verticesLength; - private indices; - private indicesLength; - constructor(mesh: THREE.Mesh, maxVertices?: number); - begin(): void; - batch(vertices: ArrayLike, verticesLength: number, indices: ArrayLike, indicesLength: number, z?: number): void; - end(): void; - } -} -declare module spine.threejs { - class SkeletonMesh extends THREE.Mesh { - skeleton: Skeleton; - state: AnimationState; - zOffset: number; - private batcher; - private clipper; - static QUAD_TRIANGLES: number[]; - static VERTEX_SIZE: number; - private vertices; - private tempColor; - constructor(skeletonData: SkeletonData); - update(deltaTime: number): void; - private updateGeometry(); - } -} -declare module spine.threejs { - class ThreeJsTexture extends Texture { - texture: THREE.Texture; - constructor(image: HTMLImageElement); - setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - dispose(): void; - static toThreeJsTextureFilter(filter: TextureFilter): THREE.TextureFilter; - static toThreeJsTextureWrap(wrap: TextureWrap): THREE.Wrapping; - } -} declare module spine { class SpineWidget { skeleton: Skeleton; diff --git a/spine-ts/build/spine-all.js b/spine-ts/build/spine-all.js index ccd0b3e34..c91e20298 100644 --- a/spine-ts/build/spine-all.js +++ b/spine-ts/build/spine-all.js @@ -1,13 +1,456 @@ -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); +var spine; +(function (spine) { + var AssetManager = (function () { + function AssetManager(textureLoader, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.assets = {}; + this.errors = {}; + this.toLoad = 0; + this.loaded = 0; + this.textureLoader = textureLoader; + this.pathPrefix = pathPrefix; + } + AssetManager.prototype.loadText = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.assets[path] = request.responseText; + if (success) + success(path, request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + if (error) + error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); + } + _this.toLoad--; + _this.loaded++; + } + }; + request.open("GET", path, true); + request.send(); + }; + AssetManager.prototype.loadTexture = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = path; + }; + AssetManager.prototype.loadTextureData = function (path, data, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = data; + }; + AssetManager.prototype.get = function (path) { + path = this.pathPrefix + path; + return this.assets[path]; + }; + AssetManager.prototype.remove = function (path) { + path = this.pathPrefix + path; + var asset = this.assets[path]; + if (asset.dispose) + asset.dispose(); + this.assets[path] = null; + }; + AssetManager.prototype.removeAll = function () { + for (var key in this.assets) { + var asset = this.assets[key]; + if (asset.dispose) + asset.dispose(); + } + this.assets = {}; + }; + AssetManager.prototype.isLoadingComplete = function () { + return this.toLoad == 0; + }; + AssetManager.prototype.getToLoad = function () { + return this.toLoad; + }; + AssetManager.prototype.getLoaded = function () { + return this.loaded; + }; + AssetManager.prototype.dispose = function () { + this.removeAll(); + }; + AssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + AssetManager.prototype.getErrors = function () { + return this.errors; + }; + return AssetManager; + }()); + spine.AssetManager = AssetManager; +})(spine || (spine = {})); +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; +var spine; +(function (spine) { + var canvas; + (function (canvas) { + var AssetManager = (function (_super) { + __extends(AssetManager, _super); + function AssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + _super.call(this, function (image) { return new spine.canvas.CanvasTexture(image); }, pathPrefix); + } + return AssetManager; + }(spine.AssetManager)); + canvas.AssetManager = AssetManager; + })(canvas = spine.canvas || (spine.canvas = {})); +})(spine || (spine = {})); +var spine; +(function (spine) { + var Texture = (function () { + function Texture(image) { + this._image = image; + } + Texture.prototype.getImage = function () { + return this._image; + }; + Texture.filterFromString = function (text) { + switch (text.toLowerCase()) { + case "nearest": return TextureFilter.Nearest; + case "linear": return TextureFilter.Linear; + case "mipmap": return TextureFilter.MipMap; + case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; + case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; + case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; + case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; + default: throw new Error("Unknown texture filter " + text); + } + }; + Texture.wrapFromString = function (text) { + switch (text.toLowerCase()) { + case "mirroredtepeat": return TextureWrap.MirroredRepeat; + case "clamptoedge": return TextureWrap.ClampToEdge; + case "repeat": return TextureWrap.Repeat; + default: throw new Error("Unknown texture wrap " + text); + } + }; + return Texture; + }()); + spine.Texture = Texture; + (function (TextureFilter) { + TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; + TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; + TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; + TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; + TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; + TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; + TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; + })(spine.TextureFilter || (spine.TextureFilter = {})); + var TextureFilter = spine.TextureFilter; + (function (TextureWrap) { + TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; + TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; + TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; + })(spine.TextureWrap || (spine.TextureWrap = {})); + var TextureWrap = spine.TextureWrap; + var TextureRegion = (function () { + function TextureRegion() { + this.u = 0; + this.v = 0; + this.u2 = 0; + this.v2 = 0; + this.width = 0; + this.height = 0; + this.rotate = false; + this.offsetX = 0; + this.offsetY = 0; + this.originalWidth = 0; + this.originalHeight = 0; + } + return TextureRegion; + }()); + spine.TextureRegion = TextureRegion; +})(spine || (spine = {})); +var spine; +(function (spine) { + var canvas; + (function (canvas) { + var CanvasTexture = (function (_super) { + __extends(CanvasTexture, _super); + function CanvasTexture(image) { + _super.call(this, image); + } + CanvasTexture.prototype.setFilters = function (minFilter, magFilter) { }; + CanvasTexture.prototype.setWraps = function (uWrap, vWrap) { }; + CanvasTexture.prototype.dispose = function () { }; + return CanvasTexture; + }(spine.Texture)); + canvas.CanvasTexture = CanvasTexture; + })(canvas = spine.canvas || (spine.canvas = {})); +})(spine || (spine = {})); +var spine; +(function (spine) { + var canvas; + (function (canvas) { + var SkeletonRenderer = (function () { + function SkeletonRenderer(context) { + this.triangleRendering = false; + this.debugRendering = false; + this.vertices = spine.Utils.newFloatArray(8 * 1024); + this.tempColor = new spine.Color(); + this.ctx = context; + } + SkeletonRenderer.prototype.draw = function (skeleton) { + if (this.triangleRendering) + this.drawTriangles(skeleton); + else + this.drawImages(skeleton); + }; + SkeletonRenderer.prototype.drawImages = function (skeleton) { + var ctx = this.ctx; + var drawOrder = skeleton.drawOrder; + if (this.debugRendering) + ctx.strokeStyle = "green"; + ctx.save(); + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var regionAttachment = null; + var region = null; + var image = null; + if (attachment instanceof spine.RegionAttachment) { + regionAttachment = attachment; + region = regionAttachment.region; + image = region.texture.getImage(); + } + else + continue; + var skeleton_1 = slot.bone.skeleton; + var skeletonColor = skeleton_1.color; + var slotColor = slot.color; + var regionColor = regionAttachment.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * regionColor.r, skeletonColor.g * slotColor.g * regionColor.g, skeletonColor.b * slotColor.b * regionColor.b, alpha); + var att = attachment; + var bone = slot.bone; + var w = region.width; + var h = region.height; + ctx.save(); + ctx.transform(bone.a, bone.c, bone.b, bone.d, bone.worldX, bone.worldY); + ctx.translate(attachment.offset[0], attachment.offset[1]); + ctx.rotate(attachment.rotation * Math.PI / 180); + ctx.scale(attachment.scaleX, attachment.scaleY); + ctx.translate(w / 2, h / 2); + if (attachment.region.rotate) { + var t = w; + w = h; + h = t; + ctx.rotate(-Math.PI / 2); + } + ctx.scale(1, -1); + ctx.translate(-w / 2, -h / 2); + if (color.r != 1 || color.g != 1 || color.b != 1 || color.a != 1) { + ctx.globalAlpha = color.a; + } + ctx.drawImage(image, region.x, region.y, w, h, 0, 0, w, h); + if (this.debugRendering) + ctx.strokeRect(0, 0, w, h); + ctx.restore(); + } + ctx.restore(); + }; + SkeletonRenderer.prototype.drawTriangles = function (skeleton) { + var blendMode = null; + var vertices = this.vertices; + var triangles = null; + var drawOrder = skeleton.drawOrder; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var texture = null; + var region = null; + if (attachment instanceof spine.RegionAttachment) { + var regionAttachment = attachment; + vertices = this.computeRegionVertices(slot, regionAttachment, false); + triangles = SkeletonRenderer.QUAD_TRIANGLES; + region = regionAttachment.region; + texture = region.texture.getImage(); + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + vertices = this.computeMeshVertices(slot, mesh, false); + triangles = mesh.triangles; + texture = mesh.region.renderObject.texture.getImage(); + } + else + continue; + if (texture != null) { + var slotBlendMode = slot.data.blendMode; + if (slotBlendMode != blendMode) { + blendMode = slotBlendMode; + } + var ctx = this.ctx; + for (var j = 0; j < triangles.length; j += 3) { + var t1 = triangles[j] * 8, t2 = triangles[j + 1] * 8, t3 = triangles[j + 2] * 8; + var x0 = vertices[t1], y0 = vertices[t1 + 1], u0 = vertices[t1 + 6], v0 = vertices[t1 + 7]; + var x1 = vertices[t2], y1 = vertices[t2 + 1], u1 = vertices[t2 + 6], v1 = vertices[t2 + 7]; + var x2 = vertices[t3], y2 = vertices[t3 + 1], u2 = vertices[t3 + 6], v2 = vertices[t3 + 7]; + this.drawTriangle(texture, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); + if (this.debugRendering) { + ctx.strokeStyle = "green"; + ctx.beginPath(); + ctx.moveTo(x0, y0); + ctx.lineTo(x1, y1); + ctx.lineTo(x2, y2); + ctx.lineTo(x0, y0); + ctx.stroke(); + } + } + } + } + }; + SkeletonRenderer.prototype.drawTriangle = function (img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2) { + var ctx = this.ctx; + u0 *= img.width; + v0 *= img.height; + u1 *= img.width; + v1 *= img.height; + u2 *= img.width; + v2 *= img.height; + ctx.beginPath(); + ctx.moveTo(x0, y0); + ctx.lineTo(x1, y1); + ctx.lineTo(x2, y2); + ctx.closePath(); + x1 -= x0; + y1 -= y0; + x2 -= x0; + y2 -= y0; + u1 -= u0; + v1 -= v0; + u2 -= u0; + v2 -= v0; + var det = 1 / (u1 * v2 - u2 * v1), a = (v2 * x1 - v1 * x2) * det, b = (v2 * y1 - v1 * y2) * det, c = (u1 * x2 - u2 * x1) * det, d = (u1 * y2 - u2 * y1) * det, e = x0 - a * u0 - c * v0, f = y0 - b * u0 - d * v0; + ctx.save(); + ctx.transform(a, b, c, d, e, f); + ctx.clip(); + ctx.drawImage(img, 0, 0); + ctx.restore(); + }; + SkeletonRenderer.prototype.computeRegionVertices = function (slot, region, pma) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var regionColor = region.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var multiplier = pma ? alpha : 1; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); + region.computeWorldVertices(slot.bone, this.vertices, 0, SkeletonRenderer.VERTEX_SIZE); + var vertices = this.vertices; + var uvs = region.uvs; + vertices[spine.RegionAttachment.C1R] = color.r; + vertices[spine.RegionAttachment.C1G] = color.g; + vertices[spine.RegionAttachment.C1B] = color.b; + vertices[spine.RegionAttachment.C1A] = color.a; + vertices[spine.RegionAttachment.U1] = uvs[0]; + vertices[spine.RegionAttachment.V1] = uvs[1]; + vertices[spine.RegionAttachment.C2R] = color.r; + vertices[spine.RegionAttachment.C2G] = color.g; + vertices[spine.RegionAttachment.C2B] = color.b; + vertices[spine.RegionAttachment.C2A] = color.a; + vertices[spine.RegionAttachment.U2] = uvs[2]; + vertices[spine.RegionAttachment.V2] = uvs[3]; + vertices[spine.RegionAttachment.C3R] = color.r; + vertices[spine.RegionAttachment.C3G] = color.g; + vertices[spine.RegionAttachment.C3B] = color.b; + vertices[spine.RegionAttachment.C3A] = color.a; + vertices[spine.RegionAttachment.U3] = uvs[4]; + vertices[spine.RegionAttachment.V3] = uvs[5]; + vertices[spine.RegionAttachment.C4R] = color.r; + vertices[spine.RegionAttachment.C4G] = color.g; + vertices[spine.RegionAttachment.C4B] = color.b; + vertices[spine.RegionAttachment.C4A] = color.a; + vertices[spine.RegionAttachment.U4] = uvs[6]; + vertices[spine.RegionAttachment.V4] = uvs[7]; + return vertices; + }; + SkeletonRenderer.prototype.computeMeshVertices = function (slot, mesh, pma) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var regionColor = mesh.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var multiplier = pma ? alpha : 1; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); + var numVertices = mesh.worldVerticesLength / 2; + if (this.vertices.length < mesh.worldVerticesLength) { + this.vertices = spine.Utils.newFloatArray(mesh.worldVerticesLength); + } + var vertices = this.vertices; + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, SkeletonRenderer.VERTEX_SIZE); + var uvs = mesh.uvs; + for (var i = 0, n = numVertices, u = 0, v = 2; i < n; i++) { + vertices[v++] = color.r; + vertices[v++] = color.g; + vertices[v++] = color.b; + vertices[v++] = color.a; + vertices[v++] = uvs[u++]; + vertices[v++] = uvs[u++]; + v += 2; + } + return vertices; + }; + SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + SkeletonRenderer.VERTEX_SIZE = 2 + 2 + 4; + return SkeletonRenderer; + }()); + canvas.SkeletonRenderer = SkeletonRenderer; + })(canvas = spine.canvas || (spine.canvas = {})); +})(spine || (spine = {})); var spine; (function (spine) { var Animation = (function () { @@ -58,7 +501,6 @@ var spine; return Animation; }()); spine.Animation = Animation; - var TimelineType; (function (TimelineType) { TimelineType[TimelineType["rotate"] = 0] = "rotate"; TimelineType[TimelineType["translate"] = 1] = "translate"; @@ -75,7 +517,8 @@ var spine; TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; - })(TimelineType = spine.TimelineType || (spine.TimelineType = {})); + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; var CurveTimeline = (function () { function CurveTimeline(frameCount) { if (frameCount <= 0) @@ -151,19 +594,18 @@ var spine; var y = curves[i - 1]; return y + (1 - y) * (percent - x) / (1 - x); }; + CurveTimeline.LINEAR = 0; + CurveTimeline.STEPPED = 1; + CurveTimeline.BEZIER = 2; + CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; return CurveTimeline; }()); - CurveTimeline.LINEAR = 0; - CurveTimeline.STEPPED = 1; - CurveTimeline.BEZIER = 2; - CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; spine.CurveTimeline = CurveTimeline; var RotateTimeline = (function (_super) { __extends(RotateTimeline, _super); function RotateTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount << 1); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount << 1); } RotateTimeline.prototype.getPropertyId = function () { return (TimelineType.rotate << 24) + this.boneIndex; @@ -208,19 +650,18 @@ var spine; bone.rotation += r * alpha; } }; + RotateTimeline.ENTRIES = 2; + RotateTimeline.PREV_TIME = -2; + RotateTimeline.PREV_ROTATION = -1; + RotateTimeline.ROTATION = 1; return RotateTimeline; }(CurveTimeline)); - RotateTimeline.ENTRIES = 2; - RotateTimeline.PREV_TIME = -2; - RotateTimeline.PREV_ROTATION = -1; - RotateTimeline.ROTATION = 1; spine.RotateTimeline = RotateTimeline; var TranslateTimeline = (function (_super) { __extends(TranslateTimeline, _super); function TranslateTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); } TranslateTimeline.prototype.getPropertyId = function () { return (TimelineType.translate << 24) + this.boneIndex; @@ -264,19 +705,19 @@ var spine; bone.y += (bone.data.y + y - bone.y) * alpha; } }; + TranslateTimeline.ENTRIES = 3; + TranslateTimeline.PREV_TIME = -3; + TranslateTimeline.PREV_X = -2; + TranslateTimeline.PREV_Y = -1; + TranslateTimeline.X = 1; + TranslateTimeline.Y = 2; return TranslateTimeline; }(CurveTimeline)); - TranslateTimeline.ENTRIES = 3; - TranslateTimeline.PREV_TIME = -3; - TranslateTimeline.PREV_X = -2; - TranslateTimeline.PREV_Y = -1; - TranslateTimeline.X = 1; - TranslateTimeline.Y = 2; spine.TranslateTimeline = TranslateTimeline; var ScaleTimeline = (function (_super) { __extends(ScaleTimeline, _super); function ScaleTimeline(frameCount) { - return _super.call(this, frameCount) || this; + _super.call(this, frameCount); } ScaleTimeline.prototype.getPropertyId = function () { return (TimelineType.scale << 24) + this.boneIndex; @@ -337,7 +778,7 @@ var spine; var ShearTimeline = (function (_super) { __extends(ShearTimeline, _super); function ShearTimeline(frameCount) { - return _super.call(this, frameCount) || this; + _super.call(this, frameCount); } ShearTimeline.prototype.getPropertyId = function () { return (TimelineType.shear << 24) + this.boneIndex; @@ -381,9 +822,8 @@ var spine; var ColorTimeline = (function (_super) { __extends(ColorTimeline, _super); function ColorTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); } ColorTimeline.prototype.getPropertyId = function () { return (TimelineType.color << 24) + this.slotIndex; @@ -434,25 +874,24 @@ var spine; color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); } }; + ColorTimeline.ENTRIES = 5; + ColorTimeline.PREV_TIME = -5; + ColorTimeline.PREV_R = -4; + ColorTimeline.PREV_G = -3; + ColorTimeline.PREV_B = -2; + ColorTimeline.PREV_A = -1; + ColorTimeline.R = 1; + ColorTimeline.G = 2; + ColorTimeline.B = 3; + ColorTimeline.A = 4; return ColorTimeline; }(CurveTimeline)); - ColorTimeline.ENTRIES = 5; - ColorTimeline.PREV_TIME = -5; - ColorTimeline.PREV_R = -4; - ColorTimeline.PREV_G = -3; - ColorTimeline.PREV_B = -2; - ColorTimeline.PREV_A = -1; - ColorTimeline.R = 1; - ColorTimeline.G = 2; - ColorTimeline.B = 3; - ColorTimeline.A = 4; spine.ColorTimeline = ColorTimeline; var TwoColorTimeline = (function (_super) { __extends(TwoColorTimeline, _super); function TwoColorTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); } TwoColorTimeline.prototype.getPropertyId = function () { return (TimelineType.twoColor << 24) + this.slotIndex; @@ -523,24 +962,24 @@ var spine; dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); } }; + TwoColorTimeline.ENTRIES = 8; + TwoColorTimeline.PREV_TIME = -8; + TwoColorTimeline.PREV_R = -7; + TwoColorTimeline.PREV_G = -6; + TwoColorTimeline.PREV_B = -5; + TwoColorTimeline.PREV_A = -4; + TwoColorTimeline.PREV_R2 = -3; + TwoColorTimeline.PREV_G2 = -2; + TwoColorTimeline.PREV_B2 = -1; + TwoColorTimeline.R = 1; + TwoColorTimeline.G = 2; + TwoColorTimeline.B = 3; + TwoColorTimeline.A = 4; + TwoColorTimeline.R2 = 5; + TwoColorTimeline.G2 = 6; + TwoColorTimeline.B2 = 7; return TwoColorTimeline; }(CurveTimeline)); - TwoColorTimeline.ENTRIES = 8; - TwoColorTimeline.PREV_TIME = -8; - TwoColorTimeline.PREV_R = -7; - TwoColorTimeline.PREV_G = -6; - TwoColorTimeline.PREV_B = -5; - TwoColorTimeline.PREV_A = -4; - TwoColorTimeline.PREV_R2 = -3; - TwoColorTimeline.PREV_G2 = -2; - TwoColorTimeline.PREV_B2 = -1; - TwoColorTimeline.R = 1; - TwoColorTimeline.G = 2; - TwoColorTimeline.B = 3; - TwoColorTimeline.A = 4; - TwoColorTimeline.R2 = 5; - TwoColorTimeline.G2 = 6; - TwoColorTimeline.B2 = 7; spine.TwoColorTimeline = TwoColorTimeline; var AttachmentTimeline = (function () { function AttachmentTimeline(frameCount) { @@ -587,10 +1026,9 @@ var spine; var DeformTimeline = (function (_super) { __extends(DeformTimeline, _super); function DeformTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount); - _this.frameVertices = new Array(frameCount); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount); + this.frameVertices = new Array(frameCount); } DeformTimeline.prototype.getPropertyId = function () { return (TimelineType.deform << 24) + this.slotIndex; @@ -771,9 +1209,8 @@ var spine; var IkConstraintTimeline = (function (_super) { __extends(IkConstraintTimeline, _super); function IkConstraintTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); } IkConstraintTimeline.prototype.getPropertyId = function () { return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; @@ -821,21 +1258,20 @@ var spine; constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; } }; + IkConstraintTimeline.ENTRIES = 3; + IkConstraintTimeline.PREV_TIME = -3; + IkConstraintTimeline.PREV_MIX = -2; + IkConstraintTimeline.PREV_BEND_DIRECTION = -1; + IkConstraintTimeline.MIX = 1; + IkConstraintTimeline.BEND_DIRECTION = 2; return IkConstraintTimeline; }(CurveTimeline)); - IkConstraintTimeline.ENTRIES = 3; - IkConstraintTimeline.PREV_TIME = -3; - IkConstraintTimeline.PREV_MIX = -2; - IkConstraintTimeline.PREV_BEND_DIRECTION = -1; - IkConstraintTimeline.MIX = 1; - IkConstraintTimeline.BEND_DIRECTION = 2; spine.IkConstraintTimeline = IkConstraintTimeline; var TransformConstraintTimeline = (function (_super) { __extends(TransformConstraintTimeline, _super); function TransformConstraintTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); } TransformConstraintTimeline.prototype.getPropertyId = function () { return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; @@ -896,25 +1332,24 @@ var spine; constraint.shearMix += (shear - constraint.shearMix) * alpha; } }; + TransformConstraintTimeline.ENTRIES = 5; + TransformConstraintTimeline.PREV_TIME = -5; + TransformConstraintTimeline.PREV_ROTATE = -4; + TransformConstraintTimeline.PREV_TRANSLATE = -3; + TransformConstraintTimeline.PREV_SCALE = -2; + TransformConstraintTimeline.PREV_SHEAR = -1; + TransformConstraintTimeline.ROTATE = 1; + TransformConstraintTimeline.TRANSLATE = 2; + TransformConstraintTimeline.SCALE = 3; + TransformConstraintTimeline.SHEAR = 4; return TransformConstraintTimeline; }(CurveTimeline)); - TransformConstraintTimeline.ENTRIES = 5; - TransformConstraintTimeline.PREV_TIME = -5; - TransformConstraintTimeline.PREV_ROTATE = -4; - TransformConstraintTimeline.PREV_TRANSLATE = -3; - TransformConstraintTimeline.PREV_SCALE = -2; - TransformConstraintTimeline.PREV_SHEAR = -1; - TransformConstraintTimeline.ROTATE = 1; - TransformConstraintTimeline.TRANSLATE = 2; - TransformConstraintTimeline.SCALE = 3; - TransformConstraintTimeline.SHEAR = 4; spine.TransformConstraintTimeline = TransformConstraintTimeline; var PathConstraintPositionTimeline = (function (_super) { __extends(PathConstraintPositionTimeline, _super); function PathConstraintPositionTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); } PathConstraintPositionTimeline.prototype.getPropertyId = function () { return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; @@ -947,17 +1382,17 @@ var spine; else constraint.position += (position - constraint.position) * alpha; }; + PathConstraintPositionTimeline.ENTRIES = 2; + PathConstraintPositionTimeline.PREV_TIME = -2; + PathConstraintPositionTimeline.PREV_VALUE = -1; + PathConstraintPositionTimeline.VALUE = 1; return PathConstraintPositionTimeline; }(CurveTimeline)); - PathConstraintPositionTimeline.ENTRIES = 2; - PathConstraintPositionTimeline.PREV_TIME = -2; - PathConstraintPositionTimeline.PREV_VALUE = -1; - PathConstraintPositionTimeline.VALUE = 1; spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; var PathConstraintSpacingTimeline = (function (_super) { __extends(PathConstraintSpacingTimeline, _super); function PathConstraintSpacingTimeline(frameCount) { - return _super.call(this, frameCount) || this; + _super.call(this, frameCount); } PathConstraintSpacingTimeline.prototype.getPropertyId = function () { return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; @@ -991,9 +1426,8 @@ var spine; var PathConstraintMixTimeline = (function (_super) { __extends(PathConstraintMixTimeline, _super); function PathConstraintMixTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); } PathConstraintMixTimeline.prototype.getPropertyId = function () { return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; @@ -1037,14 +1471,14 @@ var spine; constraint.translateMix += (translate - constraint.translateMix) * alpha; } }; + PathConstraintMixTimeline.ENTRIES = 3; + PathConstraintMixTimeline.PREV_TIME = -3; + PathConstraintMixTimeline.PREV_ROTATE = -2; + PathConstraintMixTimeline.PREV_TRANSLATE = -1; + PathConstraintMixTimeline.ROTATE = 1; + PathConstraintMixTimeline.TRANSLATE = 2; return PathConstraintMixTimeline; }(CurveTimeline)); - PathConstraintMixTimeline.ENTRIES = 3; - PathConstraintMixTimeline.PREV_TIME = -3; - PathConstraintMixTimeline.PREV_ROTATE = -2; - PathConstraintMixTimeline.PREV_TRANSLATE = -1; - PathConstraintMixTimeline.ROTATE = 1; - PathConstraintMixTimeline.TRANSLATE = 2; spine.PathConstraintMixTimeline = PathConstraintMixTimeline; })(spine || (spine = {})); var spine; @@ -1138,10 +1572,12 @@ var spine; this._animationsChanged(); var events = this.events; var tracks = this.tracks; + var applied = false; for (var i = 0, n = tracks.length; i < n; i++) { var current = tracks[i]; if (current == null || current.delay > 0) continue; + applied = true; var mix = current.alpha; if (current.mixingFrom != null) mix *= this.applyMixingFrom(current, skeleton); @@ -1175,6 +1611,7 @@ var spine; current.nextTrackLast = current.trackTime; } this.queue.drain(); + return applied; }; AnimationState.prototype.applyMixingFrom = function (to, skeleton) { var from = to.mixingFrom; @@ -1200,7 +1637,7 @@ var spine; spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); var timelinesRotation = from.timelinesRotation; var first = false; - var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha; + var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; from.totalAlpha = 0; for (var i = 0; i < timelineCount; i++) { var timeline = timelines[i]; @@ -1530,13 +1967,13 @@ var spine; AnimationState.prototype.clearListenerNotifications = function () { this.queue.clear(); }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); + AnimationState.SUBSEQUENT = 0; + AnimationState.FIRST = 1; + AnimationState.DIP = 2; + AnimationState.DIP_MIX = 3; return AnimationState; }()); - AnimationState.emptyAnimation = new spine.Animation("", [], 0); - AnimationState.SUBSEQUENT = 0; - AnimationState.FIRST = 1; - AnimationState.DIP = 2; - AnimationState.DIP_MIX = 3; spine.AnimationState = AnimationState; var TrackEntry = (function () { function TrackEntry() { @@ -1714,7 +2151,6 @@ var spine; return EventQueue; }()); spine.EventQueue = EventQueue; - var EventType; (function (EventType) { EventType[EventType["start"] = 0] = "start"; EventType[EventType["interrupt"] = 1] = "interrupt"; @@ -1722,7 +2158,8 @@ var spine; EventType[EventType["dispose"] = 3] = "dispose"; EventType[EventType["complete"] = 4] = "complete"; EventType[EventType["event"] = 5] = "event"; - })(EventType = spine.EventType || (spine.EventType = {})); + })(spine.EventType || (spine.EventType = {})); + var EventType = spine.EventType; var AnimationStateAdapter2 = (function () { function AnimationStateAdapter2() { } @@ -1779,134 +2216,6 @@ var spine; spine.AnimationStateData = AnimationStateData; })(spine || (spine = {})); var spine; -(function (spine) { - var AssetManager = (function () { - function AssetManager(textureLoader, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.assets = {}; - this.errors = {}; - this.toLoad = 0; - this.loaded = 0; - this.textureLoader = textureLoader; - this.pathPrefix = pathPrefix; - } - AssetManager.prototype.loadText = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.assets[path] = request.responseText; - if (success) - success(path, request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - if (error) - error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); - } - _this.toLoad--; - _this.loaded++; - } - }; - request.open("GET", path, true); - request.send(); - }; - AssetManager.prototype.loadTexture = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = path; - }; - AssetManager.prototype.loadTextureData = function (path, data, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = data; - }; - AssetManager.prototype.get = function (path) { - path = this.pathPrefix + path; - return this.assets[path]; - }; - AssetManager.prototype.remove = function (path) { - path = this.pathPrefix + path; - var asset = this.assets[path]; - if (asset.dispose) - asset.dispose(); - this.assets[path] = null; - }; - AssetManager.prototype.removeAll = function () { - for (var key in this.assets) { - var asset = this.assets[key]; - if (asset.dispose) - asset.dispose(); - } - this.assets = {}; - }; - AssetManager.prototype.isLoadingComplete = function () { - return this.toLoad == 0; - }; - AssetManager.prototype.getToLoad = function () { - return this.toLoad; - }; - AssetManager.prototype.getLoaded = function () { - return this.loaded; - }; - AssetManager.prototype.dispose = function () { - this.removeAll(); - }; - AssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - AssetManager.prototype.getErrors = function () { - return this.errors; - }; - return AssetManager; - }()); - spine.AssetManager = AssetManager; -})(spine || (spine = {})); -var spine; (function (spine) { var AtlasAttachmentLoader = (function () { function AtlasAttachmentLoader(atlas) { @@ -1948,13 +2257,369 @@ var spine; })(spine || (spine = {})); var spine; (function (spine) { - var BlendMode; + var Attachment = (function () { + function Attachment(name) { + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return Attachment; + }()); + spine.Attachment = Attachment; + var VertexAttachment = (function (_super) { + __extends(VertexAttachment, _super); + function VertexAttachment(name) { + _super.call(this, name); + this.worldVerticesLength = 0; + } + VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { + count = offset + (count >> 1) * stride; + var skeleton = slot.bone.skeleton; + var deformArray = slot.attachmentVertices; + var vertices = this.vertices; + var bones = this.bones; + if (bones == null) { + if (deformArray.length > 0) + vertices = deformArray; + var bone = slot.bone; + var x = bone.worldX; + var y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { + var vx = vertices[v_1], vy = vertices[v_1 + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + } + return; + } + var v = 0, skip = 0; + for (var i = 0; i < start; i += 2) { + var n = bones[v]; + v += n + 1; + skip += n; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = offset, b = skip * 3; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + else { + var deform = deformArray; + for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3, f += 2) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + }; + VertexAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment; + }; + return VertexAttachment; + }(Attachment)); + spine.VertexAttachment = VertexAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + (function (AttachmentType) { + AttachmentType[AttachmentType["Region"] = 0] = "Region"; + AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; + AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; + AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; + AttachmentType[AttachmentType["Path"] = 4] = "Path"; + AttachmentType[AttachmentType["Point"] = 5] = "Point"; + })(spine.AttachmentType || (spine.AttachmentType = {})); + var AttachmentType = spine.AttachmentType; +})(spine || (spine = {})); +var spine; +(function (spine) { + var BoundingBoxAttachment = (function (_super) { + __extends(BoundingBoxAttachment, _super); + function BoundingBoxAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + } + return BoundingBoxAttachment; + }(spine.VertexAttachment)); + spine.BoundingBoxAttachment = BoundingBoxAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var ClippingAttachment = (function (_super) { + __extends(ClippingAttachment, _super); + function ClippingAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); + } + return ClippingAttachment; + }(spine.VertexAttachment)); + spine.ClippingAttachment = ClippingAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var MeshAttachment = (function (_super) { + __extends(MeshAttachment, _super); + function MeshAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + this.inheritDeform = false; + this.tempColor = new spine.Color(0, 0, 0, 0); + } + MeshAttachment.prototype.updateUVs = function () { + var u = 0, v = 0, width = 0, height = 0; + if (this.region == null) { + u = v = 0; + width = height = 1; + } + else { + u = this.region.u; + v = this.region.v; + width = this.region.u2 - u; + height = this.region.v2 - v; + } + var regionUVs = this.regionUVs; + if (this.uvs == null || this.uvs.length != regionUVs.length) + this.uvs = spine.Utils.newFloatArray(regionUVs.length); + var uvs = this.uvs; + if (this.region.rotate) { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); + }; + MeshAttachment.prototype.getParentMesh = function () { + return this.parentMesh; + }; + MeshAttachment.prototype.setParentMesh = function (parentMesh) { + this.parentMesh = parentMesh; + if (parentMesh != null) { + this.bones = parentMesh.bones; + this.vertices = parentMesh.vertices; + this.worldVerticesLength = parentMesh.worldVerticesLength; + this.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + this.worldVerticesLength = parentMesh.worldVerticesLength; + } + }; + return MeshAttachment; + }(spine.VertexAttachment)); + spine.MeshAttachment = MeshAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var PathAttachment = (function (_super) { + __extends(PathAttachment, _super); + function PathAttachment(name) { + _super.call(this, name); + this.closed = false; + this.constantSpeed = false; + this.color = new spine.Color(1, 1, 1, 1); + } + return PathAttachment; + }(spine.VertexAttachment)); + spine.PathAttachment = PathAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var PointAttachment = (function (_super) { + __extends(PointAttachment, _super); + function PointAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.38, 0.94, 0, 1); + } + PointAttachment.prototype.computeWorldPosition = function (bone, point) { + point.x = this.x * bone.a + this.y * bone.b + bone.worldX; + point.y = this.x * bone.c + this.y * bone.d + bone.worldY; + return point; + }; + PointAttachment.prototype.computeWorldRotation = function (bone) { + var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); + var x = cos * bone.a + sin * bone.b; + var y = cos * bone.c + sin * bone.d; + return Math.atan2(y, x) * spine.MathUtils.radDeg; + }; + return PointAttachment; + }(spine.VertexAttachment)); + spine.PointAttachment = PointAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var RegionAttachment = (function (_super) { + __extends(RegionAttachment, _super); + function RegionAttachment(name) { + _super.call(this, name); + this.x = 0; + this.y = 0; + this.scaleX = 1; + this.scaleY = 1; + this.rotation = 0; + this.width = 0; + this.height = 0; + this.color = new spine.Color(1, 1, 1, 1); + this.offset = spine.Utils.newFloatArray(8); + this.uvs = spine.Utils.newFloatArray(8); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.updateOffset = function () { + var regionScaleX = this.width / this.region.originalWidth * this.scaleX; + var regionScaleY = this.height / this.region.originalHeight * this.scaleY; + var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; + var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; + var localX2 = localX + this.region.width * regionScaleX; + var localY2 = localY + this.region.height * regionScaleY; + var radians = this.rotation * Math.PI / 180; + var cos = Math.cos(radians); + var sin = Math.sin(radians); + var localXCos = localX * cos + this.x; + var localXSin = localX * sin; + var localYCos = localY * cos + this.y; + var localYSin = localY * sin; + var localX2Cos = localX2 * cos + this.x; + var localX2Sin = localX2 * sin; + var localY2Cos = localY2 * cos + this.y; + var localY2Sin = localY2 * sin; + var offset = this.offset; + offset[RegionAttachment.OX1] = localXCos - localYSin; + offset[RegionAttachment.OY1] = localYCos + localXSin; + offset[RegionAttachment.OX2] = localXCos - localY2Sin; + offset[RegionAttachment.OY2] = localY2Cos + localXSin; + offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; + offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; + offset[RegionAttachment.OX4] = localX2Cos - localYSin; + offset[RegionAttachment.OY4] = localYCos + localX2Sin; + }; + RegionAttachment.prototype.setRegion = function (region) { + this.region = region; + var uvs = this.uvs; + if (region.rotate) { + uvs[2] = region.u; + uvs[3] = region.v2; + uvs[4] = region.u; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v; + uvs[0] = region.u2; + uvs[1] = region.v2; + } + else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; + } + }; + RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { + var vertexOffset = this.offset; + var x = bone.worldX, y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var offsetX = 0, offsetY = 0; + offsetX = vertexOffset[RegionAttachment.OX1]; + offsetY = vertexOffset[RegionAttachment.OY1]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX2]; + offsetY = vertexOffset[RegionAttachment.OY2]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX3]; + offsetY = vertexOffset[RegionAttachment.OY3]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX4]; + offsetY = vertexOffset[RegionAttachment.OY4]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + }; + RegionAttachment.OX1 = 0; + RegionAttachment.OY1 = 1; + RegionAttachment.OX2 = 2; + RegionAttachment.OY2 = 3; + RegionAttachment.OX3 = 4; + RegionAttachment.OY3 = 5; + RegionAttachment.OX4 = 6; + RegionAttachment.OY4 = 7; + RegionAttachment.X1 = 0; + RegionAttachment.Y1 = 1; + RegionAttachment.C1R = 2; + RegionAttachment.C1G = 3; + RegionAttachment.C1B = 4; + RegionAttachment.C1A = 5; + RegionAttachment.U1 = 6; + RegionAttachment.V1 = 7; + RegionAttachment.X2 = 8; + RegionAttachment.Y2 = 9; + RegionAttachment.C2R = 10; + RegionAttachment.C2G = 11; + RegionAttachment.C2B = 12; + RegionAttachment.C2A = 13; + RegionAttachment.U2 = 14; + RegionAttachment.V2 = 15; + RegionAttachment.X3 = 16; + RegionAttachment.Y3 = 17; + RegionAttachment.C3R = 18; + RegionAttachment.C3G = 19; + RegionAttachment.C3B = 20; + RegionAttachment.C3A = 21; + RegionAttachment.U3 = 22; + RegionAttachment.V3 = 23; + RegionAttachment.X4 = 24; + RegionAttachment.Y4 = 25; + RegionAttachment.C4R = 26; + RegionAttachment.C4G = 27; + RegionAttachment.C4B = 28; + RegionAttachment.C4A = 29; + RegionAttachment.U4 = 30; + RegionAttachment.V4 = 31; + return RegionAttachment; + }(spine.Attachment)); + spine.RegionAttachment = RegionAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { (function (BlendMode) { BlendMode[BlendMode["Normal"] = 0] = "Normal"; BlendMode[BlendMode["Additive"] = 1] = "Additive"; BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; BlendMode[BlendMode["Screen"] = 3] = "Screen"; - })(BlendMode = spine.BlendMode || (spine.BlendMode = {})); + })(spine.BlendMode || (spine.BlendMode = {})); + var BlendMode = spine.BlendMode; })(spine || (spine = {})); var spine; (function (spine) { @@ -2243,14 +2908,14 @@ var spine; return BoneData; }()); spine.BoneData = BoneData; - var TransformMode; (function (TransformMode) { TransformMode[TransformMode["Normal"] = 0] = "Normal"; TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; - })(TransformMode = spine.TransformMode || (spine.TransformMode = {})); + })(spine.TransformMode || (spine.TransformMode = {})); + var TransformMode = spine.TransformMode; })(spine || (spine = {})); var spine; (function (spine) { @@ -2415,21 +3080,24 @@ var spine; } var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; - var angle = Math.acos(-a * l1 / (aa - bb)); - x = a * Math.cos(angle) + l1; - y = b * Math.sin(angle); - d = x * x + y * y; - if (d < minDist) { - minAngle = angle; - minDist = d; - minX = x; - minY = y; - } - if (d > maxDist) { - maxAngle = angle; - maxDist = d; - maxX = x; - maxY = y; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } } if (dd <= (minDist + maxDist) / 2) { a1 = ta - Math.atan2(minY * bendDir, minX); @@ -2834,11 +3502,11 @@ var spine; PathConstraint.prototype.getOrder = function () { return this.data.order; }; + PathConstraint.NONE = -1; + PathConstraint.BEFORE = -2; + PathConstraint.AFTER = -3; return PathConstraint; }()); - PathConstraint.NONE = -1; - PathConstraint.BEFORE = -2; - PathConstraint.AFTER = -3; spine.PathConstraint = PathConstraint; })(spine || (spine = {})); var spine; @@ -2852,23 +3520,23 @@ var spine; return PathConstraintData; }()); spine.PathConstraintData = PathConstraintData; - var PositionMode; (function (PositionMode) { PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; PositionMode[PositionMode["Percent"] = 1] = "Percent"; - })(PositionMode = spine.PositionMode || (spine.PositionMode = {})); - var SpacingMode; + })(spine.PositionMode || (spine.PositionMode = {})); + var PositionMode = spine.PositionMode; (function (SpacingMode) { SpacingMode[SpacingMode["Length"] = 0] = "Length"; SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; - })(SpacingMode = spine.SpacingMode || (spine.SpacingMode = {})); - var RotateMode; + })(spine.SpacingMode || (spine.SpacingMode = {})); + var SpacingMode = spine.SpacingMode; (function (RotateMode) { RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; RotateMode[RotateMode["Chain"] = 1] = "Chain"; RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; - })(RotateMode = spine.RotateMode || (spine.RotateMode = {})); + })(spine.RotateMode || (spine.RotateMode = {})); + var RotateMode = spine.RotateMode; })(spine || (spine = {})); var spine; (function (spine) { @@ -4848,72 +5516,6 @@ var spine; spine.SlotData = SlotData; })(spine || (spine = {})); var spine; -(function (spine) { - var Texture = (function () { - function Texture(image) { - this._image = image; - } - Texture.prototype.getImage = function () { - return this._image; - }; - Texture.filterFromString = function (text) { - switch (text.toLowerCase()) { - case "nearest": return TextureFilter.Nearest; - case "linear": return TextureFilter.Linear; - case "mipmap": return TextureFilter.MipMap; - case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; - case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; - case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; - case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; - default: throw new Error("Unknown texture filter " + text); - } - }; - Texture.wrapFromString = function (text) { - switch (text.toLowerCase()) { - case "mirroredtepeat": return TextureWrap.MirroredRepeat; - case "clamptoedge": return TextureWrap.ClampToEdge; - case "repeat": return TextureWrap.Repeat; - default: throw new Error("Unknown texture wrap " + text); - } - }; - return Texture; - }()); - spine.Texture = Texture; - var TextureFilter; - (function (TextureFilter) { - TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; - TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; - TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; - TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; - TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; - TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; - TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; - })(TextureFilter = spine.TextureFilter || (spine.TextureFilter = {})); - var TextureWrap; - (function (TextureWrap) { - TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; - TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; - TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; - })(TextureWrap = spine.TextureWrap || (spine.TextureWrap = {})); - var TextureRegion = (function () { - function TextureRegion() { - this.u = 0; - this.v = 0; - this.u2 = 0; - this.v2 = 0; - this.width = 0; - this.height = 0; - this.rotate = false; - this.offsetX = 0; - this.offsetY = 0; - this.originalWidth = 0; - this.originalHeight = 0; - } - return TextureRegion; - }()); - spine.TextureRegion = TextureRegion; -})(spine || (spine = {})); -var spine; (function (spine) { var TextureAtlas = (function () { function TextureAtlas(atlasText, textureLoader) { @@ -5062,7 +5664,7 @@ var spine; var TextureAtlasRegion = (function (_super) { __extends(TextureAtlasRegion, _super); function TextureAtlasRegion() { - return _super !== null && _super.apply(this, arguments) || this; + _super.apply(this, arguments); } return TextureAtlasRegion; }(spine.TextureRegion)); @@ -5629,13 +6231,13 @@ var spine; this.a = 1; return this; }; + Color.WHITE = new Color(1, 1, 1, 1); + Color.RED = new Color(1, 0, 0, 1); + Color.GREEN = new Color(0, 1, 0, 1); + Color.BLUE = new Color(0, 0, 1, 1); + Color.MAGENTA = new Color(1, 0, 1, 1); return Color; }()); - Color.WHITE = new Color(1, 1, 1, 1); - Color.RED = new Color(1, 0, 0, 1); - Color.GREEN = new Color(0, 1, 0, 1); - Color.BLUE = new Color(0, 0, 1, 1); - Color.MAGENTA = new Color(1, 0, 1, 1); spine.Color = Color; var MathUtils = (function () { function MathUtils() { @@ -5663,14 +6265,14 @@ var spine; var y = Math.pow(Math.abs(x), 1 / 3); return x < 0 ? -y : y; }; + MathUtils.PI = 3.1415927; + MathUtils.PI2 = MathUtils.PI * 2; + MathUtils.radiansToDegrees = 180 / MathUtils.PI; + MathUtils.radDeg = MathUtils.radiansToDegrees; + MathUtils.degreesToRadians = MathUtils.PI / 180; + MathUtils.degRad = MathUtils.degreesToRadians; return MathUtils; }()); - MathUtils.PI = 3.1415927; - MathUtils.PI2 = MathUtils.PI * 2; - MathUtils.radiansToDegrees = 180 / MathUtils.PI; - MathUtils.radDeg = MathUtils.radiansToDegrees; - MathUtils.degreesToRadians = MathUtils.PI / 180; - MathUtils.degRad = MathUtils.degreesToRadians; spine.MathUtils = MathUtils; var Utils = (function () { function Utils() { @@ -5729,9 +6331,9 @@ var spine; Utils.toFloatArray = function (array) { return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; }; + Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; return Utils; }()); - Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; spine.Utils = Utils; var DebugUtils = (function () { function DebugUtils() { @@ -5869,620 +6471,267 @@ var spine; })(spine || (spine = {})); var spine; (function (spine) { - var Attachment = (function () { - function Attachment(name) { - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return Attachment; - }()); - spine.Attachment = Attachment; - var VertexAttachment = (function (_super) { - __extends(VertexAttachment, _super); - function VertexAttachment(name) { - var _this = _super.call(this, name) || this; - _this.worldVerticesLength = 0; - return _this; - } - VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { - count = offset + (count >> 1) * stride; - var skeleton = slot.bone.skeleton; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices; - var bones = this.bones; - if (bones == null) { - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - var x = bone.worldX; - var y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { - var vx = vertices[v_1], vy = vertices[v_1 + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - } - return; - } - var v = 0, skip = 0; - for (var i = 0; i < start; i += 2) { - var n = bones[v]; - v += n + 1; - skip += n; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = offset, b = skip * 3; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - else { - var deform = deformArray; - for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3, f += 2) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - }; - VertexAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment; - }; - return VertexAttachment; - }(Attachment)); - spine.VertexAttachment = VertexAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var AttachmentType; - (function (AttachmentType) { - AttachmentType[AttachmentType["Region"] = 0] = "Region"; - AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; - AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; - AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; - AttachmentType[AttachmentType["Path"] = 4] = "Path"; - AttachmentType[AttachmentType["Point"] = 5] = "Point"; - })(AttachmentType = spine.AttachmentType || (spine.AttachmentType = {})); -})(spine || (spine = {})); -var spine; -(function (spine) { - var BoundingBoxAttachment = (function (_super) { - __extends(BoundingBoxAttachment, _super); - function BoundingBoxAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(1, 1, 1, 1); - return _this; - } - return BoundingBoxAttachment; - }(spine.VertexAttachment)); - spine.BoundingBoxAttachment = BoundingBoxAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var ClippingAttachment = (function (_super) { - __extends(ClippingAttachment, _super); - function ClippingAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); - return _this; - } - return ClippingAttachment; - }(spine.VertexAttachment)); - spine.ClippingAttachment = ClippingAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var MeshAttachment = (function (_super) { - __extends(MeshAttachment, _super); - function MeshAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(1, 1, 1, 1); - _this.inheritDeform = false; - _this.tempColor = new spine.Color(0, 0, 0, 0); - return _this; - } - MeshAttachment.prototype.updateUVs = function () { - var u = 0, v = 0, width = 0, height = 0; - if (this.region == null) { - u = v = 0; - width = height = 1; - } - else { - u = this.region.u; - v = this.region.v; - width = this.region.u2 - u; - height = this.region.v2 - v; - } - var regionUVs = this.regionUVs; - if (this.uvs == null || this.uvs.length != regionUVs.length) - this.uvs = spine.Utils.newFloatArray(regionUVs.length); - var uvs = this.uvs; - if (this.region.rotate) { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i + 1] * width; - uvs[i + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i] * width; - uvs[i + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); - }; - MeshAttachment.prototype.getParentMesh = function () { - return this.parentMesh; - }; - MeshAttachment.prototype.setParentMesh = function (parentMesh) { - this.parentMesh = parentMesh; - if (parentMesh != null) { - this.bones = parentMesh.bones; - this.vertices = parentMesh.vertices; - this.worldVerticesLength = parentMesh.worldVerticesLength; - this.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - this.worldVerticesLength = parentMesh.worldVerticesLength; - } - }; - return MeshAttachment; - }(spine.VertexAttachment)); - spine.MeshAttachment = MeshAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var PathAttachment = (function (_super) { - __extends(PathAttachment, _super); - function PathAttachment(name) { - var _this = _super.call(this, name) || this; - _this.closed = false; - _this.constantSpeed = false; - _this.color = new spine.Color(1, 1, 1, 1); - return _this; - } - return PathAttachment; - }(spine.VertexAttachment)); - spine.PathAttachment = PathAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var PointAttachment = (function (_super) { - __extends(PointAttachment, _super); - function PointAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(0.38, 0.94, 0, 1); - return _this; - } - PointAttachment.prototype.computeWorldPosition = function (bone, point) { - point.x = this.x * bone.a + this.y * bone.b + bone.worldX; - point.y = this.x * bone.c + this.y * bone.d + bone.worldY; - return point; - }; - PointAttachment.prototype.computeWorldRotation = function (bone) { - var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); - var x = cos * bone.a + sin * bone.b; - var y = cos * bone.c + sin * bone.d; - return Math.atan2(y, x) * spine.MathUtils.radDeg; - }; - return PointAttachment; - }(spine.VertexAttachment)); - spine.PointAttachment = PointAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var RegionAttachment = (function (_super) { - __extends(RegionAttachment, _super); - function RegionAttachment(name) { - var _this = _super.call(this, name) || this; - _this.x = 0; - _this.y = 0; - _this.scaleX = 1; - _this.scaleY = 1; - _this.rotation = 0; - _this.width = 0; - _this.height = 0; - _this.color = new spine.Color(1, 1, 1, 1); - _this.offset = spine.Utils.newFloatArray(8); - _this.uvs = spine.Utils.newFloatArray(8); - _this.tempColor = new spine.Color(1, 1, 1, 1); - return _this; - } - RegionAttachment.prototype.updateOffset = function () { - var regionScaleX = this.width / this.region.originalWidth * this.scaleX; - var regionScaleY = this.height / this.region.originalHeight * this.scaleY; - var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; - var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; - var localX2 = localX + this.region.width * regionScaleX; - var localY2 = localY + this.region.height * regionScaleY; - var radians = this.rotation * Math.PI / 180; - var cos = Math.cos(radians); - var sin = Math.sin(radians); - var localXCos = localX * cos + this.x; - var localXSin = localX * sin; - var localYCos = localY * cos + this.y; - var localYSin = localY * sin; - var localX2Cos = localX2 * cos + this.x; - var localX2Sin = localX2 * sin; - var localY2Cos = localY2 * cos + this.y; - var localY2Sin = localY2 * sin; - var offset = this.offset; - offset[RegionAttachment.OX1] = localXCos - localYSin; - offset[RegionAttachment.OY1] = localYCos + localXSin; - offset[RegionAttachment.OX2] = localXCos - localY2Sin; - offset[RegionAttachment.OY2] = localY2Cos + localXSin; - offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; - offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; - offset[RegionAttachment.OX4] = localX2Cos - localYSin; - offset[RegionAttachment.OY4] = localYCos + localX2Sin; - }; - RegionAttachment.prototype.setRegion = function (region) { - this.region = region; - var uvs = this.uvs; - if (region.rotate) { - uvs[2] = region.u; - uvs[3] = region.v2; - uvs[4] = region.u; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v; - uvs[0] = region.u2; - uvs[1] = region.v2; - } - else { - uvs[0] = region.u; - uvs[1] = region.v2; - uvs[2] = region.u; - uvs[3] = region.v; - uvs[4] = region.u2; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v2; - } - }; - RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { - var vertexOffset = this.offset; - var x = bone.worldX, y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = vertexOffset[RegionAttachment.OX1]; - offsetY = vertexOffset[RegionAttachment.OY1]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX2]; - offsetY = vertexOffset[RegionAttachment.OY2]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX3]; - offsetY = vertexOffset[RegionAttachment.OY3]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX4]; - offsetY = vertexOffset[RegionAttachment.OY4]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - }; - return RegionAttachment; - }(spine.Attachment)); - RegionAttachment.OX1 = 0; - RegionAttachment.OY1 = 1; - RegionAttachment.OX2 = 2; - RegionAttachment.OY2 = 3; - RegionAttachment.OX3 = 4; - RegionAttachment.OY3 = 5; - RegionAttachment.OX4 = 6; - RegionAttachment.OY4 = 7; - RegionAttachment.X1 = 0; - RegionAttachment.Y1 = 1; - RegionAttachment.C1R = 2; - RegionAttachment.C1G = 3; - RegionAttachment.C1B = 4; - RegionAttachment.C1A = 5; - RegionAttachment.U1 = 6; - RegionAttachment.V1 = 7; - RegionAttachment.X2 = 8; - RegionAttachment.Y2 = 9; - RegionAttachment.C2R = 10; - RegionAttachment.C2G = 11; - RegionAttachment.C2B = 12; - RegionAttachment.C2A = 13; - RegionAttachment.U2 = 14; - RegionAttachment.V2 = 15; - RegionAttachment.X3 = 16; - RegionAttachment.Y3 = 17; - RegionAttachment.C3R = 18; - RegionAttachment.C3G = 19; - RegionAttachment.C3B = 20; - RegionAttachment.C3A = 21; - RegionAttachment.U3 = 22; - RegionAttachment.V3 = 23; - RegionAttachment.X4 = 24; - RegionAttachment.Y4 = 25; - RegionAttachment.C4R = 26; - RegionAttachment.C4G = 27; - RegionAttachment.C4B = 28; - RegionAttachment.C4A = 29; - RegionAttachment.U4 = 30; - RegionAttachment.V4 = 31; - spine.RegionAttachment = RegionAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var canvas; - (function (canvas) { + var threejs; + (function (threejs) { var AssetManager = (function (_super) { __extends(AssetManager, _super); function AssetManager(pathPrefix) { if (pathPrefix === void 0) { pathPrefix = ""; } - return _super.call(this, function (image) { return new spine.canvas.CanvasTexture(image); }, pathPrefix) || this; + _super.call(this, function (image) { + return new threejs.ThreeJsTexture(image); + }, pathPrefix); } return AssetManager; }(spine.AssetManager)); - canvas.AssetManager = AssetManager; - })(canvas = spine.canvas || (spine.canvas = {})); + threejs.AssetManager = AssetManager; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); var spine; (function (spine) { - var canvas; - (function (canvas) { - var CanvasTexture = (function (_super) { - __extends(CanvasTexture, _super); - function CanvasTexture(image) { - return _super.call(this, image) || this; + var threejs; + (function (threejs) { + var MeshBatcher = (function () { + function MeshBatcher(mesh, maxVertices) { + if (maxVertices === void 0) { maxVertices = 10920; } + this.verticesLength = 0; + this.indicesLength = 0; + if (maxVertices > 10920) + throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); + var vertices = this.vertices = new Float32Array(maxVertices * MeshBatcher.VERTEX_SIZE); + var indices = this.indices = new Uint16Array(maxVertices * 3); + this.mesh = mesh; + var geo = new THREE.BufferGeometry(); + var vertexBuffer = this.vertexBuffer = new THREE.InterleavedBuffer(vertices, MeshBatcher.VERTEX_SIZE); + vertexBuffer.dynamic = true; + geo.addAttribute("position", new THREE.InterleavedBufferAttribute(vertexBuffer, 3, 0, false)); + geo.addAttribute("color", new THREE.InterleavedBufferAttribute(vertexBuffer, 4, 3, false)); + geo.addAttribute("uv", new THREE.InterleavedBufferAttribute(vertexBuffer, 2, 7, false)); + geo.setIndex(new THREE.BufferAttribute(indices, 1)); + geo.getIndex().dynamic = true; + geo.drawRange.start = 0; + geo.drawRange.count = 0; + mesh.geometry = geo; } - CanvasTexture.prototype.setFilters = function (minFilter, magFilter) { }; - CanvasTexture.prototype.setWraps = function (uWrap, vWrap) { }; - CanvasTexture.prototype.dispose = function () { }; - return CanvasTexture; - }(spine.Texture)); - canvas.CanvasTexture = CanvasTexture; - })(canvas = spine.canvas || (spine.canvas = {})); -})(spine || (spine = {})); -var spine; -(function (spine) { - var canvas; - (function (canvas) { - var SkeletonRenderer = (function () { - function SkeletonRenderer(context) { - this.triangleRendering = false; - this.debugRendering = false; - this.vertices = spine.Utils.newFloatArray(8 * 1024); - this.tempColor = new spine.Color(); - this.ctx = context; - } - SkeletonRenderer.prototype.draw = function (skeleton) { - if (this.triangleRendering) - this.drawTriangles(skeleton); - else - this.drawImages(skeleton); + MeshBatcher.prototype.begin = function () { + this.verticesLength = 0; + this.indicesLength = 0; }; - SkeletonRenderer.prototype.drawImages = function (skeleton) { - var ctx = this.ctx; - var drawOrder = skeleton.drawOrder; - if (this.debugRendering) - ctx.strokeStyle = "green"; - ctx.save(); - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var regionAttachment = null; - var region = null; - var image = null; - if (attachment instanceof spine.RegionAttachment) { - regionAttachment = attachment; - region = regionAttachment.region; - image = region.texture.getImage(); - } - else - continue; - var skeleton_1 = slot.bone.skeleton; - var skeletonColor = skeleton_1.color; - var slotColor = slot.color; - var regionColor = regionAttachment.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * regionColor.r, skeletonColor.g * slotColor.g * regionColor.g, skeletonColor.b * slotColor.b * regionColor.b, alpha); - var att = attachment; - var bone = slot.bone; - var w = region.width; - var h = region.height; - ctx.save(); - ctx.transform(bone.a, bone.c, bone.b, bone.d, bone.worldX, bone.worldY); - ctx.translate(attachment.offset[0], attachment.offset[1]); - ctx.rotate(attachment.rotation * Math.PI / 180); - ctx.scale(attachment.scaleX, attachment.scaleY); - ctx.translate(w / 2, h / 2); - if (attachment.region.rotate) { - var t = w; - w = h; - h = t; - ctx.rotate(-Math.PI / 2); - } - ctx.scale(1, -1); - ctx.translate(-w / 2, -h / 2); - if (color.r != 1 || color.g != 1 || color.b != 1 || color.a != 1) { - ctx.globalAlpha = color.a; - } - ctx.drawImage(image, region.x, region.y, w, h, 0, 0, w, h); - if (this.debugRendering) - ctx.strokeRect(0, 0, w, h); - ctx.restore(); + MeshBatcher.prototype.batch = function (vertices, verticesLength, indices, indicesLength, z) { + if (z === void 0) { z = 0; } + var indexStart = this.verticesLength / MeshBatcher.VERTEX_SIZE; + var vertexBuffer = this.vertices; + var i = this.verticesLength; + var j = 0; + for (; j < verticesLength;) { + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = z; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; } - ctx.restore(); + this.verticesLength = i; + var indicesArray = this.indices; + for (i = this.indicesLength, j = 0; j < indicesLength; i++, j++) + indicesArray[i] = indices[j] + indexStart; + this.indicesLength += indicesLength; }; - SkeletonRenderer.prototype.drawTriangles = function (skeleton) { + MeshBatcher.prototype.end = function () { + this.vertexBuffer.needsUpdate = true; + this.vertexBuffer.updateRange.offset = 0; + this.vertexBuffer.updateRange.count = this.verticesLength; + var geo = this.mesh.geometry; + geo.getIndex().needsUpdate = true; + geo.getIndex().updateRange.offset = 0; + geo.getIndex().updateRange.count = this.indicesLength; + geo.drawRange.start = 0; + geo.drawRange.count = this.indicesLength; + }; + MeshBatcher.VERTEX_SIZE = 9; + return MeshBatcher; + }()); + threejs.MeshBatcher = MeshBatcher; + })(threejs = spine.threejs || (spine.threejs = {})); +})(spine || (spine = {})); +var spine; +(function (spine) { + var threejs; + (function (threejs) { + var SkeletonMesh = (function (_super) { + __extends(SkeletonMesh, _super); + function SkeletonMesh(skeletonData) { + _super.call(this); + this.zOffset = 0.1; + this.clipper = new spine.SkeletonClipping(); + this.vertices = spine.Utils.newFloatArray(1024); + this.tempColor = new spine.Color(); + this.skeleton = new spine.Skeleton(skeletonData); + var animData = new spine.AnimationStateData(skeletonData); + this.state = new spine.AnimationState(animData); + var material = this.material = new THREE.MeshBasicMaterial(); + material.side = THREE.DoubleSide; + material.transparent = true; + material.alphaTest = 0.5; + this.batcher = new threejs.MeshBatcher(this); + } + SkeletonMesh.prototype.update = function (deltaTime) { + var state = this.state; + var skeleton = this.skeleton; + state.update(deltaTime); + state.apply(skeleton); + skeleton.updateWorldTransform(); + this.updateGeometry(); + }; + SkeletonMesh.prototype.updateGeometry = function () { + var geometry = this.geometry; + var numVertices = 0; + var verticesLength = 0; + var indicesLength = 0; var blendMode = null; + var clipper = this.clipper; var vertices = this.vertices; var triangles = null; - var drawOrder = skeleton.drawOrder; + var uvs = null; + var drawOrder = this.skeleton.drawOrder; + var batcher = this.batcher; + batcher.begin(); + var z = 0; + var zOffset = this.zOffset; for (var i = 0, n = drawOrder.length; i < n; i++) { + var vertexSize = clipper.isClipping() ? 2 : SkeletonMesh.VERTEX_SIZE; var slot = drawOrder[i]; var attachment = slot.getAttachment(); + var attachmentColor = null; var texture = null; - var region = null; + var numFloats = 0; if (attachment instanceof spine.RegionAttachment) { - var regionAttachment = attachment; - vertices = this.computeRegionVertices(slot, regionAttachment, false); - triangles = SkeletonRenderer.QUAD_TRIANGLES; - region = regionAttachment.region; - texture = region.texture.getImage(); + var region = attachment; + attachmentColor = region.color; + vertices = this.vertices; + numFloats = vertexSize * 4; + region.computeWorldVertices(slot.bone, vertices, 0, vertexSize); + triangles = SkeletonMesh.QUAD_TRIANGLES; + uvs = region.uvs; + texture = region.region.renderObject.texture; } else if (attachment instanceof spine.MeshAttachment) { var mesh = attachment; - vertices = this.computeMeshVertices(slot, mesh, false); + attachmentColor = mesh.color; + vertices = this.vertices; + numFloats = (mesh.worldVerticesLength >> 1) * vertexSize; + if (numFloats > vertices.length) { + vertices = this.vertices = spine.Utils.newFloatArray(numFloats); + } + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, vertexSize); triangles = mesh.triangles; - texture = mesh.region.renderObject.texture.getImage(); + uvs = mesh.uvs; + texture = mesh.region.renderObject.texture; + } + else if (attachment instanceof spine.ClippingAttachment) { + var clip = (attachment); + clipper.clipStart(slot, clip); + continue; } else continue; if (texture != null) { - var slotBlendMode = slot.data.blendMode; - if (slotBlendMode != blendMode) { - blendMode = slotBlendMode; + if (!this.material.map) { + var mat = this.material; + mat.map = texture.texture; + mat.needsUpdate = true; } - var ctx = this.ctx; - for (var j = 0; j < triangles.length; j += 3) { - var t1 = triangles[j] * 8, t2 = triangles[j + 1] * 8, t3 = triangles[j + 2] * 8; - var x0 = vertices[t1], y0 = vertices[t1 + 1], u0 = vertices[t1 + 6], v0 = vertices[t1 + 7]; - var x1 = vertices[t2], y1 = vertices[t2 + 1], u1 = vertices[t2 + 6], v1 = vertices[t2 + 7]; - var x2 = vertices[t3], y2 = vertices[t3 + 1], u2 = vertices[t3 + 6], v2 = vertices[t3 + 7]; - this.drawTriangle(texture, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); - if (this.debugRendering) { - ctx.strokeStyle = "green"; - ctx.beginPath(); - ctx.moveTo(x0, y0); - ctx.lineTo(x1, y1); - ctx.lineTo(x2, y2); - ctx.lineTo(x0, y0); - ctx.stroke(); + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var alpha = skeletonColor.a * slotColor.a * attachmentColor.a; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * attachmentColor.r, skeletonColor.g * slotColor.g * attachmentColor.g, skeletonColor.b * slotColor.b * attachmentColor.b, alpha); + if (clipper.isClipping()) { + clipper.clipTriangles(vertices, numFloats, triangles, triangles.length, uvs, color, null, false); + var clippedVertices = clipper.clippedVertices; + var clippedTriangles = clipper.clippedTriangles; + batcher.batch(clippedVertices, clippedVertices.length, clippedTriangles, clippedTriangles.length, z); + } + else { + var verts = vertices; + for (var v = 2, u = 0, n_2 = numFloats; v < n_2; v += vertexSize, u += 2) { + verts[v] = color.r; + verts[v + 1] = color.g; + verts[v + 2] = color.b; + verts[v + 3] = color.a; + verts[v + 4] = uvs[u]; + verts[v + 5] = uvs[u + 1]; } + batcher.batch(vertices, numFloats, triangles, triangles.length, z); } + z += zOffset; } } + batcher.end(); }; - SkeletonRenderer.prototype.drawTriangle = function (img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2) { - var ctx = this.ctx; - u0 *= img.width; - v0 *= img.height; - u1 *= img.width; - v1 *= img.height; - u2 *= img.width; - v2 *= img.height; - ctx.beginPath(); - ctx.moveTo(x0, y0); - ctx.lineTo(x1, y1); - ctx.lineTo(x2, y2); - ctx.closePath(); - x1 -= x0; - y1 -= y0; - x2 -= x0; - y2 -= y0; - u1 -= u0; - v1 -= v0; - u2 -= u0; - v2 -= v0; - var det = 1 / (u1 * v2 - u2 * v1), a = (v2 * x1 - v1 * x2) * det, b = (v2 * y1 - v1 * y2) * det, c = (u1 * x2 - u2 * x1) * det, d = (u1 * y2 - u2 * y1) * det, e = x0 - a * u0 - c * v0, f = y0 - b * u0 - d * v0; - ctx.save(); - ctx.transform(a, b, c, d, e, f); - ctx.clip(); - ctx.drawImage(img, 0, 0); - ctx.restore(); + SkeletonMesh.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + SkeletonMesh.VERTEX_SIZE = 2 + 2 + 4; + return SkeletonMesh; + }(THREE.Mesh)); + threejs.SkeletonMesh = SkeletonMesh; + })(threejs = spine.threejs || (spine.threejs = {})); +})(spine || (spine = {})); +var spine; +(function (spine) { + var threejs; + (function (threejs) { + var ThreeJsTexture = (function (_super) { + __extends(ThreeJsTexture, _super); + function ThreeJsTexture(image) { + _super.call(this, image); + this.texture = new THREE.Texture(image); + this.texture.flipY = false; + this.texture.needsUpdate = true; + } + ThreeJsTexture.prototype.setFilters = function (minFilter, magFilter) { + this.texture.minFilter = ThreeJsTexture.toThreeJsTextureFilter(minFilter); + this.texture.magFilter = ThreeJsTexture.toThreeJsTextureFilter(magFilter); }; - SkeletonRenderer.prototype.computeRegionVertices = function (slot, region, pma) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var regionColor = region.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var multiplier = pma ? alpha : 1; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); - region.computeWorldVertices(slot.bone, this.vertices, 0, SkeletonRenderer.VERTEX_SIZE); - var vertices = this.vertices; - var uvs = region.uvs; - vertices[spine.RegionAttachment.C1R] = color.r; - vertices[spine.RegionAttachment.C1G] = color.g; - vertices[spine.RegionAttachment.C1B] = color.b; - vertices[spine.RegionAttachment.C1A] = color.a; - vertices[spine.RegionAttachment.U1] = uvs[0]; - vertices[spine.RegionAttachment.V1] = uvs[1]; - vertices[spine.RegionAttachment.C2R] = color.r; - vertices[spine.RegionAttachment.C2G] = color.g; - vertices[spine.RegionAttachment.C2B] = color.b; - vertices[spine.RegionAttachment.C2A] = color.a; - vertices[spine.RegionAttachment.U2] = uvs[2]; - vertices[spine.RegionAttachment.V2] = uvs[3]; - vertices[spine.RegionAttachment.C3R] = color.r; - vertices[spine.RegionAttachment.C3G] = color.g; - vertices[spine.RegionAttachment.C3B] = color.b; - vertices[spine.RegionAttachment.C3A] = color.a; - vertices[spine.RegionAttachment.U3] = uvs[4]; - vertices[spine.RegionAttachment.V3] = uvs[5]; - vertices[spine.RegionAttachment.C4R] = color.r; - vertices[spine.RegionAttachment.C4G] = color.g; - vertices[spine.RegionAttachment.C4B] = color.b; - vertices[spine.RegionAttachment.C4A] = color.a; - vertices[spine.RegionAttachment.U4] = uvs[6]; - vertices[spine.RegionAttachment.V4] = uvs[7]; - return vertices; + ThreeJsTexture.prototype.setWraps = function (uWrap, vWrap) { + this.texture.wrapS = ThreeJsTexture.toThreeJsTextureWrap(uWrap); + this.texture.wrapT = ThreeJsTexture.toThreeJsTextureWrap(vWrap); }; - SkeletonRenderer.prototype.computeMeshVertices = function (slot, mesh, pma) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var regionColor = mesh.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var multiplier = pma ? alpha : 1; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); - var numVertices = mesh.worldVerticesLength / 2; - if (this.vertices.length < mesh.worldVerticesLength) { - this.vertices = spine.Utils.newFloatArray(mesh.worldVerticesLength); - } - var vertices = this.vertices; - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, SkeletonRenderer.VERTEX_SIZE); - var uvs = mesh.uvs; - for (var i = 0, n = numVertices, u = 0, v = 2; i < n; i++) { - vertices[v++] = color.r; - vertices[v++] = color.g; - vertices[v++] = color.b; - vertices[v++] = color.a; - vertices[v++] = uvs[u++]; - vertices[v++] = uvs[u++]; - v += 2; - } - return vertices; + ThreeJsTexture.prototype.dispose = function () { + this.texture.dispose(); }; - return SkeletonRenderer; - }()); - SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - SkeletonRenderer.VERTEX_SIZE = 2 + 2 + 4; - canvas.SkeletonRenderer = SkeletonRenderer; - })(canvas = spine.canvas || (spine.canvas = {})); + ThreeJsTexture.toThreeJsTextureFilter = function (filter) { + if (filter === spine.TextureFilter.Linear) + return THREE.LinearFilter; + else if (filter === spine.TextureFilter.MipMap) + return THREE.LinearMipMapLinearFilter; + else if (filter === spine.TextureFilter.MipMapLinearNearest) + return THREE.LinearMipMapNearestFilter; + else if (filter === spine.TextureFilter.MipMapNearestLinear) + return THREE.NearestMipMapLinearFilter; + else if (filter === spine.TextureFilter.MipMapNearestNearest) + return THREE.NearestMipMapNearestFilter; + else if (filter === spine.TextureFilter.Nearest) + return THREE.NearestFilter; + else + throw new Error("Unknown texture filter: " + filter); + }; + ThreeJsTexture.toThreeJsTextureWrap = function (wrap) { + if (wrap === spine.TextureWrap.ClampToEdge) + return THREE.ClampToEdgeWrapping; + else if (wrap === spine.TextureWrap.MirroredRepeat) + return THREE.MirroredRepeatWrapping; + else if (wrap === spine.TextureWrap.Repeat) + return THREE.RepeatWrapping; + else + throw new Error("Unknown texture wrap: " + wrap); + }; + return ThreeJsTexture; + }(spine.Texture)); + threejs.ThreeJsTexture = ThreeJsTexture; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); var spine; (function (spine) { @@ -6492,9 +6741,9 @@ var spine; __extends(AssetManager, _super); function AssetManager(context, pathPrefix) { if (pathPrefix === void 0) { pathPrefix = ""; } - return _super.call(this, function (image) { + _super.call(this, function (image) { return new spine.webgl.GLTexture(context, image); - }, pathPrefix) || this; + }, pathPrefix); } return AssetManager; }(spine.AssetManager)); @@ -6563,15 +6812,14 @@ var spine; __extends(GLTexture, _super); function GLTexture(context, image, useMipMaps) { if (useMipMaps === void 0) { useMipMaps = false; } - var _this = _super.call(this, image) || this; - _this.texture = null; - _this.boundUnit = 0; - _this.useMipMaps = false; - _this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - _this.useMipMaps = useMipMaps; - _this.restore(); - _this.context.addRestorable(_this); - return _this; + _super.call(this, image); + this.texture = null; + this.boundUnit = 0; + this.useMipMaps = false; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.useMipMaps = useMipMaps; + this.restore(); + this.context.addRestorable(this); } GLTexture.prototype.setFilters = function (minFilter, magFilter) { var gl = this.context.gl; @@ -6894,14 +7142,14 @@ var spine; renderer.end(); renderer.camera.position.set(oldX, oldY, 0); }; + LoadingScreen.FADE_SECONDS = 1; + LoadingScreen.loaded = 0; + LoadingScreen.spinnerImg = null; + LoadingScreen.logoImg = null; + LoadingScreen.SPINNER_DATA = "data:image/png;base64,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"; + LoadingScreen.SPINE_LOGO_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAAAZCAYAAACis3k0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtNJREFUaN7tmT2I1EAUxwN+oWgRT0HFKo0WCkJ6ObmAWFwZbCxsXGysLNJaiCyIoDaSwk4ETzvhmnBaCRbBWoQ01ho4PwotjP8cE337mMy8TLK757mBH3fLTWbe/PbN53neNniqZW8FvAVvQAqugwvgDDgO9niLRyTyJagM/ACPF6bsIl9ZRDac/Cc6tLn5xQdRQ496QlKPLxD5QCDxO9jtGM8QfYoIgUlgCipGCRJL5VvlyOdCU09iEXkCfLSIfCrs7Fab6nOsiafu06iDwES9w/uU1QnDC+ekkVS9vEaDsgVeB0d+z1VDtOGxRaYPboP3Gokb4GgXkZp4chZPJKgvZ3U0XkriK/TIt9YUDllFgTAjGwoaoHqfBhMI58yD4BQ4V6/aHYdfxToftvw9F2SiVroawU2/Cv5C4Thv0KB9S5nxlOd4STxjwUjzSdYlgrYijw2BsEfgsaFcM09lhiys94xXQQwugcvgJrgFLjrEE7WUiTuWCQzt/ZXN7FfqGwuGClyVy2xZAFmfDQvNtwFFSspMDGsD+UTWqu1KoVmVooFEJgKRXw0if85RpISEzwsjzeqWzkjkC4PIJ3MUmQgITAHlQwTFhnZhELkEntfZRwR+AvfAgXmJHOqU02XligWT8ppg67NXbdCXeq7afUQ6L8C2DalEZNt2YyQ94Qy8/ekjMpBMbfyl5iTjG7YAI8cNecROAb4kJmTjaXAF3AGvwQewOiuRxEtlSaT4j2h2lMsUueQEoMlIKpTvAmKhxPMtC876jEX6rE8l8TNx/KVbn6xlWU9NWcSDUsO4NGWpQOTZFpHPOooMXcswmW2XFk3ixb2v0Nq+XVKP00QNaffBLyWwBI/AkTlfMYZDXMf12kc6yjwEjoFdO/5me5oi/6tnyhlZX6OtgmX1c2Uh0k3khmbB2b9TRfpd/jfTUeRDJvHdYg5wE7kPXAN3wQ1weDvH+xufEgpi5qIl3QAAAABJRU5ErkJggg=="; return LoadingScreen; }()); - LoadingScreen.FADE_SECONDS = 1; - LoadingScreen.loaded = 0; - LoadingScreen.spinnerImg = null; - LoadingScreen.logoImg = null; - LoadingScreen.SPINNER_DATA = "data:image/png;base64,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"; - LoadingScreen.SPINE_LOGO_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAAAZCAYAAACis3k0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtNJREFUaN7tmT2I1EAUxwN+oWgRT0HFKo0WCkJ6ObmAWFwZbCxsXGysLNJaiCyIoDaSwk4ETzvhmnBaCRbBWoQ01ho4PwotjP8cE337mMy8TLK757mBH3fLTWbe/PbN53neNniqZW8FvAVvQAqugwvgDDgO9niLRyTyJagM/ACPF6bsIl9ZRDac/Cc6tLn5xQdRQ496QlKPLxD5QCDxO9jtGM8QfYoIgUlgCipGCRJL5VvlyOdCU09iEXkCfLSIfCrs7Fab6nOsiafu06iDwES9w/uU1QnDC+ekkVS9vEaDsgVeB0d+z1VDtOGxRaYPboP3Gokb4GgXkZp4chZPJKgvZ3U0XkriK/TIt9YUDllFgTAjGwoaoHqfBhMI58yD4BQ4V6/aHYdfxToftvw9F2SiVroawU2/Cv5C4Thv0KB9S5nxlOd4STxjwUjzSdYlgrYijw2BsEfgsaFcM09lhiys94xXQQwugcvgJrgFLjrEE7WUiTuWCQzt/ZXN7FfqGwuGClyVy2xZAFmfDQvNtwFFSspMDGsD+UTWqu1KoVmVooFEJgKRXw0if85RpISEzwsjzeqWzkjkC4PIJ3MUmQgITAHlQwTFhnZhELkEntfZRwR+AvfAgXmJHOqU02XligWT8ppg67NXbdCXeq7afUQ6L8C2DalEZNt2YyQ94Qy8/ekjMpBMbfyl5iTjG7YAI8cNecROAb4kJmTjaXAF3AGvwQewOiuRxEtlSaT4j2h2lMsUueQEoMlIKpTvAmKhxPMtC876jEX6rE8l8TNx/KVbn6xlWU9NWcSDUsO4NGWpQOTZFpHPOooMXcswmW2XFk3ixb2v0Nq+XVKP00QNaffBLyWwBI/AkTlfMYZDXMf12kc6yjwEjoFdO/5me5oi/6tnyhlZX6OtgmX1c2Uh0k3khmbB2b9TRfpd/jfTUeRDJvHdYg5wE7kPXAN3wQ1weDvH+xufEgpi5qIl3QAAAABJRU5ErkJggg=="; webgl.LoadingScreen = LoadingScreen; })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); @@ -7196,12 +7444,12 @@ var spine; if (Matrix4.zAxis === null) Matrix4.zAxis = new webgl.Vector3(); }; + Matrix4.xAxis = null; + Matrix4.yAxis = null; + Matrix4.zAxis = null; + Matrix4.tmpMatrix = new Matrix4(); return Matrix4; }()); - Matrix4.xAxis = null; - Matrix4.yAxis = null; - Matrix4.zAxis = null; - Matrix4.tmpMatrix = new Matrix4(); webgl.Matrix4 = Matrix4; })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); @@ -7350,7 +7598,7 @@ var spine; var Position2Attribute = (function (_super) { __extends(Position2Attribute, _super); function Position2Attribute() { - return _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 2) || this; + _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 2); } return Position2Attribute; }(VertexAttribute)); @@ -7358,7 +7606,7 @@ var spine; var Position3Attribute = (function (_super) { __extends(Position3Attribute, _super); function Position3Attribute() { - return _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 3) || this; + _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 3); } return Position3Attribute; }(VertexAttribute)); @@ -7367,7 +7615,7 @@ var spine; __extends(TexCoordAttribute, _super); function TexCoordAttribute(unit) { if (unit === void 0) { unit = 0; } - return _super.call(this, webgl.Shader.TEXCOORDS + (unit == 0 ? "" : unit), VertexAttributeType.Float, 2) || this; + _super.call(this, webgl.Shader.TEXCOORDS + (unit == 0 ? "" : unit), VertexAttributeType.Float, 2); } return TexCoordAttribute; }(VertexAttribute)); @@ -7375,7 +7623,7 @@ var spine; var ColorAttribute = (function (_super) { __extends(ColorAttribute, _super); function ColorAttribute() { - return _super.call(this, webgl.Shader.COLOR, VertexAttributeType.Float, 4) || this; + _super.call(this, webgl.Shader.COLOR, VertexAttributeType.Float, 4); } return ColorAttribute; }(VertexAttribute)); @@ -7383,15 +7631,15 @@ var spine; var Color2Attribute = (function (_super) { __extends(Color2Attribute, _super); function Color2Attribute() { - return _super.call(this, webgl.Shader.COLOR2, VertexAttributeType.Float, 4) || this; + _super.call(this, webgl.Shader.COLOR2, VertexAttributeType.Float, 4); } return Color2Attribute; }(VertexAttribute)); webgl.Color2Attribute = Color2Attribute; - var VertexAttributeType; (function (VertexAttributeType) { VertexAttributeType[VertexAttributeType["Float"] = 0] = "Float"; - })(VertexAttributeType = webgl.VertexAttributeType || (webgl.VertexAttributeType = {})); + })(webgl.VertexAttributeType || (webgl.VertexAttributeType = {})); + var VertexAttributeType = webgl.VertexAttributeType; })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; @@ -7892,12 +8140,12 @@ var spine; return SceneRenderer; }()); webgl.SceneRenderer = SceneRenderer; - var ResizeMode; (function (ResizeMode) { ResizeMode[ResizeMode["Stretch"] = 0] = "Stretch"; ResizeMode[ResizeMode["Expand"] = 1] = "Expand"; ResizeMode[ResizeMode["Fit"] = 2] = "Fit"; - })(ResizeMode = webgl.ResizeMode || (webgl.ResizeMode = {})); + })(webgl.ResizeMode || (webgl.ResizeMode = {})); + var ResizeMode = webgl.ResizeMode; })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; @@ -8044,14 +8292,14 @@ var spine; var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color;\n\t\t\t\t}\n\t\t\t"; return new Shader(context, vs, fs); }; + Shader.MVP_MATRIX = "u_projTrans"; + Shader.POSITION = "a_position"; + Shader.COLOR = "a_color"; + Shader.COLOR2 = "a_color2"; + Shader.TEXCOORDS = "a_texCoords"; + Shader.SAMPLER = "u_texture"; return Shader; }()); - Shader.MVP_MATRIX = "u_projTrans"; - Shader.POSITION = "a_position"; - Shader.COLOR = "a_color"; - Shader.COLOR2 = "a_color2"; - Shader.TEXCOORDS = "a_texCoords"; - Shader.SAMPLER = "u_texture"; webgl.Shader = Shader; })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); @@ -8371,12 +8619,12 @@ var spine; return ShapeRenderer; }()); webgl.ShapeRenderer = ShapeRenderer; - var ShapeType; (function (ShapeType) { ShapeType[ShapeType["Point"] = 0] = "Point"; ShapeType[ShapeType["Line"] = 1] = "Line"; ShapeType[ShapeType["Filled"] = 4] = "Filled"; - })(ShapeType = webgl.ShapeType || (webgl.ShapeType = {})); + })(webgl.ShapeType || (webgl.ShapeType = {})); + var ShapeType = webgl.ShapeType; })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; @@ -8552,7 +8800,7 @@ var spine; var nn = clip.worldVerticesLength; var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); clip.computeWorldVertices(slot, 0, nn, world, 0, 2); - for (var i_5 = 0, n_2 = world.length; i_5 < n_2; i_5 += 2) { + for (var i_5 = 0, n_3 = world.length; i_5 < n_3; i_5 += 2) { var x = world[i_5]; var y = world[i_5 + 1]; var x2 = world[(i_5 + 2) % world.length]; @@ -8564,10 +8812,10 @@ var spine; }; SkeletonDebugRenderer.prototype.dispose = function () { }; + SkeletonDebugRenderer.LIGHT_GRAY = new spine.Color(192 / 255, 192 / 255, 192 / 255, 1); + SkeletonDebugRenderer.GREEN = new spine.Color(0, 1, 0, 1); return SkeletonDebugRenderer; }()); - SkeletonDebugRenderer.LIGHT_GRAY = new spine.Color(192 / 255, 192 / 255, 192 / 255, 1); - SkeletonDebugRenderer.GREEN = new spine.Color(0, 1, 0, 1); webgl.SkeletonDebugRenderer = SkeletonDebugRenderer; })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); @@ -8679,7 +8927,7 @@ var spine; else { var verts = renderable.vertices; if (!twoColorTint) { - for (var v = 2, u = 0, n_3 = renderable.numFloats; v < n_3; v += vertexSize, u += 2) { + for (var v = 2, u = 0, n_4 = renderable.numFloats; v < n_4; v += vertexSize, u += 2) { verts[v] = finalColor.r; verts[v + 1] = finalColor.g; verts[v + 2] = finalColor.b; @@ -8689,7 +8937,7 @@ var spine; } } else { - for (var v = 2, u = 0, n_4 = renderable.numFloats; v < n_4; v += vertexSize, u += 2) { + for (var v = 2, u = 0, n_5 = renderable.numFloats; v < n_5; v += vertexSize, u += 2) { verts[v] = finalColor.r; verts[v + 1] = finalColor.g; verts[v + 2] = finalColor.b; @@ -8710,9 +8958,9 @@ var spine; } clipper.clipEnd(); }; + SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; return SkeletonRenderer; }()); - SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; webgl.SkeletonRenderer = SkeletonRenderer; })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); @@ -8807,8 +9055,8 @@ var spine; (function (webgl) { var ManagedWebGLRenderingContext = (function () { function ManagedWebGLRenderingContext(canvasOrContext, contextConfig) { - if (contextConfig === void 0) { contextConfig = { alpha: "true" }; } var _this = this; + if (contextConfig === void 0) { contextConfig = { alpha: "true" }; } this.restorables = new Array(); if (canvasOrContext instanceof HTMLCanvasElement) { var canvas_1 = canvasOrContext; @@ -8864,287 +9112,21 @@ var spine; default: throw new Error("Unknown blend mode: " + blendMode); } }; + WebGLBlendModeConverter.ZERO = 0; + WebGLBlendModeConverter.ONE = 1; + WebGLBlendModeConverter.SRC_COLOR = 0x0300; + WebGLBlendModeConverter.ONE_MINUS_SRC_COLOR = 0x0301; + WebGLBlendModeConverter.SRC_ALPHA = 0x0302; + WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA = 0x0303; + WebGLBlendModeConverter.DST_ALPHA = 0x0304; + WebGLBlendModeConverter.ONE_MINUS_DST_ALPHA = 0x0305; + WebGLBlendModeConverter.DST_COLOR = 0x0306; return WebGLBlendModeConverter; }()); - WebGLBlendModeConverter.ZERO = 0; - WebGLBlendModeConverter.ONE = 1; - WebGLBlendModeConverter.SRC_COLOR = 0x0300; - WebGLBlendModeConverter.ONE_MINUS_SRC_COLOR = 0x0301; - WebGLBlendModeConverter.SRC_ALPHA = 0x0302; - WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA = 0x0303; - WebGLBlendModeConverter.DST_ALPHA = 0x0304; - WebGLBlendModeConverter.ONE_MINUS_DST_ALPHA = 0x0305; - WebGLBlendModeConverter.DST_COLOR = 0x0306; webgl.WebGLBlendModeConverter = WebGLBlendModeConverter; })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; -(function (spine) { - var threejs; - (function (threejs) { - var AssetManager = (function (_super) { - __extends(AssetManager, _super); - function AssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - return _super.call(this, function (image) { - return new threejs.ThreeJsTexture(image); - }, pathPrefix) || this; - } - return AssetManager; - }(spine.AssetManager)); - threejs.AssetManager = AssetManager; - })(threejs = spine.threejs || (spine.threejs = {})); -})(spine || (spine = {})); -var spine; -(function (spine) { - var threejs; - (function (threejs) { - var MeshBatcher = (function () { - function MeshBatcher(mesh, maxVertices) { - if (maxVertices === void 0) { maxVertices = 10920; } - this.verticesLength = 0; - this.indicesLength = 0; - if (maxVertices > 10920) - throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); - var vertices = this.vertices = new Float32Array(maxVertices * MeshBatcher.VERTEX_SIZE); - var indices = this.indices = new Uint16Array(maxVertices * 3); - this.mesh = mesh; - var geo = new THREE.BufferGeometry(); - var vertexBuffer = this.vertexBuffer = new THREE.InterleavedBuffer(vertices, MeshBatcher.VERTEX_SIZE); - vertexBuffer.dynamic = true; - geo.addAttribute("position", new THREE.InterleavedBufferAttribute(vertexBuffer, 3, 0, false)); - geo.addAttribute("color", new THREE.InterleavedBufferAttribute(vertexBuffer, 4, 3, false)); - geo.addAttribute("uv", new THREE.InterleavedBufferAttribute(vertexBuffer, 2, 7, false)); - geo.setIndex(new THREE.BufferAttribute(indices, 1)); - geo.getIndex().dynamic = true; - geo.drawRange.start = 0; - geo.drawRange.count = 0; - mesh.geometry = geo; - } - MeshBatcher.prototype.begin = function () { - this.verticesLength = 0; - this.indicesLength = 0; - }; - MeshBatcher.prototype.batch = function (vertices, verticesLength, indices, indicesLength, z) { - if (z === void 0) { z = 0; } - var indexStart = this.verticesLength / MeshBatcher.VERTEX_SIZE; - var vertexBuffer = this.vertices; - var i = this.verticesLength; - var j = 0; - for (; j < verticesLength;) { - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = z; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - } - this.verticesLength = i; - var indicesArray = this.indices; - for (i = this.indicesLength, j = 0; j < indicesLength; i++, j++) - indicesArray[i] = indices[j] + indexStart; - this.indicesLength += indicesLength; - }; - MeshBatcher.prototype.end = function () { - this.vertexBuffer.needsUpdate = true; - this.vertexBuffer.updateRange.offset = 0; - this.vertexBuffer.updateRange.count = this.verticesLength; - var geo = this.mesh.geometry; - geo.getIndex().needsUpdate = true; - geo.getIndex().updateRange.offset = 0; - geo.getIndex().updateRange.count = this.indicesLength; - geo.drawRange.start = 0; - geo.drawRange.count = this.indicesLength; - }; - return MeshBatcher; - }()); - MeshBatcher.VERTEX_SIZE = 9; - threejs.MeshBatcher = MeshBatcher; - })(threejs = spine.threejs || (spine.threejs = {})); -})(spine || (spine = {})); -var spine; -(function (spine) { - var threejs; - (function (threejs) { - var SkeletonMesh = (function (_super) { - __extends(SkeletonMesh, _super); - function SkeletonMesh(skeletonData) { - var _this = _super.call(this) || this; - _this.zOffset = 0.1; - _this.clipper = new spine.SkeletonClipping(); - _this.vertices = spine.Utils.newFloatArray(1024); - _this.tempColor = new spine.Color(); - _this.skeleton = new spine.Skeleton(skeletonData); - var animData = new spine.AnimationStateData(skeletonData); - _this.state = new spine.AnimationState(animData); - var material = _this.material = new THREE.MeshBasicMaterial(); - material.side = THREE.DoubleSide; - material.transparent = true; - material.alphaTest = 0.5; - _this.batcher = new threejs.MeshBatcher(_this); - return _this; - } - SkeletonMesh.prototype.update = function (deltaTime) { - var state = this.state; - var skeleton = this.skeleton; - state.update(deltaTime); - state.apply(skeleton); - skeleton.updateWorldTransform(); - this.updateGeometry(); - }; - SkeletonMesh.prototype.updateGeometry = function () { - var geometry = this.geometry; - var numVertices = 0; - var verticesLength = 0; - var indicesLength = 0; - var blendMode = null; - var clipper = this.clipper; - var vertices = this.vertices; - var triangles = null; - var uvs = null; - var drawOrder = this.skeleton.drawOrder; - var batcher = this.batcher; - batcher.begin(); - var z = 0; - var zOffset = this.zOffset; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var vertexSize = clipper.isClipping() ? 2 : SkeletonMesh.VERTEX_SIZE; - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var attachmentColor = null; - var texture = null; - var numFloats = 0; - if (attachment instanceof spine.RegionAttachment) { - var region = attachment; - attachmentColor = region.color; - vertices = this.vertices; - numFloats = vertexSize * 4; - region.computeWorldVertices(slot.bone, vertices, 0, vertexSize); - triangles = SkeletonMesh.QUAD_TRIANGLES; - uvs = region.uvs; - texture = region.region.renderObject.texture; - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - attachmentColor = mesh.color; - vertices = this.vertices; - numFloats = (mesh.worldVerticesLength >> 1) * vertexSize; - if (numFloats > vertices.length) { - vertices = this.vertices = spine.Utils.newFloatArray(numFloats); - } - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, vertexSize); - triangles = mesh.triangles; - uvs = mesh.uvs; - texture = mesh.region.renderObject.texture; - } - else if (attachment instanceof spine.ClippingAttachment) { - var clip = (attachment); - clipper.clipStart(slot, clip); - continue; - } - else - continue; - if (texture != null) { - if (!this.material.map) { - var mat = this.material; - mat.map = texture.texture; - mat.needsUpdate = true; - } - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var alpha = skeletonColor.a * slotColor.a * attachmentColor.a; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * attachmentColor.r, skeletonColor.g * slotColor.g * attachmentColor.g, skeletonColor.b * slotColor.b * attachmentColor.b, alpha); - if (clipper.isClipping()) { - clipper.clipTriangles(vertices, numFloats, triangles, triangles.length, uvs, color, null, false); - var clippedVertices = clipper.clippedVertices; - var clippedTriangles = clipper.clippedTriangles; - batcher.batch(clippedVertices, clippedVertices.length, clippedTriangles, clippedTriangles.length, z); - } - else { - var verts = vertices; - for (var v = 2, u = 0, n_5 = numFloats; v < n_5; v += vertexSize, u += 2) { - verts[v] = color.r; - verts[v + 1] = color.g; - verts[v + 2] = color.b; - verts[v + 3] = color.a; - verts[v + 4] = uvs[u]; - verts[v + 5] = uvs[u + 1]; - } - batcher.batch(vertices, numFloats, triangles, triangles.length, z); - } - z += zOffset; - } - } - batcher.end(); - }; - return SkeletonMesh; - }(THREE.Mesh)); - SkeletonMesh.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - SkeletonMesh.VERTEX_SIZE = 2 + 2 + 4; - threejs.SkeletonMesh = SkeletonMesh; - })(threejs = spine.threejs || (spine.threejs = {})); -})(spine || (spine = {})); -var spine; -(function (spine) { - var threejs; - (function (threejs) { - var ThreeJsTexture = (function (_super) { - __extends(ThreeJsTexture, _super); - function ThreeJsTexture(image) { - var _this = _super.call(this, image) || this; - _this.texture = new THREE.Texture(image); - _this.texture.flipY = false; - _this.texture.needsUpdate = true; - return _this; - } - ThreeJsTexture.prototype.setFilters = function (minFilter, magFilter) { - this.texture.minFilter = ThreeJsTexture.toThreeJsTextureFilter(minFilter); - this.texture.magFilter = ThreeJsTexture.toThreeJsTextureFilter(magFilter); - }; - ThreeJsTexture.prototype.setWraps = function (uWrap, vWrap) { - this.texture.wrapS = ThreeJsTexture.toThreeJsTextureWrap(uWrap); - this.texture.wrapT = ThreeJsTexture.toThreeJsTextureWrap(vWrap); - }; - ThreeJsTexture.prototype.dispose = function () { - this.texture.dispose(); - }; - ThreeJsTexture.toThreeJsTextureFilter = function (filter) { - if (filter === spine.TextureFilter.Linear) - return THREE.LinearFilter; - else if (filter === spine.TextureFilter.MipMap) - return THREE.LinearMipMapLinearFilter; - else if (filter === spine.TextureFilter.MipMapLinearNearest) - return THREE.LinearMipMapNearestFilter; - else if (filter === spine.TextureFilter.MipMapNearestLinear) - return THREE.NearestMipMapLinearFilter; - else if (filter === spine.TextureFilter.MipMapNearestNearest) - return THREE.NearestMipMapNearestFilter; - else if (filter === spine.TextureFilter.Nearest) - return THREE.NearestFilter; - else - throw new Error("Unknown texture filter: " + filter); - }; - ThreeJsTexture.toThreeJsTextureWrap = function (wrap) { - if (wrap === spine.TextureWrap.ClampToEdge) - return THREE.ClampToEdgeWrapping; - else if (wrap === spine.TextureWrap.MirroredRepeat) - return THREE.MirroredRepeatWrapping; - else if (wrap === spine.TextureWrap.Repeat) - return THREE.RepeatWrapping; - else - throw new Error("Unknown texture wrap: " + wrap); - }; - return ThreeJsTexture; - }(spine.Texture)); - threejs.ThreeJsTexture = ThreeJsTexture; - })(threejs = spine.threejs || (spine.threejs = {})); -})(spine || (spine = {})); -var spine; (function (spine) { var SpineWidget = (function () { function SpineWidget(element, config) { @@ -9454,9 +9436,9 @@ var spine; window.attachEvent("onload", SpineWidget.ready); } }; + SpineWidget.pageLoaded = false; return SpineWidget; }()); - SpineWidget.pageLoaded = false; spine.SpineWidget = SpineWidget; var SpineWidgetConfig = (function () { function SpineWidgetConfig() { diff --git a/spine-ts/build/spine-all.js.map b/spine-ts/build/spine-all.js.map index 54d2e18ab..18643aaeb 100644 --- a/spine-ts/build/spine-all.js.map +++ b/spine-ts/build/spine-all.js.map @@ -1 +1 @@ -{"version":3,"file":"spine-all.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../canvas/src/AssetManager.ts","../canvas/src/CanvasTexture.ts","../canvas/src/SkeletonRenderer.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts","../threejs/src/AssetManager.ts","../threejs/src/MeshBatcher.ts","../threejs/src/SkeletonMesh.ts","../threejs/src/ThreeJsTexture.ts","../widget/src/Widget.ts"],"names":[],"mappings":"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,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC/G,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAChH,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC3G,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC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AA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,wBAAM,GAAN,UAAQ,QAAiB,EAAE,SAAkB,EAAE,EAAW;gBACzD,OAAO,CAAC,SAAS,EAAE,CAAC;gBACpB,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBACxE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC;gBACrC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC;gBACrC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC5B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;gBACtB,GAAG,CAAC,MAAA,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,GAAG,CAAC,MAAA,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,GAAG,CAAC,MAAA,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,GAAG,CAAC,MAAA,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,GAAG,CAAC,MAAA,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,GAAG,CAAC,MAAA,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,GAAG,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpB,GAAG,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpB,GAAG,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBAEpB,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;gBAC7B,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC5C,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC5C,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;gBAEhC,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAEM,iBAAS,GAAhB;gBACC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,OAAO,CAAC,KAAK,GAAG,IAAI,MAAA,OAAO,EAAE,CAAC;gBAC1D,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,OAAO,CAAC,KAAK,GAAG,IAAI,MAAA,OAAO,EAAE,CAAC;gBAC1D,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,OAAO,CAAC,KAAK,GAAG,IAAI,MAAA,OAAO,EAAE,CAAC;YAC3D,CAAC;YACF,cAAC;QAAD,CAAC,AAnSD;QAIgB,aAAK,GAAY,IAAI,CAAC;QACtB,aAAK,GAAY,IAAI,CAAC;QACtB,aAAK,GAAY,IAAI,CAAC;QACtB,iBAAS,GAAG,IAAI,OAAO,EAAE,CAAC;QAP7B,aAAO,UAmSnB,CAAA;IACF,CAAC,EAtTY,KAAK,GAAL,WAAK,KAAL,WAAK,QAsTjB;AAAD,CAAC,EAtTM,KAAK,KAAL,KAAK,QAsTX;ACtTD,IAAO,KAAK,CAkLX;AAlLD,WAAO,KAAK;IAAC,IAAA,KAAK,CAkLjB;IAlLY,WAAA,KAAK;QACjB;YAuCC,cAAa,OAA6D,EAAU,UAA6B,EAAE,WAAmB,EAAE,UAAkB;gBAAtE,eAAU,GAAV,UAAU,CAAmB;gBAnCzG,mBAAc,GAAG,CAAC,CAAC;gBACnB,kBAAa,GAAG,KAAK,CAAC;gBAGtB,kBAAa,GAAG,CAAC,CAAC;gBAClB,iBAAY,GAAG,KAAK,CAAC;gBACrB,sBAAiB,GAAG,CAAC,CAAC;gBA8B7B,IAAI,CAAC,OAAO,GAAG,OAAO,YAAY,MAAA,4BAA4B,GAAE,OAAO,GAAG,IAAI,MAAA,4BAA4B,CAAC,OAAO,CAAC,CAAC;gBACpH,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,IAAI,CAAC,iBAAiB,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;gBACrD,CAAC;gBACD,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACvE,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;gBAC3C,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YApCD,4BAAa,GAAb,cAAsC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAE/D,0BAAW,GAAX,cAAyB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAChF,0BAAW,GAAX,cAAyB,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC/E,gCAAiB,GAAjB,UAAmB,MAAc;gBAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC9B,CAAC;YACD,0BAAW,GAAX,cAA+B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEtD,yBAAU,GAAV,cAAwB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACrD,yBAAU,GAAV,cAAwB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACpD,+BAAgB,GAAhB,UAAkB,MAAc;gBAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;YAC7B,CAAC;YACD,yBAAU,GAAV,cAA6B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAA,CAAC,CAAC;YAAA,CAAC;YAEnD,oCAAqB,GAArB;gBACC,IAAI,IAAI,GAAG,CAAC,CAAC;gBACb,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjD,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACnC,IAAI,IAAI,SAAS,CAAC,WAAW,CAAC;gBAC/B,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAaD,0BAAW,GAAX,UAAa,QAAuB;gBACnC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAAC,MAAM,KAAK,CAAC,6BAA6B,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,CAAC,CAAC;gBAC1H,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;YACvC,CAAC;YAED,yBAAU,GAAV,UAAY,OAAsB;gBACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;oBAAC,MAAM,KAAK,CAAC,6BAA6B,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC;gBACtH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;YACrC,CAAC;YAED,mBAAI,GAAJ,UAAM,MAAc,EAAE,aAAqB;gBAC1C,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,aAAa,GAAG,CAAC,GAAE,IAAI,CAAC,aAAa,GAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACzI,CAAC;YAED,6BAAc,GAAd,UAAgB,MAAc,EAAE,aAAqB,EAAE,MAAc,EAAE,KAAa;gBACnF,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,CAAC;oBAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC3D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClB,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC5B,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;gBACtE,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC7C,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrB,CAAC;YAED,mBAAI,GAAJ,UAAM,MAAc;gBACnB,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gBACpD,IAAI,MAAM,GAAG,CAAC,CAAC;gBACf,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjD,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBAChC,IAAI,UAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACxD,EAAE,CAAC,uBAAuB,CAAC,UAAQ,CAAC,CAAC;oBACrC,EAAE,CAAC,mBAAmB,CAAC,UAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC9G,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC;gBAC9B,CAAC;gBACD,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACxF,CAAC;YAED,qBAAM,GAAN,UAAQ,MAAc;gBACrB,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjD,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBAChC,IAAI,UAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACxD,EAAE,CAAC,wBAAwB,CAAC,UAAQ,CAAC,CAAC;gBACvC,CAAC;gBACD,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;gBACrC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;YAC1E,CAAC;YAEO,qBAAM,GAAd;gBACC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;oBACxB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;wBAC1B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC;oBACzC,CAAC;oBACD,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;oBACpD,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;oBAChG,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC5B,CAAC;gBAED,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;wBACzB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC;oBACxC,CAAC;oBACD,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC3D,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;oBACtG,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC3B,CAAC;YACF,CAAC;YAED,sBAAO,GAAP;gBACC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,CAAC;YAED,sBAAO,GAAP;gBACC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACrC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACrC,CAAC;YACF,WAAC;QAAD,CAAC,AA1ID,IA0IC;QA1IY,UAAI,OA0IhB,CAAA;QAED;YACC,yBAAoB,IAAY,EAAS,IAAyB,EAAS,WAAmB;gBAA1E,SAAI,GAAJ,IAAI,CAAQ;gBAAS,SAAI,GAAJ,IAAI,CAAqB;gBAAS,gBAAW,GAAX,WAAW,CAAQ;YAAI,CAAC;YACpG,sBAAC;QAAD,CAAC,AAFD,IAEC;QAFY,qBAAe,kBAE3B,CAAA;QAED;YAAwC,sCAAe;YACtD;uBACC,kBAAM,MAAA,MAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC;YACrD,CAAC;YACF,yBAAC;QAAD,CAAC,AAJD,CAAwC,eAAe,GAItD;QAJY,wBAAkB,qBAI9B,CAAA;QAED;YAAwC,sCAAe;YACtD;uBACC,kBAAM,MAAA,MAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC;YACrD,CAAC;YACF,yBAAC;QAAD,CAAC,AAJD,CAAwC,eAAe,GAItD;QAJY,wBAAkB,qBAI9B,CAAA;QAED;YAAuC,qCAAe;YACrD,2BAAa,IAAgB;gBAAhB,qBAAA,EAAA,QAAgB;uBAC5B,kBAAM,MAAA,MAAM,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,GAAE,EAAE,GAAE,IAAI,CAAC,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9E,CAAC;YACF,wBAAC;QAAD,CAAC,AAJD,CAAuC,eAAe,GAIrD;QAJY,uBAAiB,oBAI7B,CAAA;QAED;YAAoC,kCAAe;YAClD;uBACC,kBAAM,MAAA,MAAM,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC;YAClD,CAAC;YACF,qBAAC;QAAD,CAAC,AAJD,CAAoC,eAAe,GAIlD;QAJY,oBAAc,iBAI1B,CAAA;QAED;YAAqC,mCAAe;YACnD;uBACC,kBAAM,MAAA,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC;YACnD,CAAC;YACF,sBAAC;QAAD,CAAC,AAJD,CAAqC,eAAe,GAInD;QAJY,qBAAe,kBAI3B,CAAA;QAED,IAAY,mBAEX;QAFD,WAAY,mBAAmB;YAC9B,+DAAK,CAAA;QACN,CAAC,EAFW,mBAAmB,GAAnB,yBAAmB,KAAnB,yBAAmB,QAE9B;IACF,CAAC,EAlLY,KAAK,GAAL,WAAK,KAAL,WAAK,QAkLjB;AAAD,CAAC,EAlLM,KAAK,KAAL,KAAK,QAkLX;AClLD,IAAO,KAAK,CAkGX;AAlGD,WAAO,KAAK;IAAC,IAAA,KAAK,CAkGjB;IAlGY,WAAA,KAAK;QACjB;YAYC,wBAAa,OAA6D,EAAE,YAA4B,EAAE,WAA2B;gBAAzD,6BAAA,EAAA,mBAA4B;gBAAE,4BAAA,EAAA,mBAA2B;gBAT7H,cAAS,GAAG,KAAK,CAAC;gBAElB,WAAM,GAAW,IAAI,CAAC;gBACtB,gBAAW,GAAc,IAAI,CAAC;gBAC9B,mBAAc,GAAG,CAAC,CAAC;gBACnB,kBAAa,GAAG,CAAC,CAAC;gBAKzB,EAAE,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,WAAW,CAAC,CAAC;gBAC3G,IAAI,CAAC,OAAO,GAAG,OAAO,YAAY,MAAA,4BAA4B,GAAE,OAAO,GAAG,IAAI,MAAA,4BAA4B,CAAC,OAAO,CAAC,CAAC;gBACpH,IAAI,UAAU,GAAG,YAAY;oBAC3B,CAAC,IAAI,MAAA,kBAAkB,EAAE,EAAE,IAAI,MAAA,cAAc,EAAE,EAAE,IAAI,MAAA,iBAAiB,EAAE,EAAE,IAAI,MAAA,eAAe,EAAE,CAAC;oBAChG,CAAC,IAAI,MAAA,kBAAkB,EAAE,EAAE,IAAI,MAAA,cAAc,EAAE,EAAE,IAAI,MAAA,iBAAiB,EAAE,CAAC,CAAC;gBAC5E,IAAI,CAAC,IAAI,GAAG,IAAI,MAAA,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;gBACxE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC;gBAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,mBAAmB,CAAC;YACrD,CAAC;YAED,8BAAK,GAAL,UAAO,MAAc;gBACpB,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAC;gBACpI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;gBACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBAEtB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBACpB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;YAED,qCAAY,GAAZ,UAAc,QAAgB,EAAE,QAAgB;gBAC/C,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5C,CAAC;YACF,CAAC;YAED,6BAAI,GAAJ,UAAM,OAAkB,EAAE,QAA2B,EAAE,OAAsB;gBAC5E,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;oBACjC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;gBAC5B,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM;oBAC/E,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;oBACvE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACd,CAAC;gBAED,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACzC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC3D,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC;gBACvC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;gBAEhD,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC1C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;oBACnE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;gBAC3C,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAChD,CAAC;YAEO,8BAAK,GAAb;gBACC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;oBAAC,MAAM,CAAC;gBAErC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;gBAE1C,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,CAAC;YAED,4BAAG,GAAH;gBACC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAC;gBACjI,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;oBAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBAEvB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YAED,qCAAY,GAAZ,cAAkB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAE1C,gCAAO,GAAP;gBACC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC;YACF,qBAAC;QAAD,CAAC,AAhGD,IAgGC;QAhGY,oBAAc,iBAgG1B,CAAA;IACF,CAAC,EAlGY,KAAK,GAAL,WAAK,KAAL,WAAK,QAkGjB;AAAD,CAAC,EAlGM,KAAK,KAAL,KAAK,QAkGX;AClGD,IAAO,KAAK,CAgaX;AAhaD,WAAO,KAAK;IAAC,IAAA,KAAK,CAgajB;IAhaY,WAAA,KAAK;QACjB;YAqBC,uBAAa,MAAyB,EAAE,OAA6D,EAAE,YAA4B;gBAA5B,6BAAA,EAAA,mBAA4B;gBAhB3H,iBAAY,GAAG,KAAK,CAAC;gBAIrB,mBAAc,GAA2D,IAAI,CAAC;gBAG9E,SAAI,GAAG;oBACd,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;oBACtB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;oBACtB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;oBACtB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;iBACtB,CAAC;gBACM,mBAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpC,UAAK,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAGrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;gBACrB,IAAI,CAAC,OAAO,GAAG,OAAO,YAAY,MAAA,4BAA4B,GAAE,OAAO,GAAG,IAAI,MAAA,4BAA4B,CAAC,OAAO,CAAC,CAAC;gBACpH,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;gBACjC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAA,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC3D,IAAI,CAAC,aAAa,GAAG,YAAY,GAAG,MAAA,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,MAAA,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzH,IAAI,CAAC,OAAO,GAAG,IAAI,MAAA,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBAC9D,IAAI,CAAC,YAAY,GAAG,MAAA,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpD,IAAI,CAAC,MAAM,GAAG,IAAI,MAAA,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,CAAC,gBAAgB,GAAG,IAAI,MAAA,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACzE,IAAI,CAAC,qBAAqB,GAAG,IAAI,MAAA,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtE,CAAC;YAED,6BAAK,GAAL;gBACC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;YAED,oCAAY,GAAZ,UAAc,QAAkB,EAAE,kBAA0B;gBAA1B,mCAAA,EAAA,0BAA0B;gBAC3D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClC,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;gBAC9D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACpD,CAAC;YAED,yCAAiB,GAAjB,UAAkB,QAAkB,EAAE,kBAA0B,EAAE,YAAkC;gBAA9D,mCAAA,EAAA,0BAA0B;gBAAE,6BAAA,EAAA,mBAAkC;gBACnG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;gBACnE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;YACtE,CAAC;YAED,mCAAW,GAAX,UAAa,OAAkB,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,KAAmB;gBAAnB,sBAAA,EAAA,YAAmB;gBACxG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACvD,CAAC;YAED,0CAAkB,GAAlB,UAAoB,OAAkB,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,MAAc,EAAE,MAAc,EAAE,KAAa,EAAE,KAAmB,EAAE,kBAAmC;gBAAxD,sBAAA,EAAA,YAAmB;gBAAE,mCAAA,EAAA,0BAAmC;gBACnM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBAGrB,IAAI,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC;gBAC9B,IAAI,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC;gBAC9B,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;gBACjB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;gBACjB,IAAI,GAAG,GAAG,KAAK,GAAG,MAAM,CAAC;gBACzB,IAAI,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC;gBAG1B,IAAI,GAAG,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,GAAG,GAAG,CAAC;gBACd,IAAI,GAAG,GAAG,GAAG,CAAC;gBACd,IAAI,GAAG,GAAG,GAAG,CAAC;gBACd,IAAI,GAAG,GAAG,GAAG,CAAC;gBACd,IAAI,GAAG,GAAG,EAAE,CAAC;gBAEb,IAAI,EAAE,GAAG,CAAC,CAAC;gBACX,IAAI,EAAE,GAAG,CAAC,CAAC;gBACX,IAAI,EAAE,GAAG,CAAC,CAAC;gBACX,IAAI,EAAE,GAAG,CAAC,CAAC;gBACX,IAAI,EAAE,GAAG,CAAC,CAAC;gBACX,IAAI,EAAE,GAAG,CAAC,CAAC;gBACX,IAAI,EAAE,GAAG,CAAC,CAAC;gBACX,IAAI,EAAE,GAAG,CAAC,CAAC;gBAGX,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,IAAI,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAClC,IAAI,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAElC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;oBAC3B,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;oBAE3B,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;oBAC3B,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;oBAE3B,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;oBAC3B,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;oBAE3B,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;oBACpB,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;gBACrB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,EAAE,GAAG,GAAG,CAAC;oBACT,EAAE,GAAG,GAAG,CAAC;oBAET,EAAE,GAAG,GAAG,CAAC;oBACT,EAAE,GAAG,GAAG,CAAC;oBAET,EAAE,GAAG,GAAG,CAAC;oBACT,EAAE,GAAG,GAAG,CAAC;oBAET,EAAE,GAAG,GAAG,CAAC;oBACT,EAAE,GAAG,GAAG,CAAC;gBACV,CAAC;gBAED,EAAE,IAAI,YAAY,CAAC;gBACnB,EAAE,IAAI,YAAY,CAAC;gBACnB,EAAE,IAAI,YAAY,CAAC;gBACnB,EAAE,IAAI,YAAY,CAAC;gBACnB,EAAE,IAAI,YAAY,CAAC;gBACnB,EAAE,IAAI,YAAY,CAAC;gBACnB,EAAE,IAAI,YAAY,CAAC;gBACnB,EAAE,IAAI,YAAY,CAAC;gBAEnB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACvD,CAAC;YAED,kCAAU,GAAV,UAAY,MAA0B,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,KAAmB,EAAE,kBAAmC;gBAAxD,sBAAA,EAAA,YAAmB;gBAAE,mCAAA,EAAA,0BAAmC;gBACpJ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACtB,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACtB,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACrB,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACrB,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAY,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACzE,CAAC;YAED,4BAAI,GAAJ,UAAM,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,KAAmB,EAAE,MAAoB;gBAAzC,sBAAA,EAAA,YAAmB;gBAAE,uBAAA,EAAA,aAAoB;gBAC5F,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YACvC,CAAC;YAED,gCAAQ,GAAR,UAAU,MAAe,EAAE,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,KAAmB,EAAE,MAAoB,EAAE,MAAoB;gBAA/D,sBAAA,EAAA,YAAmB;gBAAE,uBAAA,EAAA,aAAoB;gBAAE,uBAAA,EAAA,aAAoB;gBAC/J,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3E,CAAC;YAED,4BAAI,GAAJ,UAAM,MAAe,EAAE,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,KAAmB,EAAE,MAAoB,EAAE,MAAoB,EAAE,MAAoB;gBAArF,sBAAA,EAAA,YAAmB;gBAAE,uBAAA,EAAA,aAAoB;gBAAE,uBAAA,EAAA,aAAoB;gBAAE,uBAAA,EAAA,aAAoB;gBACzM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACvF,CAAC;YAED,4BAAI,GAAJ,UAAM,MAAe,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,KAAmB;gBAAnB,sBAAA,EAAA,YAAmB;gBAC9F,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;YAED,gCAAQ,GAAR,UAAU,MAAe,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,KAAa,EAAE,KAAmB;gBAAnB,sBAAA,EAAA,YAAmB;gBAC5G,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAED,+BAAO,GAAP,UAAS,eAAkC,EAAE,MAAc,EAAE,KAAa,EAAE,KAAmB;gBAAnB,sBAAA,EAAA,YAAmB;gBAC9F,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAED,8BAAM,GAAN,UAAQ,MAAe,EAAE,CAAS,EAAE,CAAS,EAAE,MAAc,EAAE,KAAmB,EAAE,QAAoB;gBAAzC,sBAAA,EAAA,YAAmB;gBAAE,yBAAA,EAAA,YAAoB;gBACvG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC3D,CAAC;YAED,6BAAK,GAAL,UAAO,EAAU,EAAE,EAAU,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,EAAU,EAAE,EAAU,EAAE,QAAgB,EAAE,KAAmB;gBAAnB,sBAAA,EAAA,YAAmB;gBAC/I,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YACxE,CAAC;YAED,2BAAG,GAAH;gBACC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,OAAO,CAAC;oBAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBAC7D,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,MAAM,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gBAChE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC5B,CAAC;YAED,8BAAM,GAAN,UAAQ,UAAsB;gBAC7B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBACzB,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;gBAC3B,IAAI,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC;gBAC5B,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC7C,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;oBACjB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACnB,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE5D,EAAE,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;gBAExC,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC7C,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/B,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC1C,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;oBAC7D,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;oBACvF,IAAI,WAAW,GAAG,YAAY,GAAG,WAAW,CAAC;oBAC7C,IAAI,WAAW,GAAG,YAAY,GAAG,WAAW,CAAC;oBAC7C,IAAI,KAAK,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;oBAChG,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,WAAW,GAAG,KAAK,CAAC;oBAChD,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,YAAY,GAAG,KAAK,CAAC;gBACnD,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,CAAC;YAEO,sCAAc,GAAtB,UAAuB,QAAgE;gBACtF,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,KAAK,QAAQ,CAAC;oBAAC,MAAM,CAAC;gBAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;gBACX,EAAE,CAAC,CAAC,QAAQ,YAAY,MAAA,cAAc,CAAC,CAAC,CAAC;oBACxC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;oBAC1B,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAA,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBACxF,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;oBAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBACvC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC;gBACpC,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,YAAY,MAAA,aAAa,CAAC,CAAC,CAAC;oBAC9C,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;oBACzB,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAA,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBACvF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;gBACnC,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC;gBAClD,CAAC;YACF,CAAC;YAED,+BAAO,GAAP;gBACC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC;YACtC,CAAC;YACF,oBAAC;QAAD,CAAC,AAxZD,IAwZC;QAxZY,mBAAa,gBAwZzB,CAAA;QAED,IAAY,UAIX;QAJD,WAAY,UAAU;YACrB,iDAAO,CAAA;YACP,+CAAM,CAAA;YACN,yCAAG,CAAA;QACJ,CAAC,EAJW,UAAU,GAAV,gBAAU,KAAV,gBAAU,QAIrB;IACF,CAAC,EAhaY,KAAK,GAAL,WAAK,KAAL,WAAK,QAgajB;AAAD,CAAC,EAhaM,KAAK,KAAL,KAAK,QAgaX;AChaD,IAAO,KAAK,CAkQX;AAlQD,WAAO,KAAK;IAAC,IAAA,KAAK,CAkQjB;IAlQY,WAAA,KAAK;QACjB;YAoBC,gBAAa,OAA6D,EAAU,YAAoB,EAAU,cAAsB;gBAApD,iBAAY,GAAZ,YAAY,CAAQ;gBAAU,mBAAc,GAAd,cAAc,CAAQ;gBAXhI,OAAE,GAAgB,IAAI,CAAC;gBACvB,OAAE,GAAgB,IAAI,CAAC;gBACvB,YAAO,GAAiB,IAAI,CAAC;gBAC7B,WAAM,GAAiB,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/C,WAAM,GAAiB,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/C,WAAM,GAAiB,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAOtD,IAAI,CAAC,OAAO,GAAG,OAAO,YAAY,MAAA,4BAA4B,GAAE,OAAO,GAAG,IAAI,MAAA,4BAA4B,CAAC,OAAO,CAAC,CAAC;gBACpH,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC;YARM,2BAAU,GAAjB,cAAuB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACtC,gCAAe,GAAtB,cAA4B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YAChD,kCAAiB,GAAxB,cAA8B,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YAQnD,wBAAO,GAAf;gBACC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACJ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBAClE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;oBACtE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtD,CAAC;gBAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACZ,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,MAAM,CAAC,CAAC;gBACT,CAAC;YACF,CAAC;YAEO,8BAAa,GAArB,UAAuB,IAAY,EAAE,MAAc;gBAClD,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACnC,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAChC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACvD,IAAI,KAAK,GAAG,2BAA2B,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;oBACtE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;oBACxB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;gBACjD,CAAC;gBACD,MAAM,CAAC,MAAM,CAAC;YACf,CAAC;YAEO,+BAAc,GAAtB,UAAwB,EAAe,EAAE,EAAe;gBACvD,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,OAAO,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC;gBACjC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC7B,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC7B,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAExB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBACtD,IAAI,KAAK,GAAG,mCAAmC,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;oBAChF,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBAC1B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;gBACjD,CAAC;gBACD,MAAM,CAAC,OAAO,CAAC;YAChB,CAAC;YAED,wBAAO,GAAP;gBACC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC;YAEM,qBAAI,GAAX;gBACC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;YAEM,uBAAM,GAAb;gBACC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YAEM,4BAAW,GAAlB,UAAoB,OAAe,EAAE,KAAa;gBACjD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;YACpE,CAAC;YAEM,4BAAW,GAAlB,UAAoB,OAAe,EAAE,KAAa;gBACjD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;YACpE,CAAC;YAEM,6BAAY,GAAnB,UAAqB,OAAe,EAAE,KAAa,EAAE,MAAc;gBAClE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC5E,CAAC;YAEM,6BAAY,GAAnB,UAAqB,OAAe,EAAE,KAAa,EAAE,MAAc,EAAE,MAAc;gBAClF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACpF,CAAC;YAEM,6BAAY,GAAnB,UAAqB,OAAe,EAAE,KAAa,EAAE,MAAc,EAAE,MAAc,EAAE,MAAc;gBAClG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC5F,CAAC;YAEM,+BAAc,GAArB,UAAuB,OAAe,EAAE,KAAwB;gBAC/D,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACvB,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3E,CAAC;YAEM,+BAAc,GAArB,UAAuB,OAAe,EAAE,KAAwB;gBAC/D,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACvB,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3E,CAAC;YAEM,+BAAc,GAArB,UAAuB,OAAe,EAAE,KAAwB;gBAC/D,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACvB,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3E,CAAC;YAEM,mCAAkB,GAAzB,UAA2B,OAAe;gBACzC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,QAAQ,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC5D,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,wCAAsC,OAAS,CAAC,CAAC;gBACvG,MAAM,CAAC,QAAQ,CAAC;YACjB,CAAC;YAEM,qCAAoB,GAA3B,UAA6B,SAAiB;gBAC7C,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,QAAQ,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAC7D,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,0CAAwC,SAAW,CAAC,CAAC;gBAChH,MAAM,CAAC,QAAQ,CAAC;YACjB,CAAC;YAEM,wBAAO,GAAd;gBACC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAEpC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;oBACb,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACzB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;gBAChB,CAAC;gBAED,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;oBACb,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACzB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;gBAChB,CAAC;gBAED,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBAClB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACrB,CAAC;YACF,CAAC;YAEa,yBAAkB,GAAhC,UAAkC,OAA6D;gBAC9F,IAAI,EAAE,GAAG,8BACS,MAAM,CAAC,QAAQ,kCACf,MAAM,CAAC,KAAK,kCACZ,MAAM,CAAC,SAAS,gCAClB,MAAM,CAAC,UAAU,2HAKnB,MAAM,CAAC,KAAK,mCACR,MAAM,CAAC,SAAS,mCAChB,MAAM,CAAC,UAAU,WAAM,MAAM,CAAC,QAAQ,yBAEvD,CAAC;gBAEF,IAAI,EAAE,GAAG,iXAcR,CAAC;gBAEF,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC;YAEa,4BAAqB,GAAnC,UAAqC,OAA6D;gBACjG,IAAI,EAAE,GAAG,8BACS,MAAM,CAAC,QAAQ,kCACf,MAAM,CAAC,KAAK,kCACZ,MAAM,CAAC,MAAM,kCACb,MAAM,CAAC,SAAS,gCAClB,MAAM,CAAC,UAAU,yJAMnB,MAAM,CAAC,KAAK,8BACb,MAAM,CAAC,MAAM,mCACR,MAAM,CAAC,SAAS,mCAChB,MAAM,CAAC,UAAU,WAAM,MAAM,CAAC,QAAQ,yBAEvD,CAAC;gBAEF,IAAI,EAAE,GAAG,qkBAkBR,CAAC;gBAEF,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC;YAEa,iBAAU,GAAxB,UAA0B,OAA6D;gBACtF,IAAI,EAAE,GAAG,8BACS,MAAM,CAAC,QAAQ,kCACf,MAAM,CAAC,KAAK,gCACd,MAAM,CAAC,UAAU,wFAInB,MAAM,CAAC,KAAK,mCACR,MAAM,CAAC,UAAU,WAAM,MAAM,CAAC,QAAQ,yBAEvD,CAAC;gBAEF,IAAI,EAAE,GAAG,oQAYR,CAAC;gBAEF,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC;YACF,aAAC;QAAD,CAAC,AAhQD;QACe,iBAAU,GAAG,aAAa,CAAC;QAC3B,eAAQ,GAAG,YAAY,CAAC;QACxB,YAAK,GAAG,SAAS,CAAC;QAClB,aAAM,GAAG,UAAU,CAAC;QACpB,gBAAS,GAAG,aAAa,CAAC;QAC1B,cAAO,GAAG,WAAW,CAAC;QANxB,YAAM,SAgQlB,CAAA;IACF,CAAC,EAlQY,KAAK,GAAL,WAAK,KAAL,WAAK,QAkQjB;AAAD,CAAC,EAlQM,KAAK,KAAL,KAAK,QAkQX;AClQD,IAAO,KAAK,CA0TX;AA1TD,WAAO,KAAK;IAAC,IAAA,KAAK,CA0TjB;IA1TY,WAAA,KAAK;QACjB;YAYC,uBAAa,OAA6D,EAAE,WAA2B;gBAA3B,4BAAA,EAAA,mBAA2B;gBAV/F,cAAS,GAAG,KAAK,CAAC;gBAElB,cAAS,GAAG,SAAS,CAAC,MAAM,CAAC;gBAC7B,UAAK,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAE9B,gBAAW,GAAG,CAAC,CAAC;gBAChB,QAAG,GAAG,IAAI,MAAA,OAAO,EAAE,CAAC;gBAK3B,EAAE,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,WAAW,CAAC,CAAC;gBAC3G,IAAI,CAAC,OAAO,GAAG,OAAO,YAAY,MAAA,4BAA4B,GAAE,OAAO,GAAG,IAAI,MAAA,4BAA4B,CAAC,OAAO,CAAC,CAAC;gBACpH,IAAI,CAAC,IAAI,GAAG,IAAI,MAAA,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,MAAA,kBAAkB,EAAE,EAAE,IAAI,MAAA,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;gBAChG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC;gBAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,mBAAmB,CAAC;YACrD,CAAC;YAED,6BAAK,GAAL,UAAO,MAAc;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACrF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;gBACrB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;gBACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBAEtB,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBACpB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;YAED,oCAAY,GAAZ,UAAc,QAAgB,EAAE,QAAgB;gBAC/C,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5C,CAAC;YACF,CAAC;YAED,gCAAQ,GAAR,UAAU,KAAY;gBACrB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;YAED,oCAAY,GAAZ,UAAc,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;gBACvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,CAAC;YAED,6BAAK,GAAL,UAAO,CAAS,EAAE,CAAS,EAAE,KAAmB;gBAAnB,sBAAA,EAAA,YAAmB;gBAC/C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/B,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAC1B,CAAC;YAED,4BAAI,GAAJ,UAAM,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,KAAmB;gBAAnB,sBAAA,EAAA,YAAmB;gBACtE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC9B,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvC,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC3B,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;YAED,gCAAQ,GAAR,UAAU,MAAe,EAAE,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,KAAmB,EAAE,MAAoB,EAAE,MAAoB;gBAA/D,sBAAA,EAAA,YAAmB;gBAAE,uBAAA,EAAA,aAAoB;gBAAE,uBAAA,EAAA,aAAoB;gBAC/J,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC1D,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvC,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC3B,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC;oBAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzC,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC;oBAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACZ,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBACzB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAC5B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;gBAC7B,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBACzB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAE5B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC3B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAE5B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC3B,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC3B,CAAC;YACF,CAAC;YAED,4BAAI,GAAJ,UAAM,MAAe,EAAE,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,KAAmB,EAAE,MAAoB,EAAE,MAAoB,EAAE,MAAoB;gBAArF,sBAAA,EAAA,YAAmB;gBAAE,uBAAA,EAAA,aAAoB;gBAAE,uBAAA,EAAA,aAAoB;gBAAE,uBAAA,EAAA,aAAoB;gBACzM,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC1D,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvC,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC3B,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC;oBAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzC,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC;oBAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzC,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC;oBAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACZ,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBACnF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBACpF,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBACtD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBACzD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBACzD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBACvD,CAAC;YACF,CAAC;YAED,4BAAI,GAAJ,UAAM,MAAe,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,KAAmB;gBAAnB,sBAAA,EAAA,YAAmB;gBAC9F,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACzG,CAAC;YAED,gCAAQ,GAAR,UAAU,MAAe,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,KAAa,EAAE,KAAmB;gBAAnB,sBAAA,EAAA,YAAmB;gBAC5G,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC1D,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBACvC,CAAC,CAAC,SAAS,EAAE,CAAC;gBACd,KAAK,IAAI,GAAG,CAAC;gBACb,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBACrB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBACrB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBAErC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBAErC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;gBACtC,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBAErC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;gBACtC,CAAC;YACF,CAAC;YAED,yBAAC,GAAD,UAAG,CAAS,EAAE,CAAS,EAAE,IAAY;gBACpC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;gBAClD,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YACnD,CAAC;YAED,+BAAO,GAAP,UAAS,eAAkC,EAAE,MAAc,EAAE,KAAa,EAAE,KAAmB;gBAAnB,sBAAA,EAAA,YAAmB;gBAC9F,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBAC3E,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACtC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvC,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;gBAE3B,MAAM,KAAK,CAAC,CAAC;gBACb,KAAK,KAAK,CAAC,CAAC;gBAEZ,IAAI,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;gBACrC,IAAI,MAAM,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACzC,IAAI,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC;gBAE1B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5D,IAAI,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;oBAC5B,IAAI,EAAE,GAAG,eAAe,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;oBAE9B,IAAI,EAAE,GAAG,CAAC,CAAC;oBACX,IAAI,EAAE,GAAG,CAAC,CAAC;oBAEX,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;wBACnB,EAAE,GAAG,MAAM,CAAC;wBACZ,EAAE,GAAG,MAAM,CAAC;oBACb,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,EAAE,GAAG,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC5B,EAAE,GAAG,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC7B,CAAC;oBAED,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC3B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC5B,CAAC;YACF,CAAC;YAED,8BAAM,GAAN,UAAQ,MAAe,EAAE,CAAS,EAAE,CAAS,EAAE,MAAc,EAAE,KAAmB,EAAE,QAAoB;gBAAzC,sBAAA,EAAA,YAAmB;gBAAE,yBAAA,EAAA,YAAoB;gBACvG,EAAE,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC;oBAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7E,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBAC5D,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,KAAK,GAAG,CAAC,GAAG,MAAA,SAAS,CAAC,EAAE,GAAG,QAAQ,CAAC;gBACxC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;gBACxB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACb,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC7C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;wBACnC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;wBACnC,IAAI,MAAI,GAAG,EAAE,CAAC;wBACd,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;wBACzB,EAAE,GAAG,GAAG,GAAG,MAAI,GAAG,GAAG,GAAG,EAAE,CAAC;wBAC3B,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACpC,CAAC;oBAED,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;gBACpC,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC/C,QAAQ,EAAE,CAAC;oBACX,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;wBACnC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;wBACzB,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;wBACnC,IAAI,MAAI,GAAG,EAAE,CAAC;wBACd,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;wBACzB,EAAE,GAAG,GAAG,GAAG,MAAI,GAAG,GAAG,GAAG,EAAE,CAAC;wBAC3B,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACpC,CAAC;oBAED,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBACzB,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;gBACpC,CAAC;gBAED,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,EAAE,GAAG,MAAM,CAAC;gBACZ,EAAE,GAAG,CAAC,CAAC;gBACP,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;YACpC,CAAC;YAED,6BAAK,GAAL,UAAO,EAAU,EAAE,EAAU,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,EAAU,EAAE,EAAU,EAAE,QAAgB,EAAE,KAAmB;gBAAnB,sBAAA,EAAA,YAAmB;gBAC/I,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7C,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBAGvC,IAAI,WAAW,GAAG,CAAC,GAAG,QAAQ,CAAC;gBAC/B,IAAI,YAAY,GAAG,WAAW,GAAG,WAAW,CAAC;gBAC7C,IAAI,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;gBAE3D,IAAI,IAAI,GAAG,CAAC,GAAG,WAAW,CAAC;gBAC3B,IAAI,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC;gBAC5B,IAAI,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC;gBAC5B,IAAI,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC;gBAE5B,IAAI,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;gBAC/B,IAAI,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;gBAE/B,IAAI,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;gBACtC,IAAI,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;gBAEtC,IAAI,EAAE,GAAG,EAAE,CAAC;gBACZ,IAAI,EAAE,GAAG,EAAE,CAAC;gBAEZ,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,YAAY,CAAC;gBAClE,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,YAAY,CAAC;gBAElE,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;gBACvC,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;gBAEvC,IAAI,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;gBACzB,IAAI,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;gBAEzB,OAAO,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC3B,EAAE,IAAI,GAAG,CAAC;oBACV,EAAE,IAAI,GAAG,CAAC;oBACV,GAAG,IAAI,IAAI,CAAC;oBACZ,GAAG,IAAI,IAAI,CAAC;oBACZ,IAAI,IAAI,KAAK,CAAC;oBACd,IAAI,IAAI,KAAK,CAAC;oBACd,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC5B,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;YAEO,8BAAM,GAAd,UAAgB,CAAS,EAAE,CAAS,EAAE,KAAY;gBACjD,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC3B,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;gBACpB,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;gBACpB,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAC1B,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAC1B,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAC1B,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAC1B,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACxB,CAAC;YAED,2BAAG,GAAH;gBACC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAClF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC/C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACxB,CAAC;YAEO,6BAAK,GAAb;gBACC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;oBAAC,MAAM,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5C,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACtB,CAAC;YAEO,6BAAK,GAAb,UAAc,SAAoB,EAAE,WAAmB;gBACtD,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAClF,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC;oBACjC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,CAAC;wBAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAClF,IAAI;wBAAC,MAAM,CAAC;gBACb,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC5B,CAAC;YACF,CAAC;YAED,+BAAO,GAAP;gBACC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC;YACF,oBAAC;QAAD,CAAC,AAlTD,IAkTC;QAlTY,mBAAa,gBAkTzB,CAAA;QAED,IAAY,SAIX;QAJD,WAAY,SAAS;YACpB,2CAAc,CAAA;YACd,yCAAa,CAAA;YACb,6CAAe,CAAA;QAChB,CAAC,EAJW,SAAS,GAAT,eAAS,KAAT,eAAS,QAIpB;IACF,CAAC,EA1TY,KAAK,GAAL,WAAK,KAAL,WAAK,QA0TjB;AAAD,CAAC,EA1TM,KAAK,KAAL,KAAK,QA0TX;AC1TD,IAAO,KAAK,CAgMX;AAhMD,WAAO,KAAK;IAAC,IAAA,KAAK,CAgMjB;IAhMY,WAAA,KAAK;QACjB;YA2BC,+BAAa,OAA6D;gBA1B1E,kBAAa,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtC,oBAAe,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxC,wBAAmB,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC9C,sBAAiB,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC/C,cAAS,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,cAAS,GAAG,IAAI,MAAA,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpC,cAAS,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;gBACpC,cAAS,GAAG,IAAI,CAAC;gBACjB,0BAAqB,GAAG,IAAI,CAAC;gBAC7B,sBAAiB,GAAG,IAAI,CAAC;gBACzB,iBAAY,GAAG,IAAI,CAAC;gBACpB,sBAAiB,GAAG,IAAI,CAAC;gBACzB,cAAS,GAAG,IAAI,CAAC;gBACjB,mBAAc,GAAG,KAAK,CAAC;gBACvB,iBAAY,GAAG,IAAI,CAAC;gBACpB,uBAAkB,GAAG,KAAK,CAAC;gBAC3B,UAAK,GAAG,CAAC,CAAC;gBACV,cAAS,GAAG,CAAC,CAAC;gBAGN,WAAM,GAAG,IAAI,MAAA,cAAc,EAAE,CAAC;gBAC9B,SAAI,GAAG,IAAI,KAAK,EAAU,CAAC;gBAC3B,aAAQ,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;gBAKhD,IAAI,CAAC,OAAO,GAAG,OAAO,YAAY,MAAA,4BAA4B,GAAE,OAAO,GAAG,IAAI,MAAA,4BAA4B,CAAC,OAAO,CAAC,CAAC;YACrH,CAAC;YAED,oCAAI,GAAJ,UAAM,MAAqB,EAAE,QAAkB,EAAE,YAAkC;gBAAlC,6BAAA,EAAA,mBAAkC;gBAClF,IAAI,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC3B,IAAI,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC3B,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,OAAO,GAAG,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;gBAC9D,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;gBAErD,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAC3B,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBACpB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBACpC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACpB,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;4BAAC,QAAQ,CAAC;wBACxE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;4BAAC,QAAQ,CAAC;wBAClC,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;wBAC5D,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;wBAC5D,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC5G,CAAC;oBACD,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;wBAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzE,CAAC;gBAED,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;oBAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBAC1C,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;oBAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;wBACtC,EAAE,CAAC,CAAC,UAAU,YAAY,MAAA,gBAAgB,CAAC,CAAC,CAAC;4BAC5C,IAAI,gBAAgB,GAAqB,UAAU,CAAC;4BACpD,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;4BAC7B,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;4BACjE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BAChE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BAChE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BAChE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBACjE,CAAC;oBACF,CAAC;gBACF,CAAC;gBAED,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBACjD,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;oBAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;wBACtC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,YAAY,MAAA,cAAc,CAAC,CAAC;4BAAC,QAAQ,CAAC;wBACtD,IAAI,IAAI,GAAmB,UAAU,CAAC;wBACtC,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBAC7B,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC7E,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC/B,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;wBACjC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;4BAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;4BACxC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;gCAC1D,IAAI,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gCACnF,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,EACpD,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,EAC9B,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAC9B,CAAC;4BACH,CAAC;wBACF,CAAC;wBACD,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;4BACzC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;4BAC1C,UAAU,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;4BACnC,IAAI,KAAK,GAAG,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;4BACvE,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;gCACpD,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAC3C,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gCAChC,KAAK,GAAG,CAAC,CAAC;gCACV,KAAK,GAAG,CAAC,CAAC;4BACX,CAAC;wBACF,CAAC;oBACF,CAAC;gBACF,CAAC;gBAED,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBAC5B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;oBACzB,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC9B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAChC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;oBACpF,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;oBAC/B,IAAI,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC;oBACjC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBACjD,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC1B,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBAChC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC5C,CAAC;gBACF,CAAC;gBAED,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBACpB,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;oBAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;wBACtC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,YAAY,MAAA,cAAc,CAAC,CAAC;4BAAC,QAAQ,CAAC;wBACtD,IAAI,IAAI,GAAmB,UAAU,CAAC;wBACtC,IAAI,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC;wBAClC,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;wBAC7D,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACpD,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC3B,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;wBACjD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;4BACjB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;4BACvB,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAC7E,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BACnB,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BACnB,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;4BACrD,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;4BAClD,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;4BAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;wBAC/B,CAAC;wBACD,EAAE,IAAI,CAAC,CAAC;wBACR,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;4BACnC,IAAI,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BACnF,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BACnB,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BACnB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;4BACvB,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;4BACrD,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;4BAClD,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;4BAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;4BAC9B,EAAE,GAAG,EAAE,CAAC;4BACR,EAAE,GAAG,EAAE,CAAC;wBACT,CAAC;oBACF,CAAC;gBACF,CAAC;gBAED,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBACpB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBACtC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACpB,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;4BAAC,QAAQ,CAAC;wBACxE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBACvH,CAAC;gBACF,CAAC;gBAED,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;oBAC3B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;oBAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;wBACtC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,YAAY,MAAA,kBAAkB,CAAC,CAAC;4BAAC,QAAQ,CAAC;wBAC1D,IAAI,IAAI,GAAuB,UAAU,CAAC;wBAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC;wBAClC,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;wBAC7D,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACpD,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,KAAK,CAAC,MAAM,EAAE,GAAC,GAAG,GAAC,EAAE,GAAC,IAAE,CAAC,EAAE,CAAC;4BAC/C,IAAI,CAAC,GAAG,KAAK,CAAC,GAAC,CAAC,CAAC;4BACjB,IAAI,CAAC,GAAG,KAAK,CAAC,GAAC,GAAG,CAAC,CAAC,CAAC;4BACrB,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;4BACvC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;4BACvC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC3B,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YAED,uCAAO,GAAP;YACA,CAAC;YACF,4BAAC;QAAD,CAAC,AA9LD;QAwBgB,gCAAU,GAAG,IAAI,MAAA,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3D,2BAAK,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAzBjC,2BAAqB,wBA8LjC,CAAA;IACF,CAAC,EAhMY,KAAK,GAAL,WAAK,KAAL,WAAK,QAgMjB;AAAD,CAAC,EAhMM,KAAK,KAAL,KAAK,QAgMX;AChMD,IAAO,KAAK,CAqIX;AArID,WAAO,KAAK;IAAC,IAAA,KAAK,CAqIjB;IArIY,WAAA,KAAK;QACjB;YACC,oBAAmB,QAA2B,EAAS,WAAmB,EAAS,SAAiB;gBAAjF,aAAQ,GAAR,QAAQ,CAAmB;gBAAS,gBAAW,GAAX,WAAW,CAAQ;gBAAS,cAAS,GAAT,SAAS,CAAQ;YAAG,CAAC;YACzG,iBAAC;QAAD,CAAC,AAFD,IAEC;QAAA,CAAC;QAEF;YAYC,0BAAa,OAAqC,EAAE,YAA4B;gBAA5B,6BAAA,EAAA,mBAA4B;gBAThF,uBAAkB,GAAG,KAAK,CAAC;gBACnB,cAAS,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;gBACxB,eAAU,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;gBAEzB,eAAU,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACvB,iBAAY,GAAG,KAAK,CAAC;gBACrB,eAAU,GAAe,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpD,YAAO,GAAqB,IAAI,MAAA,gBAAgB,EAAE,CAAC;gBAG1D,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;gBACjC,EAAE,CAAC,CAAC,YAAY,CAAC;oBAChB,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;gBACtB,IAAI,CAAC,QAAQ,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;YAC7D,CAAC;YAED,+BAAI,GAAJ,UAAM,OAAuB,EAAE,QAAkB;gBAChD,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC3B,IAAI,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACjD,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBACrC,IAAI,SAAS,GAAc,IAAI,CAAC;gBAEhC,IAAI,UAAU,GAAe,IAAI,CAAC,UAAU,CAAC;gBAC7C,IAAI,GAAG,GAAsB,IAAI,CAAC;gBAClC,IAAI,SAAS,GAAkB,IAAI,CAAC;gBACpC,IAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;gBACnC,IAAI,eAAe,GAAU,IAAI,CAAC;gBAClC,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACnC,IAAI,UAAU,GAAG,YAAY,GAAG,EAAE,GAAG,CAAC,CAAC;gBACvC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClD,IAAI,iBAAiB,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC;oBAC9D,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBACxB,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACtC,IAAI,OAAO,GAAc,IAAI,CAAC;oBAC9B,EAAE,CAAC,CAAC,UAAU,YAAY,MAAA,gBAAgB,CAAC,CAAC,CAAC;wBAC5C,IAAI,MAAM,GAAqB,UAAU,CAAC;wBAC1C,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACpC,UAAU,CAAC,WAAW,GAAG,CAAC,CAAC;wBAC3B,UAAU,CAAC,SAAS,GAAG,iBAAiB,IAAI,CAAC,CAAC;wBAC9C,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;wBAClF,SAAS,GAAG,gBAAgB,CAAC,cAAc,CAAC;wBAC5C,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;wBACjB,OAAO,GAAmC,MAAM,CAAC,MAAM,CAAC,YAAa,CAAC,OAAO,CAAC;wBAC9E,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC;oBAChC,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,YAAY,MAAA,cAAc,CAAC,CAAC,CAAC;wBACjD,IAAI,IAAI,GAAmB,UAAU,CAAC;wBACtC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACpC,UAAU,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC;wBACzD,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,WAAW,GAAG,iBAAiB,CAAC;wBAClE,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;4BACvD,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;wBACvF,CAAC;wBACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;wBACxG,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC3B,OAAO,GAAmC,IAAI,CAAC,MAAM,CAAC,YAAa,CAAC,OAAO,CAAC;wBAC5E,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;wBACf,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC9B,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,YAAY,MAAA,kBAAkB,CAAC,CAAC,CAAC;wBACrD,IAAI,IAAI,GAAuB,CAAC,UAAU,CAAC,CAAC;wBAC5C,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC9B,QAAQ,CAAC;oBACV,CAAC;oBAAC,IAAI;wBAAC,QAAQ,CAAC;oBAEhB,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;wBACrB,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;wBAC3B,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;wBAChC,UAAU,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;wBACjE,UAAU,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;wBACjE,UAAU,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;wBACjE,UAAU,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;wBACjE,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;4BACxB,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;4BAC7B,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;4BAC7B,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;wBAC9B,CAAC;wBACD,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;wBAChC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;4BAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACtD,IAAI;4BAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBAE5C,IAAI,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBACxC,EAAE,CAAC,CAAC,aAAa,IAAI,SAAS,CAAC,CAAC,CAAC;4BAChC,SAAS,GAAG,aAAa,CAAC;4BAC1B,OAAO,CAAC,YAAY,CAAC,MAAA,uBAAuB,CAAC,oBAAoB,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAAE,MAAA,uBAAuB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;wBAC1J,CAAC;wBAED,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;4BAC1B,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;4BACxI,IAAI,eAAe,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;4BAChE,IAAI,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;4BAChD,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;wBAC1D,CAAC;wBAAC,IAAI,CAAC,CAAC;4BACP,IAAI,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC;4BAChC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;gCACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAC,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC,GAAG,GAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oCACjF,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oCACxB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oCAC5B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oCAC5B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oCAC5B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;oCACtB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gCAC3B,CAAC;4BACF,CAAC;4BAAC,IAAI,CAAC,CAAC;gCACP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAC,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC,GAAG,GAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oCACjF,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oCACxB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oCAC5B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oCAC5B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oCAC5B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;oCACtB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oCAC1B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;oCAC3B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;oCAC3B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;oCAC3B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gCAC5B,CAAC;4BACF,CAAC;4BACD,IAAI,IAAI,GAAI,UAAU,CAAC,QAAyB,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;4BACnF,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;wBACxC,CAAC;oBACF,CAAC;oBAED,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC;gBACD,OAAO,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC;YACF,uBAAC;QAAD,CAAC,AA/HD;QACQ,+BAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAD/B,sBAAgB,mBA+H5B,CAAA;IACF,CAAC,EArIY,KAAK,GAAL,WAAK,KAAL,WAAK,QAqIjB;AAAD,CAAC,EArIM,KAAK,KAAL,KAAK,QAqIX;ACrID,IAAO,KAAK,CA2FX;AA3FD,WAAO,KAAK;IAAC,IAAA,KAAK,CA2FjB;IA3FY,WAAA,KAAK;QACjB;YAKC,iBAAa,CAAa,EAAE,CAAa,EAAE,CAAa;gBAA3C,kBAAA,EAAA,KAAa;gBAAE,kBAAA,EAAA,KAAa;gBAAE,kBAAA,EAAA,KAAa;gBAJxD,MAAC,GAAG,CAAC,CAAC;gBACN,MAAC,GAAG,CAAC,CAAC;gBACN,MAAC,GAAG,CAAC,CAAC;gBAGL,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACZ,CAAC;YAED,yBAAO,GAAP,UAAQ,CAAU;gBACjB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,qBAAG,GAAH,UAAK,CAAS,EAAE,CAAS,EAAE,CAAS;gBACnC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,qBAAG,GAAH,UAAK,CAAU;gBACd,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,qBAAG,GAAH,UAAK,CAAU;gBACd,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,uBAAK,GAAL,UAAO,CAAS;gBACf,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;gBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;gBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;gBACZ,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,2BAAS,GAAT;gBACC,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;gBAC1B,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,uBAAK,GAAL,UAAO,CAAU;gBAChB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACvG,CAAC;YAED,0BAAQ,GAAR,UAAU,MAAe;gBACxB,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,EAC3F,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,EAC5E,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,CAAC,CAAC;YAChF,CAAC;YAED,yBAAO,GAAP,UAAS,MAAe;gBACvB,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC1B,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,CAAC,CAAC;gBAC7F,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,CAAC,GAAG,GAAG,EACnG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,CAAC,GAAG,GAAG,EACpF,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,GAAG,KAAK,CAAC,MAAA,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YACxF,CAAC;YAED,qBAAG,GAAH,UAAK,CAAU;gBACd,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnD,CAAC;YAED,wBAAM,GAAN;gBACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACvE,CAAC;YAED,0BAAQ,GAAR,UAAU,CAAU;gBACnB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACzC,CAAC;YACF,cAAC;QAAD,CAAC,AAzFD,IAyFC;QAzFY,aAAO,UAyFnB,CAAA;IACF,CAAC,EA3FY,KAAK,GAAL,WAAK,KAAL,WAAK,QA2FjB;AAAD,CAAC,EA3FM,KAAK,KAAL,KAAK,QA2FX;AC3FD,IAAO,KAAK,CAsEX;AAtED,WAAO,KAAK;IAAC,IAAA,KAAK,CAsEjB;IAtEY,WAAA,KAAK;QACjB;YAKC,sCAAY,eAA0D,EAAE,aAAsC;gBAAtC,8BAAA,EAAA,kBAAuB,KAAK,EAAE,MAAM,EAAE;gBAA9G,iBAqBC;gBAvBO,gBAAW,GAAG,IAAI,KAAK,EAAc,CAAC;gBAG7C,EAAE,CAAC,CAAC,eAAe,YAAY,iBAAiB,CAAC,CAAC,CAAC;oBAClD,IAAI,QAAM,GAAG,eAAe,CAAC;oBAC7B,IAAI,CAAC,EAAE,GAA2B,CAAC,QAAM,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,QAAM,CAAC,UAAU,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC,CAAC;oBACxI,IAAI,CAAC,MAAM,GAAG,QAAM,CAAC;oBACrB,QAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,UAAC,CAAM;wBAClD,IAAI,KAAK,GAAsB,CAAC,CAAC;wBACjC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACP,CAAC,CAAC,cAAc,EAAE,CAAC;wBACpB,CAAC;oBACF,CAAC,CAAC,CAAC;oBAEH,QAAM,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,UAAC,CAAM;wBACtD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;4BACzD,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;wBAC/B,CAAC;oBACF,CAAC,CAAC,CAAC;gBACJ,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,CAAC,EAAE,GAAG,eAAe,CAAC;oBAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;gBAC9B,CAAC;YACF,CAAC;YAED,oDAAa,GAAb,UAAc,UAAsB;gBACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnC,CAAC;YAED,uDAAgB,GAAhB,UAAiB,UAAsB;gBACtC,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACjD,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;oBAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC;YACF,mCAAC;QAAD,CAAC,AApCD,IAoCC;QApCY,kCAA4B,+BAoCxC,CAAA;QAED;YAAA;YA8BA,CAAC;YAnBO,0CAAkB,GAAzB,UAA2B,SAAoB;gBAC9C,MAAM,CAAA,CAAC,SAAS,CAAC,CAAC,CAAC;oBAClB,KAAK,MAAA,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,uBAAuB,CAAC,mBAAmB,CAAC;oBAC1E,KAAK,MAAA,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC;oBAC5D,KAAK,MAAA,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,uBAAuB,CAAC,mBAAmB,CAAC;oBAC5E,KAAK,MAAA,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,uBAAuB,CAAC,mBAAmB,CAAC;oBAC1E,SAAS,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAC;gBAC9D,CAAC;YACF,CAAC;YAEM,4CAAoB,GAA3B,UAA6B,SAAoB,EAAE,kBAAmC;gBAAnC,mCAAA,EAAA,0BAAmC;gBACrF,MAAM,CAAA,CAAC,SAAS,CAAC,CAAC,CAAC;oBAClB,KAAK,MAAA,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,kBAAkB,GAAE,uBAAuB,CAAC,GAAG,GAAG,uBAAuB,CAAC,SAAS,CAAC;oBAClH,KAAK,MAAA,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,kBAAkB,GAAE,uBAAuB,CAAC,GAAG,GAAG,uBAAuB,CAAC,SAAS,CAAC;oBACpH,KAAK,MAAA,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,uBAAuB,CAAC,SAAS,CAAC;oBAClE,KAAK,MAAA,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC;oBAC1D,SAAS,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAC;gBAC9D,CAAC;YACF,CAAC;YACF,8BAAC;QAAD,CAAC,AA9BD;QACQ,4BAAI,GAAG,CAAC,CAAC;QACT,2BAAG,GAAG,CAAC,CAAC;QACR,iCAAS,GAAG,MAAM,CAAC;QACnB,2CAAmB,GAAG,MAAM,CAAC;QAC7B,iCAAS,GAAG,MAAM,CAAC;QACnB,2CAAmB,GAAG,MAAM,CAAC;QAC7B,iCAAS,GAAG,MAAM,CAAC;QACnB,2CAAmB,GAAG,MAAM,CAAC;QAC7B,iCAAS,GAAG,MAAM,CAAA;QATb,6BAAuB,0BA8BnC,CAAA;IACF,CAAC,EAtEY,KAAK,GAAL,WAAK,KAAL,WAAK,QAsEjB;AAAD,CAAC,EAtEM,KAAK,KAAL,KAAK,QAsEX;ACtED,IAAO,KAAK,CAQX;AARD,WAAO,KAAK;IAAC,IAAA,OAAO,CAQnB;IARY,WAAA,OAAO;QACnB;YAAkC,gCAAkB;YACnD,sBAAa,UAAuB;gBAAvB,2BAAA,EAAA,eAAuB;uBACnC,kBAAM,UAAC,KAAuB;oBAC7B,MAAM,CAAC,IAAI,QAAA,cAAc,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC,EAAE,UAAU,CAAC;YACf,CAAC;YACF,mBAAC;QAAD,CAAC,AAND,CAAkC,KAAK,CAAC,YAAY,GAMnD;QANY,oBAAY,eAMxB,CAAA;IACF,CAAC,EARY,OAAO,GAAP,aAAO,KAAP,aAAO,QAQnB;AAAD,CAAC,EARM,KAAK,KAAL,KAAK,QAQX;ACRD,IAAO,KAAK,CAuEX;AAvED,WAAO,KAAK;IAAC,IAAA,OAAO,CAuEnB;IAvEY,WAAA,OAAO;QACnB;YAUC,qBAAa,IAAgB,EAAE,WAA2B;gBAA3B,4BAAA,EAAA,mBAA2B;gBAJlD,mBAAc,GAAG,CAAC,CAAC;gBAEnB,kBAAa,GAAG,CAAC,CAAC;gBAGzB,EAAE,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,WAAW,CAAC,CAAC;gBAE3G,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;gBACvF,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;gBAC9D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACjB,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACrC,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;gBACtG,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC5B,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,KAAK,CAAC,0BAA0B,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC9F,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,0BAA0B,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC3F,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,0BAA0B,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBACxF,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpD,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC9B,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;gBACxB,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACrB,CAAC;YAED,2BAAK,GAAL;gBACC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YACxB,CAAC;YAED,2BAAK,GAAL,UAAO,QAA2B,EAAE,cAAsB,EAAE,OAA0B,EAAE,aAAqB,EAAE,CAAa;gBAAb,kBAAA,EAAA,KAAa;gBAC3H,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,WAAW,CAAC;gBAC/D,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACjC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;gBAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,GAAG,CAAC,CAAC,EAAC,CAAC,GAAG,cAAc,GAAG,CAAC;oBAC3B,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACtB,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnC,CAAC;gBACD,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBAExB,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;gBAChC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;oBAC9D,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;gBAC3C,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC;YACrC,CAAC;YAED,yBAAG,GAAH;gBACC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;gBACrC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;gBACzC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;gBAC1D,IAAI,GAAG,GAA0B,IAAI,CAAC,IAAI,CAAC,QAAS,CAAC;gBACrD,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC;gBAClC,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;gBACtC,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;gBACtD,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;gBACxB,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;YAC1C,CAAC;YACF,kBAAC;QAAD,CAAC,AArED;QAGgB,uBAAW,GAAG,CAAC,CAAC;QAHnB,mBAAW,cAqEvB,CAAA;IACF,CAAC,EAvEY,OAAO,GAAP,aAAO,KAAP,aAAO,QAuEnB;AAAD,CAAC,EAvEM,KAAK,KAAL,KAAK,QAuEX;ACvED,IAAO,KAAK,CA2IX;AA3ID,WAAO,KAAK;IAAC,IAAA,OAAO,CA2InB;IA3IY,WAAA,OAAO;QACnB;YAAkC,gCAAU;YAe3C,sBAAa,YAA0B;gBAAvC,YACC,iBAAO,SAWP;gBAvBD,aAAO,GAAW,GAAG,CAAC;gBAGd,aAAO,GAAqB,IAAI,MAAA,gBAAgB,EAAE,CAAC;gBAKnD,cAAQ,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACrC,eAAS,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;gBAK/B,KAAI,CAAC,QAAQ,GAAG,IAAI,MAAA,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC3C,IAAI,QAAQ,GAAG,IAAI,MAAA,kBAAkB,CAAC,YAAY,CAAC,CAAC;gBACpD,KAAI,CAAC,KAAK,GAAG,IAAI,MAAA,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAE1C,IAAI,QAAQ,GAAG,KAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC7D,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;gBACjC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC5B,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC;gBACzB,KAAI,CAAC,OAAO,GAAG,IAAI,QAAA,WAAW,CAAC,KAAI,CAAC,CAAC;;YACtC,CAAC;YAED,6BAAM,GAAN,UAAO,SAAiB;gBACvB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAE7B,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACxB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACtB,QAAQ,CAAC,oBAAoB,EAAE,CAAC;gBAEhC,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,CAAC;YAEO,qCAAc,GAAtB;gBACC,IAAI,QAAQ,GAAyB,IAAI,CAAC,QAAQ,CAAC;gBACnD,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,IAAI,cAAc,GAAG,CAAC,CAAC;gBACvB,IAAI,aAAa,GAAG,CAAC,CAAC;gBAEtB,IAAI,SAAS,GAAc,IAAI,CAAC;gBAChC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAE3B,IAAI,QAAQ,GAAsB,IAAI,CAAC,QAAQ,CAAC;gBAChD,IAAI,SAAS,GAAkB,IAAI,CAAC;gBACpC,IAAI,GAAG,GAAsB,IAAI,CAAC;gBAClC,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACxC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC3B,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClD,IAAI,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC;oBACrE,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBACxB,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACtC,IAAI,eAAe,GAAU,IAAI,CAAC;oBAClC,IAAI,OAAO,GAAmB,IAAI,CAAC;oBACnC,IAAI,SAAS,GAAG,CAAC,CAAC;oBAClB,EAAE,CAAC,CAAC,UAAU,YAAY,MAAA,gBAAgB,CAAC,CAAC,CAAC;wBAC5C,IAAI,MAAM,GAAqB,UAAU,CAAC;wBAC1C,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC;wBAC/B,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACzB,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC;wBAC3B,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;wBAChE,SAAS,GAAG,YAAY,CAAC,cAAc,CAAC;wBACxC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;wBACjB,OAAO,GAAwC,MAAM,CAAC,MAAM,CAAC,YAAa,CAAC,OAAO,CAAC;oBACpF,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,YAAY,MAAA,cAAc,CAAC,CAAC,CAAC;wBACjD,IAAI,IAAI,GAAmB,UAAU,CAAC;wBACtC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;wBAC7B,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACzB,SAAS,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC;wBACzD,EAAE,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;4BACjC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;wBACjE,CAAC;wBACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;wBACtF,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC3B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;wBACf,OAAO,GAAwC,IAAI,CAAC,MAAM,CAAC,YAAa,CAAC,OAAO,CAAC;oBAClF,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,YAAY,MAAA,kBAAkB,CAAC,CAAC,CAAC;wBACrD,IAAI,IAAI,GAAuB,CAAC,UAAU,CAAC,CAAC;wBAC5C,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC9B,QAAQ,CAAC;oBACV,CAAC;oBAAC,IAAI;wBAAC,QAAQ,CAAC;oBAEhB,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;wBACrB,EAAE,CAAC,CAAC,CAA2B,IAAI,CAAC,QAAS,CAAC,GAAG,CAAC,CAAC,CAAC;4BACnD,IAAI,GAAG,GAA4B,IAAI,CAAC,QAAQ,CAAC;4BACjD,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;4BAC1B,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxB,CAAC;wBAED,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAClC,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;wBACnC,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;wBAC3B,IAAI,KAAK,GAAG,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;wBAC9D,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC3B,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EACzD,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EACjD,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EACjD,KAAK,CAAC,CAAC;wBAQT,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;4BAC1B,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;4BACjG,IAAI,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;4BAC9C,IAAI,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;4BAChD,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,eAAe,CAAC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBACtG,CAAC;wBAAC,IAAI,CAAC,CAAC;4BACP,IAAI,KAAK,GAAG,QAAQ,CAAC;4BACrB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAC,GAAG,SAAS,EAAE,CAAC,GAAG,GAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gCACtE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gCACnB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gCACvB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gCACvB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gCACvB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gCACtB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;4BAC3B,CAAC;4BACD,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBACpE,CAAC;wBACD,CAAC,IAAI,OAAO,CAAC;oBACd,CAAC;gBACF,CAAC;gBAED,OAAO,CAAC,GAAG,EAAE,CAAC;YACf,CAAC;YACF,mBAAC;QAAD,CAAC,AAzID,CAAkC,KAAK,CAAC,IAAI;QASpC,2BAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,wBAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAVnB,oBAAY,eAyIxB,CAAA;IACF,CAAC,EA3IY,OAAO,GAAP,aAAO,KAAP,aAAO,QA2InB;AAAD,CAAC,EA3IM,KAAK,KAAL,KAAK,QA2IX;AC3ID,IAAO,KAAK,CA0CX;AA1CD,WAAO,KAAK;IAAC,IAAA,OAAO,CA0CnB;IA1CY,WAAA,OAAO;QACnB;YAAoC,kCAAO;YAG1C,wBAAa,KAAuB;gBAApC,YACC,kBAAM,KAAK,CAAC,SAIZ;gBAHA,KAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACxC,KAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;gBAC3B,KAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;;YACjC,CAAC;YAED,mCAAU,GAAV,UAAY,SAAwB,EAAE,SAAwB;gBAC7D,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBAC1E,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAC3E,CAAC;YAED,iCAAQ,GAAR,UAAU,KAAkB,EAAE,KAAkB;gBAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBAChE,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACjE,CAAC;YAED,gCAAO,GAAP;gBACC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC;YAEM,qCAAsB,GAA7B,UAA8B,MAAqB;gBAClD,EAAE,CAAC,CAAC,MAAM,KAAK,MAAA,aAAa,CAAC,MAAM,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC/D,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,MAAA,aAAa,CAAC,MAAM,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC;gBAChF,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,MAAA,aAAa,CAAC,mBAAmB,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC;gBAC9F,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,MAAA,aAAa,CAAC,mBAAmB,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC;gBAC9F,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,MAAA,aAAa,CAAC,oBAAoB,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC;gBAChG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,MAAA,aAAa,CAAC,OAAO,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;gBACtE,IAAI;oBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,MAAM,CAAC,CAAC;YAC3D,CAAC;YAEM,mCAAoB,GAA3B,UAA4B,IAAiB;gBAC5C,EAAE,CAAC,CAAC,IAAI,KAAK,MAAA,WAAW,CAAC,WAAW,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC;gBACvE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,MAAA,WAAW,CAAC,cAAc,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC;gBAClF,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,MAAA,WAAW,CAAC,MAAM,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;gBAClE,IAAI;oBAAC,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC;YACvD,CAAC;YACF,qBAAC;QAAD,CAAC,AAxCD,CAAoC,MAAA,OAAO,GAwC1C;QAxCY,sBAAc,iBAwC1B,CAAA;IACF,CAAC,EA1CY,OAAO,GAAP,aAAO,KAAP,aAAO,QA0CnB;AAAD,CAAC,EA1CM,KAAK,KAAL,KAAK,QA0CX;AC1CD,IAAO,KAAK,CA8UX;AA9UD,WAAO,KAAK;IACX;QAsBC,qBAAa,OAA6B,EAAE,MAAyB;YAArE,iBA0DC;YAnEO,QAAG,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAEhC,WAAM,GAAG,KAAK,CAAC;YACf,kBAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;YACpC,oBAAe,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;YAC9B,WAAM,GAAG,KAAK,CAAC;YACf,WAAM,GAAG,EAAE,MAAM,EAAE,IAAI,MAAA,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,MAAA,OAAO,EAAE,EAAE,CAAC;YAI/D,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;YACzG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,kGAAkG,CAAC,CAAC;YAEjI,IAAI,SAAS,GAAG,OAAiB,CAAC;YAClC,EAAE,CAAC,CAAC,OAAM,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;gBAAC,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAiB,CAAC,CAAC;YACvF,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,aAAW,SAAS,oBAAiB,CAAC,CAAC;YAE5E,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAE5B,IAAI,cAAc,GAAsB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5D,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,cAAc,IAAI,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC9E,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YAC7B,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;gBACN,OAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,CAAC,KAAK,GAAiB,OAAQ,CAAC,WAAW,CAAC;YAClD,MAAM,CAAC,MAAM,GAAiB,OAAQ,CAAC,YAAY,CAAC;YACpD,IAAI,WAAW,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAEjF,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrE,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5D,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,gBAAgB,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/D,IAAI,CAAC,aAAa,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzE,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE1D,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;YACxH,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC1B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YACD,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;gBACzB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;YACD,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC/B,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBAClB,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBACvD,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACnD,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBACxD,CAAC;oBACD,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAC/B,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1D,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACnD,EAAE,CAAC,CAAC,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC7D,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3E,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1C,CAAC;gBACF,CAAC;YACF,CAAC;YACD,qBAAqB,CAAC,cAAQ,KAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QAEO,oCAAc,GAAtB,UAAwB,MAAyB;YAChD,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACjH,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YAC7G,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAE9E,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;YACtC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;YAC1C,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;gBAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YAClD,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;YAC5B,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;YAC5B,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC;gBAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;YAChE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;gBAAC,MAAM,CAAC,eAAe,GAAG,SAAS,CAAC;YAChE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;gBACxB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBAClB,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;oBAC1C,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;wBACjB,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC;oBACzD,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;oBACxB,CAAC;gBACF,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;gBACxB,CAAC;YACF,CAAC;YACD,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC5D,CAAC;YACD,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACtE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC9D,CAAC;YACD,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,KAAK,SAAS,CAAC;gBAAC,MAAM,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC;gBAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YACtD,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC;gBAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YACrD,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,CAAC;QAEO,0BAAI,GAAZ;YAAA,iBAyCC;YAxCA,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACrC,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YACxC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;gBACtC,EAAE,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBAC9B,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;wBAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,yBAAyB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBAC3G,IAAI;wBAAC,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBAC5F,CAAC;gBAED,IAAI,YAAY,GAAG,MAAM,CAAC,YAAY,KAAK,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAW,GAAG,MAAM,CAAC,YAAY,CAAC;gBAChI,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,UAAC,IAAY;oBAC7D,IAAI,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAA0B,CAAC;oBAC9D,MAAM,CAAC,OAAO,CAAC;gBAChB,CAAC,CAAC,CAAC;gBAEH,IAAI,WAAW,GAAG,IAAI,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBACzD,IAAI,YAAY,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;gBAGvD,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBAClC,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,KAAK,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAW,GAAG,MAAM,CAAC,WAAW,CAAC;gBAClH,IAAI,YAAY,GAAG,YAAY,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBAC9D,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAChE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBACzB,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACpC,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC1B,QAAQ,CAAC,oBAAoB,EAAE,CAAC;gBAChC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACnD,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;oBACzB,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;oBACtB,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACvB,CAAC;gBAED,IAAI,cAAc,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxG,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC9D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;oBAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzC,qBAAqB,CAAC,cAAQ,KAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YAAC,IAAI;gBACL,qBAAqB,CAAC,cAAQ,KAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;QAEO,4BAAM,GAAd;YAAA,iBAgDC;YA/CA,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAC5B,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;YACrC,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;gBAAC,KAAK,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YAEzB,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;YACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YAClD,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;YAG9B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;YACxD,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACtB,QAAQ,CAAC,oBAAoB,EAAE,CAAC;YAGhC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC3B,IAAI,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC7C,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACtE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACtB,gBAAgB,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;YACzD,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,EAAE,CAAC;YAGhB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvB,IAAI,QAAM,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBACzB,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;gBAClC,QAAM,CAAC,IAAI,EAAE,CAAC;gBACd,QAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACtE,QAAQ,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;gBACjD,MAAM,CAAC,KAAK,CAAC,QAAM,CAAC,CAAC;gBACrB,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAChC,MAAM,CAAC,GAAG,EAAE,CAAC;gBACb,QAAM,CAAC,MAAM,EAAE,CAAC;YACjB,CAAC;YAED,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAC,qBAAqB,CAAC,cAAQ,KAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC;QAEO,4BAAM,GAAd;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;YAC3B,IAAI,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC;YAC5B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC;YACpD,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,gBAAgB,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC3G,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC;gBAChD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC;YAClD,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC7B,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAClD,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAClD,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC;gBAC3C,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;oBAAC,KAAK,GAAG,CAAC,CAAC;gBACzB,IAAI,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,IAAI,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC5E,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACtC,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7D,CAAC;QAED,2BAAK,GAAL;YACC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,0BAAI,GAAJ;YAAA,iBAGC;YAFA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,qBAAqB,CAAC,cAAQ,KAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,+BAAS,GAAT;YACC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAED,kCAAY,GAAZ,UAAc,aAAqB,EAAE,sBAAsD;YAAtD,uCAAA,EAAA,6BAAsD;YAC1F,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC7D,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC/B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxE,KAAK,CAAC,QAAQ,GAAG,sBAAsB,CAAA;QACxC,CAAC;QAEM,uBAAW,GAAlB;YACC,IAAI,OAAO,GAAG,QAAQ,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;YAC9D,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,WAAW,CAAC,UAAU,CAAc,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;QACF,CAAC;QAEM,sBAAU,GAAjB,UAAkB,MAAmB;YACpC,IAAI,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;YACrC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC/C,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;YACzD,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;gBAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YACzG,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;gBAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpH,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;gBAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YACrF,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;gBAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC;YAChG,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBAAC,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;YACpG,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxF,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxF,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;gBAAC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,oBAAoB,CAAC,KAAK,MAAM,CAAC;YACzH,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC;gBAAC,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC;YACxH,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;gBAAC,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,YAAY,CAAC,0BAA0B,CAAC,KAAK,MAAM,CAAC;YAC5I,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC;YACnG,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC;YAEnG,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;QAGc,iBAAK,GAApB;YACC,EAAE,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC;gBAAC,MAAM,CAAC;YACnC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,WAAW,CAAC,WAAW,EAAE,CAAC;QAC3B,CAAC;QAEM,4BAAgB,GAAvB;YACC,EAAE,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAC/B,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACxE,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC;YAAC,IAAI,CAAC,CAAC;gBACD,QAAS,CAAC,WAAW,CAAC,oBAAoB,EAAE;oBACjD,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,KAAK,UAAW,CAAC;wBAAC,WAAW,CAAC,KAAK,EAAE,CAAC;gBAC9D,CAAC,CAAC,CAAC;gBACG,MAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;YACxD,CAAC;QACF,CAAC;QACF,kBAAC;IAAD,CAAC,AArTD;IAmSQ,sBAAU,GAAG,KAAK,CAAC;IAnSd,iBAAW,cAqTvB,CAAA;IAED;QAAA;YASC,SAAI,GAAG,SAAS,CAAC;YACjB,SAAI,GAAG,IAAI,CAAC;YACZ,UAAK,GAAG,GAAG,CAAC;YACZ,MAAC,GAAG,CAAC,CAAC;YACN,MAAC,GAAG,CAAC,CAAC;YACN,UAAK,GAAG,IAAI,CAAC;YACb,gBAAW,GAAG,IAAI,CAAC;YACnB,oBAAe,GAAG,SAAS,CAAC;YAC5B,uBAAkB,GAAG,KAAK,CAAC;YAC3B,UAAK,GAAG,KAAK,CAAC;QAGf,CAAC;QAAD,wBAAC;IAAD,CAAC,AArBD,IAqBC;IArBY,uBAAiB,oBAqB7B,CAAA;AACF,CAAC,EA9UM,KAAK,KAAL,KAAK,QA8UX;AACD,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"spine-all.js","sourceRoot":"","sources":["../core/src/AssetManager.ts","../canvas/src/AssetManager.ts","../core/src/Texture.ts","../canvas/src/CanvasTexture.ts","../canvas/src/SkeletonRenderer.ts","../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../threejs/src/AssetManager.ts","../threejs/src/MeshBatcher.ts","../threejs/src/SkeletonMesh.ts","../threejs/src/ThreeJsTexture.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts","../widget/src/Widget.ts"],"names":[],"mappings":"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AC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,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C,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChH,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC3G,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,G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AG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,C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"} \ No newline at end of file diff --git a/spine-ts/build/spine-canvas.d.ts b/spine-ts/build/spine-canvas.d.ts index 76a18eac1..77ec668d4 100644 --- a/spine-ts/build/spine-canvas.d.ts +++ b/spine-ts/build/spine-canvas.d.ts @@ -1,3 +1,97 @@ +declare module spine { + class AssetManager implements Disposable { + private pathPrefix; + private textureLoader; + private assets; + private errors; + private toLoad; + private loaded; + constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); + loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; + loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + get(path: string): any; + remove(path: string): void; + removeAll(): void; + isLoadingComplete(): boolean; + getToLoad(): number; + getLoaded(): number; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } +} +declare module spine.canvas { + class AssetManager extends spine.AssetManager { + constructor(pathPrefix?: string); + } +} +declare module spine { + abstract class Texture { + protected _image: HTMLImageElement; + constructor(image: HTMLImageElement); + getImage(): HTMLImageElement; + abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + abstract dispose(): void; + static filterFromString(text: string): TextureFilter; + static wrapFromString(text: string): TextureWrap; + } + enum TextureFilter { + Nearest = 9728, + Linear = 9729, + MipMap = 9987, + MipMapNearestNearest = 9984, + MipMapLinearNearest = 9985, + MipMapNearestLinear = 9986, + MipMapLinearLinear = 9987, + } + enum TextureWrap { + MirroredRepeat = 33648, + ClampToEdge = 33071, + Repeat = 10497, + } + class TextureRegion { + renderObject: any; + u: number; + v: number; + u2: number; + v2: number; + width: number; + height: number; + rotate: boolean; + offsetX: number; + offsetY: number; + originalWidth: number; + originalHeight: number; + } +} +declare module spine.canvas { + class CanvasTexture extends Texture { + constructor(image: HTMLImageElement); + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + dispose(): void; + } +} +declare module spine.canvas { + class SkeletonRenderer { + static QUAD_TRIANGLES: number[]; + static VERTEX_SIZE: number; + private ctx; + triangleRendering: boolean; + debugRendering: boolean; + private vertices; + private tempColor; + constructor(context: CanvasRenderingContext2D); + draw(skeleton: Skeleton): void; + private drawImages(skeleton); + private drawTriangles(skeleton); + private drawTriangle(img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); + private computeRegionVertices(slot, region, pma); + private computeMeshVertices(slot, mesh, pma); + } +} declare module spine { class Animation { name: string; @@ -245,7 +339,7 @@ declare module spine { constructor(data: AnimationStateData); update(delta: number): void; updateMixingFrom(to: TrackEntry, delta: number): boolean; - apply(skeleton: Skeleton): void; + apply(skeleton: Skeleton): boolean; applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; queueEvents(entry: TrackEntry, animationTime: number): void; @@ -355,29 +449,6 @@ declare module spine { getMix(from: Animation, to: Animation): number; } } -declare module spine { - class AssetManager implements Disposable { - private pathPrefix; - private textureLoader; - private assets; - private errors; - private toLoad; - private loaded; - constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); - loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; - loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - get(path: string): any; - remove(path: string): void; - removeAll(): void; - isLoadingComplete(): boolean; - getToLoad(): number; - getLoaded(): number; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } -} declare module spine { class AtlasAttachmentLoader implements AttachmentLoader { atlas: TextureAtlas; @@ -390,6 +461,154 @@ declare module spine { newClippingAttachment(skin: Skin, name: string): ClippingAttachment; } } +declare module spine { + abstract class Attachment { + name: string; + constructor(name: string); + } + abstract class VertexAttachment extends Attachment { + bones: Array; + vertices: ArrayLike; + worldVerticesLength: number; + constructor(name: string); + computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + } +} +declare module spine { + interface AttachmentLoader { + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } +} +declare module spine { + enum AttachmentType { + Region = 0, + BoundingBox = 1, + Mesh = 2, + LinkedMesh = 3, + Path = 4, + Point = 5, + } +} +declare module spine { + class BoundingBoxAttachment extends VertexAttachment { + color: Color; + constructor(name: string); + } +} +declare module spine { + class ClippingAttachment extends VertexAttachment { + endSlot: SlotData; + color: Color; + constructor(name: string); + } +} +declare module spine { + class MeshAttachment extends VertexAttachment { + region: TextureRegion; + path: string; + regionUVs: ArrayLike; + uvs: ArrayLike; + triangles: Array; + color: Color; + hullLength: number; + private parentMesh; + inheritDeform: boolean; + tempColor: Color; + constructor(name: string); + updateUVs(): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + getParentMesh(): MeshAttachment; + setParentMesh(parentMesh: MeshAttachment): void; + } +} +declare module spine { + class PathAttachment extends VertexAttachment { + lengths: Array; + closed: boolean; + constantSpeed: boolean; + color: Color; + constructor(name: string); + } +} +declare module spine { + class PointAttachment extends VertexAttachment { + x: number; + y: number; + rotation: number; + color: Color; + constructor(name: string); + computeWorldPosition(bone: Bone, point: Vector2): Vector2; + computeWorldRotation(bone: Bone): number; + } +} +declare module spine { + class RegionAttachment extends Attachment { + static OX1: number; + static OY1: number; + static OX2: number; + static OY2: number; + static OX3: number; + static OY3: number; + static OX4: number; + static OY4: number; + static X1: number; + static Y1: number; + static C1R: number; + static C1G: number; + static C1B: number; + static C1A: number; + static U1: number; + static V1: number; + static X2: number; + static Y2: number; + static C2R: number; + static C2G: number; + static C2B: number; + static C2A: number; + static U2: number; + static V2: number; + static X3: number; + static Y3: number; + static C3R: number; + static C3G: number; + static C3B: number; + static C3A: number; + static U3: number; + static V3: number; + static X4: number; + static Y4: number; + static C4R: number; + static C4G: number; + static C4B: number; + static C4A: number; + static U4: number; + static V4: number; + x: number; + y: number; + scaleX: number; + scaleY: number; + rotation: number; + width: number; + height: number; + color: Color; + path: string; + rendererObject: any; + region: TextureRegion; + offset: ArrayLike; + uvs: ArrayLike; + tempColor: Color; + constructor(name: string); + updateOffset(): void; + setRegion(region: TextureRegion): void; + computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; + } +} declare module spine { enum BlendMode { Normal = 0, @@ -775,46 +994,6 @@ declare module spine { constructor(index: number, name: string, boneData: BoneData); } } -declare module spine { - abstract class Texture { - protected _image: HTMLImageElement; - constructor(image: HTMLImageElement); - getImage(): HTMLImageElement; - abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - abstract dispose(): void; - static filterFromString(text: string): TextureFilter; - static wrapFromString(text: string): TextureWrap; - } - enum TextureFilter { - Nearest = 9728, - Linear = 9729, - MipMap = 9987, - MipMapNearestNearest = 9984, - MipMapLinearNearest = 9985, - MipMapNearestLinear = 9986, - MipMapLinearLinear = 9987, - } - enum TextureWrap { - MirroredRepeat = 33648, - ClampToEdge = 33071, - Repeat = 10497, - } - class TextureRegion { - renderObject: any; - u: number; - v: number; - u2: number; - v2: number; - width: number; - height: number; - rotate: boolean; - offsetX: number; - offsetY: number; - originalWidth: number; - originalHeight: number; - } -} declare module spine { class TextureAtlas implements Disposable { pages: TextureAtlasPage[]; @@ -1010,182 +1189,3 @@ declare module spine { getMean(): number; } } -declare module spine { - abstract class Attachment { - name: string; - constructor(name: string); - } - abstract class VertexAttachment extends Attachment { - bones: Array; - vertices: ArrayLike; - worldVerticesLength: number; - constructor(name: string); - computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - } -} -declare module spine { - interface AttachmentLoader { - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } -} -declare module spine { - enum AttachmentType { - Region = 0, - BoundingBox = 1, - Mesh = 2, - LinkedMesh = 3, - Path = 4, - Point = 5, - } -} -declare module spine { - class BoundingBoxAttachment extends VertexAttachment { - color: Color; - constructor(name: string); - } -} -declare module spine { - class ClippingAttachment extends VertexAttachment { - endSlot: SlotData; - color: Color; - constructor(name: string); - } -} -declare module spine { - class MeshAttachment extends VertexAttachment { - region: TextureRegion; - path: string; - regionUVs: ArrayLike; - uvs: ArrayLike; - triangles: Array; - color: Color; - hullLength: number; - private parentMesh; - inheritDeform: boolean; - tempColor: Color; - constructor(name: string); - updateUVs(): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - getParentMesh(): MeshAttachment; - setParentMesh(parentMesh: MeshAttachment): void; - } -} -declare module spine { - class PathAttachment extends VertexAttachment { - lengths: Array; - closed: boolean; - constantSpeed: boolean; - color: Color; - constructor(name: string); - } -} -declare module spine { - class PointAttachment extends VertexAttachment { - x: number; - y: number; - rotation: number; - color: Color; - constructor(name: string); - computeWorldPosition(bone: Bone, point: Vector2): Vector2; - computeWorldRotation(bone: Bone): number; - } -} -declare module spine { - class RegionAttachment extends Attachment { - static OX1: number; - static OY1: number; - static OX2: number; - static OY2: number; - static OX3: number; - static OY3: number; - static OX4: number; - static OY4: number; - static X1: number; - static Y1: number; - static C1R: number; - static C1G: number; - static C1B: number; - static C1A: number; - static U1: number; - static V1: number; - static X2: number; - static Y2: number; - static C2R: number; - static C2G: number; - static C2B: number; - static C2A: number; - static U2: number; - static V2: number; - static X3: number; - static Y3: number; - static C3R: number; - static C3G: number; - static C3B: number; - static C3A: number; - static U3: number; - static V3: number; - static X4: number; - static Y4: number; - static C4R: number; - static C4G: number; - static C4B: number; - static C4A: number; - static U4: number; - static V4: number; - x: number; - y: number; - scaleX: number; - scaleY: number; - rotation: number; - width: number; - height: number; - color: Color; - path: string; - rendererObject: any; - region: TextureRegion; - offset: ArrayLike; - uvs: ArrayLike; - tempColor: Color; - constructor(name: string); - updateOffset(): void; - setRegion(region: TextureRegion): void; - computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; - } -} -declare module spine.canvas { - class AssetManager extends spine.AssetManager { - constructor(pathPrefix?: string); - } -} -declare module spine.canvas { - class CanvasTexture extends Texture { - constructor(image: HTMLImageElement); - setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - dispose(): void; - } -} -declare module spine.canvas { - class SkeletonRenderer { - static QUAD_TRIANGLES: number[]; - static VERTEX_SIZE: number; - private ctx; - triangleRendering: boolean; - debugRendering: boolean; - private vertices; - private tempColor; - constructor(context: CanvasRenderingContext2D); - draw(skeleton: Skeleton): void; - private drawImages(skeleton); - private drawTriangles(skeleton); - private drawTriangle(img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); - private computeRegionVertices(slot, region, pma); - private computeMeshVertices(slot, mesh, pma); - } -} diff --git a/spine-ts/build/spine-canvas.js b/spine-ts/build/spine-canvas.js index c22649970..dc4dbd23f 100644 --- a/spine-ts/build/spine-canvas.js +++ b/spine-ts/build/spine-canvas.js @@ -1,13 +1,456 @@ -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); +var spine; +(function (spine) { + var AssetManager = (function () { + function AssetManager(textureLoader, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.assets = {}; + this.errors = {}; + this.toLoad = 0; + this.loaded = 0; + this.textureLoader = textureLoader; + this.pathPrefix = pathPrefix; + } + AssetManager.prototype.loadText = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.assets[path] = request.responseText; + if (success) + success(path, request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + if (error) + error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); + } + _this.toLoad--; + _this.loaded++; + } + }; + request.open("GET", path, true); + request.send(); + }; + AssetManager.prototype.loadTexture = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = path; + }; + AssetManager.prototype.loadTextureData = function (path, data, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = data; + }; + AssetManager.prototype.get = function (path) { + path = this.pathPrefix + path; + return this.assets[path]; + }; + AssetManager.prototype.remove = function (path) { + path = this.pathPrefix + path; + var asset = this.assets[path]; + if (asset.dispose) + asset.dispose(); + this.assets[path] = null; + }; + AssetManager.prototype.removeAll = function () { + for (var key in this.assets) { + var asset = this.assets[key]; + if (asset.dispose) + asset.dispose(); + } + this.assets = {}; + }; + AssetManager.prototype.isLoadingComplete = function () { + return this.toLoad == 0; + }; + AssetManager.prototype.getToLoad = function () { + return this.toLoad; + }; + AssetManager.prototype.getLoaded = function () { + return this.loaded; + }; + AssetManager.prototype.dispose = function () { + this.removeAll(); + }; + AssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + AssetManager.prototype.getErrors = function () { + return this.errors; + }; + return AssetManager; + }()); + spine.AssetManager = AssetManager; +})(spine || (spine = {})); +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; +var spine; +(function (spine) { + var canvas; + (function (canvas) { + var AssetManager = (function (_super) { + __extends(AssetManager, _super); + function AssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + _super.call(this, function (image) { return new spine.canvas.CanvasTexture(image); }, pathPrefix); + } + return AssetManager; + }(spine.AssetManager)); + canvas.AssetManager = AssetManager; + })(canvas = spine.canvas || (spine.canvas = {})); +})(spine || (spine = {})); +var spine; +(function (spine) { + var Texture = (function () { + function Texture(image) { + this._image = image; + } + Texture.prototype.getImage = function () { + return this._image; + }; + Texture.filterFromString = function (text) { + switch (text.toLowerCase()) { + case "nearest": return TextureFilter.Nearest; + case "linear": return TextureFilter.Linear; + case "mipmap": return TextureFilter.MipMap; + case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; + case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; + case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; + case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; + default: throw new Error("Unknown texture filter " + text); + } + }; + Texture.wrapFromString = function (text) { + switch (text.toLowerCase()) { + case "mirroredtepeat": return TextureWrap.MirroredRepeat; + case "clamptoedge": return TextureWrap.ClampToEdge; + case "repeat": return TextureWrap.Repeat; + default: throw new Error("Unknown texture wrap " + text); + } + }; + return Texture; + }()); + spine.Texture = Texture; + (function (TextureFilter) { + TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; + TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; + TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; + TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; + TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; + TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; + TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; + })(spine.TextureFilter || (spine.TextureFilter = {})); + var TextureFilter = spine.TextureFilter; + (function (TextureWrap) { + TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; + TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; + TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; + })(spine.TextureWrap || (spine.TextureWrap = {})); + var TextureWrap = spine.TextureWrap; + var TextureRegion = (function () { + function TextureRegion() { + this.u = 0; + this.v = 0; + this.u2 = 0; + this.v2 = 0; + this.width = 0; + this.height = 0; + this.rotate = false; + this.offsetX = 0; + this.offsetY = 0; + this.originalWidth = 0; + this.originalHeight = 0; + } + return TextureRegion; + }()); + spine.TextureRegion = TextureRegion; +})(spine || (spine = {})); +var spine; +(function (spine) { + var canvas; + (function (canvas) { + var CanvasTexture = (function (_super) { + __extends(CanvasTexture, _super); + function CanvasTexture(image) { + _super.call(this, image); + } + CanvasTexture.prototype.setFilters = function (minFilter, magFilter) { }; + CanvasTexture.prototype.setWraps = function (uWrap, vWrap) { }; + CanvasTexture.prototype.dispose = function () { }; + return CanvasTexture; + }(spine.Texture)); + canvas.CanvasTexture = CanvasTexture; + })(canvas = spine.canvas || (spine.canvas = {})); +})(spine || (spine = {})); +var spine; +(function (spine) { + var canvas; + (function (canvas) { + var SkeletonRenderer = (function () { + function SkeletonRenderer(context) { + this.triangleRendering = false; + this.debugRendering = false; + this.vertices = spine.Utils.newFloatArray(8 * 1024); + this.tempColor = new spine.Color(); + this.ctx = context; + } + SkeletonRenderer.prototype.draw = function (skeleton) { + if (this.triangleRendering) + this.drawTriangles(skeleton); + else + this.drawImages(skeleton); + }; + SkeletonRenderer.prototype.drawImages = function (skeleton) { + var ctx = this.ctx; + var drawOrder = skeleton.drawOrder; + if (this.debugRendering) + ctx.strokeStyle = "green"; + ctx.save(); + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var regionAttachment = null; + var region = null; + var image = null; + if (attachment instanceof spine.RegionAttachment) { + regionAttachment = attachment; + region = regionAttachment.region; + image = region.texture.getImage(); + } + else + continue; + var skeleton_1 = slot.bone.skeleton; + var skeletonColor = skeleton_1.color; + var slotColor = slot.color; + var regionColor = regionAttachment.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * regionColor.r, skeletonColor.g * slotColor.g * regionColor.g, skeletonColor.b * slotColor.b * regionColor.b, alpha); + var att = attachment; + var bone = slot.bone; + var w = region.width; + var h = region.height; + ctx.save(); + ctx.transform(bone.a, bone.c, bone.b, bone.d, bone.worldX, bone.worldY); + ctx.translate(attachment.offset[0], attachment.offset[1]); + ctx.rotate(attachment.rotation * Math.PI / 180); + ctx.scale(attachment.scaleX, attachment.scaleY); + ctx.translate(w / 2, h / 2); + if (attachment.region.rotate) { + var t = w; + w = h; + h = t; + ctx.rotate(-Math.PI / 2); + } + ctx.scale(1, -1); + ctx.translate(-w / 2, -h / 2); + if (color.r != 1 || color.g != 1 || color.b != 1 || color.a != 1) { + ctx.globalAlpha = color.a; + } + ctx.drawImage(image, region.x, region.y, w, h, 0, 0, w, h); + if (this.debugRendering) + ctx.strokeRect(0, 0, w, h); + ctx.restore(); + } + ctx.restore(); + }; + SkeletonRenderer.prototype.drawTriangles = function (skeleton) { + var blendMode = null; + var vertices = this.vertices; + var triangles = null; + var drawOrder = skeleton.drawOrder; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var texture = null; + var region = null; + if (attachment instanceof spine.RegionAttachment) { + var regionAttachment = attachment; + vertices = this.computeRegionVertices(slot, regionAttachment, false); + triangles = SkeletonRenderer.QUAD_TRIANGLES; + region = regionAttachment.region; + texture = region.texture.getImage(); + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + vertices = this.computeMeshVertices(slot, mesh, false); + triangles = mesh.triangles; + texture = mesh.region.renderObject.texture.getImage(); + } + else + continue; + if (texture != null) { + var slotBlendMode = slot.data.blendMode; + if (slotBlendMode != blendMode) { + blendMode = slotBlendMode; + } + var ctx = this.ctx; + for (var j = 0; j < triangles.length; j += 3) { + var t1 = triangles[j] * 8, t2 = triangles[j + 1] * 8, t3 = triangles[j + 2] * 8; + var x0 = vertices[t1], y0 = vertices[t1 + 1], u0 = vertices[t1 + 6], v0 = vertices[t1 + 7]; + var x1 = vertices[t2], y1 = vertices[t2 + 1], u1 = vertices[t2 + 6], v1 = vertices[t2 + 7]; + var x2 = vertices[t3], y2 = vertices[t3 + 1], u2 = vertices[t3 + 6], v2 = vertices[t3 + 7]; + this.drawTriangle(texture, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); + if (this.debugRendering) { + ctx.strokeStyle = "green"; + ctx.beginPath(); + ctx.moveTo(x0, y0); + ctx.lineTo(x1, y1); + ctx.lineTo(x2, y2); + ctx.lineTo(x0, y0); + ctx.stroke(); + } + } + } + } + }; + SkeletonRenderer.prototype.drawTriangle = function (img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2) { + var ctx = this.ctx; + u0 *= img.width; + v0 *= img.height; + u1 *= img.width; + v1 *= img.height; + u2 *= img.width; + v2 *= img.height; + ctx.beginPath(); + ctx.moveTo(x0, y0); + ctx.lineTo(x1, y1); + ctx.lineTo(x2, y2); + ctx.closePath(); + x1 -= x0; + y1 -= y0; + x2 -= x0; + y2 -= y0; + u1 -= u0; + v1 -= v0; + u2 -= u0; + v2 -= v0; + var det = 1 / (u1 * v2 - u2 * v1), a = (v2 * x1 - v1 * x2) * det, b = (v2 * y1 - v1 * y2) * det, c = (u1 * x2 - u2 * x1) * det, d = (u1 * y2 - u2 * y1) * det, e = x0 - a * u0 - c * v0, f = y0 - b * u0 - d * v0; + ctx.save(); + ctx.transform(a, b, c, d, e, f); + ctx.clip(); + ctx.drawImage(img, 0, 0); + ctx.restore(); + }; + SkeletonRenderer.prototype.computeRegionVertices = function (slot, region, pma) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var regionColor = region.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var multiplier = pma ? alpha : 1; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); + region.computeWorldVertices(slot.bone, this.vertices, 0, SkeletonRenderer.VERTEX_SIZE); + var vertices = this.vertices; + var uvs = region.uvs; + vertices[spine.RegionAttachment.C1R] = color.r; + vertices[spine.RegionAttachment.C1G] = color.g; + vertices[spine.RegionAttachment.C1B] = color.b; + vertices[spine.RegionAttachment.C1A] = color.a; + vertices[spine.RegionAttachment.U1] = uvs[0]; + vertices[spine.RegionAttachment.V1] = uvs[1]; + vertices[spine.RegionAttachment.C2R] = color.r; + vertices[spine.RegionAttachment.C2G] = color.g; + vertices[spine.RegionAttachment.C2B] = color.b; + vertices[spine.RegionAttachment.C2A] = color.a; + vertices[spine.RegionAttachment.U2] = uvs[2]; + vertices[spine.RegionAttachment.V2] = uvs[3]; + vertices[spine.RegionAttachment.C3R] = color.r; + vertices[spine.RegionAttachment.C3G] = color.g; + vertices[spine.RegionAttachment.C3B] = color.b; + vertices[spine.RegionAttachment.C3A] = color.a; + vertices[spine.RegionAttachment.U3] = uvs[4]; + vertices[spine.RegionAttachment.V3] = uvs[5]; + vertices[spine.RegionAttachment.C4R] = color.r; + vertices[spine.RegionAttachment.C4G] = color.g; + vertices[spine.RegionAttachment.C4B] = color.b; + vertices[spine.RegionAttachment.C4A] = color.a; + vertices[spine.RegionAttachment.U4] = uvs[6]; + vertices[spine.RegionAttachment.V4] = uvs[7]; + return vertices; + }; + SkeletonRenderer.prototype.computeMeshVertices = function (slot, mesh, pma) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var regionColor = mesh.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var multiplier = pma ? alpha : 1; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); + var numVertices = mesh.worldVerticesLength / 2; + if (this.vertices.length < mesh.worldVerticesLength) { + this.vertices = spine.Utils.newFloatArray(mesh.worldVerticesLength); + } + var vertices = this.vertices; + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, SkeletonRenderer.VERTEX_SIZE); + var uvs = mesh.uvs; + for (var i = 0, n = numVertices, u = 0, v = 2; i < n; i++) { + vertices[v++] = color.r; + vertices[v++] = color.g; + vertices[v++] = color.b; + vertices[v++] = color.a; + vertices[v++] = uvs[u++]; + vertices[v++] = uvs[u++]; + v += 2; + } + return vertices; + }; + SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + SkeletonRenderer.VERTEX_SIZE = 2 + 2 + 4; + return SkeletonRenderer; + }()); + canvas.SkeletonRenderer = SkeletonRenderer; + })(canvas = spine.canvas || (spine.canvas = {})); +})(spine || (spine = {})); var spine; (function (spine) { var Animation = (function () { @@ -58,7 +501,6 @@ var spine; return Animation; }()); spine.Animation = Animation; - var TimelineType; (function (TimelineType) { TimelineType[TimelineType["rotate"] = 0] = "rotate"; TimelineType[TimelineType["translate"] = 1] = "translate"; @@ -75,7 +517,8 @@ var spine; TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; - })(TimelineType = spine.TimelineType || (spine.TimelineType = {})); + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; var CurveTimeline = (function () { function CurveTimeline(frameCount) { if (frameCount <= 0) @@ -151,19 +594,18 @@ var spine; var y = curves[i - 1]; return y + (1 - y) * (percent - x) / (1 - x); }; + CurveTimeline.LINEAR = 0; + CurveTimeline.STEPPED = 1; + CurveTimeline.BEZIER = 2; + CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; return CurveTimeline; }()); - CurveTimeline.LINEAR = 0; - CurveTimeline.STEPPED = 1; - CurveTimeline.BEZIER = 2; - CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; spine.CurveTimeline = CurveTimeline; var RotateTimeline = (function (_super) { __extends(RotateTimeline, _super); function RotateTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount << 1); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount << 1); } RotateTimeline.prototype.getPropertyId = function () { return (TimelineType.rotate << 24) + this.boneIndex; @@ -208,19 +650,18 @@ var spine; bone.rotation += r * alpha; } }; + RotateTimeline.ENTRIES = 2; + RotateTimeline.PREV_TIME = -2; + RotateTimeline.PREV_ROTATION = -1; + RotateTimeline.ROTATION = 1; return RotateTimeline; }(CurveTimeline)); - RotateTimeline.ENTRIES = 2; - RotateTimeline.PREV_TIME = -2; - RotateTimeline.PREV_ROTATION = -1; - RotateTimeline.ROTATION = 1; spine.RotateTimeline = RotateTimeline; var TranslateTimeline = (function (_super) { __extends(TranslateTimeline, _super); function TranslateTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); } TranslateTimeline.prototype.getPropertyId = function () { return (TimelineType.translate << 24) + this.boneIndex; @@ -264,19 +705,19 @@ var spine; bone.y += (bone.data.y + y - bone.y) * alpha; } }; + TranslateTimeline.ENTRIES = 3; + TranslateTimeline.PREV_TIME = -3; + TranslateTimeline.PREV_X = -2; + TranslateTimeline.PREV_Y = -1; + TranslateTimeline.X = 1; + TranslateTimeline.Y = 2; return TranslateTimeline; }(CurveTimeline)); - TranslateTimeline.ENTRIES = 3; - TranslateTimeline.PREV_TIME = -3; - TranslateTimeline.PREV_X = -2; - TranslateTimeline.PREV_Y = -1; - TranslateTimeline.X = 1; - TranslateTimeline.Y = 2; spine.TranslateTimeline = TranslateTimeline; var ScaleTimeline = (function (_super) { __extends(ScaleTimeline, _super); function ScaleTimeline(frameCount) { - return _super.call(this, frameCount) || this; + _super.call(this, frameCount); } ScaleTimeline.prototype.getPropertyId = function () { return (TimelineType.scale << 24) + this.boneIndex; @@ -337,7 +778,7 @@ var spine; var ShearTimeline = (function (_super) { __extends(ShearTimeline, _super); function ShearTimeline(frameCount) { - return _super.call(this, frameCount) || this; + _super.call(this, frameCount); } ShearTimeline.prototype.getPropertyId = function () { return (TimelineType.shear << 24) + this.boneIndex; @@ -381,9 +822,8 @@ var spine; var ColorTimeline = (function (_super) { __extends(ColorTimeline, _super); function ColorTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); } ColorTimeline.prototype.getPropertyId = function () { return (TimelineType.color << 24) + this.slotIndex; @@ -434,25 +874,24 @@ var spine; color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); } }; + ColorTimeline.ENTRIES = 5; + ColorTimeline.PREV_TIME = -5; + ColorTimeline.PREV_R = -4; + ColorTimeline.PREV_G = -3; + ColorTimeline.PREV_B = -2; + ColorTimeline.PREV_A = -1; + ColorTimeline.R = 1; + ColorTimeline.G = 2; + ColorTimeline.B = 3; + ColorTimeline.A = 4; return ColorTimeline; }(CurveTimeline)); - ColorTimeline.ENTRIES = 5; - ColorTimeline.PREV_TIME = -5; - ColorTimeline.PREV_R = -4; - ColorTimeline.PREV_G = -3; - ColorTimeline.PREV_B = -2; - ColorTimeline.PREV_A = -1; - ColorTimeline.R = 1; - ColorTimeline.G = 2; - ColorTimeline.B = 3; - ColorTimeline.A = 4; spine.ColorTimeline = ColorTimeline; var TwoColorTimeline = (function (_super) { __extends(TwoColorTimeline, _super); function TwoColorTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); } TwoColorTimeline.prototype.getPropertyId = function () { return (TimelineType.twoColor << 24) + this.slotIndex; @@ -523,24 +962,24 @@ var spine; dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); } }; + TwoColorTimeline.ENTRIES = 8; + TwoColorTimeline.PREV_TIME = -8; + TwoColorTimeline.PREV_R = -7; + TwoColorTimeline.PREV_G = -6; + TwoColorTimeline.PREV_B = -5; + TwoColorTimeline.PREV_A = -4; + TwoColorTimeline.PREV_R2 = -3; + TwoColorTimeline.PREV_G2 = -2; + TwoColorTimeline.PREV_B2 = -1; + TwoColorTimeline.R = 1; + TwoColorTimeline.G = 2; + TwoColorTimeline.B = 3; + TwoColorTimeline.A = 4; + TwoColorTimeline.R2 = 5; + TwoColorTimeline.G2 = 6; + TwoColorTimeline.B2 = 7; return TwoColorTimeline; }(CurveTimeline)); - TwoColorTimeline.ENTRIES = 8; - TwoColorTimeline.PREV_TIME = -8; - TwoColorTimeline.PREV_R = -7; - TwoColorTimeline.PREV_G = -6; - TwoColorTimeline.PREV_B = -5; - TwoColorTimeline.PREV_A = -4; - TwoColorTimeline.PREV_R2 = -3; - TwoColorTimeline.PREV_G2 = -2; - TwoColorTimeline.PREV_B2 = -1; - TwoColorTimeline.R = 1; - TwoColorTimeline.G = 2; - TwoColorTimeline.B = 3; - TwoColorTimeline.A = 4; - TwoColorTimeline.R2 = 5; - TwoColorTimeline.G2 = 6; - TwoColorTimeline.B2 = 7; spine.TwoColorTimeline = TwoColorTimeline; var AttachmentTimeline = (function () { function AttachmentTimeline(frameCount) { @@ -587,10 +1026,9 @@ var spine; var DeformTimeline = (function (_super) { __extends(DeformTimeline, _super); function DeformTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount); - _this.frameVertices = new Array(frameCount); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount); + this.frameVertices = new Array(frameCount); } DeformTimeline.prototype.getPropertyId = function () { return (TimelineType.deform << 24) + this.slotIndex; @@ -771,9 +1209,8 @@ var spine; var IkConstraintTimeline = (function (_super) { __extends(IkConstraintTimeline, _super); function IkConstraintTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); } IkConstraintTimeline.prototype.getPropertyId = function () { return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; @@ -821,21 +1258,20 @@ var spine; constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; } }; + IkConstraintTimeline.ENTRIES = 3; + IkConstraintTimeline.PREV_TIME = -3; + IkConstraintTimeline.PREV_MIX = -2; + IkConstraintTimeline.PREV_BEND_DIRECTION = -1; + IkConstraintTimeline.MIX = 1; + IkConstraintTimeline.BEND_DIRECTION = 2; return IkConstraintTimeline; }(CurveTimeline)); - IkConstraintTimeline.ENTRIES = 3; - IkConstraintTimeline.PREV_TIME = -3; - IkConstraintTimeline.PREV_MIX = -2; - IkConstraintTimeline.PREV_BEND_DIRECTION = -1; - IkConstraintTimeline.MIX = 1; - IkConstraintTimeline.BEND_DIRECTION = 2; spine.IkConstraintTimeline = IkConstraintTimeline; var TransformConstraintTimeline = (function (_super) { __extends(TransformConstraintTimeline, _super); function TransformConstraintTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); } TransformConstraintTimeline.prototype.getPropertyId = function () { return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; @@ -896,25 +1332,24 @@ var spine; constraint.shearMix += (shear - constraint.shearMix) * alpha; } }; + TransformConstraintTimeline.ENTRIES = 5; + TransformConstraintTimeline.PREV_TIME = -5; + TransformConstraintTimeline.PREV_ROTATE = -4; + TransformConstraintTimeline.PREV_TRANSLATE = -3; + TransformConstraintTimeline.PREV_SCALE = -2; + TransformConstraintTimeline.PREV_SHEAR = -1; + TransformConstraintTimeline.ROTATE = 1; + TransformConstraintTimeline.TRANSLATE = 2; + TransformConstraintTimeline.SCALE = 3; + TransformConstraintTimeline.SHEAR = 4; return TransformConstraintTimeline; }(CurveTimeline)); - TransformConstraintTimeline.ENTRIES = 5; - TransformConstraintTimeline.PREV_TIME = -5; - TransformConstraintTimeline.PREV_ROTATE = -4; - TransformConstraintTimeline.PREV_TRANSLATE = -3; - TransformConstraintTimeline.PREV_SCALE = -2; - TransformConstraintTimeline.PREV_SHEAR = -1; - TransformConstraintTimeline.ROTATE = 1; - TransformConstraintTimeline.TRANSLATE = 2; - TransformConstraintTimeline.SCALE = 3; - TransformConstraintTimeline.SHEAR = 4; spine.TransformConstraintTimeline = TransformConstraintTimeline; var PathConstraintPositionTimeline = (function (_super) { __extends(PathConstraintPositionTimeline, _super); function PathConstraintPositionTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); } PathConstraintPositionTimeline.prototype.getPropertyId = function () { return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; @@ -947,17 +1382,17 @@ var spine; else constraint.position += (position - constraint.position) * alpha; }; + PathConstraintPositionTimeline.ENTRIES = 2; + PathConstraintPositionTimeline.PREV_TIME = -2; + PathConstraintPositionTimeline.PREV_VALUE = -1; + PathConstraintPositionTimeline.VALUE = 1; return PathConstraintPositionTimeline; }(CurveTimeline)); - PathConstraintPositionTimeline.ENTRIES = 2; - PathConstraintPositionTimeline.PREV_TIME = -2; - PathConstraintPositionTimeline.PREV_VALUE = -1; - PathConstraintPositionTimeline.VALUE = 1; spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; var PathConstraintSpacingTimeline = (function (_super) { __extends(PathConstraintSpacingTimeline, _super); function PathConstraintSpacingTimeline(frameCount) { - return _super.call(this, frameCount) || this; + _super.call(this, frameCount); } PathConstraintSpacingTimeline.prototype.getPropertyId = function () { return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; @@ -991,9 +1426,8 @@ var spine; var PathConstraintMixTimeline = (function (_super) { __extends(PathConstraintMixTimeline, _super); function PathConstraintMixTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); } PathConstraintMixTimeline.prototype.getPropertyId = function () { return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; @@ -1037,14 +1471,14 @@ var spine; constraint.translateMix += (translate - constraint.translateMix) * alpha; } }; + PathConstraintMixTimeline.ENTRIES = 3; + PathConstraintMixTimeline.PREV_TIME = -3; + PathConstraintMixTimeline.PREV_ROTATE = -2; + PathConstraintMixTimeline.PREV_TRANSLATE = -1; + PathConstraintMixTimeline.ROTATE = 1; + PathConstraintMixTimeline.TRANSLATE = 2; return PathConstraintMixTimeline; }(CurveTimeline)); - PathConstraintMixTimeline.ENTRIES = 3; - PathConstraintMixTimeline.PREV_TIME = -3; - PathConstraintMixTimeline.PREV_ROTATE = -2; - PathConstraintMixTimeline.PREV_TRANSLATE = -1; - PathConstraintMixTimeline.ROTATE = 1; - PathConstraintMixTimeline.TRANSLATE = 2; spine.PathConstraintMixTimeline = PathConstraintMixTimeline; })(spine || (spine = {})); var spine; @@ -1138,10 +1572,12 @@ var spine; this._animationsChanged(); var events = this.events; var tracks = this.tracks; + var applied = false; for (var i = 0, n = tracks.length; i < n; i++) { var current = tracks[i]; if (current == null || current.delay > 0) continue; + applied = true; var mix = current.alpha; if (current.mixingFrom != null) mix *= this.applyMixingFrom(current, skeleton); @@ -1175,6 +1611,7 @@ var spine; current.nextTrackLast = current.trackTime; } this.queue.drain(); + return applied; }; AnimationState.prototype.applyMixingFrom = function (to, skeleton) { var from = to.mixingFrom; @@ -1200,7 +1637,7 @@ var spine; spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); var timelinesRotation = from.timelinesRotation; var first = false; - var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha; + var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; from.totalAlpha = 0; for (var i = 0; i < timelineCount; i++) { var timeline = timelines[i]; @@ -1530,13 +1967,13 @@ var spine; AnimationState.prototype.clearListenerNotifications = function () { this.queue.clear(); }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); + AnimationState.SUBSEQUENT = 0; + AnimationState.FIRST = 1; + AnimationState.DIP = 2; + AnimationState.DIP_MIX = 3; return AnimationState; }()); - AnimationState.emptyAnimation = new spine.Animation("", [], 0); - AnimationState.SUBSEQUENT = 0; - AnimationState.FIRST = 1; - AnimationState.DIP = 2; - AnimationState.DIP_MIX = 3; spine.AnimationState = AnimationState; var TrackEntry = (function () { function TrackEntry() { @@ -1714,7 +2151,6 @@ var spine; return EventQueue; }()); spine.EventQueue = EventQueue; - var EventType; (function (EventType) { EventType[EventType["start"] = 0] = "start"; EventType[EventType["interrupt"] = 1] = "interrupt"; @@ -1722,7 +2158,8 @@ var spine; EventType[EventType["dispose"] = 3] = "dispose"; EventType[EventType["complete"] = 4] = "complete"; EventType[EventType["event"] = 5] = "event"; - })(EventType = spine.EventType || (spine.EventType = {})); + })(spine.EventType || (spine.EventType = {})); + var EventType = spine.EventType; var AnimationStateAdapter2 = (function () { function AnimationStateAdapter2() { } @@ -1779,134 +2216,6 @@ var spine; spine.AnimationStateData = AnimationStateData; })(spine || (spine = {})); var spine; -(function (spine) { - var AssetManager = (function () { - function AssetManager(textureLoader, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.assets = {}; - this.errors = {}; - this.toLoad = 0; - this.loaded = 0; - this.textureLoader = textureLoader; - this.pathPrefix = pathPrefix; - } - AssetManager.prototype.loadText = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.assets[path] = request.responseText; - if (success) - success(path, request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - if (error) - error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); - } - _this.toLoad--; - _this.loaded++; - } - }; - request.open("GET", path, true); - request.send(); - }; - AssetManager.prototype.loadTexture = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = path; - }; - AssetManager.prototype.loadTextureData = function (path, data, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = data; - }; - AssetManager.prototype.get = function (path) { - path = this.pathPrefix + path; - return this.assets[path]; - }; - AssetManager.prototype.remove = function (path) { - path = this.pathPrefix + path; - var asset = this.assets[path]; - if (asset.dispose) - asset.dispose(); - this.assets[path] = null; - }; - AssetManager.prototype.removeAll = function () { - for (var key in this.assets) { - var asset = this.assets[key]; - if (asset.dispose) - asset.dispose(); - } - this.assets = {}; - }; - AssetManager.prototype.isLoadingComplete = function () { - return this.toLoad == 0; - }; - AssetManager.prototype.getToLoad = function () { - return this.toLoad; - }; - AssetManager.prototype.getLoaded = function () { - return this.loaded; - }; - AssetManager.prototype.dispose = function () { - this.removeAll(); - }; - AssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - AssetManager.prototype.getErrors = function () { - return this.errors; - }; - return AssetManager; - }()); - spine.AssetManager = AssetManager; -})(spine || (spine = {})); -var spine; (function (spine) { var AtlasAttachmentLoader = (function () { function AtlasAttachmentLoader(atlas) { @@ -1948,13 +2257,369 @@ var spine; })(spine || (spine = {})); var spine; (function (spine) { - var BlendMode; + var Attachment = (function () { + function Attachment(name) { + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return Attachment; + }()); + spine.Attachment = Attachment; + var VertexAttachment = (function (_super) { + __extends(VertexAttachment, _super); + function VertexAttachment(name) { + _super.call(this, name); + this.worldVerticesLength = 0; + } + VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { + count = offset + (count >> 1) * stride; + var skeleton = slot.bone.skeleton; + var deformArray = slot.attachmentVertices; + var vertices = this.vertices; + var bones = this.bones; + if (bones == null) { + if (deformArray.length > 0) + vertices = deformArray; + var bone = slot.bone; + var x = bone.worldX; + var y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { + var vx = vertices[v_1], vy = vertices[v_1 + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + } + return; + } + var v = 0, skip = 0; + for (var i = 0; i < start; i += 2) { + var n = bones[v]; + v += n + 1; + skip += n; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = offset, b = skip * 3; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + else { + var deform = deformArray; + for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3, f += 2) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + }; + VertexAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment; + }; + return VertexAttachment; + }(Attachment)); + spine.VertexAttachment = VertexAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + (function (AttachmentType) { + AttachmentType[AttachmentType["Region"] = 0] = "Region"; + AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; + AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; + AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; + AttachmentType[AttachmentType["Path"] = 4] = "Path"; + AttachmentType[AttachmentType["Point"] = 5] = "Point"; + })(spine.AttachmentType || (spine.AttachmentType = {})); + var AttachmentType = spine.AttachmentType; +})(spine || (spine = {})); +var spine; +(function (spine) { + var BoundingBoxAttachment = (function (_super) { + __extends(BoundingBoxAttachment, _super); + function BoundingBoxAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + } + return BoundingBoxAttachment; + }(spine.VertexAttachment)); + spine.BoundingBoxAttachment = BoundingBoxAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var ClippingAttachment = (function (_super) { + __extends(ClippingAttachment, _super); + function ClippingAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); + } + return ClippingAttachment; + }(spine.VertexAttachment)); + spine.ClippingAttachment = ClippingAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var MeshAttachment = (function (_super) { + __extends(MeshAttachment, _super); + function MeshAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + this.inheritDeform = false; + this.tempColor = new spine.Color(0, 0, 0, 0); + } + MeshAttachment.prototype.updateUVs = function () { + var u = 0, v = 0, width = 0, height = 0; + if (this.region == null) { + u = v = 0; + width = height = 1; + } + else { + u = this.region.u; + v = this.region.v; + width = this.region.u2 - u; + height = this.region.v2 - v; + } + var regionUVs = this.regionUVs; + if (this.uvs == null || this.uvs.length != regionUVs.length) + this.uvs = spine.Utils.newFloatArray(regionUVs.length); + var uvs = this.uvs; + if (this.region.rotate) { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); + }; + MeshAttachment.prototype.getParentMesh = function () { + return this.parentMesh; + }; + MeshAttachment.prototype.setParentMesh = function (parentMesh) { + this.parentMesh = parentMesh; + if (parentMesh != null) { + this.bones = parentMesh.bones; + this.vertices = parentMesh.vertices; + this.worldVerticesLength = parentMesh.worldVerticesLength; + this.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + this.worldVerticesLength = parentMesh.worldVerticesLength; + } + }; + return MeshAttachment; + }(spine.VertexAttachment)); + spine.MeshAttachment = MeshAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var PathAttachment = (function (_super) { + __extends(PathAttachment, _super); + function PathAttachment(name) { + _super.call(this, name); + this.closed = false; + this.constantSpeed = false; + this.color = new spine.Color(1, 1, 1, 1); + } + return PathAttachment; + }(spine.VertexAttachment)); + spine.PathAttachment = PathAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var PointAttachment = (function (_super) { + __extends(PointAttachment, _super); + function PointAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.38, 0.94, 0, 1); + } + PointAttachment.prototype.computeWorldPosition = function (bone, point) { + point.x = this.x * bone.a + this.y * bone.b + bone.worldX; + point.y = this.x * bone.c + this.y * bone.d + bone.worldY; + return point; + }; + PointAttachment.prototype.computeWorldRotation = function (bone) { + var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); + var x = cos * bone.a + sin * bone.b; + var y = cos * bone.c + sin * bone.d; + return Math.atan2(y, x) * spine.MathUtils.radDeg; + }; + return PointAttachment; + }(spine.VertexAttachment)); + spine.PointAttachment = PointAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var RegionAttachment = (function (_super) { + __extends(RegionAttachment, _super); + function RegionAttachment(name) { + _super.call(this, name); + this.x = 0; + this.y = 0; + this.scaleX = 1; + this.scaleY = 1; + this.rotation = 0; + this.width = 0; + this.height = 0; + this.color = new spine.Color(1, 1, 1, 1); + this.offset = spine.Utils.newFloatArray(8); + this.uvs = spine.Utils.newFloatArray(8); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.updateOffset = function () { + var regionScaleX = this.width / this.region.originalWidth * this.scaleX; + var regionScaleY = this.height / this.region.originalHeight * this.scaleY; + var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; + var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; + var localX2 = localX + this.region.width * regionScaleX; + var localY2 = localY + this.region.height * regionScaleY; + var radians = this.rotation * Math.PI / 180; + var cos = Math.cos(radians); + var sin = Math.sin(radians); + var localXCos = localX * cos + this.x; + var localXSin = localX * sin; + var localYCos = localY * cos + this.y; + var localYSin = localY * sin; + var localX2Cos = localX2 * cos + this.x; + var localX2Sin = localX2 * sin; + var localY2Cos = localY2 * cos + this.y; + var localY2Sin = localY2 * sin; + var offset = this.offset; + offset[RegionAttachment.OX1] = localXCos - localYSin; + offset[RegionAttachment.OY1] = localYCos + localXSin; + offset[RegionAttachment.OX2] = localXCos - localY2Sin; + offset[RegionAttachment.OY2] = localY2Cos + localXSin; + offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; + offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; + offset[RegionAttachment.OX4] = localX2Cos - localYSin; + offset[RegionAttachment.OY4] = localYCos + localX2Sin; + }; + RegionAttachment.prototype.setRegion = function (region) { + this.region = region; + var uvs = this.uvs; + if (region.rotate) { + uvs[2] = region.u; + uvs[3] = region.v2; + uvs[4] = region.u; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v; + uvs[0] = region.u2; + uvs[1] = region.v2; + } + else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; + } + }; + RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { + var vertexOffset = this.offset; + var x = bone.worldX, y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var offsetX = 0, offsetY = 0; + offsetX = vertexOffset[RegionAttachment.OX1]; + offsetY = vertexOffset[RegionAttachment.OY1]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX2]; + offsetY = vertexOffset[RegionAttachment.OY2]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX3]; + offsetY = vertexOffset[RegionAttachment.OY3]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX4]; + offsetY = vertexOffset[RegionAttachment.OY4]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + }; + RegionAttachment.OX1 = 0; + RegionAttachment.OY1 = 1; + RegionAttachment.OX2 = 2; + RegionAttachment.OY2 = 3; + RegionAttachment.OX3 = 4; + RegionAttachment.OY3 = 5; + RegionAttachment.OX4 = 6; + RegionAttachment.OY4 = 7; + RegionAttachment.X1 = 0; + RegionAttachment.Y1 = 1; + RegionAttachment.C1R = 2; + RegionAttachment.C1G = 3; + RegionAttachment.C1B = 4; + RegionAttachment.C1A = 5; + RegionAttachment.U1 = 6; + RegionAttachment.V1 = 7; + RegionAttachment.X2 = 8; + RegionAttachment.Y2 = 9; + RegionAttachment.C2R = 10; + RegionAttachment.C2G = 11; + RegionAttachment.C2B = 12; + RegionAttachment.C2A = 13; + RegionAttachment.U2 = 14; + RegionAttachment.V2 = 15; + RegionAttachment.X3 = 16; + RegionAttachment.Y3 = 17; + RegionAttachment.C3R = 18; + RegionAttachment.C3G = 19; + RegionAttachment.C3B = 20; + RegionAttachment.C3A = 21; + RegionAttachment.U3 = 22; + RegionAttachment.V3 = 23; + RegionAttachment.X4 = 24; + RegionAttachment.Y4 = 25; + RegionAttachment.C4R = 26; + RegionAttachment.C4G = 27; + RegionAttachment.C4B = 28; + RegionAttachment.C4A = 29; + RegionAttachment.U4 = 30; + RegionAttachment.V4 = 31; + return RegionAttachment; + }(spine.Attachment)); + spine.RegionAttachment = RegionAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { (function (BlendMode) { BlendMode[BlendMode["Normal"] = 0] = "Normal"; BlendMode[BlendMode["Additive"] = 1] = "Additive"; BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; BlendMode[BlendMode["Screen"] = 3] = "Screen"; - })(BlendMode = spine.BlendMode || (spine.BlendMode = {})); + })(spine.BlendMode || (spine.BlendMode = {})); + var BlendMode = spine.BlendMode; })(spine || (spine = {})); var spine; (function (spine) { @@ -2243,14 +2908,14 @@ var spine; return BoneData; }()); spine.BoneData = BoneData; - var TransformMode; (function (TransformMode) { TransformMode[TransformMode["Normal"] = 0] = "Normal"; TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; - })(TransformMode = spine.TransformMode || (spine.TransformMode = {})); + })(spine.TransformMode || (spine.TransformMode = {})); + var TransformMode = spine.TransformMode; })(spine || (spine = {})); var spine; (function (spine) { @@ -2415,21 +3080,24 @@ var spine; } var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; - var angle = Math.acos(-a * l1 / (aa - bb)); - x = a * Math.cos(angle) + l1; - y = b * Math.sin(angle); - d = x * x + y * y; - if (d < minDist) { - minAngle = angle; - minDist = d; - minX = x; - minY = y; - } - if (d > maxDist) { - maxAngle = angle; - maxDist = d; - maxX = x; - maxY = y; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } } if (dd <= (minDist + maxDist) / 2) { a1 = ta - Math.atan2(minY * bendDir, minX); @@ -2834,11 +3502,11 @@ var spine; PathConstraint.prototype.getOrder = function () { return this.data.order; }; + PathConstraint.NONE = -1; + PathConstraint.BEFORE = -2; + PathConstraint.AFTER = -3; return PathConstraint; }()); - PathConstraint.NONE = -1; - PathConstraint.BEFORE = -2; - PathConstraint.AFTER = -3; spine.PathConstraint = PathConstraint; })(spine || (spine = {})); var spine; @@ -2852,23 +3520,23 @@ var spine; return PathConstraintData; }()); spine.PathConstraintData = PathConstraintData; - var PositionMode; (function (PositionMode) { PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; PositionMode[PositionMode["Percent"] = 1] = "Percent"; - })(PositionMode = spine.PositionMode || (spine.PositionMode = {})); - var SpacingMode; + })(spine.PositionMode || (spine.PositionMode = {})); + var PositionMode = spine.PositionMode; (function (SpacingMode) { SpacingMode[SpacingMode["Length"] = 0] = "Length"; SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; - })(SpacingMode = spine.SpacingMode || (spine.SpacingMode = {})); - var RotateMode; + })(spine.SpacingMode || (spine.SpacingMode = {})); + var SpacingMode = spine.SpacingMode; (function (RotateMode) { RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; RotateMode[RotateMode["Chain"] = 1] = "Chain"; RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; - })(RotateMode = spine.RotateMode || (spine.RotateMode = {})); + })(spine.RotateMode || (spine.RotateMode = {})); + var RotateMode = spine.RotateMode; })(spine || (spine = {})); var spine; (function (spine) { @@ -4848,72 +5516,6 @@ var spine; spine.SlotData = SlotData; })(spine || (spine = {})); var spine; -(function (spine) { - var Texture = (function () { - function Texture(image) { - this._image = image; - } - Texture.prototype.getImage = function () { - return this._image; - }; - Texture.filterFromString = function (text) { - switch (text.toLowerCase()) { - case "nearest": return TextureFilter.Nearest; - case "linear": return TextureFilter.Linear; - case "mipmap": return TextureFilter.MipMap; - case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; - case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; - case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; - case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; - default: throw new Error("Unknown texture filter " + text); - } - }; - Texture.wrapFromString = function (text) { - switch (text.toLowerCase()) { - case "mirroredtepeat": return TextureWrap.MirroredRepeat; - case "clamptoedge": return TextureWrap.ClampToEdge; - case "repeat": return TextureWrap.Repeat; - default: throw new Error("Unknown texture wrap " + text); - } - }; - return Texture; - }()); - spine.Texture = Texture; - var TextureFilter; - (function (TextureFilter) { - TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; - TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; - TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; - TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; - TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; - TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; - TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; - })(TextureFilter = spine.TextureFilter || (spine.TextureFilter = {})); - var TextureWrap; - (function (TextureWrap) { - TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; - TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; - TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; - })(TextureWrap = spine.TextureWrap || (spine.TextureWrap = {})); - var TextureRegion = (function () { - function TextureRegion() { - this.u = 0; - this.v = 0; - this.u2 = 0; - this.v2 = 0; - this.width = 0; - this.height = 0; - this.rotate = false; - this.offsetX = 0; - this.offsetY = 0; - this.originalWidth = 0; - this.originalHeight = 0; - } - return TextureRegion; - }()); - spine.TextureRegion = TextureRegion; -})(spine || (spine = {})); -var spine; (function (spine) { var TextureAtlas = (function () { function TextureAtlas(atlasText, textureLoader) { @@ -5062,7 +5664,7 @@ var spine; var TextureAtlasRegion = (function (_super) { __extends(TextureAtlasRegion, _super); function TextureAtlasRegion() { - return _super !== null && _super.apply(this, arguments) || this; + _super.apply(this, arguments); } return TextureAtlasRegion; }(spine.TextureRegion)); @@ -5629,13 +6231,13 @@ var spine; this.a = 1; return this; }; + Color.WHITE = new Color(1, 1, 1, 1); + Color.RED = new Color(1, 0, 0, 1); + Color.GREEN = new Color(0, 1, 0, 1); + Color.BLUE = new Color(0, 0, 1, 1); + Color.MAGENTA = new Color(1, 0, 1, 1); return Color; }()); - Color.WHITE = new Color(1, 1, 1, 1); - Color.RED = new Color(1, 0, 0, 1); - Color.GREEN = new Color(0, 1, 0, 1); - Color.BLUE = new Color(0, 0, 1, 1); - Color.MAGENTA = new Color(1, 0, 1, 1); spine.Color = Color; var MathUtils = (function () { function MathUtils() { @@ -5663,14 +6265,14 @@ var spine; var y = Math.pow(Math.abs(x), 1 / 3); return x < 0 ? -y : y; }; + MathUtils.PI = 3.1415927; + MathUtils.PI2 = MathUtils.PI * 2; + MathUtils.radiansToDegrees = 180 / MathUtils.PI; + MathUtils.radDeg = MathUtils.radiansToDegrees; + MathUtils.degreesToRadians = MathUtils.PI / 180; + MathUtils.degRad = MathUtils.degreesToRadians; return MathUtils; }()); - MathUtils.PI = 3.1415927; - MathUtils.PI2 = MathUtils.PI * 2; - MathUtils.radiansToDegrees = 180 / MathUtils.PI; - MathUtils.radDeg = MathUtils.radiansToDegrees; - MathUtils.degreesToRadians = MathUtils.PI / 180; - MathUtils.degRad = MathUtils.degreesToRadians; spine.MathUtils = MathUtils; var Utils = (function () { function Utils() { @@ -5729,9 +6331,9 @@ var spine; Utils.toFloatArray = function (array) { return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; }; + Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; return Utils; }()); - Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; spine.Utils = Utils; var DebugUtils = (function () { function DebugUtils() { @@ -5867,621 +6469,4 @@ var spine; }()); spine.WindowedMean = WindowedMean; })(spine || (spine = {})); -var spine; -(function (spine) { - var Attachment = (function () { - function Attachment(name) { - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return Attachment; - }()); - spine.Attachment = Attachment; - var VertexAttachment = (function (_super) { - __extends(VertexAttachment, _super); - function VertexAttachment(name) { - var _this = _super.call(this, name) || this; - _this.worldVerticesLength = 0; - return _this; - } - VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { - count = offset + (count >> 1) * stride; - var skeleton = slot.bone.skeleton; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices; - var bones = this.bones; - if (bones == null) { - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - var x = bone.worldX; - var y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { - var vx = vertices[v_1], vy = vertices[v_1 + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - } - return; - } - var v = 0, skip = 0; - for (var i = 0; i < start; i += 2) { - var n = bones[v]; - v += n + 1; - skip += n; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = offset, b = skip * 3; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - else { - var deform = deformArray; - for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3, f += 2) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - }; - VertexAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment; - }; - return VertexAttachment; - }(Attachment)); - spine.VertexAttachment = VertexAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var AttachmentType; - (function (AttachmentType) { - AttachmentType[AttachmentType["Region"] = 0] = "Region"; - AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; - AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; - AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; - AttachmentType[AttachmentType["Path"] = 4] = "Path"; - AttachmentType[AttachmentType["Point"] = 5] = "Point"; - })(AttachmentType = spine.AttachmentType || (spine.AttachmentType = {})); -})(spine || (spine = {})); -var spine; -(function (spine) { - var BoundingBoxAttachment = (function (_super) { - __extends(BoundingBoxAttachment, _super); - function BoundingBoxAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(1, 1, 1, 1); - return _this; - } - return BoundingBoxAttachment; - }(spine.VertexAttachment)); - spine.BoundingBoxAttachment = BoundingBoxAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var ClippingAttachment = (function (_super) { - __extends(ClippingAttachment, _super); - function ClippingAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); - return _this; - } - return ClippingAttachment; - }(spine.VertexAttachment)); - spine.ClippingAttachment = ClippingAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var MeshAttachment = (function (_super) { - __extends(MeshAttachment, _super); - function MeshAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(1, 1, 1, 1); - _this.inheritDeform = false; - _this.tempColor = new spine.Color(0, 0, 0, 0); - return _this; - } - MeshAttachment.prototype.updateUVs = function () { - var u = 0, v = 0, width = 0, height = 0; - if (this.region == null) { - u = v = 0; - width = height = 1; - } - else { - u = this.region.u; - v = this.region.v; - width = this.region.u2 - u; - height = this.region.v2 - v; - } - var regionUVs = this.regionUVs; - if (this.uvs == null || this.uvs.length != regionUVs.length) - this.uvs = spine.Utils.newFloatArray(regionUVs.length); - var uvs = this.uvs; - if (this.region.rotate) { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i + 1] * width; - uvs[i + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i] * width; - uvs[i + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); - }; - MeshAttachment.prototype.getParentMesh = function () { - return this.parentMesh; - }; - MeshAttachment.prototype.setParentMesh = function (parentMesh) { - this.parentMesh = parentMesh; - if (parentMesh != null) { - this.bones = parentMesh.bones; - this.vertices = parentMesh.vertices; - this.worldVerticesLength = parentMesh.worldVerticesLength; - this.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - this.worldVerticesLength = parentMesh.worldVerticesLength; - } - }; - return MeshAttachment; - }(spine.VertexAttachment)); - spine.MeshAttachment = MeshAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var PathAttachment = (function (_super) { - __extends(PathAttachment, _super); - function PathAttachment(name) { - var _this = _super.call(this, name) || this; - _this.closed = false; - _this.constantSpeed = false; - _this.color = new spine.Color(1, 1, 1, 1); - return _this; - } - return PathAttachment; - }(spine.VertexAttachment)); - spine.PathAttachment = PathAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var PointAttachment = (function (_super) { - __extends(PointAttachment, _super); - function PointAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(0.38, 0.94, 0, 1); - return _this; - } - PointAttachment.prototype.computeWorldPosition = function (bone, point) { - point.x = this.x * bone.a + this.y * bone.b + bone.worldX; - point.y = this.x * bone.c + this.y * bone.d + bone.worldY; - return point; - }; - PointAttachment.prototype.computeWorldRotation = function (bone) { - var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); - var x = cos * bone.a + sin * bone.b; - var y = cos * bone.c + sin * bone.d; - return Math.atan2(y, x) * spine.MathUtils.radDeg; - }; - return PointAttachment; - }(spine.VertexAttachment)); - spine.PointAttachment = PointAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var RegionAttachment = (function (_super) { - __extends(RegionAttachment, _super); - function RegionAttachment(name) { - var _this = _super.call(this, name) || this; - _this.x = 0; - _this.y = 0; - _this.scaleX = 1; - _this.scaleY = 1; - _this.rotation = 0; - _this.width = 0; - _this.height = 0; - _this.color = new spine.Color(1, 1, 1, 1); - _this.offset = spine.Utils.newFloatArray(8); - _this.uvs = spine.Utils.newFloatArray(8); - _this.tempColor = new spine.Color(1, 1, 1, 1); - return _this; - } - RegionAttachment.prototype.updateOffset = function () { - var regionScaleX = this.width / this.region.originalWidth * this.scaleX; - var regionScaleY = this.height / this.region.originalHeight * this.scaleY; - var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; - var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; - var localX2 = localX + this.region.width * regionScaleX; - var localY2 = localY + this.region.height * regionScaleY; - var radians = this.rotation * Math.PI / 180; - var cos = Math.cos(radians); - var sin = Math.sin(radians); - var localXCos = localX * cos + this.x; - var localXSin = localX * sin; - var localYCos = localY * cos + this.y; - var localYSin = localY * sin; - var localX2Cos = localX2 * cos + this.x; - var localX2Sin = localX2 * sin; - var localY2Cos = localY2 * cos + this.y; - var localY2Sin = localY2 * sin; - var offset = this.offset; - offset[RegionAttachment.OX1] = localXCos - localYSin; - offset[RegionAttachment.OY1] = localYCos + localXSin; - offset[RegionAttachment.OX2] = localXCos - localY2Sin; - offset[RegionAttachment.OY2] = localY2Cos + localXSin; - offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; - offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; - offset[RegionAttachment.OX4] = localX2Cos - localYSin; - offset[RegionAttachment.OY4] = localYCos + localX2Sin; - }; - RegionAttachment.prototype.setRegion = function (region) { - this.region = region; - var uvs = this.uvs; - if (region.rotate) { - uvs[2] = region.u; - uvs[3] = region.v2; - uvs[4] = region.u; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v; - uvs[0] = region.u2; - uvs[1] = region.v2; - } - else { - uvs[0] = region.u; - uvs[1] = region.v2; - uvs[2] = region.u; - uvs[3] = region.v; - uvs[4] = region.u2; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v2; - } - }; - RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { - var vertexOffset = this.offset; - var x = bone.worldX, y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = vertexOffset[RegionAttachment.OX1]; - offsetY = vertexOffset[RegionAttachment.OY1]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX2]; - offsetY = vertexOffset[RegionAttachment.OY2]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX3]; - offsetY = vertexOffset[RegionAttachment.OY3]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX4]; - offsetY = vertexOffset[RegionAttachment.OY4]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - }; - return RegionAttachment; - }(spine.Attachment)); - RegionAttachment.OX1 = 0; - RegionAttachment.OY1 = 1; - RegionAttachment.OX2 = 2; - RegionAttachment.OY2 = 3; - RegionAttachment.OX3 = 4; - RegionAttachment.OY3 = 5; - RegionAttachment.OX4 = 6; - RegionAttachment.OY4 = 7; - RegionAttachment.X1 = 0; - RegionAttachment.Y1 = 1; - RegionAttachment.C1R = 2; - RegionAttachment.C1G = 3; - RegionAttachment.C1B = 4; - RegionAttachment.C1A = 5; - RegionAttachment.U1 = 6; - RegionAttachment.V1 = 7; - RegionAttachment.X2 = 8; - RegionAttachment.Y2 = 9; - RegionAttachment.C2R = 10; - RegionAttachment.C2G = 11; - RegionAttachment.C2B = 12; - RegionAttachment.C2A = 13; - RegionAttachment.U2 = 14; - RegionAttachment.V2 = 15; - RegionAttachment.X3 = 16; - RegionAttachment.Y3 = 17; - RegionAttachment.C3R = 18; - RegionAttachment.C3G = 19; - RegionAttachment.C3B = 20; - RegionAttachment.C3A = 21; - RegionAttachment.U3 = 22; - RegionAttachment.V3 = 23; - RegionAttachment.X4 = 24; - RegionAttachment.Y4 = 25; - RegionAttachment.C4R = 26; - RegionAttachment.C4G = 27; - RegionAttachment.C4B = 28; - RegionAttachment.C4A = 29; - RegionAttachment.U4 = 30; - RegionAttachment.V4 = 31; - spine.RegionAttachment = RegionAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var canvas; - (function (canvas) { - var AssetManager = (function (_super) { - __extends(AssetManager, _super); - function AssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - return _super.call(this, function (image) { return new spine.canvas.CanvasTexture(image); }, pathPrefix) || this; - } - return AssetManager; - }(spine.AssetManager)); - canvas.AssetManager = AssetManager; - })(canvas = spine.canvas || (spine.canvas = {})); -})(spine || (spine = {})); -var spine; -(function (spine) { - var canvas; - (function (canvas) { - var CanvasTexture = (function (_super) { - __extends(CanvasTexture, _super); - function CanvasTexture(image) { - return _super.call(this, image) || this; - } - CanvasTexture.prototype.setFilters = function (minFilter, magFilter) { }; - CanvasTexture.prototype.setWraps = function (uWrap, vWrap) { }; - CanvasTexture.prototype.dispose = function () { }; - return CanvasTexture; - }(spine.Texture)); - canvas.CanvasTexture = CanvasTexture; - })(canvas = spine.canvas || (spine.canvas = {})); -})(spine || (spine = {})); -var spine; -(function (spine) { - var canvas; - (function (canvas) { - var SkeletonRenderer = (function () { - function SkeletonRenderer(context) { - this.triangleRendering = false; - this.debugRendering = false; - this.vertices = spine.Utils.newFloatArray(8 * 1024); - this.tempColor = new spine.Color(); - this.ctx = context; - } - SkeletonRenderer.prototype.draw = function (skeleton) { - if (this.triangleRendering) - this.drawTriangles(skeleton); - else - this.drawImages(skeleton); - }; - SkeletonRenderer.prototype.drawImages = function (skeleton) { - var ctx = this.ctx; - var drawOrder = skeleton.drawOrder; - if (this.debugRendering) - ctx.strokeStyle = "green"; - ctx.save(); - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var regionAttachment = null; - var region = null; - var image = null; - if (attachment instanceof spine.RegionAttachment) { - regionAttachment = attachment; - region = regionAttachment.region; - image = region.texture.getImage(); - } - else - continue; - var skeleton_1 = slot.bone.skeleton; - var skeletonColor = skeleton_1.color; - var slotColor = slot.color; - var regionColor = regionAttachment.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * regionColor.r, skeletonColor.g * slotColor.g * regionColor.g, skeletonColor.b * slotColor.b * regionColor.b, alpha); - var att = attachment; - var bone = slot.bone; - var w = region.width; - var h = region.height; - ctx.save(); - ctx.transform(bone.a, bone.c, bone.b, bone.d, bone.worldX, bone.worldY); - ctx.translate(attachment.offset[0], attachment.offset[1]); - ctx.rotate(attachment.rotation * Math.PI / 180); - ctx.scale(attachment.scaleX, attachment.scaleY); - ctx.translate(w / 2, h / 2); - if (attachment.region.rotate) { - var t = w; - w = h; - h = t; - ctx.rotate(-Math.PI / 2); - } - ctx.scale(1, -1); - ctx.translate(-w / 2, -h / 2); - if (color.r != 1 || color.g != 1 || color.b != 1 || color.a != 1) { - ctx.globalAlpha = color.a; - } - ctx.drawImage(image, region.x, region.y, w, h, 0, 0, w, h); - if (this.debugRendering) - ctx.strokeRect(0, 0, w, h); - ctx.restore(); - } - ctx.restore(); - }; - SkeletonRenderer.prototype.drawTriangles = function (skeleton) { - var blendMode = null; - var vertices = this.vertices; - var triangles = null; - var drawOrder = skeleton.drawOrder; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var texture = null; - var region = null; - if (attachment instanceof spine.RegionAttachment) { - var regionAttachment = attachment; - vertices = this.computeRegionVertices(slot, regionAttachment, false); - triangles = SkeletonRenderer.QUAD_TRIANGLES; - region = regionAttachment.region; - texture = region.texture.getImage(); - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - vertices = this.computeMeshVertices(slot, mesh, false); - triangles = mesh.triangles; - texture = mesh.region.renderObject.texture.getImage(); - } - else - continue; - if (texture != null) { - var slotBlendMode = slot.data.blendMode; - if (slotBlendMode != blendMode) { - blendMode = slotBlendMode; - } - var ctx = this.ctx; - for (var j = 0; j < triangles.length; j += 3) { - var t1 = triangles[j] * 8, t2 = triangles[j + 1] * 8, t3 = triangles[j + 2] * 8; - var x0 = vertices[t1], y0 = vertices[t1 + 1], u0 = vertices[t1 + 6], v0 = vertices[t1 + 7]; - var x1 = vertices[t2], y1 = vertices[t2 + 1], u1 = vertices[t2 + 6], v1 = vertices[t2 + 7]; - var x2 = vertices[t3], y2 = vertices[t3 + 1], u2 = vertices[t3 + 6], v2 = vertices[t3 + 7]; - this.drawTriangle(texture, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); - if (this.debugRendering) { - ctx.strokeStyle = "green"; - ctx.beginPath(); - ctx.moveTo(x0, y0); - ctx.lineTo(x1, y1); - ctx.lineTo(x2, y2); - ctx.lineTo(x0, y0); - ctx.stroke(); - } - } - } - } - }; - SkeletonRenderer.prototype.drawTriangle = function (img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2) { - var ctx = this.ctx; - u0 *= img.width; - v0 *= img.height; - u1 *= img.width; - v1 *= img.height; - u2 *= img.width; - v2 *= img.height; - ctx.beginPath(); - ctx.moveTo(x0, y0); - ctx.lineTo(x1, y1); - ctx.lineTo(x2, y2); - ctx.closePath(); - x1 -= x0; - y1 -= y0; - x2 -= x0; - y2 -= y0; - u1 -= u0; - v1 -= v0; - u2 -= u0; - v2 -= v0; - var det = 1 / (u1 * v2 - u2 * v1), a = (v2 * x1 - v1 * x2) * det, b = (v2 * y1 - v1 * y2) * det, c = (u1 * x2 - u2 * x1) * det, d = (u1 * y2 - u2 * y1) * det, e = x0 - a * u0 - c * v0, f = y0 - b * u0 - d * v0; - ctx.save(); - ctx.transform(a, b, c, d, e, f); - ctx.clip(); - ctx.drawImage(img, 0, 0); - ctx.restore(); - }; - SkeletonRenderer.prototype.computeRegionVertices = function (slot, region, pma) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var regionColor = region.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var multiplier = pma ? alpha : 1; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); - region.computeWorldVertices(slot.bone, this.vertices, 0, SkeletonRenderer.VERTEX_SIZE); - var vertices = this.vertices; - var uvs = region.uvs; - vertices[spine.RegionAttachment.C1R] = color.r; - vertices[spine.RegionAttachment.C1G] = color.g; - vertices[spine.RegionAttachment.C1B] = color.b; - vertices[spine.RegionAttachment.C1A] = color.a; - vertices[spine.RegionAttachment.U1] = uvs[0]; - vertices[spine.RegionAttachment.V1] = uvs[1]; - vertices[spine.RegionAttachment.C2R] = color.r; - vertices[spine.RegionAttachment.C2G] = color.g; - vertices[spine.RegionAttachment.C2B] = color.b; - vertices[spine.RegionAttachment.C2A] = color.a; - vertices[spine.RegionAttachment.U2] = uvs[2]; - vertices[spine.RegionAttachment.V2] = uvs[3]; - vertices[spine.RegionAttachment.C3R] = color.r; - vertices[spine.RegionAttachment.C3G] = color.g; - vertices[spine.RegionAttachment.C3B] = color.b; - vertices[spine.RegionAttachment.C3A] = color.a; - vertices[spine.RegionAttachment.U3] = uvs[4]; - vertices[spine.RegionAttachment.V3] = uvs[5]; - vertices[spine.RegionAttachment.C4R] = color.r; - vertices[spine.RegionAttachment.C4G] = color.g; - vertices[spine.RegionAttachment.C4B] = color.b; - vertices[spine.RegionAttachment.C4A] = color.a; - vertices[spine.RegionAttachment.U4] = uvs[6]; - vertices[spine.RegionAttachment.V4] = uvs[7]; - return vertices; - }; - SkeletonRenderer.prototype.computeMeshVertices = function (slot, mesh, pma) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var regionColor = mesh.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var multiplier = pma ? alpha : 1; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); - var numVertices = mesh.worldVerticesLength / 2; - if (this.vertices.length < mesh.worldVerticesLength) { - this.vertices = spine.Utils.newFloatArray(mesh.worldVerticesLength); - } - var vertices = this.vertices; - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, SkeletonRenderer.VERTEX_SIZE); - var uvs = mesh.uvs; - for (var i = 0, n = numVertices, u = 0, v = 2; i < n; i++) { - vertices[v++] = color.r; - vertices[v++] = color.g; - vertices[v++] = color.b; - vertices[v++] = color.a; - vertices[v++] = uvs[u++]; - vertices[v++] = uvs[u++]; - v += 2; - } - return vertices; - }; - return SkeletonRenderer; - }()); - SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - SkeletonRenderer.VERTEX_SIZE = 2 + 2 + 4; - canvas.SkeletonRenderer = SkeletonRenderer; - })(canvas = spine.canvas || (spine.canvas = {})); -})(spine || (spine = {})); //# sourceMappingURL=spine-canvas.js.map \ No newline at end of file diff --git a/spine-ts/build/spine-canvas.js.map b/spine-ts/build/spine-canvas.js.map index d1867bf30..28ef2ea43 100644 --- a/spine-ts/build/spine-canvas.js.map +++ b/spine-ts/build/spine-canvas.js.map @@ -1 +1 @@ -{"version":3,"file":"spine-canvas.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../canvas/src/AssetManager.ts","../canvas/src/CanvasTexture.ts","../canvas/src/SkeletonRenderer.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"spine-canvas.js","sourceRoot":"","sources":["../core/src/AssetManager.ts","../canvas/src/AssetManager.ts","../core/src/Texture.ts","../canvas/src/CanvasTexture.ts","../canvas/src/SkeletonRenderer.ts","../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts"],"names":[],"mappings":"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AC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,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"} \ No newline at end of file diff --git a/spine-ts/build/spine-core.d.ts b/spine-ts/build/spine-core.d.ts index ec977b886..b56595de1 100644 --- a/spine-ts/build/spine-core.d.ts +++ b/spine-ts/build/spine-core.d.ts @@ -245,7 +245,7 @@ declare module spine { constructor(data: AnimationStateData); update(delta: number): void; updateMixingFrom(to: TrackEntry, delta: number): boolean; - apply(skeleton: Skeleton): void; + apply(skeleton: Skeleton): boolean; applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; queueEvents(entry: TrackEntry, animationTime: number): void; @@ -390,6 +390,154 @@ declare module spine { newClippingAttachment(skin: Skin, name: string): ClippingAttachment; } } +declare module spine { + abstract class Attachment { + name: string; + constructor(name: string); + } + abstract class VertexAttachment extends Attachment { + bones: Array; + vertices: ArrayLike; + worldVerticesLength: number; + constructor(name: string); + computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + } +} +declare module spine { + interface AttachmentLoader { + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } +} +declare module spine { + enum AttachmentType { + Region = 0, + BoundingBox = 1, + Mesh = 2, + LinkedMesh = 3, + Path = 4, + Point = 5, + } +} +declare module spine { + class BoundingBoxAttachment extends VertexAttachment { + color: Color; + constructor(name: string); + } +} +declare module spine { + class ClippingAttachment extends VertexAttachment { + endSlot: SlotData; + color: Color; + constructor(name: string); + } +} +declare module spine { + class MeshAttachment extends VertexAttachment { + region: TextureRegion; + path: string; + regionUVs: ArrayLike; + uvs: ArrayLike; + triangles: Array; + color: Color; + hullLength: number; + private parentMesh; + inheritDeform: boolean; + tempColor: Color; + constructor(name: string); + updateUVs(): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + getParentMesh(): MeshAttachment; + setParentMesh(parentMesh: MeshAttachment): void; + } +} +declare module spine { + class PathAttachment extends VertexAttachment { + lengths: Array; + closed: boolean; + constantSpeed: boolean; + color: Color; + constructor(name: string); + } +} +declare module spine { + class PointAttachment extends VertexAttachment { + x: number; + y: number; + rotation: number; + color: Color; + constructor(name: string); + computeWorldPosition(bone: Bone, point: Vector2): Vector2; + computeWorldRotation(bone: Bone): number; + } +} +declare module spine { + class RegionAttachment extends Attachment { + static OX1: number; + static OY1: number; + static OX2: number; + static OY2: number; + static OX3: number; + static OY3: number; + static OX4: number; + static OY4: number; + static X1: number; + static Y1: number; + static C1R: number; + static C1G: number; + static C1B: number; + static C1A: number; + static U1: number; + static V1: number; + static X2: number; + static Y2: number; + static C2R: number; + static C2G: number; + static C2B: number; + static C2A: number; + static U2: number; + static V2: number; + static X3: number; + static Y3: number; + static C3R: number; + static C3G: number; + static C3B: number; + static C3A: number; + static U3: number; + static V3: number; + static X4: number; + static Y4: number; + static C4R: number; + static C4G: number; + static C4B: number; + static C4A: number; + static U4: number; + static V4: number; + x: number; + y: number; + scaleX: number; + scaleY: number; + rotation: number; + width: number; + height: number; + color: Color; + path: string; + rendererObject: any; + region: TextureRegion; + offset: ArrayLike; + uvs: ArrayLike; + tempColor: Color; + constructor(name: string); + updateOffset(): void; + setRegion(region: TextureRegion): void; + computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; + } +} declare module spine { enum BlendMode { Normal = 0, @@ -1010,151 +1158,3 @@ declare module spine { getMean(): number; } } -declare module spine { - abstract class Attachment { - name: string; - constructor(name: string); - } - abstract class VertexAttachment extends Attachment { - bones: Array; - vertices: ArrayLike; - worldVerticesLength: number; - constructor(name: string); - computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - } -} -declare module spine { - interface AttachmentLoader { - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } -} -declare module spine { - enum AttachmentType { - Region = 0, - BoundingBox = 1, - Mesh = 2, - LinkedMesh = 3, - Path = 4, - Point = 5, - } -} -declare module spine { - class BoundingBoxAttachment extends VertexAttachment { - color: Color; - constructor(name: string); - } -} -declare module spine { - class ClippingAttachment extends VertexAttachment { - endSlot: SlotData; - color: Color; - constructor(name: string); - } -} -declare module spine { - class MeshAttachment extends VertexAttachment { - region: TextureRegion; - path: string; - regionUVs: ArrayLike; - uvs: ArrayLike; - triangles: Array; - color: Color; - hullLength: number; - private parentMesh; - inheritDeform: boolean; - tempColor: Color; - constructor(name: string); - updateUVs(): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - getParentMesh(): MeshAttachment; - setParentMesh(parentMesh: MeshAttachment): void; - } -} -declare module spine { - class PathAttachment extends VertexAttachment { - lengths: Array; - closed: boolean; - constantSpeed: boolean; - color: Color; - constructor(name: string); - } -} -declare module spine { - class PointAttachment extends VertexAttachment { - x: number; - y: number; - rotation: number; - color: Color; - constructor(name: string); - computeWorldPosition(bone: Bone, point: Vector2): Vector2; - computeWorldRotation(bone: Bone): number; - } -} -declare module spine { - class RegionAttachment extends Attachment { - static OX1: number; - static OY1: number; - static OX2: number; - static OY2: number; - static OX3: number; - static OY3: number; - static OX4: number; - static OY4: number; - static X1: number; - static Y1: number; - static C1R: number; - static C1G: number; - static C1B: number; - static C1A: number; - static U1: number; - static V1: number; - static X2: number; - static Y2: number; - static C2R: number; - static C2G: number; - static C2B: number; - static C2A: number; - static U2: number; - static V2: number; - static X3: number; - static Y3: number; - static C3R: number; - static C3G: number; - static C3B: number; - static C3A: number; - static U3: number; - static V3: number; - static X4: number; - static Y4: number; - static C4R: number; - static C4G: number; - static C4B: number; - static C4A: number; - static U4: number; - static V4: number; - x: number; - y: number; - scaleX: number; - scaleY: number; - rotation: number; - width: number; - height: number; - color: Color; - path: string; - rendererObject: any; - region: TextureRegion; - offset: ArrayLike; - uvs: ArrayLike; - tempColor: Color; - constructor(name: string); - updateOffset(): void; - setRegion(region: TextureRegion): void; - computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; - } -} diff --git a/spine-ts/build/spine-core.js b/spine-ts/build/spine-core.js index 45315c1ea..447fbf826 100644 --- a/spine-ts/build/spine-core.js +++ b/spine-ts/build/spine-core.js @@ -1,13 +1,8 @@ -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; var spine; (function (spine) { var Animation = (function () { @@ -58,7 +53,6 @@ var spine; return Animation; }()); spine.Animation = Animation; - var TimelineType; (function (TimelineType) { TimelineType[TimelineType["rotate"] = 0] = "rotate"; TimelineType[TimelineType["translate"] = 1] = "translate"; @@ -75,7 +69,8 @@ var spine; TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; - })(TimelineType = spine.TimelineType || (spine.TimelineType = {})); + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; var CurveTimeline = (function () { function CurveTimeline(frameCount) { if (frameCount <= 0) @@ -151,19 +146,18 @@ var spine; var y = curves[i - 1]; return y + (1 - y) * (percent - x) / (1 - x); }; + CurveTimeline.LINEAR = 0; + CurveTimeline.STEPPED = 1; + CurveTimeline.BEZIER = 2; + CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; return CurveTimeline; }()); - CurveTimeline.LINEAR = 0; - CurveTimeline.STEPPED = 1; - CurveTimeline.BEZIER = 2; - CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; spine.CurveTimeline = CurveTimeline; var RotateTimeline = (function (_super) { __extends(RotateTimeline, _super); function RotateTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount << 1); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount << 1); } RotateTimeline.prototype.getPropertyId = function () { return (TimelineType.rotate << 24) + this.boneIndex; @@ -208,19 +202,18 @@ var spine; bone.rotation += r * alpha; } }; + RotateTimeline.ENTRIES = 2; + RotateTimeline.PREV_TIME = -2; + RotateTimeline.PREV_ROTATION = -1; + RotateTimeline.ROTATION = 1; return RotateTimeline; }(CurveTimeline)); - RotateTimeline.ENTRIES = 2; - RotateTimeline.PREV_TIME = -2; - RotateTimeline.PREV_ROTATION = -1; - RotateTimeline.ROTATION = 1; spine.RotateTimeline = RotateTimeline; var TranslateTimeline = (function (_super) { __extends(TranslateTimeline, _super); function TranslateTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); } TranslateTimeline.prototype.getPropertyId = function () { return (TimelineType.translate << 24) + this.boneIndex; @@ -264,19 +257,19 @@ var spine; bone.y += (bone.data.y + y - bone.y) * alpha; } }; + TranslateTimeline.ENTRIES = 3; + TranslateTimeline.PREV_TIME = -3; + TranslateTimeline.PREV_X = -2; + TranslateTimeline.PREV_Y = -1; + TranslateTimeline.X = 1; + TranslateTimeline.Y = 2; return TranslateTimeline; }(CurveTimeline)); - TranslateTimeline.ENTRIES = 3; - TranslateTimeline.PREV_TIME = -3; - TranslateTimeline.PREV_X = -2; - TranslateTimeline.PREV_Y = -1; - TranslateTimeline.X = 1; - TranslateTimeline.Y = 2; spine.TranslateTimeline = TranslateTimeline; var ScaleTimeline = (function (_super) { __extends(ScaleTimeline, _super); function ScaleTimeline(frameCount) { - return _super.call(this, frameCount) || this; + _super.call(this, frameCount); } ScaleTimeline.prototype.getPropertyId = function () { return (TimelineType.scale << 24) + this.boneIndex; @@ -337,7 +330,7 @@ var spine; var ShearTimeline = (function (_super) { __extends(ShearTimeline, _super); function ShearTimeline(frameCount) { - return _super.call(this, frameCount) || this; + _super.call(this, frameCount); } ShearTimeline.prototype.getPropertyId = function () { return (TimelineType.shear << 24) + this.boneIndex; @@ -381,9 +374,8 @@ var spine; var ColorTimeline = (function (_super) { __extends(ColorTimeline, _super); function ColorTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); } ColorTimeline.prototype.getPropertyId = function () { return (TimelineType.color << 24) + this.slotIndex; @@ -434,25 +426,24 @@ var spine; color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); } }; + ColorTimeline.ENTRIES = 5; + ColorTimeline.PREV_TIME = -5; + ColorTimeline.PREV_R = -4; + ColorTimeline.PREV_G = -3; + ColorTimeline.PREV_B = -2; + ColorTimeline.PREV_A = -1; + ColorTimeline.R = 1; + ColorTimeline.G = 2; + ColorTimeline.B = 3; + ColorTimeline.A = 4; return ColorTimeline; }(CurveTimeline)); - ColorTimeline.ENTRIES = 5; - ColorTimeline.PREV_TIME = -5; - ColorTimeline.PREV_R = -4; - ColorTimeline.PREV_G = -3; - ColorTimeline.PREV_B = -2; - ColorTimeline.PREV_A = -1; - ColorTimeline.R = 1; - ColorTimeline.G = 2; - ColorTimeline.B = 3; - ColorTimeline.A = 4; spine.ColorTimeline = ColorTimeline; var TwoColorTimeline = (function (_super) { __extends(TwoColorTimeline, _super); function TwoColorTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); } TwoColorTimeline.prototype.getPropertyId = function () { return (TimelineType.twoColor << 24) + this.slotIndex; @@ -523,24 +514,24 @@ var spine; dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); } }; + TwoColorTimeline.ENTRIES = 8; + TwoColorTimeline.PREV_TIME = -8; + TwoColorTimeline.PREV_R = -7; + TwoColorTimeline.PREV_G = -6; + TwoColorTimeline.PREV_B = -5; + TwoColorTimeline.PREV_A = -4; + TwoColorTimeline.PREV_R2 = -3; + TwoColorTimeline.PREV_G2 = -2; + TwoColorTimeline.PREV_B2 = -1; + TwoColorTimeline.R = 1; + TwoColorTimeline.G = 2; + TwoColorTimeline.B = 3; + TwoColorTimeline.A = 4; + TwoColorTimeline.R2 = 5; + TwoColorTimeline.G2 = 6; + TwoColorTimeline.B2 = 7; return TwoColorTimeline; }(CurveTimeline)); - TwoColorTimeline.ENTRIES = 8; - TwoColorTimeline.PREV_TIME = -8; - TwoColorTimeline.PREV_R = -7; - TwoColorTimeline.PREV_G = -6; - TwoColorTimeline.PREV_B = -5; - TwoColorTimeline.PREV_A = -4; - TwoColorTimeline.PREV_R2 = -3; - TwoColorTimeline.PREV_G2 = -2; - TwoColorTimeline.PREV_B2 = -1; - TwoColorTimeline.R = 1; - TwoColorTimeline.G = 2; - TwoColorTimeline.B = 3; - TwoColorTimeline.A = 4; - TwoColorTimeline.R2 = 5; - TwoColorTimeline.G2 = 6; - TwoColorTimeline.B2 = 7; spine.TwoColorTimeline = TwoColorTimeline; var AttachmentTimeline = (function () { function AttachmentTimeline(frameCount) { @@ -587,10 +578,9 @@ var spine; var DeformTimeline = (function (_super) { __extends(DeformTimeline, _super); function DeformTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount); - _this.frameVertices = new Array(frameCount); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount); + this.frameVertices = new Array(frameCount); } DeformTimeline.prototype.getPropertyId = function () { return (TimelineType.deform << 24) + this.slotIndex; @@ -771,9 +761,8 @@ var spine; var IkConstraintTimeline = (function (_super) { __extends(IkConstraintTimeline, _super); function IkConstraintTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); } IkConstraintTimeline.prototype.getPropertyId = function () { return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; @@ -821,21 +810,20 @@ var spine; constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; } }; + IkConstraintTimeline.ENTRIES = 3; + IkConstraintTimeline.PREV_TIME = -3; + IkConstraintTimeline.PREV_MIX = -2; + IkConstraintTimeline.PREV_BEND_DIRECTION = -1; + IkConstraintTimeline.MIX = 1; + IkConstraintTimeline.BEND_DIRECTION = 2; return IkConstraintTimeline; }(CurveTimeline)); - IkConstraintTimeline.ENTRIES = 3; - IkConstraintTimeline.PREV_TIME = -3; - IkConstraintTimeline.PREV_MIX = -2; - IkConstraintTimeline.PREV_BEND_DIRECTION = -1; - IkConstraintTimeline.MIX = 1; - IkConstraintTimeline.BEND_DIRECTION = 2; spine.IkConstraintTimeline = IkConstraintTimeline; var TransformConstraintTimeline = (function (_super) { __extends(TransformConstraintTimeline, _super); function TransformConstraintTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); } TransformConstraintTimeline.prototype.getPropertyId = function () { return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; @@ -896,25 +884,24 @@ var spine; constraint.shearMix += (shear - constraint.shearMix) * alpha; } }; + TransformConstraintTimeline.ENTRIES = 5; + TransformConstraintTimeline.PREV_TIME = -5; + TransformConstraintTimeline.PREV_ROTATE = -4; + TransformConstraintTimeline.PREV_TRANSLATE = -3; + TransformConstraintTimeline.PREV_SCALE = -2; + TransformConstraintTimeline.PREV_SHEAR = -1; + TransformConstraintTimeline.ROTATE = 1; + TransformConstraintTimeline.TRANSLATE = 2; + TransformConstraintTimeline.SCALE = 3; + TransformConstraintTimeline.SHEAR = 4; return TransformConstraintTimeline; }(CurveTimeline)); - TransformConstraintTimeline.ENTRIES = 5; - TransformConstraintTimeline.PREV_TIME = -5; - TransformConstraintTimeline.PREV_ROTATE = -4; - TransformConstraintTimeline.PREV_TRANSLATE = -3; - TransformConstraintTimeline.PREV_SCALE = -2; - TransformConstraintTimeline.PREV_SHEAR = -1; - TransformConstraintTimeline.ROTATE = 1; - TransformConstraintTimeline.TRANSLATE = 2; - TransformConstraintTimeline.SCALE = 3; - TransformConstraintTimeline.SHEAR = 4; spine.TransformConstraintTimeline = TransformConstraintTimeline; var PathConstraintPositionTimeline = (function (_super) { __extends(PathConstraintPositionTimeline, _super); function PathConstraintPositionTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); } PathConstraintPositionTimeline.prototype.getPropertyId = function () { return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; @@ -947,17 +934,17 @@ var spine; else constraint.position += (position - constraint.position) * alpha; }; + PathConstraintPositionTimeline.ENTRIES = 2; + PathConstraintPositionTimeline.PREV_TIME = -2; + PathConstraintPositionTimeline.PREV_VALUE = -1; + PathConstraintPositionTimeline.VALUE = 1; return PathConstraintPositionTimeline; }(CurveTimeline)); - PathConstraintPositionTimeline.ENTRIES = 2; - PathConstraintPositionTimeline.PREV_TIME = -2; - PathConstraintPositionTimeline.PREV_VALUE = -1; - PathConstraintPositionTimeline.VALUE = 1; spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; var PathConstraintSpacingTimeline = (function (_super) { __extends(PathConstraintSpacingTimeline, _super); function PathConstraintSpacingTimeline(frameCount) { - return _super.call(this, frameCount) || this; + _super.call(this, frameCount); } PathConstraintSpacingTimeline.prototype.getPropertyId = function () { return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; @@ -991,9 +978,8 @@ var spine; var PathConstraintMixTimeline = (function (_super) { __extends(PathConstraintMixTimeline, _super); function PathConstraintMixTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); } PathConstraintMixTimeline.prototype.getPropertyId = function () { return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; @@ -1037,14 +1023,14 @@ var spine; constraint.translateMix += (translate - constraint.translateMix) * alpha; } }; + PathConstraintMixTimeline.ENTRIES = 3; + PathConstraintMixTimeline.PREV_TIME = -3; + PathConstraintMixTimeline.PREV_ROTATE = -2; + PathConstraintMixTimeline.PREV_TRANSLATE = -1; + PathConstraintMixTimeline.ROTATE = 1; + PathConstraintMixTimeline.TRANSLATE = 2; return PathConstraintMixTimeline; }(CurveTimeline)); - PathConstraintMixTimeline.ENTRIES = 3; - PathConstraintMixTimeline.PREV_TIME = -3; - PathConstraintMixTimeline.PREV_ROTATE = -2; - PathConstraintMixTimeline.PREV_TRANSLATE = -1; - PathConstraintMixTimeline.ROTATE = 1; - PathConstraintMixTimeline.TRANSLATE = 2; spine.PathConstraintMixTimeline = PathConstraintMixTimeline; })(spine || (spine = {})); var spine; @@ -1138,10 +1124,12 @@ var spine; this._animationsChanged(); var events = this.events; var tracks = this.tracks; + var applied = false; for (var i = 0, n = tracks.length; i < n; i++) { var current = tracks[i]; if (current == null || current.delay > 0) continue; + applied = true; var mix = current.alpha; if (current.mixingFrom != null) mix *= this.applyMixingFrom(current, skeleton); @@ -1175,6 +1163,7 @@ var spine; current.nextTrackLast = current.trackTime; } this.queue.drain(); + return applied; }; AnimationState.prototype.applyMixingFrom = function (to, skeleton) { var from = to.mixingFrom; @@ -1200,7 +1189,7 @@ var spine; spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); var timelinesRotation = from.timelinesRotation; var first = false; - var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha; + var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; from.totalAlpha = 0; for (var i = 0; i < timelineCount; i++) { var timeline = timelines[i]; @@ -1530,13 +1519,13 @@ var spine; AnimationState.prototype.clearListenerNotifications = function () { this.queue.clear(); }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); + AnimationState.SUBSEQUENT = 0; + AnimationState.FIRST = 1; + AnimationState.DIP = 2; + AnimationState.DIP_MIX = 3; return AnimationState; }()); - AnimationState.emptyAnimation = new spine.Animation("", [], 0); - AnimationState.SUBSEQUENT = 0; - AnimationState.FIRST = 1; - AnimationState.DIP = 2; - AnimationState.DIP_MIX = 3; spine.AnimationState = AnimationState; var TrackEntry = (function () { function TrackEntry() { @@ -1714,7 +1703,6 @@ var spine; return EventQueue; }()); spine.EventQueue = EventQueue; - var EventType; (function (EventType) { EventType[EventType["start"] = 0] = "start"; EventType[EventType["interrupt"] = 1] = "interrupt"; @@ -1722,7 +1710,8 @@ var spine; EventType[EventType["dispose"] = 3] = "dispose"; EventType[EventType["complete"] = 4] = "complete"; EventType[EventType["event"] = 5] = "event"; - })(EventType = spine.EventType || (spine.EventType = {})); + })(spine.EventType || (spine.EventType = {})); + var EventType = spine.EventType; var AnimationStateAdapter2 = (function () { function AnimationStateAdapter2() { } @@ -1948,13 +1937,369 @@ var spine; })(spine || (spine = {})); var spine; (function (spine) { - var BlendMode; + var Attachment = (function () { + function Attachment(name) { + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return Attachment; + }()); + spine.Attachment = Attachment; + var VertexAttachment = (function (_super) { + __extends(VertexAttachment, _super); + function VertexAttachment(name) { + _super.call(this, name); + this.worldVerticesLength = 0; + } + VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { + count = offset + (count >> 1) * stride; + var skeleton = slot.bone.skeleton; + var deformArray = slot.attachmentVertices; + var vertices = this.vertices; + var bones = this.bones; + if (bones == null) { + if (deformArray.length > 0) + vertices = deformArray; + var bone = slot.bone; + var x = bone.worldX; + var y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { + var vx = vertices[v_1], vy = vertices[v_1 + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + } + return; + } + var v = 0, skip = 0; + for (var i = 0; i < start; i += 2) { + var n = bones[v]; + v += n + 1; + skip += n; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = offset, b = skip * 3; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + else { + var deform = deformArray; + for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3, f += 2) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + }; + VertexAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment; + }; + return VertexAttachment; + }(Attachment)); + spine.VertexAttachment = VertexAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + (function (AttachmentType) { + AttachmentType[AttachmentType["Region"] = 0] = "Region"; + AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; + AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; + AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; + AttachmentType[AttachmentType["Path"] = 4] = "Path"; + AttachmentType[AttachmentType["Point"] = 5] = "Point"; + })(spine.AttachmentType || (spine.AttachmentType = {})); + var AttachmentType = spine.AttachmentType; +})(spine || (spine = {})); +var spine; +(function (spine) { + var BoundingBoxAttachment = (function (_super) { + __extends(BoundingBoxAttachment, _super); + function BoundingBoxAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + } + return BoundingBoxAttachment; + }(spine.VertexAttachment)); + spine.BoundingBoxAttachment = BoundingBoxAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var ClippingAttachment = (function (_super) { + __extends(ClippingAttachment, _super); + function ClippingAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); + } + return ClippingAttachment; + }(spine.VertexAttachment)); + spine.ClippingAttachment = ClippingAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var MeshAttachment = (function (_super) { + __extends(MeshAttachment, _super); + function MeshAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + this.inheritDeform = false; + this.tempColor = new spine.Color(0, 0, 0, 0); + } + MeshAttachment.prototype.updateUVs = function () { + var u = 0, v = 0, width = 0, height = 0; + if (this.region == null) { + u = v = 0; + width = height = 1; + } + else { + u = this.region.u; + v = this.region.v; + width = this.region.u2 - u; + height = this.region.v2 - v; + } + var regionUVs = this.regionUVs; + if (this.uvs == null || this.uvs.length != regionUVs.length) + this.uvs = spine.Utils.newFloatArray(regionUVs.length); + var uvs = this.uvs; + if (this.region.rotate) { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); + }; + MeshAttachment.prototype.getParentMesh = function () { + return this.parentMesh; + }; + MeshAttachment.prototype.setParentMesh = function (parentMesh) { + this.parentMesh = parentMesh; + if (parentMesh != null) { + this.bones = parentMesh.bones; + this.vertices = parentMesh.vertices; + this.worldVerticesLength = parentMesh.worldVerticesLength; + this.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + this.worldVerticesLength = parentMesh.worldVerticesLength; + } + }; + return MeshAttachment; + }(spine.VertexAttachment)); + spine.MeshAttachment = MeshAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var PathAttachment = (function (_super) { + __extends(PathAttachment, _super); + function PathAttachment(name) { + _super.call(this, name); + this.closed = false; + this.constantSpeed = false; + this.color = new spine.Color(1, 1, 1, 1); + } + return PathAttachment; + }(spine.VertexAttachment)); + spine.PathAttachment = PathAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var PointAttachment = (function (_super) { + __extends(PointAttachment, _super); + function PointAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.38, 0.94, 0, 1); + } + PointAttachment.prototype.computeWorldPosition = function (bone, point) { + point.x = this.x * bone.a + this.y * bone.b + bone.worldX; + point.y = this.x * bone.c + this.y * bone.d + bone.worldY; + return point; + }; + PointAttachment.prototype.computeWorldRotation = function (bone) { + var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); + var x = cos * bone.a + sin * bone.b; + var y = cos * bone.c + sin * bone.d; + return Math.atan2(y, x) * spine.MathUtils.radDeg; + }; + return PointAttachment; + }(spine.VertexAttachment)); + spine.PointAttachment = PointAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var RegionAttachment = (function (_super) { + __extends(RegionAttachment, _super); + function RegionAttachment(name) { + _super.call(this, name); + this.x = 0; + this.y = 0; + this.scaleX = 1; + this.scaleY = 1; + this.rotation = 0; + this.width = 0; + this.height = 0; + this.color = new spine.Color(1, 1, 1, 1); + this.offset = spine.Utils.newFloatArray(8); + this.uvs = spine.Utils.newFloatArray(8); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.updateOffset = function () { + var regionScaleX = this.width / this.region.originalWidth * this.scaleX; + var regionScaleY = this.height / this.region.originalHeight * this.scaleY; + var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; + var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; + var localX2 = localX + this.region.width * regionScaleX; + var localY2 = localY + this.region.height * regionScaleY; + var radians = this.rotation * Math.PI / 180; + var cos = Math.cos(radians); + var sin = Math.sin(radians); + var localXCos = localX * cos + this.x; + var localXSin = localX * sin; + var localYCos = localY * cos + this.y; + var localYSin = localY * sin; + var localX2Cos = localX2 * cos + this.x; + var localX2Sin = localX2 * sin; + var localY2Cos = localY2 * cos + this.y; + var localY2Sin = localY2 * sin; + var offset = this.offset; + offset[RegionAttachment.OX1] = localXCos - localYSin; + offset[RegionAttachment.OY1] = localYCos + localXSin; + offset[RegionAttachment.OX2] = localXCos - localY2Sin; + offset[RegionAttachment.OY2] = localY2Cos + localXSin; + offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; + offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; + offset[RegionAttachment.OX4] = localX2Cos - localYSin; + offset[RegionAttachment.OY4] = localYCos + localX2Sin; + }; + RegionAttachment.prototype.setRegion = function (region) { + this.region = region; + var uvs = this.uvs; + if (region.rotate) { + uvs[2] = region.u; + uvs[3] = region.v2; + uvs[4] = region.u; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v; + uvs[0] = region.u2; + uvs[1] = region.v2; + } + else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; + } + }; + RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { + var vertexOffset = this.offset; + var x = bone.worldX, y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var offsetX = 0, offsetY = 0; + offsetX = vertexOffset[RegionAttachment.OX1]; + offsetY = vertexOffset[RegionAttachment.OY1]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX2]; + offsetY = vertexOffset[RegionAttachment.OY2]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX3]; + offsetY = vertexOffset[RegionAttachment.OY3]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX4]; + offsetY = vertexOffset[RegionAttachment.OY4]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + }; + RegionAttachment.OX1 = 0; + RegionAttachment.OY1 = 1; + RegionAttachment.OX2 = 2; + RegionAttachment.OY2 = 3; + RegionAttachment.OX3 = 4; + RegionAttachment.OY3 = 5; + RegionAttachment.OX4 = 6; + RegionAttachment.OY4 = 7; + RegionAttachment.X1 = 0; + RegionAttachment.Y1 = 1; + RegionAttachment.C1R = 2; + RegionAttachment.C1G = 3; + RegionAttachment.C1B = 4; + RegionAttachment.C1A = 5; + RegionAttachment.U1 = 6; + RegionAttachment.V1 = 7; + RegionAttachment.X2 = 8; + RegionAttachment.Y2 = 9; + RegionAttachment.C2R = 10; + RegionAttachment.C2G = 11; + RegionAttachment.C2B = 12; + RegionAttachment.C2A = 13; + RegionAttachment.U2 = 14; + RegionAttachment.V2 = 15; + RegionAttachment.X3 = 16; + RegionAttachment.Y3 = 17; + RegionAttachment.C3R = 18; + RegionAttachment.C3G = 19; + RegionAttachment.C3B = 20; + RegionAttachment.C3A = 21; + RegionAttachment.U3 = 22; + RegionAttachment.V3 = 23; + RegionAttachment.X4 = 24; + RegionAttachment.Y4 = 25; + RegionAttachment.C4R = 26; + RegionAttachment.C4G = 27; + RegionAttachment.C4B = 28; + RegionAttachment.C4A = 29; + RegionAttachment.U4 = 30; + RegionAttachment.V4 = 31; + return RegionAttachment; + }(spine.Attachment)); + spine.RegionAttachment = RegionAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { (function (BlendMode) { BlendMode[BlendMode["Normal"] = 0] = "Normal"; BlendMode[BlendMode["Additive"] = 1] = "Additive"; BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; BlendMode[BlendMode["Screen"] = 3] = "Screen"; - })(BlendMode = spine.BlendMode || (spine.BlendMode = {})); + })(spine.BlendMode || (spine.BlendMode = {})); + var BlendMode = spine.BlendMode; })(spine || (spine = {})); var spine; (function (spine) { @@ -2243,14 +2588,14 @@ var spine; return BoneData; }()); spine.BoneData = BoneData; - var TransformMode; (function (TransformMode) { TransformMode[TransformMode["Normal"] = 0] = "Normal"; TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; - })(TransformMode = spine.TransformMode || (spine.TransformMode = {})); + })(spine.TransformMode || (spine.TransformMode = {})); + var TransformMode = spine.TransformMode; })(spine || (spine = {})); var spine; (function (spine) { @@ -2415,21 +2760,24 @@ var spine; } var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; - var angle = Math.acos(-a * l1 / (aa - bb)); - x = a * Math.cos(angle) + l1; - y = b * Math.sin(angle); - d = x * x + y * y; - if (d < minDist) { - minAngle = angle; - minDist = d; - minX = x; - minY = y; - } - if (d > maxDist) { - maxAngle = angle; - maxDist = d; - maxX = x; - maxY = y; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } } if (dd <= (minDist + maxDist) / 2) { a1 = ta - Math.atan2(minY * bendDir, minX); @@ -2834,11 +3182,11 @@ var spine; PathConstraint.prototype.getOrder = function () { return this.data.order; }; + PathConstraint.NONE = -1; + PathConstraint.BEFORE = -2; + PathConstraint.AFTER = -3; return PathConstraint; }()); - PathConstraint.NONE = -1; - PathConstraint.BEFORE = -2; - PathConstraint.AFTER = -3; spine.PathConstraint = PathConstraint; })(spine || (spine = {})); var spine; @@ -2852,23 +3200,23 @@ var spine; return PathConstraintData; }()); spine.PathConstraintData = PathConstraintData; - var PositionMode; (function (PositionMode) { PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; PositionMode[PositionMode["Percent"] = 1] = "Percent"; - })(PositionMode = spine.PositionMode || (spine.PositionMode = {})); - var SpacingMode; + })(spine.PositionMode || (spine.PositionMode = {})); + var PositionMode = spine.PositionMode; (function (SpacingMode) { SpacingMode[SpacingMode["Length"] = 0] = "Length"; SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; - })(SpacingMode = spine.SpacingMode || (spine.SpacingMode = {})); - var RotateMode; + })(spine.SpacingMode || (spine.SpacingMode = {})); + var SpacingMode = spine.SpacingMode; (function (RotateMode) { RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; RotateMode[RotateMode["Chain"] = 1] = "Chain"; RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; - })(RotateMode = spine.RotateMode || (spine.RotateMode = {})); + })(spine.RotateMode || (spine.RotateMode = {})); + var RotateMode = spine.RotateMode; })(spine || (spine = {})); var spine; (function (spine) { @@ -4879,7 +5227,6 @@ var spine; return Texture; }()); spine.Texture = Texture; - var TextureFilter; (function (TextureFilter) { TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; @@ -4888,13 +5235,14 @@ var spine; TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; - })(TextureFilter = spine.TextureFilter || (spine.TextureFilter = {})); - var TextureWrap; + })(spine.TextureFilter || (spine.TextureFilter = {})); + var TextureFilter = spine.TextureFilter; (function (TextureWrap) { TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; - })(TextureWrap = spine.TextureWrap || (spine.TextureWrap = {})); + })(spine.TextureWrap || (spine.TextureWrap = {})); + var TextureWrap = spine.TextureWrap; var TextureRegion = (function () { function TextureRegion() { this.u = 0; @@ -5062,7 +5410,7 @@ var spine; var TextureAtlasRegion = (function (_super) { __extends(TextureAtlasRegion, _super); function TextureAtlasRegion() { - return _super !== null && _super.apply(this, arguments) || this; + _super.apply(this, arguments); } return TextureAtlasRegion; }(spine.TextureRegion)); @@ -5629,13 +5977,13 @@ var spine; this.a = 1; return this; }; + Color.WHITE = new Color(1, 1, 1, 1); + Color.RED = new Color(1, 0, 0, 1); + Color.GREEN = new Color(0, 1, 0, 1); + Color.BLUE = new Color(0, 0, 1, 1); + Color.MAGENTA = new Color(1, 0, 1, 1); return Color; }()); - Color.WHITE = new Color(1, 1, 1, 1); - Color.RED = new Color(1, 0, 0, 1); - Color.GREEN = new Color(0, 1, 0, 1); - Color.BLUE = new Color(0, 0, 1, 1); - Color.MAGENTA = new Color(1, 0, 1, 1); spine.Color = Color; var MathUtils = (function () { function MathUtils() { @@ -5663,14 +6011,14 @@ var spine; var y = Math.pow(Math.abs(x), 1 / 3); return x < 0 ? -y : y; }; + MathUtils.PI = 3.1415927; + MathUtils.PI2 = MathUtils.PI * 2; + MathUtils.radiansToDegrees = 180 / MathUtils.PI; + MathUtils.radDeg = MathUtils.radiansToDegrees; + MathUtils.degreesToRadians = MathUtils.PI / 180; + MathUtils.degRad = MathUtils.degreesToRadians; return MathUtils; }()); - MathUtils.PI = 3.1415927; - MathUtils.PI2 = MathUtils.PI * 2; - MathUtils.radiansToDegrees = 180 / MathUtils.PI; - MathUtils.radDeg = MathUtils.radiansToDegrees; - MathUtils.degreesToRadians = MathUtils.PI / 180; - MathUtils.degRad = MathUtils.degreesToRadians; spine.MathUtils = MathUtils; var Utils = (function () { function Utils() { @@ -5729,9 +6077,9 @@ var spine; Utils.toFloatArray = function (array) { return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; }; + Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; return Utils; }()); - Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; spine.Utils = Utils; var DebugUtils = (function () { function DebugUtils() { @@ -5867,367 +6215,4 @@ var spine; }()); spine.WindowedMean = WindowedMean; })(spine || (spine = {})); -var spine; -(function (spine) { - var Attachment = (function () { - function Attachment(name) { - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return Attachment; - }()); - spine.Attachment = Attachment; - var VertexAttachment = (function (_super) { - __extends(VertexAttachment, _super); - function VertexAttachment(name) { - var _this = _super.call(this, name) || this; - _this.worldVerticesLength = 0; - return _this; - } - VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { - count = offset + (count >> 1) * stride; - var skeleton = slot.bone.skeleton; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices; - var bones = this.bones; - if (bones == null) { - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - var x = bone.worldX; - var y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { - var vx = vertices[v_1], vy = vertices[v_1 + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - } - return; - } - var v = 0, skip = 0; - for (var i = 0; i < start; i += 2) { - var n = bones[v]; - v += n + 1; - skip += n; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = offset, b = skip * 3; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - else { - var deform = deformArray; - for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3, f += 2) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - }; - VertexAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment; - }; - return VertexAttachment; - }(Attachment)); - spine.VertexAttachment = VertexAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var AttachmentType; - (function (AttachmentType) { - AttachmentType[AttachmentType["Region"] = 0] = "Region"; - AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; - AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; - AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; - AttachmentType[AttachmentType["Path"] = 4] = "Path"; - AttachmentType[AttachmentType["Point"] = 5] = "Point"; - })(AttachmentType = spine.AttachmentType || (spine.AttachmentType = {})); -})(spine || (spine = {})); -var spine; -(function (spine) { - var BoundingBoxAttachment = (function (_super) { - __extends(BoundingBoxAttachment, _super); - function BoundingBoxAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(1, 1, 1, 1); - return _this; - } - return BoundingBoxAttachment; - }(spine.VertexAttachment)); - spine.BoundingBoxAttachment = BoundingBoxAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var ClippingAttachment = (function (_super) { - __extends(ClippingAttachment, _super); - function ClippingAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); - return _this; - } - return ClippingAttachment; - }(spine.VertexAttachment)); - spine.ClippingAttachment = ClippingAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var MeshAttachment = (function (_super) { - __extends(MeshAttachment, _super); - function MeshAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(1, 1, 1, 1); - _this.inheritDeform = false; - _this.tempColor = new spine.Color(0, 0, 0, 0); - return _this; - } - MeshAttachment.prototype.updateUVs = function () { - var u = 0, v = 0, width = 0, height = 0; - if (this.region == null) { - u = v = 0; - width = height = 1; - } - else { - u = this.region.u; - v = this.region.v; - width = this.region.u2 - u; - height = this.region.v2 - v; - } - var regionUVs = this.regionUVs; - if (this.uvs == null || this.uvs.length != regionUVs.length) - this.uvs = spine.Utils.newFloatArray(regionUVs.length); - var uvs = this.uvs; - if (this.region.rotate) { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i + 1] * width; - uvs[i + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i] * width; - uvs[i + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); - }; - MeshAttachment.prototype.getParentMesh = function () { - return this.parentMesh; - }; - MeshAttachment.prototype.setParentMesh = function (parentMesh) { - this.parentMesh = parentMesh; - if (parentMesh != null) { - this.bones = parentMesh.bones; - this.vertices = parentMesh.vertices; - this.worldVerticesLength = parentMesh.worldVerticesLength; - this.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - this.worldVerticesLength = parentMesh.worldVerticesLength; - } - }; - return MeshAttachment; - }(spine.VertexAttachment)); - spine.MeshAttachment = MeshAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var PathAttachment = (function (_super) { - __extends(PathAttachment, _super); - function PathAttachment(name) { - var _this = _super.call(this, name) || this; - _this.closed = false; - _this.constantSpeed = false; - _this.color = new spine.Color(1, 1, 1, 1); - return _this; - } - return PathAttachment; - }(spine.VertexAttachment)); - spine.PathAttachment = PathAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var PointAttachment = (function (_super) { - __extends(PointAttachment, _super); - function PointAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(0.38, 0.94, 0, 1); - return _this; - } - PointAttachment.prototype.computeWorldPosition = function (bone, point) { - point.x = this.x * bone.a + this.y * bone.b + bone.worldX; - point.y = this.x * bone.c + this.y * bone.d + bone.worldY; - return point; - }; - PointAttachment.prototype.computeWorldRotation = function (bone) { - var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); - var x = cos * bone.a + sin * bone.b; - var y = cos * bone.c + sin * bone.d; - return Math.atan2(y, x) * spine.MathUtils.radDeg; - }; - return PointAttachment; - }(spine.VertexAttachment)); - spine.PointAttachment = PointAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var RegionAttachment = (function (_super) { - __extends(RegionAttachment, _super); - function RegionAttachment(name) { - var _this = _super.call(this, name) || this; - _this.x = 0; - _this.y = 0; - _this.scaleX = 1; - _this.scaleY = 1; - _this.rotation = 0; - _this.width = 0; - _this.height = 0; - _this.color = new spine.Color(1, 1, 1, 1); - _this.offset = spine.Utils.newFloatArray(8); - _this.uvs = spine.Utils.newFloatArray(8); - _this.tempColor = new spine.Color(1, 1, 1, 1); - return _this; - } - RegionAttachment.prototype.updateOffset = function () { - var regionScaleX = this.width / this.region.originalWidth * this.scaleX; - var regionScaleY = this.height / this.region.originalHeight * this.scaleY; - var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; - var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; - var localX2 = localX + this.region.width * regionScaleX; - var localY2 = localY + this.region.height * regionScaleY; - var radians = this.rotation * Math.PI / 180; - var cos = Math.cos(radians); - var sin = Math.sin(radians); - var localXCos = localX * cos + this.x; - var localXSin = localX * sin; - var localYCos = localY * cos + this.y; - var localYSin = localY * sin; - var localX2Cos = localX2 * cos + this.x; - var localX2Sin = localX2 * sin; - var localY2Cos = localY2 * cos + this.y; - var localY2Sin = localY2 * sin; - var offset = this.offset; - offset[RegionAttachment.OX1] = localXCos - localYSin; - offset[RegionAttachment.OY1] = localYCos + localXSin; - offset[RegionAttachment.OX2] = localXCos - localY2Sin; - offset[RegionAttachment.OY2] = localY2Cos + localXSin; - offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; - offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; - offset[RegionAttachment.OX4] = localX2Cos - localYSin; - offset[RegionAttachment.OY4] = localYCos + localX2Sin; - }; - RegionAttachment.prototype.setRegion = function (region) { - this.region = region; - var uvs = this.uvs; - if (region.rotate) { - uvs[2] = region.u; - uvs[3] = region.v2; - uvs[4] = region.u; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v; - uvs[0] = region.u2; - uvs[1] = region.v2; - } - else { - uvs[0] = region.u; - uvs[1] = region.v2; - uvs[2] = region.u; - uvs[3] = region.v; - uvs[4] = region.u2; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v2; - } - }; - RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { - var vertexOffset = this.offset; - var x = bone.worldX, y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = vertexOffset[RegionAttachment.OX1]; - offsetY = vertexOffset[RegionAttachment.OY1]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX2]; - offsetY = vertexOffset[RegionAttachment.OY2]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX3]; - offsetY = vertexOffset[RegionAttachment.OY3]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX4]; - offsetY = vertexOffset[RegionAttachment.OY4]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - }; - return RegionAttachment; - }(spine.Attachment)); - RegionAttachment.OX1 = 0; - RegionAttachment.OY1 = 1; - RegionAttachment.OX2 = 2; - RegionAttachment.OY2 = 3; - RegionAttachment.OX3 = 4; - RegionAttachment.OY3 = 5; - RegionAttachment.OX4 = 6; - RegionAttachment.OY4 = 7; - RegionAttachment.X1 = 0; - RegionAttachment.Y1 = 1; - RegionAttachment.C1R = 2; - RegionAttachment.C1G = 3; - RegionAttachment.C1B = 4; - RegionAttachment.C1A = 5; - RegionAttachment.U1 = 6; - RegionAttachment.V1 = 7; - RegionAttachment.X2 = 8; - RegionAttachment.Y2 = 9; - RegionAttachment.C2R = 10; - RegionAttachment.C2G = 11; - RegionAttachment.C2B = 12; - RegionAttachment.C2A = 13; - RegionAttachment.U2 = 14; - RegionAttachment.V2 = 15; - RegionAttachment.X3 = 16; - RegionAttachment.Y3 = 17; - RegionAttachment.C3R = 18; - RegionAttachment.C3G = 19; - RegionAttachment.C3B = 20; - RegionAttachment.C3A = 21; - RegionAttachment.U3 = 22; - RegionAttachment.V3 = 23; - RegionAttachment.X4 = 24; - RegionAttachment.Y4 = 25; - RegionAttachment.C4R = 26; - RegionAttachment.C4G = 27; - RegionAttachment.C4B = 28; - RegionAttachment.C4A = 29; - RegionAttachment.U4 = 30; - RegionAttachment.V4 = 31; - spine.RegionAttachment = RegionAttachment; -})(spine || (spine = {})); //# sourceMappingURL=spine-core.js.map \ No newline at end of file diff --git a/spine-ts/build/spine-core.js.map b/spine-ts/build/spine-core.js.map index c69457e6c..dff0af05b 100644 --- a/spine-ts/build/spine-core.js.map +++ b/spine-ts/build/spine-core.js.map @@ -1 +1 @@ -{"version":3,"file":"spine-core.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"spine-core.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/spine-ts/build/spine-threejs.d.ts b/spine-ts/build/spine-threejs.d.ts index 738bf41a2..0b760de03 100644 --- a/spine-ts/build/spine-threejs.d.ts +++ b/spine-ts/build/spine-threejs.d.ts @@ -245,7 +245,7 @@ declare module spine { constructor(data: AnimationStateData); update(delta: number): void; updateMixingFrom(to: TrackEntry, delta: number): boolean; - apply(skeleton: Skeleton): void; + apply(skeleton: Skeleton): boolean; applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; queueEvents(entry: TrackEntry, animationTime: number): void; @@ -390,6 +390,154 @@ declare module spine { newClippingAttachment(skin: Skin, name: string): ClippingAttachment; } } +declare module spine { + abstract class Attachment { + name: string; + constructor(name: string); + } + abstract class VertexAttachment extends Attachment { + bones: Array; + vertices: ArrayLike; + worldVerticesLength: number; + constructor(name: string); + computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + } +} +declare module spine { + interface AttachmentLoader { + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } +} +declare module spine { + enum AttachmentType { + Region = 0, + BoundingBox = 1, + Mesh = 2, + LinkedMesh = 3, + Path = 4, + Point = 5, + } +} +declare module spine { + class BoundingBoxAttachment extends VertexAttachment { + color: Color; + constructor(name: string); + } +} +declare module spine { + class ClippingAttachment extends VertexAttachment { + endSlot: SlotData; + color: Color; + constructor(name: string); + } +} +declare module spine { + class MeshAttachment extends VertexAttachment { + region: TextureRegion; + path: string; + regionUVs: ArrayLike; + uvs: ArrayLike; + triangles: Array; + color: Color; + hullLength: number; + private parentMesh; + inheritDeform: boolean; + tempColor: Color; + constructor(name: string); + updateUVs(): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + getParentMesh(): MeshAttachment; + setParentMesh(parentMesh: MeshAttachment): void; + } +} +declare module spine { + class PathAttachment extends VertexAttachment { + lengths: Array; + closed: boolean; + constantSpeed: boolean; + color: Color; + constructor(name: string); + } +} +declare module spine { + class PointAttachment extends VertexAttachment { + x: number; + y: number; + rotation: number; + color: Color; + constructor(name: string); + computeWorldPosition(bone: Bone, point: Vector2): Vector2; + computeWorldRotation(bone: Bone): number; + } +} +declare module spine { + class RegionAttachment extends Attachment { + static OX1: number; + static OY1: number; + static OX2: number; + static OY2: number; + static OX3: number; + static OY3: number; + static OX4: number; + static OY4: number; + static X1: number; + static Y1: number; + static C1R: number; + static C1G: number; + static C1B: number; + static C1A: number; + static U1: number; + static V1: number; + static X2: number; + static Y2: number; + static C2R: number; + static C2G: number; + static C2B: number; + static C2A: number; + static U2: number; + static V2: number; + static X3: number; + static Y3: number; + static C3R: number; + static C3G: number; + static C3B: number; + static C3A: number; + static U3: number; + static V3: number; + static X4: number; + static Y4: number; + static C4R: number; + static C4G: number; + static C4B: number; + static C4A: number; + static U4: number; + static V4: number; + x: number; + y: number; + scaleX: number; + scaleY: number; + rotation: number; + width: number; + height: number; + color: Color; + path: string; + rendererObject: any; + region: TextureRegion; + offset: ArrayLike; + uvs: ArrayLike; + tempColor: Color; + constructor(name: string); + updateOffset(): void; + setRegion(region: TextureRegion): void; + computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; + } +} declare module spine { enum BlendMode { Normal = 0, @@ -1010,154 +1158,6 @@ declare module spine { getMean(): number; } } -declare module spine { - abstract class Attachment { - name: string; - constructor(name: string); - } - abstract class VertexAttachment extends Attachment { - bones: Array; - vertices: ArrayLike; - worldVerticesLength: number; - constructor(name: string); - computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - } -} -declare module spine { - interface AttachmentLoader { - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } -} -declare module spine { - enum AttachmentType { - Region = 0, - BoundingBox = 1, - Mesh = 2, - LinkedMesh = 3, - Path = 4, - Point = 5, - } -} -declare module spine { - class BoundingBoxAttachment extends VertexAttachment { - color: Color; - constructor(name: string); - } -} -declare module spine { - class ClippingAttachment extends VertexAttachment { - endSlot: SlotData; - color: Color; - constructor(name: string); - } -} -declare module spine { - class MeshAttachment extends VertexAttachment { - region: TextureRegion; - path: string; - regionUVs: ArrayLike; - uvs: ArrayLike; - triangles: Array; - color: Color; - hullLength: number; - private parentMesh; - inheritDeform: boolean; - tempColor: Color; - constructor(name: string); - updateUVs(): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - getParentMesh(): MeshAttachment; - setParentMesh(parentMesh: MeshAttachment): void; - } -} -declare module spine { - class PathAttachment extends VertexAttachment { - lengths: Array; - closed: boolean; - constantSpeed: boolean; - color: Color; - constructor(name: string); - } -} -declare module spine { - class PointAttachment extends VertexAttachment { - x: number; - y: number; - rotation: number; - color: Color; - constructor(name: string); - computeWorldPosition(bone: Bone, point: Vector2): Vector2; - computeWorldRotation(bone: Bone): number; - } -} -declare module spine { - class RegionAttachment extends Attachment { - static OX1: number; - static OY1: number; - static OX2: number; - static OY2: number; - static OX3: number; - static OY3: number; - static OX4: number; - static OY4: number; - static X1: number; - static Y1: number; - static C1R: number; - static C1G: number; - static C1B: number; - static C1A: number; - static U1: number; - static V1: number; - static X2: number; - static Y2: number; - static C2R: number; - static C2G: number; - static C2B: number; - static C2A: number; - static U2: number; - static V2: number; - static X3: number; - static Y3: number; - static C3R: number; - static C3G: number; - static C3B: number; - static C3A: number; - static U3: number; - static V3: number; - static X4: number; - static Y4: number; - static C4R: number; - static C4G: number; - static C4B: number; - static C4A: number; - static U4: number; - static V4: number; - x: number; - y: number; - scaleX: number; - scaleY: number; - rotation: number; - width: number; - height: number; - color: Color; - path: string; - rendererObject: any; - region: TextureRegion; - offset: ArrayLike; - uvs: ArrayLike; - tempColor: Color; - constructor(name: string); - updateOffset(): void; - setRegion(region: TextureRegion): void; - computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; - } -} declare module spine.threejs { class AssetManager extends spine.AssetManager { constructor(pathPrefix?: string); diff --git a/spine-ts/build/spine-threejs.js b/spine-ts/build/spine-threejs.js index cbd2feb41..69ffaec31 100644 --- a/spine-ts/build/spine-threejs.js +++ b/spine-ts/build/spine-threejs.js @@ -1,13 +1,8 @@ -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; var spine; (function (spine) { var Animation = (function () { @@ -58,7 +53,6 @@ var spine; return Animation; }()); spine.Animation = Animation; - var TimelineType; (function (TimelineType) { TimelineType[TimelineType["rotate"] = 0] = "rotate"; TimelineType[TimelineType["translate"] = 1] = "translate"; @@ -75,7 +69,8 @@ var spine; TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; - })(TimelineType = spine.TimelineType || (spine.TimelineType = {})); + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; var CurveTimeline = (function () { function CurveTimeline(frameCount) { if (frameCount <= 0) @@ -151,19 +146,18 @@ var spine; var y = curves[i - 1]; return y + (1 - y) * (percent - x) / (1 - x); }; + CurveTimeline.LINEAR = 0; + CurveTimeline.STEPPED = 1; + CurveTimeline.BEZIER = 2; + CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; return CurveTimeline; }()); - CurveTimeline.LINEAR = 0; - CurveTimeline.STEPPED = 1; - CurveTimeline.BEZIER = 2; - CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; spine.CurveTimeline = CurveTimeline; var RotateTimeline = (function (_super) { __extends(RotateTimeline, _super); function RotateTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount << 1); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount << 1); } RotateTimeline.prototype.getPropertyId = function () { return (TimelineType.rotate << 24) + this.boneIndex; @@ -208,19 +202,18 @@ var spine; bone.rotation += r * alpha; } }; + RotateTimeline.ENTRIES = 2; + RotateTimeline.PREV_TIME = -2; + RotateTimeline.PREV_ROTATION = -1; + RotateTimeline.ROTATION = 1; return RotateTimeline; }(CurveTimeline)); - RotateTimeline.ENTRIES = 2; - RotateTimeline.PREV_TIME = -2; - RotateTimeline.PREV_ROTATION = -1; - RotateTimeline.ROTATION = 1; spine.RotateTimeline = RotateTimeline; var TranslateTimeline = (function (_super) { __extends(TranslateTimeline, _super); function TranslateTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); } TranslateTimeline.prototype.getPropertyId = function () { return (TimelineType.translate << 24) + this.boneIndex; @@ -264,19 +257,19 @@ var spine; bone.y += (bone.data.y + y - bone.y) * alpha; } }; + TranslateTimeline.ENTRIES = 3; + TranslateTimeline.PREV_TIME = -3; + TranslateTimeline.PREV_X = -2; + TranslateTimeline.PREV_Y = -1; + TranslateTimeline.X = 1; + TranslateTimeline.Y = 2; return TranslateTimeline; }(CurveTimeline)); - TranslateTimeline.ENTRIES = 3; - TranslateTimeline.PREV_TIME = -3; - TranslateTimeline.PREV_X = -2; - TranslateTimeline.PREV_Y = -1; - TranslateTimeline.X = 1; - TranslateTimeline.Y = 2; spine.TranslateTimeline = TranslateTimeline; var ScaleTimeline = (function (_super) { __extends(ScaleTimeline, _super); function ScaleTimeline(frameCount) { - return _super.call(this, frameCount) || this; + _super.call(this, frameCount); } ScaleTimeline.prototype.getPropertyId = function () { return (TimelineType.scale << 24) + this.boneIndex; @@ -337,7 +330,7 @@ var spine; var ShearTimeline = (function (_super) { __extends(ShearTimeline, _super); function ShearTimeline(frameCount) { - return _super.call(this, frameCount) || this; + _super.call(this, frameCount); } ShearTimeline.prototype.getPropertyId = function () { return (TimelineType.shear << 24) + this.boneIndex; @@ -381,9 +374,8 @@ var spine; var ColorTimeline = (function (_super) { __extends(ColorTimeline, _super); function ColorTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); } ColorTimeline.prototype.getPropertyId = function () { return (TimelineType.color << 24) + this.slotIndex; @@ -434,25 +426,24 @@ var spine; color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); } }; + ColorTimeline.ENTRIES = 5; + ColorTimeline.PREV_TIME = -5; + ColorTimeline.PREV_R = -4; + ColorTimeline.PREV_G = -3; + ColorTimeline.PREV_B = -2; + ColorTimeline.PREV_A = -1; + ColorTimeline.R = 1; + ColorTimeline.G = 2; + ColorTimeline.B = 3; + ColorTimeline.A = 4; return ColorTimeline; }(CurveTimeline)); - ColorTimeline.ENTRIES = 5; - ColorTimeline.PREV_TIME = -5; - ColorTimeline.PREV_R = -4; - ColorTimeline.PREV_G = -3; - ColorTimeline.PREV_B = -2; - ColorTimeline.PREV_A = -1; - ColorTimeline.R = 1; - ColorTimeline.G = 2; - ColorTimeline.B = 3; - ColorTimeline.A = 4; spine.ColorTimeline = ColorTimeline; var TwoColorTimeline = (function (_super) { __extends(TwoColorTimeline, _super); function TwoColorTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); } TwoColorTimeline.prototype.getPropertyId = function () { return (TimelineType.twoColor << 24) + this.slotIndex; @@ -523,24 +514,24 @@ var spine; dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); } }; + TwoColorTimeline.ENTRIES = 8; + TwoColorTimeline.PREV_TIME = -8; + TwoColorTimeline.PREV_R = -7; + TwoColorTimeline.PREV_G = -6; + TwoColorTimeline.PREV_B = -5; + TwoColorTimeline.PREV_A = -4; + TwoColorTimeline.PREV_R2 = -3; + TwoColorTimeline.PREV_G2 = -2; + TwoColorTimeline.PREV_B2 = -1; + TwoColorTimeline.R = 1; + TwoColorTimeline.G = 2; + TwoColorTimeline.B = 3; + TwoColorTimeline.A = 4; + TwoColorTimeline.R2 = 5; + TwoColorTimeline.G2 = 6; + TwoColorTimeline.B2 = 7; return TwoColorTimeline; }(CurveTimeline)); - TwoColorTimeline.ENTRIES = 8; - TwoColorTimeline.PREV_TIME = -8; - TwoColorTimeline.PREV_R = -7; - TwoColorTimeline.PREV_G = -6; - TwoColorTimeline.PREV_B = -5; - TwoColorTimeline.PREV_A = -4; - TwoColorTimeline.PREV_R2 = -3; - TwoColorTimeline.PREV_G2 = -2; - TwoColorTimeline.PREV_B2 = -1; - TwoColorTimeline.R = 1; - TwoColorTimeline.G = 2; - TwoColorTimeline.B = 3; - TwoColorTimeline.A = 4; - TwoColorTimeline.R2 = 5; - TwoColorTimeline.G2 = 6; - TwoColorTimeline.B2 = 7; spine.TwoColorTimeline = TwoColorTimeline; var AttachmentTimeline = (function () { function AttachmentTimeline(frameCount) { @@ -587,10 +578,9 @@ var spine; var DeformTimeline = (function (_super) { __extends(DeformTimeline, _super); function DeformTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount); - _this.frameVertices = new Array(frameCount); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount); + this.frameVertices = new Array(frameCount); } DeformTimeline.prototype.getPropertyId = function () { return (TimelineType.deform << 24) + this.slotIndex; @@ -771,9 +761,8 @@ var spine; var IkConstraintTimeline = (function (_super) { __extends(IkConstraintTimeline, _super); function IkConstraintTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); } IkConstraintTimeline.prototype.getPropertyId = function () { return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; @@ -821,21 +810,20 @@ var spine; constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; } }; + IkConstraintTimeline.ENTRIES = 3; + IkConstraintTimeline.PREV_TIME = -3; + IkConstraintTimeline.PREV_MIX = -2; + IkConstraintTimeline.PREV_BEND_DIRECTION = -1; + IkConstraintTimeline.MIX = 1; + IkConstraintTimeline.BEND_DIRECTION = 2; return IkConstraintTimeline; }(CurveTimeline)); - IkConstraintTimeline.ENTRIES = 3; - IkConstraintTimeline.PREV_TIME = -3; - IkConstraintTimeline.PREV_MIX = -2; - IkConstraintTimeline.PREV_BEND_DIRECTION = -1; - IkConstraintTimeline.MIX = 1; - IkConstraintTimeline.BEND_DIRECTION = 2; spine.IkConstraintTimeline = IkConstraintTimeline; var TransformConstraintTimeline = (function (_super) { __extends(TransformConstraintTimeline, _super); function TransformConstraintTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); } TransformConstraintTimeline.prototype.getPropertyId = function () { return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; @@ -896,25 +884,24 @@ var spine; constraint.shearMix += (shear - constraint.shearMix) * alpha; } }; + TransformConstraintTimeline.ENTRIES = 5; + TransformConstraintTimeline.PREV_TIME = -5; + TransformConstraintTimeline.PREV_ROTATE = -4; + TransformConstraintTimeline.PREV_TRANSLATE = -3; + TransformConstraintTimeline.PREV_SCALE = -2; + TransformConstraintTimeline.PREV_SHEAR = -1; + TransformConstraintTimeline.ROTATE = 1; + TransformConstraintTimeline.TRANSLATE = 2; + TransformConstraintTimeline.SCALE = 3; + TransformConstraintTimeline.SHEAR = 4; return TransformConstraintTimeline; }(CurveTimeline)); - TransformConstraintTimeline.ENTRIES = 5; - TransformConstraintTimeline.PREV_TIME = -5; - TransformConstraintTimeline.PREV_ROTATE = -4; - TransformConstraintTimeline.PREV_TRANSLATE = -3; - TransformConstraintTimeline.PREV_SCALE = -2; - TransformConstraintTimeline.PREV_SHEAR = -1; - TransformConstraintTimeline.ROTATE = 1; - TransformConstraintTimeline.TRANSLATE = 2; - TransformConstraintTimeline.SCALE = 3; - TransformConstraintTimeline.SHEAR = 4; spine.TransformConstraintTimeline = TransformConstraintTimeline; var PathConstraintPositionTimeline = (function (_super) { __extends(PathConstraintPositionTimeline, _super); function PathConstraintPositionTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); } PathConstraintPositionTimeline.prototype.getPropertyId = function () { return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; @@ -947,17 +934,17 @@ var spine; else constraint.position += (position - constraint.position) * alpha; }; + PathConstraintPositionTimeline.ENTRIES = 2; + PathConstraintPositionTimeline.PREV_TIME = -2; + PathConstraintPositionTimeline.PREV_VALUE = -1; + PathConstraintPositionTimeline.VALUE = 1; return PathConstraintPositionTimeline; }(CurveTimeline)); - PathConstraintPositionTimeline.ENTRIES = 2; - PathConstraintPositionTimeline.PREV_TIME = -2; - PathConstraintPositionTimeline.PREV_VALUE = -1; - PathConstraintPositionTimeline.VALUE = 1; spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; var PathConstraintSpacingTimeline = (function (_super) { __extends(PathConstraintSpacingTimeline, _super); function PathConstraintSpacingTimeline(frameCount) { - return _super.call(this, frameCount) || this; + _super.call(this, frameCount); } PathConstraintSpacingTimeline.prototype.getPropertyId = function () { return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; @@ -991,9 +978,8 @@ var spine; var PathConstraintMixTimeline = (function (_super) { __extends(PathConstraintMixTimeline, _super); function PathConstraintMixTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); } PathConstraintMixTimeline.prototype.getPropertyId = function () { return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; @@ -1037,14 +1023,14 @@ var spine; constraint.translateMix += (translate - constraint.translateMix) * alpha; } }; + PathConstraintMixTimeline.ENTRIES = 3; + PathConstraintMixTimeline.PREV_TIME = -3; + PathConstraintMixTimeline.PREV_ROTATE = -2; + PathConstraintMixTimeline.PREV_TRANSLATE = -1; + PathConstraintMixTimeline.ROTATE = 1; + PathConstraintMixTimeline.TRANSLATE = 2; return PathConstraintMixTimeline; }(CurveTimeline)); - PathConstraintMixTimeline.ENTRIES = 3; - PathConstraintMixTimeline.PREV_TIME = -3; - PathConstraintMixTimeline.PREV_ROTATE = -2; - PathConstraintMixTimeline.PREV_TRANSLATE = -1; - PathConstraintMixTimeline.ROTATE = 1; - PathConstraintMixTimeline.TRANSLATE = 2; spine.PathConstraintMixTimeline = PathConstraintMixTimeline; })(spine || (spine = {})); var spine; @@ -1138,10 +1124,12 @@ var spine; this._animationsChanged(); var events = this.events; var tracks = this.tracks; + var applied = false; for (var i = 0, n = tracks.length; i < n; i++) { var current = tracks[i]; if (current == null || current.delay > 0) continue; + applied = true; var mix = current.alpha; if (current.mixingFrom != null) mix *= this.applyMixingFrom(current, skeleton); @@ -1175,6 +1163,7 @@ var spine; current.nextTrackLast = current.trackTime; } this.queue.drain(); + return applied; }; AnimationState.prototype.applyMixingFrom = function (to, skeleton) { var from = to.mixingFrom; @@ -1200,7 +1189,7 @@ var spine; spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); var timelinesRotation = from.timelinesRotation; var first = false; - var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha; + var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; from.totalAlpha = 0; for (var i = 0; i < timelineCount; i++) { var timeline = timelines[i]; @@ -1530,13 +1519,13 @@ var spine; AnimationState.prototype.clearListenerNotifications = function () { this.queue.clear(); }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); + AnimationState.SUBSEQUENT = 0; + AnimationState.FIRST = 1; + AnimationState.DIP = 2; + AnimationState.DIP_MIX = 3; return AnimationState; }()); - AnimationState.emptyAnimation = new spine.Animation("", [], 0); - AnimationState.SUBSEQUENT = 0; - AnimationState.FIRST = 1; - AnimationState.DIP = 2; - AnimationState.DIP_MIX = 3; spine.AnimationState = AnimationState; var TrackEntry = (function () { function TrackEntry() { @@ -1714,7 +1703,6 @@ var spine; return EventQueue; }()); spine.EventQueue = EventQueue; - var EventType; (function (EventType) { EventType[EventType["start"] = 0] = "start"; EventType[EventType["interrupt"] = 1] = "interrupt"; @@ -1722,7 +1710,8 @@ var spine; EventType[EventType["dispose"] = 3] = "dispose"; EventType[EventType["complete"] = 4] = "complete"; EventType[EventType["event"] = 5] = "event"; - })(EventType = spine.EventType || (spine.EventType = {})); + })(spine.EventType || (spine.EventType = {})); + var EventType = spine.EventType; var AnimationStateAdapter2 = (function () { function AnimationStateAdapter2() { } @@ -1948,13 +1937,369 @@ var spine; })(spine || (spine = {})); var spine; (function (spine) { - var BlendMode; + var Attachment = (function () { + function Attachment(name) { + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return Attachment; + }()); + spine.Attachment = Attachment; + var VertexAttachment = (function (_super) { + __extends(VertexAttachment, _super); + function VertexAttachment(name) { + _super.call(this, name); + this.worldVerticesLength = 0; + } + VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { + count = offset + (count >> 1) * stride; + var skeleton = slot.bone.skeleton; + var deformArray = slot.attachmentVertices; + var vertices = this.vertices; + var bones = this.bones; + if (bones == null) { + if (deformArray.length > 0) + vertices = deformArray; + var bone = slot.bone; + var x = bone.worldX; + var y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { + var vx = vertices[v_1], vy = vertices[v_1 + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + } + return; + } + var v = 0, skip = 0; + for (var i = 0; i < start; i += 2) { + var n = bones[v]; + v += n + 1; + skip += n; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = offset, b = skip * 3; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + else { + var deform = deformArray; + for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3, f += 2) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + }; + VertexAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment; + }; + return VertexAttachment; + }(Attachment)); + spine.VertexAttachment = VertexAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + (function (AttachmentType) { + AttachmentType[AttachmentType["Region"] = 0] = "Region"; + AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; + AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; + AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; + AttachmentType[AttachmentType["Path"] = 4] = "Path"; + AttachmentType[AttachmentType["Point"] = 5] = "Point"; + })(spine.AttachmentType || (spine.AttachmentType = {})); + var AttachmentType = spine.AttachmentType; +})(spine || (spine = {})); +var spine; +(function (spine) { + var BoundingBoxAttachment = (function (_super) { + __extends(BoundingBoxAttachment, _super); + function BoundingBoxAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + } + return BoundingBoxAttachment; + }(spine.VertexAttachment)); + spine.BoundingBoxAttachment = BoundingBoxAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var ClippingAttachment = (function (_super) { + __extends(ClippingAttachment, _super); + function ClippingAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); + } + return ClippingAttachment; + }(spine.VertexAttachment)); + spine.ClippingAttachment = ClippingAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var MeshAttachment = (function (_super) { + __extends(MeshAttachment, _super); + function MeshAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + this.inheritDeform = false; + this.tempColor = new spine.Color(0, 0, 0, 0); + } + MeshAttachment.prototype.updateUVs = function () { + var u = 0, v = 0, width = 0, height = 0; + if (this.region == null) { + u = v = 0; + width = height = 1; + } + else { + u = this.region.u; + v = this.region.v; + width = this.region.u2 - u; + height = this.region.v2 - v; + } + var regionUVs = this.regionUVs; + if (this.uvs == null || this.uvs.length != regionUVs.length) + this.uvs = spine.Utils.newFloatArray(regionUVs.length); + var uvs = this.uvs; + if (this.region.rotate) { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); + }; + MeshAttachment.prototype.getParentMesh = function () { + return this.parentMesh; + }; + MeshAttachment.prototype.setParentMesh = function (parentMesh) { + this.parentMesh = parentMesh; + if (parentMesh != null) { + this.bones = parentMesh.bones; + this.vertices = parentMesh.vertices; + this.worldVerticesLength = parentMesh.worldVerticesLength; + this.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + this.worldVerticesLength = parentMesh.worldVerticesLength; + } + }; + return MeshAttachment; + }(spine.VertexAttachment)); + spine.MeshAttachment = MeshAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var PathAttachment = (function (_super) { + __extends(PathAttachment, _super); + function PathAttachment(name) { + _super.call(this, name); + this.closed = false; + this.constantSpeed = false; + this.color = new spine.Color(1, 1, 1, 1); + } + return PathAttachment; + }(spine.VertexAttachment)); + spine.PathAttachment = PathAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var PointAttachment = (function (_super) { + __extends(PointAttachment, _super); + function PointAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.38, 0.94, 0, 1); + } + PointAttachment.prototype.computeWorldPosition = function (bone, point) { + point.x = this.x * bone.a + this.y * bone.b + bone.worldX; + point.y = this.x * bone.c + this.y * bone.d + bone.worldY; + return point; + }; + PointAttachment.prototype.computeWorldRotation = function (bone) { + var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); + var x = cos * bone.a + sin * bone.b; + var y = cos * bone.c + sin * bone.d; + return Math.atan2(y, x) * spine.MathUtils.radDeg; + }; + return PointAttachment; + }(spine.VertexAttachment)); + spine.PointAttachment = PointAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var RegionAttachment = (function (_super) { + __extends(RegionAttachment, _super); + function RegionAttachment(name) { + _super.call(this, name); + this.x = 0; + this.y = 0; + this.scaleX = 1; + this.scaleY = 1; + this.rotation = 0; + this.width = 0; + this.height = 0; + this.color = new spine.Color(1, 1, 1, 1); + this.offset = spine.Utils.newFloatArray(8); + this.uvs = spine.Utils.newFloatArray(8); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.updateOffset = function () { + var regionScaleX = this.width / this.region.originalWidth * this.scaleX; + var regionScaleY = this.height / this.region.originalHeight * this.scaleY; + var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; + var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; + var localX2 = localX + this.region.width * regionScaleX; + var localY2 = localY + this.region.height * regionScaleY; + var radians = this.rotation * Math.PI / 180; + var cos = Math.cos(radians); + var sin = Math.sin(radians); + var localXCos = localX * cos + this.x; + var localXSin = localX * sin; + var localYCos = localY * cos + this.y; + var localYSin = localY * sin; + var localX2Cos = localX2 * cos + this.x; + var localX2Sin = localX2 * sin; + var localY2Cos = localY2 * cos + this.y; + var localY2Sin = localY2 * sin; + var offset = this.offset; + offset[RegionAttachment.OX1] = localXCos - localYSin; + offset[RegionAttachment.OY1] = localYCos + localXSin; + offset[RegionAttachment.OX2] = localXCos - localY2Sin; + offset[RegionAttachment.OY2] = localY2Cos + localXSin; + offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; + offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; + offset[RegionAttachment.OX4] = localX2Cos - localYSin; + offset[RegionAttachment.OY4] = localYCos + localX2Sin; + }; + RegionAttachment.prototype.setRegion = function (region) { + this.region = region; + var uvs = this.uvs; + if (region.rotate) { + uvs[2] = region.u; + uvs[3] = region.v2; + uvs[4] = region.u; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v; + uvs[0] = region.u2; + uvs[1] = region.v2; + } + else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; + } + }; + RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { + var vertexOffset = this.offset; + var x = bone.worldX, y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var offsetX = 0, offsetY = 0; + offsetX = vertexOffset[RegionAttachment.OX1]; + offsetY = vertexOffset[RegionAttachment.OY1]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX2]; + offsetY = vertexOffset[RegionAttachment.OY2]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX3]; + offsetY = vertexOffset[RegionAttachment.OY3]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX4]; + offsetY = vertexOffset[RegionAttachment.OY4]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + }; + RegionAttachment.OX1 = 0; + RegionAttachment.OY1 = 1; + RegionAttachment.OX2 = 2; + RegionAttachment.OY2 = 3; + RegionAttachment.OX3 = 4; + RegionAttachment.OY3 = 5; + RegionAttachment.OX4 = 6; + RegionAttachment.OY4 = 7; + RegionAttachment.X1 = 0; + RegionAttachment.Y1 = 1; + RegionAttachment.C1R = 2; + RegionAttachment.C1G = 3; + RegionAttachment.C1B = 4; + RegionAttachment.C1A = 5; + RegionAttachment.U1 = 6; + RegionAttachment.V1 = 7; + RegionAttachment.X2 = 8; + RegionAttachment.Y2 = 9; + RegionAttachment.C2R = 10; + RegionAttachment.C2G = 11; + RegionAttachment.C2B = 12; + RegionAttachment.C2A = 13; + RegionAttachment.U2 = 14; + RegionAttachment.V2 = 15; + RegionAttachment.X3 = 16; + RegionAttachment.Y3 = 17; + RegionAttachment.C3R = 18; + RegionAttachment.C3G = 19; + RegionAttachment.C3B = 20; + RegionAttachment.C3A = 21; + RegionAttachment.U3 = 22; + RegionAttachment.V3 = 23; + RegionAttachment.X4 = 24; + RegionAttachment.Y4 = 25; + RegionAttachment.C4R = 26; + RegionAttachment.C4G = 27; + RegionAttachment.C4B = 28; + RegionAttachment.C4A = 29; + RegionAttachment.U4 = 30; + RegionAttachment.V4 = 31; + return RegionAttachment; + }(spine.Attachment)); + spine.RegionAttachment = RegionAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { (function (BlendMode) { BlendMode[BlendMode["Normal"] = 0] = "Normal"; BlendMode[BlendMode["Additive"] = 1] = "Additive"; BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; BlendMode[BlendMode["Screen"] = 3] = "Screen"; - })(BlendMode = spine.BlendMode || (spine.BlendMode = {})); + })(spine.BlendMode || (spine.BlendMode = {})); + var BlendMode = spine.BlendMode; })(spine || (spine = {})); var spine; (function (spine) { @@ -2243,14 +2588,14 @@ var spine; return BoneData; }()); spine.BoneData = BoneData; - var TransformMode; (function (TransformMode) { TransformMode[TransformMode["Normal"] = 0] = "Normal"; TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; - })(TransformMode = spine.TransformMode || (spine.TransformMode = {})); + })(spine.TransformMode || (spine.TransformMode = {})); + var TransformMode = spine.TransformMode; })(spine || (spine = {})); var spine; (function (spine) { @@ -2415,21 +2760,24 @@ var spine; } var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; - var angle = Math.acos(-a * l1 / (aa - bb)); - x = a * Math.cos(angle) + l1; - y = b * Math.sin(angle); - d = x * x + y * y; - if (d < minDist) { - minAngle = angle; - minDist = d; - minX = x; - minY = y; - } - if (d > maxDist) { - maxAngle = angle; - maxDist = d; - maxX = x; - maxY = y; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } } if (dd <= (minDist + maxDist) / 2) { a1 = ta - Math.atan2(minY * bendDir, minX); @@ -2834,11 +3182,11 @@ var spine; PathConstraint.prototype.getOrder = function () { return this.data.order; }; + PathConstraint.NONE = -1; + PathConstraint.BEFORE = -2; + PathConstraint.AFTER = -3; return PathConstraint; }()); - PathConstraint.NONE = -1; - PathConstraint.BEFORE = -2; - PathConstraint.AFTER = -3; spine.PathConstraint = PathConstraint; })(spine || (spine = {})); var spine; @@ -2852,23 +3200,23 @@ var spine; return PathConstraintData; }()); spine.PathConstraintData = PathConstraintData; - var PositionMode; (function (PositionMode) { PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; PositionMode[PositionMode["Percent"] = 1] = "Percent"; - })(PositionMode = spine.PositionMode || (spine.PositionMode = {})); - var SpacingMode; + })(spine.PositionMode || (spine.PositionMode = {})); + var PositionMode = spine.PositionMode; (function (SpacingMode) { SpacingMode[SpacingMode["Length"] = 0] = "Length"; SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; - })(SpacingMode = spine.SpacingMode || (spine.SpacingMode = {})); - var RotateMode; + })(spine.SpacingMode || (spine.SpacingMode = {})); + var SpacingMode = spine.SpacingMode; (function (RotateMode) { RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; RotateMode[RotateMode["Chain"] = 1] = "Chain"; RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; - })(RotateMode = spine.RotateMode || (spine.RotateMode = {})); + })(spine.RotateMode || (spine.RotateMode = {})); + var RotateMode = spine.RotateMode; })(spine || (spine = {})); var spine; (function (spine) { @@ -4879,7 +5227,6 @@ var spine; return Texture; }()); spine.Texture = Texture; - var TextureFilter; (function (TextureFilter) { TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; @@ -4888,13 +5235,14 @@ var spine; TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; - })(TextureFilter = spine.TextureFilter || (spine.TextureFilter = {})); - var TextureWrap; + })(spine.TextureFilter || (spine.TextureFilter = {})); + var TextureFilter = spine.TextureFilter; (function (TextureWrap) { TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; - })(TextureWrap = spine.TextureWrap || (spine.TextureWrap = {})); + })(spine.TextureWrap || (spine.TextureWrap = {})); + var TextureWrap = spine.TextureWrap; var TextureRegion = (function () { function TextureRegion() { this.u = 0; @@ -5062,7 +5410,7 @@ var spine; var TextureAtlasRegion = (function (_super) { __extends(TextureAtlasRegion, _super); function TextureAtlasRegion() { - return _super !== null && _super.apply(this, arguments) || this; + _super.apply(this, arguments); } return TextureAtlasRegion; }(spine.TextureRegion)); @@ -5629,13 +5977,13 @@ var spine; this.a = 1; return this; }; + Color.WHITE = new Color(1, 1, 1, 1); + Color.RED = new Color(1, 0, 0, 1); + Color.GREEN = new Color(0, 1, 0, 1); + Color.BLUE = new Color(0, 0, 1, 1); + Color.MAGENTA = new Color(1, 0, 1, 1); return Color; }()); - Color.WHITE = new Color(1, 1, 1, 1); - Color.RED = new Color(1, 0, 0, 1); - Color.GREEN = new Color(0, 1, 0, 1); - Color.BLUE = new Color(0, 0, 1, 1); - Color.MAGENTA = new Color(1, 0, 1, 1); spine.Color = Color; var MathUtils = (function () { function MathUtils() { @@ -5663,14 +6011,14 @@ var spine; var y = Math.pow(Math.abs(x), 1 / 3); return x < 0 ? -y : y; }; + MathUtils.PI = 3.1415927; + MathUtils.PI2 = MathUtils.PI * 2; + MathUtils.radiansToDegrees = 180 / MathUtils.PI; + MathUtils.radDeg = MathUtils.radiansToDegrees; + MathUtils.degreesToRadians = MathUtils.PI / 180; + MathUtils.degRad = MathUtils.degreesToRadians; return MathUtils; }()); - MathUtils.PI = 3.1415927; - MathUtils.PI2 = MathUtils.PI * 2; - MathUtils.radiansToDegrees = 180 / MathUtils.PI; - MathUtils.radDeg = MathUtils.radiansToDegrees; - MathUtils.degreesToRadians = MathUtils.PI / 180; - MathUtils.degRad = MathUtils.degreesToRadians; spine.MathUtils = MathUtils; var Utils = (function () { function Utils() { @@ -5729,9 +6077,9 @@ var spine; Utils.toFloatArray = function (array) { return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; }; + Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; return Utils; }()); - Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; spine.Utils = Utils; var DebugUtils = (function () { function DebugUtils() { @@ -5868,369 +6216,6 @@ var spine; spine.WindowedMean = WindowedMean; })(spine || (spine = {})); var spine; -(function (spine) { - var Attachment = (function () { - function Attachment(name) { - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return Attachment; - }()); - spine.Attachment = Attachment; - var VertexAttachment = (function (_super) { - __extends(VertexAttachment, _super); - function VertexAttachment(name) { - var _this = _super.call(this, name) || this; - _this.worldVerticesLength = 0; - return _this; - } - VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { - count = offset + (count >> 1) * stride; - var skeleton = slot.bone.skeleton; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices; - var bones = this.bones; - if (bones == null) { - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - var x = bone.worldX; - var y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { - var vx = vertices[v_1], vy = vertices[v_1 + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - } - return; - } - var v = 0, skip = 0; - for (var i = 0; i < start; i += 2) { - var n = bones[v]; - v += n + 1; - skip += n; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = offset, b = skip * 3; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - else { - var deform = deformArray; - for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3, f += 2) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - }; - VertexAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment; - }; - return VertexAttachment; - }(Attachment)); - spine.VertexAttachment = VertexAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var AttachmentType; - (function (AttachmentType) { - AttachmentType[AttachmentType["Region"] = 0] = "Region"; - AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; - AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; - AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; - AttachmentType[AttachmentType["Path"] = 4] = "Path"; - AttachmentType[AttachmentType["Point"] = 5] = "Point"; - })(AttachmentType = spine.AttachmentType || (spine.AttachmentType = {})); -})(spine || (spine = {})); -var spine; -(function (spine) { - var BoundingBoxAttachment = (function (_super) { - __extends(BoundingBoxAttachment, _super); - function BoundingBoxAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(1, 1, 1, 1); - return _this; - } - return BoundingBoxAttachment; - }(spine.VertexAttachment)); - spine.BoundingBoxAttachment = BoundingBoxAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var ClippingAttachment = (function (_super) { - __extends(ClippingAttachment, _super); - function ClippingAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); - return _this; - } - return ClippingAttachment; - }(spine.VertexAttachment)); - spine.ClippingAttachment = ClippingAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var MeshAttachment = (function (_super) { - __extends(MeshAttachment, _super); - function MeshAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(1, 1, 1, 1); - _this.inheritDeform = false; - _this.tempColor = new spine.Color(0, 0, 0, 0); - return _this; - } - MeshAttachment.prototype.updateUVs = function () { - var u = 0, v = 0, width = 0, height = 0; - if (this.region == null) { - u = v = 0; - width = height = 1; - } - else { - u = this.region.u; - v = this.region.v; - width = this.region.u2 - u; - height = this.region.v2 - v; - } - var regionUVs = this.regionUVs; - if (this.uvs == null || this.uvs.length != regionUVs.length) - this.uvs = spine.Utils.newFloatArray(regionUVs.length); - var uvs = this.uvs; - if (this.region.rotate) { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i + 1] * width; - uvs[i + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i] * width; - uvs[i + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); - }; - MeshAttachment.prototype.getParentMesh = function () { - return this.parentMesh; - }; - MeshAttachment.prototype.setParentMesh = function (parentMesh) { - this.parentMesh = parentMesh; - if (parentMesh != null) { - this.bones = parentMesh.bones; - this.vertices = parentMesh.vertices; - this.worldVerticesLength = parentMesh.worldVerticesLength; - this.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - this.worldVerticesLength = parentMesh.worldVerticesLength; - } - }; - return MeshAttachment; - }(spine.VertexAttachment)); - spine.MeshAttachment = MeshAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var PathAttachment = (function (_super) { - __extends(PathAttachment, _super); - function PathAttachment(name) { - var _this = _super.call(this, name) || this; - _this.closed = false; - _this.constantSpeed = false; - _this.color = new spine.Color(1, 1, 1, 1); - return _this; - } - return PathAttachment; - }(spine.VertexAttachment)); - spine.PathAttachment = PathAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var PointAttachment = (function (_super) { - __extends(PointAttachment, _super); - function PointAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(0.38, 0.94, 0, 1); - return _this; - } - PointAttachment.prototype.computeWorldPosition = function (bone, point) { - point.x = this.x * bone.a + this.y * bone.b + bone.worldX; - point.y = this.x * bone.c + this.y * bone.d + bone.worldY; - return point; - }; - PointAttachment.prototype.computeWorldRotation = function (bone) { - var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); - var x = cos * bone.a + sin * bone.b; - var y = cos * bone.c + sin * bone.d; - return Math.atan2(y, x) * spine.MathUtils.radDeg; - }; - return PointAttachment; - }(spine.VertexAttachment)); - spine.PointAttachment = PointAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var RegionAttachment = (function (_super) { - __extends(RegionAttachment, _super); - function RegionAttachment(name) { - var _this = _super.call(this, name) || this; - _this.x = 0; - _this.y = 0; - _this.scaleX = 1; - _this.scaleY = 1; - _this.rotation = 0; - _this.width = 0; - _this.height = 0; - _this.color = new spine.Color(1, 1, 1, 1); - _this.offset = spine.Utils.newFloatArray(8); - _this.uvs = spine.Utils.newFloatArray(8); - _this.tempColor = new spine.Color(1, 1, 1, 1); - return _this; - } - RegionAttachment.prototype.updateOffset = function () { - var regionScaleX = this.width / this.region.originalWidth * this.scaleX; - var regionScaleY = this.height / this.region.originalHeight * this.scaleY; - var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; - var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; - var localX2 = localX + this.region.width * regionScaleX; - var localY2 = localY + this.region.height * regionScaleY; - var radians = this.rotation * Math.PI / 180; - var cos = Math.cos(radians); - var sin = Math.sin(radians); - var localXCos = localX * cos + this.x; - var localXSin = localX * sin; - var localYCos = localY * cos + this.y; - var localYSin = localY * sin; - var localX2Cos = localX2 * cos + this.x; - var localX2Sin = localX2 * sin; - var localY2Cos = localY2 * cos + this.y; - var localY2Sin = localY2 * sin; - var offset = this.offset; - offset[RegionAttachment.OX1] = localXCos - localYSin; - offset[RegionAttachment.OY1] = localYCos + localXSin; - offset[RegionAttachment.OX2] = localXCos - localY2Sin; - offset[RegionAttachment.OY2] = localY2Cos + localXSin; - offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; - offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; - offset[RegionAttachment.OX4] = localX2Cos - localYSin; - offset[RegionAttachment.OY4] = localYCos + localX2Sin; - }; - RegionAttachment.prototype.setRegion = function (region) { - this.region = region; - var uvs = this.uvs; - if (region.rotate) { - uvs[2] = region.u; - uvs[3] = region.v2; - uvs[4] = region.u; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v; - uvs[0] = region.u2; - uvs[1] = region.v2; - } - else { - uvs[0] = region.u; - uvs[1] = region.v2; - uvs[2] = region.u; - uvs[3] = region.v; - uvs[4] = region.u2; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v2; - } - }; - RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { - var vertexOffset = this.offset; - var x = bone.worldX, y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = vertexOffset[RegionAttachment.OX1]; - offsetY = vertexOffset[RegionAttachment.OY1]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX2]; - offsetY = vertexOffset[RegionAttachment.OY2]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX3]; - offsetY = vertexOffset[RegionAttachment.OY3]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX4]; - offsetY = vertexOffset[RegionAttachment.OY4]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - }; - return RegionAttachment; - }(spine.Attachment)); - RegionAttachment.OX1 = 0; - RegionAttachment.OY1 = 1; - RegionAttachment.OX2 = 2; - RegionAttachment.OY2 = 3; - RegionAttachment.OX3 = 4; - RegionAttachment.OY3 = 5; - RegionAttachment.OX4 = 6; - RegionAttachment.OY4 = 7; - RegionAttachment.X1 = 0; - RegionAttachment.Y1 = 1; - RegionAttachment.C1R = 2; - RegionAttachment.C1G = 3; - RegionAttachment.C1B = 4; - RegionAttachment.C1A = 5; - RegionAttachment.U1 = 6; - RegionAttachment.V1 = 7; - RegionAttachment.X2 = 8; - RegionAttachment.Y2 = 9; - RegionAttachment.C2R = 10; - RegionAttachment.C2G = 11; - RegionAttachment.C2B = 12; - RegionAttachment.C2A = 13; - RegionAttachment.U2 = 14; - RegionAttachment.V2 = 15; - RegionAttachment.X3 = 16; - RegionAttachment.Y3 = 17; - RegionAttachment.C3R = 18; - RegionAttachment.C3G = 19; - RegionAttachment.C3B = 20; - RegionAttachment.C3A = 21; - RegionAttachment.U3 = 22; - RegionAttachment.V3 = 23; - RegionAttachment.X4 = 24; - RegionAttachment.Y4 = 25; - RegionAttachment.C4R = 26; - RegionAttachment.C4G = 27; - RegionAttachment.C4B = 28; - RegionAttachment.C4A = 29; - RegionAttachment.U4 = 30; - RegionAttachment.V4 = 31; - spine.RegionAttachment = RegionAttachment; -})(spine || (spine = {})); -var spine; (function (spine) { var threejs; (function (threejs) { @@ -6238,9 +6223,9 @@ var spine; __extends(AssetManager, _super); function AssetManager(pathPrefix) { if (pathPrefix === void 0) { pathPrefix = ""; } - return _super.call(this, function (image) { + _super.call(this, function (image) { return new threejs.ThreeJsTexture(image); - }, pathPrefix) || this; + }, pathPrefix); } return AssetManager; }(spine.AssetManager)); @@ -6311,9 +6296,9 @@ var spine; geo.drawRange.start = 0; geo.drawRange.count = this.indicesLength; }; + MeshBatcher.VERTEX_SIZE = 9; return MeshBatcher; }()); - MeshBatcher.VERTEX_SIZE = 9; threejs.MeshBatcher = MeshBatcher; })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); @@ -6324,20 +6309,19 @@ var spine; var SkeletonMesh = (function (_super) { __extends(SkeletonMesh, _super); function SkeletonMesh(skeletonData) { - var _this = _super.call(this) || this; - _this.zOffset = 0.1; - _this.clipper = new spine.SkeletonClipping(); - _this.vertices = spine.Utils.newFloatArray(1024); - _this.tempColor = new spine.Color(); - _this.skeleton = new spine.Skeleton(skeletonData); + _super.call(this); + this.zOffset = 0.1; + this.clipper = new spine.SkeletonClipping(); + this.vertices = spine.Utils.newFloatArray(1024); + this.tempColor = new spine.Color(); + this.skeleton = new spine.Skeleton(skeletonData); var animData = new spine.AnimationStateData(skeletonData); - _this.state = new spine.AnimationState(animData); - var material = _this.material = new THREE.MeshBasicMaterial(); + this.state = new spine.AnimationState(animData); + var material = this.material = new THREE.MeshBasicMaterial(); material.side = THREE.DoubleSide; material.transparent = true; material.alphaTest = 0.5; - _this.batcher = new threejs.MeshBatcher(_this); - return _this; + this.batcher = new threejs.MeshBatcher(this); } SkeletonMesh.prototype.update = function (deltaTime) { var state = this.state; @@ -6434,10 +6418,10 @@ var spine; } batcher.end(); }; + SkeletonMesh.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + SkeletonMesh.VERTEX_SIZE = 2 + 2 + 4; return SkeletonMesh; }(THREE.Mesh)); - SkeletonMesh.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - SkeletonMesh.VERTEX_SIZE = 2 + 2 + 4; threejs.SkeletonMesh = SkeletonMesh; })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); @@ -6448,11 +6432,10 @@ var spine; var ThreeJsTexture = (function (_super) { __extends(ThreeJsTexture, _super); function ThreeJsTexture(image) { - var _this = _super.call(this, image) || this; - _this.texture = new THREE.Texture(image); - _this.texture.flipY = false; - _this.texture.needsUpdate = true; - return _this; + _super.call(this, image); + this.texture = new THREE.Texture(image); + this.texture.flipY = false; + this.texture.needsUpdate = true; } ThreeJsTexture.prototype.setFilters = function (minFilter, magFilter) { this.texture.minFilter = ThreeJsTexture.toThreeJsTextureFilter(minFilter); diff --git a/spine-ts/build/spine-threejs.js.map b/spine-ts/build/spine-threejs.js.map index d25c6dc12..c472858df 100644 --- a/spine-ts/build/spine-threejs.js.map +++ b/spine-ts/build/spine-threejs.js.map @@ -1 +1 @@ -{"version":3,"file":"spine-threejs.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../threejs/src/AssetManager.ts","../threejs/src/MeshBatcher.ts","../threejs/src/SkeletonMesh.ts","../threejs/src/ThreeJsTexture.ts"],"names":[],"mappings":";;;;;;;;;;AA8BA,IAAO,KAAK,CAulCX;AAvlCD,WAAO,KAAK;IACX;QAKC,mBAAa,IAAY,EAAE,SAA0B,EAAE,QAAgB;YACtE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACpE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1B,CAAC;QAED,yBAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,IAAa,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACpJ,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAElE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;gBACtB,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;oBAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;YAC7C,CAAC;YAED,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC/C,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACpF,CAAC;QAEM,sBAAY,GAAnB,UAAqB,MAAyB,EAAE,MAAc,EAAE,IAAgB;YAAhB,qBAAA,EAAA,QAAgB;YAC/E,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YAC3B,IAAI,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC;YACzB,OAAO,IAAI,EAAE,CAAC;gBACb,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,MAAM,CAAC;oBAC1C,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC;gBACnB,IAAI;oBACH,IAAI,GAAG,OAAO,CAAC;gBAChB,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC;oBAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;gBACzC,OAAO,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACF,CAAC;QAEM,sBAAY,GAAnB,UAAqB,MAAyB,EAAE,MAAc,EAAE,IAAY;YAC3E,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI;gBAChE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QACF,gBAAC;IAAD,CAAC,AA9CD,IA8CC;IA9CY,eAAS,YA8CrB,CAAA;IAOD,IAAY,YAOX;IAPD,WAAY,YAAY;QACvB,mDAAM,CAAA;QAAE,yDAAS,CAAA;QAAE,iDAAK,CAAA;QAAE,iDAAK,CAAA;QAC/B,2DAAU,CAAA;QAAE,iDAAK,CAAA;QAAE,mDAAM,CAAA;QACzB,iDAAK,CAAA;QAAE,yDAAS,CAAA;QAChB,+DAAY,CAAA;QAAE,8EAAmB,CAAA;QACjC,oFAAsB,CAAA;QAAE,kFAAqB,CAAA;QAAE,0EAAiB,CAAA;QAChE,wDAAQ,CAAA;IACT,CAAC,EAPW,YAAY,GAAZ,kBAAY,KAAZ,kBAAY,QAOvB;IAED;QAQC,uBAAa,UAAkB;YAC9B,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,UAAU,CAAC,CAAC;YAC9E,IAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QACjF,CAAC;QAED,qCAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC;QAC3D,CAAC;QAED,iCAAS,GAAT,UAAW,UAAkB;YAC5B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;QAC5E,CAAC;QAED,kCAAU,GAAV,UAAY,UAAkB;YAC7B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;QAC7E,CAAC;QAED,oCAAY,GAAZ,UAAc,UAAkB;YAC/B,IAAI,KAAK,GAAG,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC;YACnD,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YAC7D,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YAC9D,EAAE,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC;gBAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;YAChE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;QAC7B,CAAC;QAKD,gCAAQ,GAAR,UAAU,UAAkB,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW;YAC/E,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;YACnE,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YACjF,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;YACrD,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;YAE7F,IAAI,CAAC,GAAG,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC;YAC/C,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;YAEnC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/D,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBAClB,GAAG,IAAI,IAAI,CAAC;gBACZ,GAAG,IAAI,IAAI,CAAC;gBACZ,IAAI,IAAI,KAAK,CAAC;gBACd,IAAI,IAAI,KAAK,CAAC;gBACd,CAAC,IAAI,GAAG,CAAC;gBACT,CAAC,IAAI,GAAG,CAAC;YACV,CAAC;QACF,CAAC;QAED,uCAAe,GAAf,UAAiB,UAAkB,EAAE,OAAe;YACnD,OAAO,GAAG,MAAA,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACzC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,CAAC,GAAG,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC;YAC/C,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACrB,EAAE,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC,OAAO,CAAC;YACjD,EAAE,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC;gBAAC,MAAM,CAAC,CAAC,CAAC;YAC5C,CAAC,EAAE,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1E,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACd,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;oBAClB,IAAI,KAAK,SAAQ,EAAE,KAAK,SAAQ,CAAC;oBACjC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;wBAChB,KAAK,GAAG,CAAC,CAAC;wBACV,KAAK,GAAG,CAAC,CAAC;oBACX,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACtB,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvB,CAAC;oBACD,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;gBAC1E,CAAC;YACF,CAAC;YACD,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;QAGF,oBAAC;IAAD,CAAC,AAxFD;IACQ,oBAAM,GAAG,CAAC,CAAC;IAAQ,qBAAO,GAAG,CAAC,CAAC;IAAQ,oBAAM,GAAG,CAAC,CAAC;IAClD,yBAAW,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAFX,mBAAa,gBAwFlC,CAAA;IAED;QAAoC,kCAAa;QAQhD,wBAAa,UAAkB;YAA/B,YACC,kBAAM,UAAU,CAAC,SAEjB;YADA,KAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;;QACpD,CAAC;QAED,sCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACrD,CAAC;QAGD,iCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,OAAe;YAC1D,UAAU,KAAK,CAAC,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;QAC7D,CAAC;QAED,8BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAClD,MAAM,CAAC;YACR,CAAC;YAED,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5D,EAAE,CAAC,CAAC,SAAS,CAAC;oBACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;gBACnG,IAAI,CAAC,CAAC;oBACL,IAAI,GAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAClG,GAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,GAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;oBAC1D,IAAI,CAAC,QAAQ,IAAI,GAAC,GAAG,KAAK,CAAC;gBAC5B,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAGD,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;YACzE,IAAI,YAAY,GAAG,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;YAChE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,EAClD,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YAElF,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;YAC/D,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YAC1D,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC;YAC/B,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACf,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC;YAChD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC3C,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBACzD,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,KAAK,CAAC;YAC5B,CAAC;QACF,CAAC;QACF,qBAAC;IAAD,CAAC,AA/DD,CAAoC,aAAa;IACzC,sBAAO,GAAG,CAAC,CAAC;IACZ,wBAAS,GAAG,CAAC,CAAC,CAAC;IAAQ,4BAAa,GAAG,CAAC,CAAC,CAAC;IAC1C,uBAAQ,GAAG,CAAC,CAAC;IAHR,oBAAc,iBA+D1B,CAAA;IAED;QAAuC,qCAAa;QAQnD,2BAAa,UAAkB;YAA/B,YACC,kBAAM,UAAU,CAAC,SAEjB;YADA,KAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;;QAC3E,CAAC;QAED,yCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACxD,CAAC;QAGD,oCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,CAAS,EAAE,CAAS;YAC/D,UAAU,IAAI,iBAAiB,CAAC,OAAO,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC;QAED,iCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBACrB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtB,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACjB,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC/D,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACrD,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACtD,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAC5E,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAC7C,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAC7C,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,iBAAiB,CAAC,OAAO,GAAG,CAAC,EACvE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAErF,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACzD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;YAC1D,CAAC;YACD,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAClC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAC7C,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YAC9C,CAAC;QACF,CAAC;QACF,wBAAC;IAAD,CAAC,AA7DD,CAAuC,aAAa;IAC5C,yBAAO,GAAG,CAAC,CAAC;IACZ,2BAAS,GAAG,CAAC,CAAC,CAAC;IAAQ,wBAAM,GAAG,CAAC,CAAC,CAAC;IAAQ,wBAAM,GAAG,CAAC,CAAC,CAAC;IACvD,mBAAC,GAAG,CAAC,CAAC;IAAQ,mBAAC,GAAG,CAAC,CAAC;IAHf,uBAAiB,oBA6D7B,CAAA;IAED;QAAmC,iCAAiB;QACnD,uBAAa,UAAkB;mBAC9B,kBAAM,UAAU,CAAC;QAClB,CAAC;QAED,qCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACpD,CAAC;QAED,6BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAChC,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACjB,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3D,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBACpE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YACrE,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxE,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,aAAa,CAAC,OAAO,GAAG,CAAC,EACnE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAEjF,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC7E,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAC9E,CAAC;YACD,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACjB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBACnB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBACtB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBACvB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;oBACjB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;gBAClB,CAAC;gBAED,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACvC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxC,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACxC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACzC,CAAC;gBACD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;gBACpC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;YACrC,CAAC;QACF,CAAC;QACF,oBAAC;IAAD,CAAC,AA7DD,CAAmC,iBAAiB,GA6DnD;IA7DY,mBAAa,gBA6DzB,CAAA;IAED;QAAmC,iCAAiB;QACnD,uBAAa,UAAkB;mBAC9B,kBAAM,UAAU,CAAC;QAClB,CAAC;QAED,qCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACpD,CAAC;QAED,6BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAChC,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACjB,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3D,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACjD,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YAClD,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxE,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,aAAa,CAAC,OAAO,GAAG,CAAC,EACnE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAEjF,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxD,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;YACzD,CAAC;YACD,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC;YAC5C,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;gBAC5D,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;YAC7D,CAAC;QACF,CAAC;QACF,oBAAC;IAAD,CAAC,AA7CD,CAAmC,iBAAiB,GA6CnD;IA7CY,mBAAa,gBA6CzB,CAAA;IAED;QAAmC,iCAAa;QAQ/C,uBAAa,UAAkB;YAA/B,YACC,kBAAM,UAAU,CAAC,SAEjB;YADA,KAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;;QACvE,CAAC;QAED,qCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACpD,CAAC;QAGD,gCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;YACrF,UAAU,IAAI,aAAa,CAAC,OAAO,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,CAAC;QAED,6BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAC/B,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACrC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACrC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACrC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxE,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,aAAa,CAAC,OAAO,GAAG,CAAC,EACnE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAEjF,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACrD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACrD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACrD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;YACtD,CAAC;YACD,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;gBACd,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,CAAC;gBACL,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YACvG,CAAC;QACF,CAAC;QACF,oBAAC;IAAD,CAAC,AAlED,CAAmC,aAAa;IACxC,qBAAO,GAAG,CAAC,CAAC;IACZ,uBAAS,GAAG,CAAC,CAAC,CAAC;IAAQ,oBAAM,GAAG,CAAC,CAAC,CAAC;IAAQ,oBAAM,GAAG,CAAC,CAAC,CAAC;IAAQ,oBAAM,GAAG,CAAC,CAAC,CAAC;IAAQ,oBAAM,GAAG,CAAC,CAAC,CAAC;IAC/F,eAAC,GAAG,CAAC,CAAC;IAAQ,eAAC,GAAG,CAAC,CAAC;IAAQ,eAAC,GAAG,CAAC,CAAC;IAAQ,eAAC,GAAG,CAAC,CAAC;IAH3C,mBAAa,gBAkEzB,CAAA;IAED;QAAsC,oCAAa;QASlD,0BAAa,UAAkB;YAA/B,YACC,kBAAM,UAAU,CAAC,SAEjB;YADA,KAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;;QAC1E,CAAC;QAED,wCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,CAAC;QAGD,mCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;YACzH,UAAU,IAAI,gBAAgB,CAAC,OAAO,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QACpD,CAAC;QAED,gCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAClD,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACvD,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC9D,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACxC,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC1C,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC1C,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC3E,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC5C,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC5C,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC5C,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC5C,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC9C,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC9C,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,GAAG,CAAC,EACtE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAEpF,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxD,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;gBAC3D,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;gBAC3D,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;YAC5D,CAAC;YACD,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACnC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC1B,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxC,CAAC;gBACD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;gBACtG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;YAClF,CAAC;QACF,CAAC;QACF,uBAAC;IAAD,CAAC,AAxFD,CAAsC,aAAa;IAC3C,wBAAO,GAAG,CAAC,CAAC;IACZ,0BAAS,GAAG,CAAC,CAAC,CAAC;IAAQ,uBAAM,GAAG,CAAC,CAAC,CAAC;IAAQ,uBAAM,GAAG,CAAC,CAAC,CAAC;IAAQ,uBAAM,GAAG,CAAC,CAAC,CAAC;IAAQ,uBAAM,GAAG,CAAC,CAAC,CAAC;IAC/F,wBAAO,GAAG,CAAC,CAAC,CAAC;IAAQ,wBAAO,GAAG,CAAC,CAAC,CAAC;IAAQ,wBAAO,GAAG,CAAC,CAAC,CAAC;IACvD,kBAAC,GAAG,CAAC,CAAC;IAAQ,kBAAC,GAAG,CAAC,CAAC;IAAQ,kBAAC,GAAG,CAAC,CAAC;IAAQ,kBAAC,GAAG,CAAC,CAAC;IAAQ,mBAAE,GAAG,CAAC,CAAC;IAAQ,mBAAE,GAAG,CAAC,CAAC;IAAQ,mBAAE,GAAG,CAAC,CAAC;IAJxF,sBAAgB,mBAwF5B,CAAA;IAED;QAKC,4BAAa,UAAkB;YAC9B,IAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,KAAK,CAAS,UAAU,CAAC,CAAC;QACtD,CAAC;QAED,0CAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACzD,CAAC;QAED,0CAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3B,CAAC;QAGD,qCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,cAAsB;YACjE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC;QACnD,CAAC;QAED,kCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC;gBAC5B,IAAI,gBAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;gBAC9C,IAAI,CAAC,aAAa,CAAC,gBAAc,IAAI,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAc,CAAC,CAAC,CAAC;gBAC3G,MAAM,CAAC;YACR,CAAC;YAED,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,gBAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;oBAC9C,IAAI,CAAC,aAAa,CAAC,gBAAc,IAAI,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAc,CAAC,CAAC,CAAC;gBAC5G,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACrC,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAChC,IAAI;gBACH,UAAU,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAE1D,IAAI,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACtD,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;iBAC5B,aAAa,CAAC,cAAc,IAAI,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;QACzG,CAAC;QACF,yBAAC;IAAD,CAAC,AAnDD,IAmDC;IAnDY,wBAAkB,qBAmD9B,CAAA;IAED;QAAoC,kCAAa;QAMhD,wBAAa,UAAkB;YAA/B,YACC,kBAAM,UAAU,CAAC,SAGjB;YAFA,KAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC9C,KAAI,CAAC,aAAa,GAAG,IAAI,KAAK,CAAoB,UAAU,CAAC,CAAC;;QAC/D,CAAC;QAED,sCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACrD,CAAC;QAGD,iCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,QAA2B;YACtE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;QAC3C,CAAC;QAED,8BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,IAAI,GAAS,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,cAAc,GAAe,IAAI,CAAC,aAAa,EAAE,CAAC;YACtD,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,YAAY,MAAA,gBAAgB,CAAC,IAAI,CAAoB,cAAe,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE9H,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,aAAa,GAAkB,IAAI,CAAC,kBAAkB,CAAC;YAC3D,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,MAAA,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;gBACpD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,IAAI,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAE1C,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,IAAI,WAAW,CAAC;gBAAC,KAAK,GAAG,CAAC,CAAC;YACnD,IAAI,QAAQ,GAAkB,MAAA,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YAE7E,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,IAAI,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACpD,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,MAAA,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;gBAC5D,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACtB,IAAI,gBAAgB,GAAG,cAAkC,CAAC;oBAC1D,EAAE,CAAC,CAAC,gBAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;wBAEpC,IAAI,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC;wBAC9C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;4BACtC,IAAI,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;4BAC7B,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;wBACzD,CAAC;oBACF,CAAC;oBAAC,IAAI,CAAC,CAAC;wBAEP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;4BACnC,QAAQ,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBACxC,CAAC;gBACF,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;wBACnC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBACzD,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAGD,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACjD,IAAI,YAAY,GAAG,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YAExG,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBAC3B,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;gBACzD,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACtB,IAAI,gBAAgB,GAAG,cAAkC,CAAC;gBAC1D,EAAE,CAAC,CAAC,gBAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;oBAEpC,IAAI,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC;oBAC9C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;wBACrD,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;oBACnF,CAAC;gBACF,CAAC;gBAAC,IAAI,CAAC,CAAC;oBAEP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;wBAC3B,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC;oBACnE,CAAC;gBACF,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBAC3B,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAClF,CAAC;YACF,CAAC;QACF,CAAC;QACF,qBAAC;IAAD,CAAC,AArGD,CAAoC,aAAa,GAqGhD;IArGY,oBAAc,iBAqG1B,CAAA;IAED;QAIC,uBAAa,UAAkB;YAC9B,IAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAQ,UAAU,CAAC,CAAC;QAC5C,CAAC;QAED,qCAAa,GAAb;YACC,MAAM,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,CAAC;QAED,qCAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3B,CAAC;QAGD,gCAAQ,GAAR,UAAU,UAAkB,EAAE,KAAY;YACzC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;QACjC,CAAC;QAGD,6BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC;YAChC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAEpC,EAAE,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC3F,QAAQ,GAAG,CAAC,CAAC,CAAC;YACf,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;gBAC7C,MAAM,CAAC;YACR,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE7B,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,EAAE,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,KAAK,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC;gBACL,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACjD,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC;oBAClB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC;wBAAC,KAAK,CAAC;oBAC1C,KAAK,EAAE,CAAC;gBACT,CAAC;YACF,CAAC;YACD,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,UAAU,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE;gBAC1D,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC;QACF,oBAAC;IAAD,CAAC,AAlDD,IAkDC;IAlDY,mBAAa,gBAkDzB,CAAA;IAED;QAIC,2BAAa,UAAkB;YAC9B,IAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,KAAK,CAAgB,UAAU,CAAC,CAAC;QACxD,CAAC;QAED,yCAAa,GAAb;YACC,MAAM,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC;QACrC,CAAC;QAED,yCAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3B,CAAC;QAID,oCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,SAAwB;YACnE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;QACzC,CAAC;QAED,iCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,SAAS,GAAgB,QAAQ,CAAC,SAAS,CAAC;YAChD,IAAI,KAAK,GAAgB,QAAQ,CAAC,KAAK,CAAC;YACxC,EAAE,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC;gBAC5B,MAAA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACjF,MAAM,CAAC;YACR,CAAC;YAED,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,MAAA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAChG,MAAM,CAAC;YACR,CAAC;YAED,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACrC,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3B,IAAI;gBACH,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAElD,IAAI,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACnD,EAAE,CAAC,CAAC,qBAAqB,IAAI,IAAI,CAAC;gBACjC,MAAA,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,CAAC,CAAC;gBACL,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAC3D,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;QACF,CAAC;QACF,wBAAC;IAAD,CAAC,AApDD,IAoDC;IApDY,uBAAiB,oBAoD7B,CAAA;IAED;QAA0C,wCAAa;QAQtD,8BAAa,UAAkB;YAA/B,YACC,kBAAM,UAAU,CAAC,SAEjB;YADA,KAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;;QAC9E,CAAC;QAED,4CAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,YAAY,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACnE,CAAC;QAGD,uCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,GAAW,EAAE,aAAqB;YAC7E,UAAU,IAAI,oBAAoB,CAAC,OAAO,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,oBAAoB,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC;QAC/E,CAAC;QAED,oCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAiB,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9E,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;oBACrC,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC1D,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAClE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBAC7H,UAAU,CAAC,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa;0BACjE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;gBACrE,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBACnG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;wBAAC,UAAU,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;gBAC7G,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAGD,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC/E,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,oBAAoB,CAAC,OAAO,GAAG,CAAC,EAC1E,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YAExF,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACf,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACxI,UAAU,CAAC,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;YACjI,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC9G,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;oBAAC,UAAU,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;YACrG,CAAC;QACF,CAAC;QACF,2BAAC;IAAD,CAAC,AA/DD,CAA0C,aAAa;IAC/C,4BAAO,GAAG,CAAC,CAAC;IACZ,8BAAS,GAAG,CAAC,CAAC,CAAC;IAAQ,6BAAQ,GAAG,CAAC,CAAC,CAAC;IAAQ,wCAAmB,GAAG,CAAC,CAAC,CAAC;IACtE,wBAAG,GAAG,CAAC,CAAC;IAAQ,mCAAc,GAAG,CAAC,CAAC;IAH9B,0BAAoB,uBA+DhC,CAAA;IAED;QAAiD,+CAAa;QAQ7D,qCAAa,UAAkB;YAA/B,YACC,kBAAM,UAAU,CAAC,SAEjB;YADA,KAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;;QACrF,CAAC;QAED,mDAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,mBAAmB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC;QACjF,CAAC;QAGD,8CAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,SAAiB,EAAE,YAAoB,EAAE,QAAgB,EAAE,QAAgB;YACtH,UAAU,IAAI,2BAA2B,CAAC,OAAO,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,2BAA2B,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,2BAA2B,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC;YAC/E,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;QACxE,CAAC;QAED,2CAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,UAAU,GAAwB,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACnG,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;oBAC3B,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;oBACtC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;oBACzC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACpC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACrC,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,MAAM,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;YACpD,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACzE,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;gBAC7D,SAAS,GAAG,MAAM,CAAC,CAAC,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;gBACnE,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;gBAC3D,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;YAC5D,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,2BAA2B,CAAC,OAAO,CAAC,CAAC;gBACtF,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;gBACjE,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;gBACvE,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;gBAC/D,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;gBAC/D,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,2BAA2B,CAAC,OAAO,GAAG,CAAC,EACjF,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAE/F,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;gBAClF,SAAS,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC;gBAC3F,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC;gBAC/E,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC;YAChF,CAAC;YACD,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;gBAC3B,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;gBAC1E,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;gBACtF,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;gBACtE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YACvE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,UAAU,CAAC,SAAS,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;gBAChE,UAAU,CAAC,YAAY,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;gBACzE,UAAU,CAAC,QAAQ,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;gBAC7D,UAAU,CAAC,QAAQ,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YAC9D,CAAC;QACF,CAAC;QACF,kCAAC;IAAD,CAAC,AA9ED,CAAiD,aAAa;IACtD,mCAAO,GAAG,CAAC,CAAC;IACZ,qCAAS,GAAG,CAAC,CAAC,CAAC;IAAQ,uCAAW,GAAG,CAAC,CAAC,CAAC;IAAQ,0CAAc,GAAG,CAAC,CAAC,CAAC;IAAQ,sCAAU,GAAG,CAAC,CAAC,CAAC;IAAQ,sCAAU,GAAG,CAAC,CAAC,CAAC;IACpH,kCAAM,GAAG,CAAC,CAAC;IAAQ,qCAAS,GAAG,CAAC,CAAC;IAAQ,iCAAK,GAAG,CAAC,CAAC;IAAQ,iCAAK,GAAG,CAAC,CAAC;IAHhE,iCAA2B,8BA8EvC,CAAA;IAED;QAAoD,kDAAa;QAShE,wCAAa,UAAkB;YAA/B,YACC,kBAAM,UAAU,CAAC,SAEjB;YADA,KAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;;QACxF,CAAC;QAED,sDAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,sBAAsB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC/E,CAAC;QAGD,iDAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,KAAa;YACxD,UAAU,IAAI,8BAA8B,CAAC,OAAO,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,8BAA8B,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QACxE,CAAC;QAED,8CAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAmB,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACpF,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC9D,MAAM,CAAC;YACR,CAAC;YAED,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;gBAC1E,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;YAC9E,IAAI,CAAC,CAAC;gBAEL,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,8BAA8B,CAAC,OAAO,CAAC,CAAC;gBACzF,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;gBACrE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,8BAA8B,CAAC,OAAO,GAAG,CAAC,EACpF,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,8BAA8B,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAElG,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,8BAA8B,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC;YACzF,CAAC;YACD,EAAE,CAAC,CAAC,SAAS,CAAC;gBACb,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YAChG,IAAI;gBACH,UAAU,CAAC,QAAQ,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAClE,CAAC;QACF,qCAAC;IAAD,CAAC,AAnDD,CAAoD,aAAa;IACzD,sCAAO,GAAG,CAAC,CAAC;IACZ,wCAAS,GAAG,CAAC,CAAC,CAAC;IAAQ,yCAAU,GAAG,CAAC,CAAC,CAAC;IACvC,oCAAK,GAAG,CAAC,CAAC;IAHL,oCAA8B,iCAmD1C,CAAA;IAED;QAAmD,iDAA8B;QAChF,uCAAa,UAAkB;mBAC9B,kBAAM,UAAU,CAAC;QAClB,CAAC;QAED,qDAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,qBAAqB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC9E,CAAC;QAED,6CAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAmB,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACpF,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC5D,MAAM,CAAC;YACR,CAAC;YAED,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;gBACzE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAC;YAC5E,IAAI,CAAC,CAAC;gBAEL,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,6BAA6B,CAAC,OAAO,CAAC,CAAC;gBACxF,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAC;gBACnE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,6BAA6B,CAAC,OAAO,GAAG,CAAC,EACnF,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,6BAA6B,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAEjG,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,6BAA6B,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC;YACtF,CAAC;YAED,EAAE,CAAC,CAAC,SAAS,CAAC;gBACb,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YAC5F,IAAI;gBACH,UAAU,CAAC,OAAO,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QAC/D,CAAC;QACF,oCAAC;IAAD,CAAC,AApCD,CAAmD,8BAA8B,GAoChF;IApCY,mCAA6B,gCAoCzC,CAAA;IAED;QAA+C,6CAAa;QAS3D,mCAAa,UAAkB;YAA/B,YACC,kBAAM,UAAU,CAAC,SAEjB;YADA,KAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;;QACnF,CAAC;QAED,iDAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,iBAAiB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC1E,CAAC;QAGD,4CAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,SAAiB,EAAE,YAAoB;YAClF,UAAU,IAAI,yBAAyB,CAAC,OAAO,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,yBAAyB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,yBAAyB,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC;QAC9E,CAAC;QAED,yCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAmB,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEpF,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;oBACjD,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;gBACxD,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,MAAM,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;gBACvE,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;YAC9E,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC;gBACpF,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;gBAC/D,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;gBACrE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,yBAAyB,CAAC,OAAO,GAAG,CAAC,EAC/E,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAE7F,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;gBAChF,SAAS,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC;YAC1F,CAAC;YAED,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACf,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;gBAChG,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;YAC7G,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,UAAU,CAAC,SAAS,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;gBAChE,UAAU,CAAC,YAAY,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;YAC1E,CAAC;QACF,CAAC;QACF,gCAAC;IAAD,CAAC,AA/DD,CAA+C,aAAa;IACpD,iCAAO,GAAG,CAAC,CAAC;IACZ,mCAAS,GAAG,CAAC,CAAC,CAAC;IAAQ,qCAAW,GAAG,CAAC,CAAC,CAAC;IAAQ,wCAAc,GAAG,CAAC,CAAC,CAAC;IACpE,gCAAM,GAAG,CAAC,CAAC;IAAQ,mCAAS,GAAG,CAAC,CAAC;IAH5B,+BAAyB,4BA+DrC,CAAA;AACF,CAAC,EAvlCM,KAAK,KAAL,KAAK,QAulCX;ACvlCD,IAAO,KAAK,CA0wBX;AA1wBD,WAAO,KAAK;IACX;QAmBC,wBAAa,IAAwB;YAXrC,WAAM,GAAG,IAAI,KAAK,EAAc,CAAC;YACjC,WAAM,GAAG,IAAI,KAAK,EAAS,CAAC;YAC5B,cAAS,GAAG,IAAI,KAAK,EAA2B,CAAC;YACjD,UAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;YAC7B,gBAAW,GAAG,IAAI,MAAA,MAAM,EAAE,CAAC;YAC3B,aAAQ,GAAG,IAAI,KAAK,EAAc,CAAC;YACnC,sBAAiB,GAAG,KAAK,CAAC;YAC1B,cAAS,GAAG,CAAC,CAAC;YAEd,mBAAc,GAAG,IAAI,MAAA,IAAI,CAAa,cAAM,OAAA,IAAI,UAAU,EAAE,EAAhB,CAAgB,CAAC,CAAC;YAG7D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QAED,+BAAM,GAAN,UAAQ,KAAa;YACpB,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC;YACxB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,IAAI,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;oBAAC,QAAQ,CAAC;gBAE9B,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC;gBAClD,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;gBAE1C,IAAI,YAAY,GAAG,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC;gBAE7C,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;oBACvB,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC;oBAC9B,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;wBAAC,QAAQ,CAAC;oBAChC,YAAY,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;oBAC9B,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;gBACnB,CAAC;gBAED,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBACxB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;oBAElB,IAAI,QAAQ,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC9C,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;wBACnB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;wBACf,IAAI,CAAC,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;wBACnD,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC;wBAClC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC/B,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;4BAChC,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC;4BAC7B,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;wBACxB,CAAC;wBACD,QAAQ,CAAC;oBACV,CAAC;gBACF,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;oBAChF,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;oBACjB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACxB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC1B,QAAQ,CAAC;gBACV,CAAC;gBACD,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;oBAEzE,IAAI,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;oBAC9B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;oBAC1B,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC;wBACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACrB,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;oBACxB,CAAC;gBACF,CAAC;gBAED,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC;YACnC,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAED,yCAAgB,GAAhB,UAAkB,EAAc,EAAE,KAAa;YAC9C,IAAI,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YAE9B,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAGlD,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3E,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC1B,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;oBAChC,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;oBACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC;gBACD,MAAM,CAAC,QAAQ,CAAC;YACjB,CAAC;YAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;YACpC,IAAI,CAAC,SAAS,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;YACzC,EAAE,CAAC,OAAO,IAAI,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,8BAAK,GAAL,UAAO,QAAkB;YACxB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;gBAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAEtD,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,IAAI,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;oBAAC,QAAQ,CAAC;gBAGnD,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;gBACxB,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;oBAC9B,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAChD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;oBACtE,GAAG,GAAG,CAAC,CAAC;gBAGT,IAAI,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBACtF,IAAI,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;gBACvD,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;gBAC5C,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACd,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,aAAa,EAAE,EAAE,EAAE;wBACxC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACtF,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;oBAExC,IAAI,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,CAAC;oBACvD,EAAE,CAAC,CAAC,UAAU,CAAC;wBAAC,MAAA,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,aAAa,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;oBACxF,IAAI,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;oBAElD,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC;wBAC3C,IAAI,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;wBAC7B,EAAE,CAAC,CAAC,QAAQ,YAAY,MAAA,cAAc,CAAC,CAAC,CAAC;4BACxC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,IAAI,CAAC,EACpI,UAAU,CAAC,CAAC;wBACd,CAAC;wBAAC,IAAI;4BACL,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBACvH,CAAC;gBACF,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBACzC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,OAAO,CAAC,iBAAiB,GAAG,aAAa,CAAC;gBAC1C,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;YAC3C,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAED,wCAAe,GAAf,UAAiB,EAAc,EAAE,QAAkB;YAClD,IAAI,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;gBAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAElE,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC;gBACvB,GAAG,GAAG,CAAC,CAAC;YACT,IAAI,CAAC,CAAC;gBACL,GAAG,GAAG,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC;gBAClC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;oBAAC,GAAG,GAAG,CAAC,CAAC;YACtB,CAAC;YAED,IAAI,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YAC5D,IAAI,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC5F,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAChF,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;YACpD,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YACzC,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACrC,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAEzC,IAAI,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,CAAC;YACpD,EAAE,CAAC,CAAC,UAAU,CAAC;gBAAC,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YACrF,IAAI,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAE/C,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,cAAc,EAAE,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC;YACtF,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1B,KAAK,cAAc,CAAC,UAAU;wBAC7B,KAAK,GAAG,KAAK,CAAC;wBACd,KAAK,GAAG,QAAQ,CAAC;wBACjB,KAAK,CAAC;oBACP,KAAK,cAAc,CAAC,KAAK;wBACxB,KAAK,GAAG,IAAI,CAAC;wBACb,KAAK,GAAG,QAAQ,CAAC;wBACjB,KAAK,CAAC;oBACP,KAAK,cAAc,CAAC,GAAG;wBACtB,KAAK,GAAG,IAAI,CAAC;wBACb,KAAK,GAAG,QAAQ,CAAC;wBACjB,KAAK,CAAC;oBACP;wBACC,KAAK,GAAG,IAAI,CAAC;wBACb,KAAK,GAAG,QAAQ,CAAC;wBACjB,IAAI,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;wBAC/B,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;wBAC9D,KAAK,CAAC;gBACP,CAAC;gBACD,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;gBACzB,EAAE,CAAC,CAAC,QAAQ,YAAY,MAAA,cAAc,CAAC;oBACtC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;gBAClH,IAAI,CAAC,CAAC;oBACL,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBACZ,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,QAAQ,YAAY,MAAA,kBAAkB,CAAC;4BAAC,QAAQ,CAAC;wBACrE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,QAAQ,YAAY,MAAA,iBAAiB,CAAC;4BAAC,QAAQ,CAAC;oBACnE,CAAC;oBACD,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBACpF,CAAC;YACF,CAAC;YAED,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC;YACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;YAEpC,MAAM,CAAC,GAAG,CAAC;QACZ,CAAC;QAED,4CAAmB,GAAnB,UAAqB,QAAkB,EAAE,QAAkB,EAAE,IAAY,EAAE,KAAa,EAAE,SAAkB,EAC3G,iBAAgC,EAAE,CAAS,EAAE,UAAmB;YAEhE,EAAE,CAAC,CAAC,UAAU,CAAC;gBAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAEzC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC7D,MAAM,CAAC;YACR,CAAC;YAED,IAAI,cAAc,GAAG,QAA0B,CAAC;YAChD,IAAI,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;YACnC,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACpD,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAClD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAA,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC1D,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAA,cAAc,CAAC,aAAa,CAAC,CAAC;YAChF,IAAI,CAAC,CAAC;gBAEL,IAAI,KAAK,GAAG,MAAA,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,MAAA,cAAc,CAAC,OAAO,CAAC,CAAC;gBACzE,IAAI,YAAY,GAAG,MAAM,CAAC,KAAK,GAAG,MAAA,cAAc,CAAC,aAAa,CAAC,CAAC;gBAChE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,EAC5D,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,MAAA,cAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAElF,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,MAAA,cAAc,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;gBAC5D,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBAC5D,EAAE,GAAG,YAAY,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACtD,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YAC7D,CAAC;YAGD,IAAI,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACxD,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;YAC9B,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;gBACf,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBAChE,IAAI,SAAS,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC;gBAChC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;oBAChB,SAAS,GAAG,CAAC,CAAC;oBACd,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;oBACjC,QAAQ,GAAG,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrC,CAAC;gBACD,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,IAAI,CAAC,CAAC;gBAE7C,EAAE,CAAC,CAAC,MAAA,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAA,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAEtF,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;wBAAC,SAAS,IAAI,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAC9E,GAAG,GAAG,OAAO,CAAC;gBACf,CAAC;gBACD,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,GAAG,CAAC;gBAC3C,EAAE,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC;oBAAC,KAAK,IAAI,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC/D,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YAC9B,CAAC;YACD,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YAChC,EAAE,IAAI,KAAK,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAC5E,CAAC;QAED,oCAAW,GAAX,UAAa,KAAiB,EAAE,aAAqB;YACpD,IAAI,cAAc,GAAG,KAAK,CAAC,cAAc,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YAC7E,IAAI,QAAQ,GAAG,YAAY,GAAG,cAAc,CAAC;YAC7C,IAAI,gBAAgB,GAAG,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;YAGlD,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YAC7B,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnB,IAAI,OAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,OAAK,CAAC,IAAI,GAAG,gBAAgB,CAAC;oBAAC,KAAK,CAAC;gBACzC,EAAE,CAAC,CAAC,OAAK,CAAC,IAAI,GAAG,YAAY,CAAC;oBAAC,QAAQ,CAAC;gBACxC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,OAAK,CAAC,CAAC;YAChC,CAAC;YAGD,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,gBAAgB,GAAG,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;kBAC7D,CAAC,aAAa,IAAI,YAAY,IAAI,KAAK,CAAC,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC1E,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;YAGD,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnB,IAAI,OAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,OAAK,CAAC,IAAI,GAAG,cAAc,CAAC;oBAAC,QAAQ,CAAC;gBAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,CAAC;QACF,CAAC;QAED,oCAAW,GAAX;YACC,IAAI,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAChC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACjD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,gBAAgB,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAED,mCAAU,GAAV,UAAY,UAAkB;YAC7B,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC;YAC7C,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACtC,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC;YAE5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAExB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAE1B,IAAI,KAAK,GAAG,OAAO,CAAC;YACpB,OAAO,IAAI,EAAE,CAAC;gBACb,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;gBAC5B,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;oBAAC,KAAK,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;gBACxB,KAAK,GAAG,IAAI,CAAC;YACd,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAEvC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAED,mCAAU,GAAV,UAAY,KAAa,EAAE,OAAmB,EAAE,SAAkB;YACjE,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;YAE7B,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;gBAClB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC1C,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;gBAC1B,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;gBAGpB,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;oBACnD,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;gBAExE,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;YACnC,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,qCAAY,GAAZ,UAAc,UAAkB,EAAE,aAAqB,EAAE,IAAa;YACrE,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YACpE,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,aAAa,CAAC,CAAC;YAChF,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC3D,CAAC;QAED,yCAAgB,GAAhB,UAAkB,UAAkB,EAAE,SAAoB,EAAE,IAAa;YACxE,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACpE,IAAI,SAAS,GAAG,IAAI,CAAC;YACrB,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC7C,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;gBACrB,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEjC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;oBAC7C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACxB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC1B,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;oBAC7B,SAAS,GAAG,KAAK,CAAC;gBACnB,CAAC;gBAAC,IAAI;oBACL,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,qCAAY,GAAZ,UAAc,UAAkB,EAAE,aAAqB,EAAE,IAAa,EAAE,KAAa;YACpF,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YACpE,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,aAAa,CAAC,CAAC;YAChF,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAClE,CAAC;QAED,yCAAgB,GAAhB,UAAkB,UAAkB,EAAE,SAAoB,EAAE,IAAa,EAAE,KAAa;YACvF,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAEpE,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;gBAClB,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI;oBACvB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC;YAED,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAE/D,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;gBAClB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;oBACvD,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;wBACjB,KAAK,IAAI,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;oBAC3G,IAAI;wBACH,KAAK,GAAG,CAAC,CAAC;gBACZ,CAAC;YACF,CAAC;YAED,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,0CAAiB,GAAjB,UAAmB,UAAkB,EAAE,WAAmB;YACzD,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YACpF,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;YAChC,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,0CAAiB,GAAjB,UAAmB,UAAkB,EAAE,WAAmB,EAAE,KAAa;YACxE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;gBAAC,KAAK,IAAI,WAAW,CAAC;YACrC,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3F,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;YAChC,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,2CAAkB,GAAlB,UAAoB,WAAmB;YACtC,IAAI,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAChC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpD,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC7B,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;oBAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAC9E,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,gBAAgB,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAED,sCAAa,GAAb,UAAe,KAAa;YAC3B,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1D,MAAA,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7E,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,mCAAU,GAAV,UAAY,UAAkB,EAAE,SAAoB,EAAE,IAAa,EAAE,IAAgB;YACpF,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YACzC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;YAC9B,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YAElB,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;YACzB,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC;YAC9B,KAAK,CAAC,kBAAkB,GAAG,CAAC,CAAC;YAE7B,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;YACzB,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC;YACxC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YACzB,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;YAE7B,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;YACpB,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YACrB,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YACzB,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;YAClC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;YAEpB,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;YACzB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;YAClB,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACnF,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,oCAAW,GAAX,UAAa,KAAiB;YAC7B,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACtB,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC;gBACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAClB,CAAC;YACD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,2CAAkB,GAAlB;YACC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAE/B,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,WAAW,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAE7B,IAAI,SAAS,GAAe,IAAI,CAAC;YACjC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpD,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC3B,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;oBACnB,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;oBACxD,SAAS,GAAG,KAAK,CAAC;gBACnB,CAAC;YACF,CAAC;QACF,CAAC;QAED,mCAAU,GAAV,UAAY,UAAkB;YAC7B,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QAED,oCAAW,GAAX,UAAa,QAAiC;YAC7C,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAGD,uCAAc,GAAd,UAAgB,QAAiC;YAChD,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7C,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;gBAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,uCAAc,GAAd;YACC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,CAAC;QAED,mDAA0B,GAA1B;YACC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QACF,qBAAC;IAAD,CAAC,AA9hBD;IACQ,6BAAc,GAAG,IAAI,MAAA,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACjD,yBAAU,GAAG,CAAC,CAAC;IACf,oBAAK,GAAG,CAAC,CAAC;IACV,kBAAG,GAAG,CAAC,CAAC;IACR,sBAAO,GAAG,CAAC,CAAC;IALP,oBAAc,iBA8hB1B,CAAA;IAED;QAAA;YAUC,iBAAY,GAAG,IAAI,KAAK,EAAU,CAAC;YACnC,mBAAc,GAAG,IAAI,KAAK,EAAc,CAAC;YACzC,sBAAiB,GAAG,IAAI,KAAK,EAAU,CAAC;QA6EzC,CAAC;QA3EA,0BAAK,GAAL;YACC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QACnC,CAAC;QAED,oCAAe,GAAf,UAAiB,EAAc,EAAE,aAAgC,EAAE,WAAmB;YACrF,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC;gBAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;YACnH,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC;gBAAC,aAAa,CAAC,GAAG,EAAE,CAAC;YAEpC,IAAI,QAAQ,GAAG,aAAa,CAAC;YAC7B,IAAI,YAAY,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5C,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YACzC,IAAI,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;YACrD,IAAI,YAAY,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YACzE,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/B,IAAI,cAAc,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;YAE7E,KAAK,EACL,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;gBACtC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACxB,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC;gBAC7C,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;oBAC1C,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC;gBACxC,IAAI,CAAC,CAAC;oBACL,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,YAAY,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;wBAC3C,IAAI,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;wBACzB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;4BAC5B,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;gCAC3B,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC;gCACzC,cAAc,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gCAC1B,QAAQ,CAAC,KAAK,CAAC;4BAChB,CAAC;wBACF,CAAC;oBACF,CAAC;oBACD,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC;gBACtC,CAAC;YACF,CAAC;YACD,MAAM,CAAC,SAAS,CAAC;QAClB,CAAC;QAED,gCAAW,GAAX,UAAa,EAAU;YACtB,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YACzC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC/C,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,qCAAgB,GAAhB;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACf,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;gBACvD,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;gBAC9C,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;YAC1D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1E,CAAC;QAED,qCAAgB,GAAhB,UAAiB,aAAqB;YACrC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YACnC,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC;QACxC,CAAC;QAED,+BAAU,GAAV;YACC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;QAClE,CAAC;QAED,4CAAuB,GAAvB;YACC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QACnC,CAAC;QACF,iBAAC;IAAD,CAAC,AAzFD,IAyFC;IAzFY,gBAAU,aAyFtB,CAAA;IAED;QAKC,oBAAY,SAAyB;YAJrC,YAAO,GAAe,EAAE,CAAC;YACzB,kBAAa,GAAG,KAAK,CAAC;YAIrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC5B,CAAC;QAED,0BAAK,GAAL,UAAO,KAAiB;YACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC;QACzC,CAAC;QAED,8BAAS,GAAT,UAAW,KAAiB;YAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,wBAAG,GAAH,UAAK,KAAiB;YACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC;QACzC,CAAC;QAED,4BAAO,GAAP,UAAS,KAAiB;YACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,6BAAQ,GAAR,UAAU,KAAiB;YAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,0BAAK,GAAL,UAAO,KAAiB,EAAE,KAAY;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,0BAAK,GAAL;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;gBAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAE1B,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC3B,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YAEzC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAc,CAAC;gBACnC,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAe,CAAC;gBACzC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBACf,KAAK,SAAS,CAAC,KAAK;wBACnB,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBAChF,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;gCAAC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACrD,KAAK,CAAC;oBACP,KAAK,SAAS,CAAC,SAAS;wBACvB,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;4BAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wBACxF,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;gCAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wBAC7D,KAAK,CAAC;oBACP,KAAK,SAAS,CAAC,GAAG;wBACjB,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;4BAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC5E,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;gCAAC,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAElD,KAAK,SAAS,CAAC,OAAO;wBACrB,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;4BAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBACpF,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;gCAAC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBACzD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC1C,KAAK,CAAC;oBACP,KAAK,SAAS,CAAC,QAAQ;wBACtB,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;4BAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBACtF,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;gCAAC,SAAS,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBAC3D,KAAK,CAAC;oBACP,KAAK,SAAS,CAAC,KAAK;wBACnB,IAAI,OAAK,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAU,CAAC;wBACtC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,OAAK,CAAC,CAAC;wBACvF,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;gCAAC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAK,CAAC,CAAC;wBAC5D,KAAK,CAAC;gBACP,CAAC;YACF,CAAC;YACD,IAAI,CAAC,KAAK,EAAE,CAAC;YAEb,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC5B,CAAC;QAED,0BAAK,GAAL;YACC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,CAAC;QACF,iBAAC;IAAD,CAAC,AA/FD,IA+FC;IA/FY,gBAAU,aA+FtB,CAAA;IAED,IAAY,SAEX;IAFD,WAAY,SAAS;QACpB,2CAAK,CAAA;QAAE,mDAAS,CAAA;QAAE,uCAAG,CAAA;QAAE,+CAAO,CAAA;QAAE,iDAAQ,CAAA;QAAE,2CAAK,CAAA;IAChD,CAAC,EAFW,SAAS,GAAT,eAAS,KAAT,eAAS,QAEpB;IAwBD;QAAA;QAkBA,CAAC;QAjBA,sCAAK,GAAL,UAAO,KAAiB;QACxB,CAAC;QAED,0CAAS,GAAT,UAAW,KAAiB;QAC5B,CAAC;QAED,oCAAG,GAAH,UAAK,KAAiB;QACtB,CAAC;QAED,wCAAO,GAAP,UAAS,KAAiB;QAC1B,CAAC;QAED,yCAAQ,GAAR,UAAU,KAAiB;QAC3B,CAAC;QAED,sCAAK,GAAL,UAAO,KAAiB,EAAE,KAAY;QACtC,CAAC;QACF,6BAAC;IAAD,CAAC,AAlBD,IAkBC;IAlBqB,4BAAsB,yBAkB3C,CAAA;AACF,CAAC,EA1wBM,KAAK,KAAL,KAAK,QA0wBX;AC1wBD,IAAO,KAAK,CAgCX;AAhCD,WAAO,KAAK;IACX;QAKC,4BAAa,YAA0B;YAHvC,uBAAkB,GAAgB,EAAG,CAAC;YACtC,eAAU,GAAG,CAAC,CAAC;YAGd,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC1E,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAClC,CAAC;QAED,mCAAM,GAAN,UAAQ,QAAgB,EAAE,MAAc,EAAE,QAAgB;YACzD,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACrD,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,QAAQ,CAAC,CAAC;YACtE,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACjD,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,MAAM,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;QAED,uCAAU,GAAV,UAAY,IAAe,EAAE,EAAa,EAAE,QAAgB;YAC3D,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACtD,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;YAC9B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QACzC,CAAC;QAED,mCAAM,GAAN,UAAQ,IAAe,EAAE,EAAa;YACrC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;YAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,KAAK,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACtD,CAAC;QACF,yBAAC;IAAD,CAAC,AA9BD,IA8BC;IA9BY,wBAAkB,qBA8B9B,CAAA;AACF,CAAC,EAhCM,KAAK,KAAL,KAAK,QAgCX;AChCD,IAAO,KAAK,CAiIX;AAjID,WAAO,KAAK;IACX;QAQC,sBAAa,aAA+C,EAAE,UAAuB;YAAvB,2BAAA,EAAA,eAAuB;YAL7E,WAAM,GAAa,EAAE,CAAC;YACtB,WAAM,GAAgB,EAAE,CAAC;YACzB,WAAM,GAAG,CAAC,CAAC;YACX,WAAM,GAAG,CAAC,CAAC;YAGlB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC9B,CAAC;QAED,+BAAQ,GAAR,UAAS,IAAY,EACpB,OAAoD,EACpD,KAAmD;YAFpD,iBAsBC;YArBA,wBAAA,EAAA,cAAoD;YACpD,sBAAA,EAAA,YAAmD;YAEnD,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;YACnC,OAAO,CAAC,kBAAkB,GAAG;gBAC5B,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC/C,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;wBACnD,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;wBACzC,EAAE,CAAC,CAAC,OAAO,CAAC;4BAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;oBAClD,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAsB,IAAI,iBAAY,OAAO,CAAC,MAAM,UAAK,OAAO,CAAC,YAAc,CAAC;wBACpG,EAAE,CAAC,CAAC,KAAK,CAAC;4BAAC,KAAK,CAAC,IAAI,EAAE,wBAAsB,IAAI,iBAAY,OAAO,CAAC,MAAM,UAAK,OAAO,CAAC,YAAc,CAAC,CAAC;oBACzG,CAAC;oBACD,KAAI,CAAC,MAAM,EAAE,CAAC;oBACd,KAAI,CAAC,MAAM,EAAE,CAAC;gBACf,CAAC;YACF,CAAC,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,kCAAW,GAAX,UAAa,IAAY,EACxB,OAA+D,EAC/D,KAAmD;YAFpD,iBAsBC;YArBA,wBAAA,EAAA,cAA+D;YAC/D,sBAAA,EAAA,YAAmD;YAEnD,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;YAC9B,GAAG,CAAC,MAAM,GAAG,UAAC,EAAE;gBACf,IAAI,OAAO,GAAG,KAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACtC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;gBAC5B,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,EAAE,CAAC,CAAC,OAAO,CAAC;oBAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACjC,CAAC,CAAA;YACD,GAAG,CAAC,OAAO,GAAG,UAAC,EAAE;gBAChB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,yBAAuB,IAAM,CAAC;gBAClD,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,EAAE,CAAC,CAAC,KAAK,CAAC;oBAAC,KAAK,CAAC,IAAI,EAAE,yBAAuB,IAAM,CAAC,CAAC;YACvD,CAAC,CAAA;YACD,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,sCAAe,GAAf,UAAgB,IAAY,EAAE,IAAY,EACzC,OAA+D,EAC/D,KAAmD;YAFpD,iBAqBC;YApBA,wBAAA,EAAA,cAA+D;YAC/D,sBAAA,EAAA,YAAmD;YAEnD,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,MAAM,GAAG,UAAC,EAAE;gBACf,IAAI,OAAO,GAAG,KAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACtC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;gBAC5B,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,EAAE,CAAC,CAAC,OAAO,CAAC;oBAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACjC,CAAC,CAAA;YACD,GAAG,CAAC,OAAO,GAAG,UAAC,EAAE;gBAChB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,yBAAuB,IAAM,CAAC;gBAClD,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,EAAE,CAAC,CAAC,KAAK,CAAC;oBAAC,KAAK,CAAC,IAAI,EAAE,yBAAuB,IAAM,CAAC,CAAC;YACvD,CAAC,CAAA;YACD,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,0BAAG,GAAH,UAAK,IAAY;YAChB,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,6BAAM,GAAN,UAAQ,IAAY;YACnB,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAO,KAAM,CAAC,OAAO,CAAC;gBAAO,KAAM,CAAC,OAAO,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,gCAAS,GAAT;YACC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC7B,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7B,EAAE,CAAC,CAAO,KAAM,CAAC,OAAO,CAAC;oBAAO,KAAM,CAAC,OAAO,EAAE,CAAC;YAClD,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAClB,CAAC;QAED,wCAAiB,GAAjB;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACzB,CAAC;QAED,gCAAS,GAAT;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QAED,gCAAS,GAAT;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QAED,8BAAO,GAAP;YACC,IAAI,CAAC,SAAS,EAAE,CAAC;QAClB,CAAC;QAED,gCAAS,GAAT;YACC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5C,CAAC;QAED,gCAAS,GAAT;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QACF,mBAAC;IAAD,CAAC,AA/HD,IA+HC;IA/HY,kBAAY,eA+HxB,CAAA;AACF,CAAC,EAjIM,KAAK,KAAL,KAAK,QAiIX;ACjID,IAAO,KAAK,CA8CX;AA9CD,WAAO,KAAK;IACX;QAGC,+BAAa,KAAmB;YAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,CAAC;QAGD,mDAAmB,GAAnB,UAAqB,IAAU,EAAE,IAAY,EAAE,IAAY;YAC1D,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACzC,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,IAAI,GAAG,uBAAuB,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;YACjH,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;YAC7B,IAAI,UAAU,GAAG,IAAI,MAAA,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC5C,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,CAAC,UAAU,CAAC;QACnB,CAAC;QAGD,iDAAiB,GAAjB,UAAmB,IAAU,EAAE,IAAY,EAAE,IAAY;YACxD,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACzC,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,IAAI,GAAG,qBAAqB,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;YAC/G,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;YAC7B,IAAI,UAAU,GAAG,IAAI,MAAA,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1C,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;YAC3B,MAAM,CAAC,UAAU,CAAC;QACnB,CAAC;QAGD,wDAAwB,GAAxB,UAA0B,IAAU,EAAE,IAAY;YACjD,MAAM,CAAC,IAAI,MAAA,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAGD,iDAAiB,GAAjB,UAAmB,IAAU,EAAE,IAAY;YAC1C,MAAM,CAAC,IAAI,MAAA,cAAc,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,kDAAkB,GAAlB,UAAmB,IAAU,EAAE,IAAY;YAC1C,MAAM,CAAC,IAAI,MAAA,eAAe,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,qDAAqB,GAArB,UAAsB,IAAU,EAAE,IAAY;YAC7C,MAAM,CAAC,IAAI,MAAA,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QACF,4BAAC;IAAD,CAAC,AA5CD,IA4CC;IA5CY,2BAAqB,wBA4CjC,CAAA;AACF,CAAC,EA9CM,KAAK,KAAL,KAAK,QA8CX;AC9CD,IAAO,KAAK,CAOX;AAPD,WAAO,KAAK;IACX,IAAY,SAKX;IALD,WAAY,SAAS;QACpB,6CAAM,CAAA;QACN,iDAAQ,CAAA;QACR,iDAAQ,CAAA;QACR,6CAAM,CAAA;IACP,CAAC,EALW,SAAS,GAAT,eAAS,KAAT,eAAS,QAKpB;AACF,CAAC,EAPM,KAAK,KAAL,KAAK,QAOX;ACPD,IAAO,KAAK,CA8QX;AA9QD,WAAO,KAAK;IACX;QAeC,cAAa,IAAc,EAAE,QAAkB,EAAE,MAAY;YAX7D,aAAQ,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC7B,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAC3E,OAAE,GAAG,CAAC,CAAC;YAAC,OAAE,GAAG,CAAC,CAAC;YAAC,cAAS,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAClF,iBAAY,GAAG,KAAK,CAAC;YAErB,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YACzB,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAEzB,WAAM,GAAG,KAAK,CAAC;YAId,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC;QAGD,qBAAM,GAAN;YACC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClH,CAAC;QAGD,mCAAoB,GAApB;YACC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClH,CAAC;QAGD,uCAAwB,GAAxB,UAA0B,CAAS,EAAE,CAAS,EAAE,QAAgB,EAAE,MAAc,EAAE,MAAc,EAAE,MAAc,EAAE,MAAc;YAC/H,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACZ,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACZ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAEzB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;gBACpB,IAAI,SAAS,GAAG,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC;gBACvC,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;gBACtD,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;gBAC9C,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;gBACtD,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;gBAC9C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC7B,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBACpB,CAAC,GAAG,CAAC,CAAC,CAAC;oBACP,EAAE,GAAG,CAAC,EAAE,CAAC;oBACT,EAAE,GAAG,CAAC,EAAE,CAAC;gBACV,CAAC;gBACD,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBACpB,CAAC,GAAG,CAAC,CAAC,CAAC;oBACP,EAAE,GAAG,CAAC,EAAE,CAAC;oBACT,EAAE,GAAG,CAAC,EAAE,CAAC;gBACV,CAAC;gBACD,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACZ,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACZ,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACZ,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACZ,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC7B,MAAM,CAAC;YACR,CAAC;YAED,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YAE9C,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBAClC,KAAK,MAAA,aAAa,CAAC,MAAM,EAAE,CAAC;oBAC3B,IAAI,SAAS,GAAG,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC;oBACvC,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBACtD,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;oBAC9C,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBACtD,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;oBAC9C,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,MAAM,CAAC;gBACR,CAAC;gBACD,KAAK,MAAA,aAAa,CAAC,eAAe,EAAE,CAAC;oBACpC,IAAI,SAAS,GAAG,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC;oBACvC,IAAI,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBACtD,IAAI,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;oBAC9C,IAAI,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBACtD,IAAI,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;oBAC9C,KAAK,CAAC;gBACP,CAAC;gBACD,KAAK,MAAA,aAAa,CAAC,sBAAsB,EAAE,CAAC;oBAC3C,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC1B,IAAI,GAAG,GAAG,CAAC,CAAC;oBACZ,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;wBAChB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;wBACpC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;wBACZ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;wBACZ,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;oBAC7C,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,EAAE,GAAG,CAAC,CAAC;wBACP,EAAE,GAAG,CAAC,CAAC;wBACP,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;oBAClD,CAAC;oBACD,IAAI,EAAE,GAAG,QAAQ,GAAG,MAAM,GAAG,GAAG,CAAC;oBACjC,IAAI,EAAE,GAAG,QAAQ,GAAG,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC;oBACtC,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;oBACvC,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;oBACvC,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;oBACvC,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;oBACvC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,KAAK,CAAC;gBACP,CAAC;gBACD,KAAK,MAAA,aAAa,CAAC,OAAO,CAAC;gBAC3B,KAAK,MAAA,aAAa,CAAC,mBAAmB,EAAE,CAAC;oBACxC,IAAI,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACrC,IAAI,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACrC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;oBAC7B,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;oBAC7B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBACrC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;wBAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC3B,EAAE,IAAI,CAAC,CAAC;oBACR,EAAE,IAAI,CAAC,CAAC;oBACR,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBACjC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACzC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;oBAC3C,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBAChD,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;oBAC3C,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBAChD,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,MAAA,aAAa,CAAC,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;wBACvI,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;wBACjB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;oBAClB,CAAC;oBACD,MAAM,CAAC;gBACR,CAAC;YACD,CAAC;YACD,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAClB,CAAC;QACF,CAAC;QAED,6BAAc,GAAd;YACC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,CAAC;QAED,gCAAiB,GAAjB;YACC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;QACtD,CAAC;QAED,gCAAiB,GAAjB;YACC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;QACtD,CAAC;QAED,6BAAc,GAAd;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,6BAAc,GAAd;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;QAMD,qCAAsB,GAAtB;YACC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;gBACtB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;gBACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;gBAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;gBACnH,MAAM,CAAC;YACR,CAAC;YACD,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAClC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACvE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;YAC1C,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;YAC1C,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;YAClB,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;YAClB,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;YAClB,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;YAClB,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YACnC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YACnC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YACnC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5C,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;gBAC3B,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBAC5B,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;gBAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;gBACrE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;YACxD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;YAC7D,CAAC;QACF,CAAC;QAED,2BAAY,GAAZ,UAAc,KAAc;YAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACzD,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YAC5C,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,2BAAY,GAAZ,UAAc,KAAc;YAC3B,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAC7B,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAChD,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,mCAAoB,GAApB,UAAsB,aAAqB;YAC1C,IAAI,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACjF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;QAChG,CAAC;QAED,mCAAoB,GAApB,UAAsB,aAAqB;YAC1C,IAAI,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACjF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;QAChG,CAAC;QAED,0BAAW,GAAX,UAAa,OAAe;YAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrE,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC3B,CAAC;QACF,WAAC;IAAD,CAAC,AA5QD,IA4QC;IA5QY,UAAI,OA4QhB,CAAA;AACF,CAAC,EA9QM,KAAK,KAAL,KAAK,QA8QX;AC9QD,IAAO,KAAK,CAqBX;AArBD,WAAO,KAAK;IACX;QAQC,kBAAa,KAAa,EAAE,IAAY,EAAE,MAAgB;YAH1D,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAC3E,kBAAa,GAAG,aAAa,CAAC,MAAM,CAAC;YAGpC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACtD,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,CAAC;QACF,eAAC;IAAD,CAAC,AAfD,IAeC;IAfY,cAAQ,WAepB,CAAA;IAED,IAAY,aAEX;IAFD,WAAY,aAAa;QACxB,qDAAM,CAAA;QAAE,uEAAe,CAAA;QAAE,qFAAsB,CAAA;QAAE,uDAAO,CAAA;QAAE,+EAAmB,CAAA;IAC9E,CAAC,EAFW,aAAa,GAAb,mBAAa,KAAb,mBAAa,QAExB;AACF,CAAC,EArBM,KAAK,KAAL,KAAK,QAqBX;AErBD,IAAO,KAAK,CAcX;AAdD,WAAO,KAAK;IACX;QAOC,eAAa,IAAY,EAAE,IAAe;YACzC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,YAAC;IAAD,CAAC,AAZD,IAYC;IAZY,WAAK,QAYjB,CAAA;AACF,CAAC,EAdM,KAAK,KAAL,KAAK,QAcX;ACdD,IAAO,KAAK,CAWX;AAXD,WAAO,KAAK;IACX;QAMC,mBAAa,IAAY;YACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,gBAAC;IAAD,CAAC,AATD,IASC;IATY,eAAS,YASrB,CAAA;AACF,CAAC,EAXM,KAAK,KAAL,KAAK,QAWX;ACXD,IAAO,KAAK,CAsLX;AAtLD,WAAO,KAAK;IACX;QAOC,sBAAa,IAAsB,EAAE,QAAkB;YAHvD,QAAG,GAAG,CAAC,CAAC;YACR,kBAAa,GAAG,CAAC,CAAC;YAGjB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAExC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;gBACzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QAED,+BAAQ,GAAR;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,CAAC;QAED,4BAAK,GAAL;YACC,IAAI,CAAC,MAAM,EAAE,CAAC;QACf,CAAC;QAED,6BAAM,GAAN;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBACvB,KAAK,CAAC;oBACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC9D,KAAK,CAAC;gBACP,KAAK,CAAC;oBACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC5F,KAAK,CAAC;YACP,CAAC;QACF,CAAC;QAID,6BAAM,GAAN,UAAQ,IAAU,EAAE,OAAe,EAAE,OAAe,EAAE,KAAa;YAClE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;gBAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACtD,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;YACnD,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACrF,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YACvF,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBAAC,UAAU,IAAI,GAAG,CAAC;YACxC,EAAE,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC;gBACpB,UAAU,IAAI,GAAG,CAAC;YACnB,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC;gBAAC,UAAU,IAAI,GAAG,CAAC;YAC9C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,GAAG,UAAU,GAAG,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAC5H,IAAI,CAAC,OAAO,CAAC,CAAC;QAChB,CAAC;QAKD,6BAAM,GAAN,UAAQ,MAAY,EAAE,KAAW,EAAE,OAAe,EAAE,OAAe,EAAE,OAAe,EAAE,KAAa;YAClG,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,KAAK,CAAC,oBAAoB,EAAE,CAAC;gBAC7B,MAAM,CAAC;YACR,CAAC;YACD,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gBAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;YAC1D,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;gBAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;YACxD,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;YACpG,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAC7B,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACb,GAAG,GAAG,CAAC,GAAG,CAAC;gBACX,GAAG,GAAG,GAAG,CAAC;gBACV,EAAE,GAAG,CAAC,CAAC,CAAC;YACT,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,GAAG,GAAG,CAAC,CAAC;gBACR,EAAE,GAAG,CAAC,CAAC;YACR,CAAC;YACD,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACb,GAAG,GAAG,CAAC,GAAG,CAAC;gBACX,EAAE,GAAG,CAAC,EAAE,CAAC;YACV,CAAC;YACD,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACb,GAAG,GAAG,CAAC,GAAG,CAAC;gBACX,GAAG,GAAG,GAAG,CAAC;YACX,CAAC;YAAC,IAAI;gBACL,GAAG,GAAG,CAAC,CAAC;YACT,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;YACpG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC;YACtC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACR,EAAE,GAAG,CAAC,CAAC;gBACP,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC7B,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;gBACd,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtC,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;YACvC,CAAC;YACD,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;YACvB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACT,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACT,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACT,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACT,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;YAC/E,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;YACnE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;YACpB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;YACnE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACpF,KAAK,EACL,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACP,EAAE,IAAI,GAAG,CAAC;gBACV,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACZ,GAAG,GAAG,CAAC,CAAC,CAAC;gBACV,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;oBAAC,GAAG,GAAG,CAAC,CAAC;gBAC1B,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC9B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;gBAClB,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACnD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;gBACb,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;gBACb,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC5E,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBACrC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBACpC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACzB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACZ,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrB,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACnB,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBAClB,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC9C,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACjB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;wBACpC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC3B,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;wBACzC,KAAK,CAAC,KAAK,CAAC;oBACb,CAAC;gBACF,CAAC;gBACD,IAAI,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;gBAClF,IAAI,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;gBACjE,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC3C,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBAC7B,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClB,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;oBACjB,QAAQ,GAAG,KAAK,CAAC;oBACjB,OAAO,GAAG,CAAC,CAAC;oBACZ,IAAI,GAAG,CAAC,CAAC;oBACT,IAAI,GAAG,CAAC,CAAC;gBACV,CAAC;gBACD,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;oBACjB,QAAQ,GAAG,KAAK,CAAC;oBACjB,OAAO,GAAG,CAAC,CAAC;oBACZ,IAAI,GAAG,CAAC,CAAC;oBACT,IAAI,GAAG,CAAC,CAAC;gBACV,CAAC;gBACD,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACnC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC3C,EAAE,GAAG,QAAQ,GAAG,OAAO,CAAC;gBACzB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC3C,EAAE,GAAG,QAAQ,GAAG,OAAO,CAAC;gBACzB,CAAC;YACF,CAAC;YACD,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;YACjC,IAAI,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;YAChC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC;YACnD,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC;gBACZ,EAAE,IAAI,GAAG,CAAC;YACX,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;gBAAC,EAAE,IAAI,GAAG,CAAC;YAC9B,MAAM,CAAC,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACrG,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC;YAC3B,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,QAAQ,CAAC;YAC1E,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC;gBACZ,EAAE,IAAI,GAAG,CAAC;YACX,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;gBAAC,EAAE,IAAI,GAAG,CAAC;YAC9B,KAAK,CAAC,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3H,CAAC;QACF,mBAAC;IAAD,CAAC,AApLD,IAoLC;IApLY,kBAAY,eAoLxB,CAAA;AACF,CAAC,EAtLM,KAAK,KAAL,KAAK,QAsLX;ACtLD,IAAO,KAAK,CAaX;AAbD,WAAO,KAAK;IACX;QAQC,0BAAa,IAAY;YANzB,UAAK,GAAG,CAAC,CAAC;YACV,UAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAE9B,kBAAa,GAAG,CAAC,CAAC;YAClB,QAAG,GAAG,CAAC,CAAC;YAGP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,uBAAC;IAAD,CAAC,AAXD,IAWC;IAXY,sBAAgB,mBAW5B,CAAA;AACF,CAAC,EAbM,KAAK,KAAL,KAAK,QAaX;ACbD,IAAO,KAAK,CAgXX;AAhXD,WAAO,KAAK;IACX;QAYC,wBAAa,IAAwB,EAAE,QAAkB;YANzD,aAAQ,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAAC,cAAS,GAAG,CAAC,CAAC;YAAC,iBAAY,GAAG,CAAC,CAAC;YAE3D,WAAM,GAAG,IAAI,KAAK,EAAU,CAAC;YAAC,cAAS,GAAG,IAAI,KAAK,EAAU,CAAC;YAC9D,UAAK,GAAG,IAAI,KAAK,EAAU,CAAC;YAAC,WAAM,GAAG,IAAI,KAAK,EAAU,CAAC;YAAC,YAAO,GAAG,IAAI,KAAK,EAAU,CAAC;YACzF,aAAQ,GAAG,IAAI,KAAK,EAAU,CAAC;YAG9B,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAChD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,CAAC;QAED,8BAAK,GAAL;YACC,IAAI,CAAC,MAAM,EAAE,CAAC;QACf,CAAC;QAED,+BAAM,GAAN;YACC,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC7C,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,YAAY,MAAA,cAAc,CAAC,CAAC;gBAAC,MAAM,CAAC;YAEpD,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACjE,IAAI,SAAS,GAAG,YAAY,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC;YACzD,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC;YAElC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,IAAI,aAAa,GAAG,WAAW,IAAI,MAAA,WAAW,CAAC,MAAM,CAAC;YACtD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACjC,IAAI,QAAQ,GAAG,UAAU,IAAI,MAAA,UAAU,CAAC,OAAO,EAAE,KAAK,GAAG,UAAU,IAAI,MAAA,UAAU,CAAC,UAAU,CAAC;YAC7F,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;YACtF,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,MAAM,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAkB,IAAI,CAAC;YACzF,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC3B,EAAE,CAAC,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC;gBAC5B,EAAE,CAAC,CAAC,KAAK,CAAC;oBAAC,OAAO,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACjE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;oBAC7C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC;oBACvF,IAAI,QAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtC,EAAE,CAAC,CAAC,KAAK,CAAC;wBAAC,OAAO,CAAC,CAAC,CAAC,GAAG,QAAM,CAAC;oBAC/B,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC,GAAG,QAAM,GAAG,WAAW,CAAC;gBACxF,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;oBACnC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;YACtB,CAAC;YAED,IAAI,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAiB,UAAU,EAAE,WAAW,EAAE,QAAQ,EAC3F,IAAI,CAAC,YAAY,IAAI,MAAA,YAAY,CAAC,OAAO,EAAE,WAAW,IAAI,MAAA,WAAW,CAAC,OAAO,CAAC,CAAC;YAChF,IAAI,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACrF,IAAI,GAAG,GAAG,KAAK,CAAC;YAChB,EAAE,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC;gBACvB,GAAG,GAAG,UAAU,IAAI,MAAA,UAAU,CAAC,KAAK,CAAC;YACtC,IAAI,CAAC,CAAC;gBACL,GAAG,GAAG,KAAK,CAAC;gBACZ,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACzB,cAAc,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,GAAG,CAAC,MAAA,SAAS,CAAC,MAAM,CAAC;YACpF,CAAC;YACD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnD,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;gBACpD,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;gBACpD,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,KAAK,EAAE,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC3E,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACX,IAAI,QAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBACxB,EAAE,CAAC,CAAC,QAAM,IAAI,CAAC,CAAC,CAAC,CAAC;wBACjB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,QAAM,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;wBACpE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;wBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACb,CAAC;gBACF,CAAC;gBACD,KAAK,GAAG,CAAC,CAAC;gBACV,KAAK,GAAG,CAAC,CAAC;gBACV,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACZ,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;oBAC5E,EAAE,CAAC,CAAC,QAAQ,CAAC;wBACZ,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtB,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;wBAC3B,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtB,IAAI;wBACH,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACxB,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACtB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACT,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAClB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAClB,IAAI,QAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;wBAC9B,KAAK,IAAI,CAAC,QAAM,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;wBACzD,KAAK,IAAI,CAAC,QAAM,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;oBAC1D,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,CAAC,IAAI,cAAc,CAAC;oBACrB,CAAC;oBACD,EAAE,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,EAAE,CAAC;wBACpB,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;oBACpB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAA,SAAS,CAAC,EAAE,CAAC;wBAC1B,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;oBACpB,CAAC,IAAI,SAAS,CAAC;oBACf,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC5B,CAAC;gBACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC3B,CAAC;QACF,CAAC;QAED,8CAAqB,GAArB,UAAuB,IAAoB,EAAE,WAAmB,EAAE,QAAiB,EAAE,eAAwB,EAC5G,cAAuB;YACvB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAkB,IAAI,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,cAAc,GAAG,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,cAAc,GAAG,CAAC,EAAE,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC;YAEhH,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBACzB,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC3B,UAAU,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,YAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;gBACrC,EAAE,CAAC,CAAC,eAAe,CAAC;oBAAC,QAAQ,IAAI,YAAU,CAAC;gBAC5C,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;oBACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;wBACnC,MAAM,CAAC,CAAC,CAAC,IAAI,YAAU,CAAC;gBAC1B,CAAC;gBACD,KAAK,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC1C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChE,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACtB,QAAQ,IAAI,KAAK,CAAC;oBAClB,IAAI,CAAC,GAAG,QAAQ,CAAC;oBAEjB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;wBACZ,CAAC,IAAI,YAAU,CAAC;wBAChB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAAC,CAAC,IAAI,YAAU,CAAC;wBAC3B,KAAK,GAAG,CAAC,CAAC;oBACX,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAClB,EAAE,CAAC,CAAC,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;4BACxC,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC;4BAClC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACtD,CAAC;wBACD,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBAC5C,QAAQ,CAAC;oBACV,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,YAAU,CAAC,CAAC,CAAC;wBAC3B,EAAE,CAAC,CAAC,SAAS,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;4BACvC,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC;4BACjC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACvE,CAAC;wBACD,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,YAAU,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBACxD,QAAQ,CAAC;oBACV,CAAC;oBAGD,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;wBACjB,IAAI,QAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;wBAC5B,EAAE,CAAC,CAAC,CAAC,GAAG,QAAM,CAAC;4BAAC,QAAQ,CAAC;wBACzB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;4BACd,CAAC,IAAI,QAAM,CAAC;wBACb,IAAI,CAAC,CAAC;4BACL,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;4BAC9B,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAM,GAAG,IAAI,CAAC,CAAC;wBAClC,CAAC;wBACD,KAAK,CAAC;oBACP,CAAC;oBACD,EAAE,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC;wBACxB,SAAS,GAAG,KAAK,CAAC;wBAClB,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC;4BACnC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;4BACtE,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACtD,CAAC;wBAAC,IAAI;4BACL,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACnE,CAAC;oBACD,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAC9G,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrC,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC;YACZ,CAAC;YAGD,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACZ,cAAc,IAAI,CAAC,CAAC;gBACpB,KAAK,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;gBACvD,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,cAAc,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtE,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,UAAU,EAAE,CAAC;gBACb,cAAc,IAAI,CAAC,CAAC;gBACpB,KAAK,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;gBACvD,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACnE,CAAC;YAGD,IAAI,MAAM,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACzD,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACrF,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;YACnF,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpD,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACf,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnB,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnB,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnB,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClB,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClB,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC;gBACrC,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC;gBACrC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;gBAC9C,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;gBAC9C,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;gBACxB,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;gBACxB,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;gBACpD,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;gBACpD,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC/C,GAAG,IAAI,IAAI,CAAC;gBACZ,GAAG,IAAI,IAAI,CAAC;gBACZ,IAAI,IAAI,KAAK,CAAC;gBACd,IAAI,IAAI,KAAK,CAAC;gBACd,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC/C,GAAG,IAAI,IAAI,CAAC;gBACZ,GAAG,IAAI,IAAI,CAAC;gBACZ,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC/C,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC;gBACpB,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC;gBACpB,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC/C,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;gBACvB,EAAE,GAAG,EAAE,CAAC;gBACR,EAAE,GAAG,EAAE,CAAC;YACT,CAAC;YACD,EAAE,CAAC,CAAC,eAAe,CAAC;gBAAC,QAAQ,IAAI,UAAU,CAAC;YAC5C,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;gBACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;oBACnC,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;YAC1B,CAAC;YAED,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7E,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,QAAQ,IAAI,KAAK,CAAC;gBAClB,IAAI,CAAC,GAAG,QAAQ,CAAC;gBAEjB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACZ,CAAC,IAAI,UAAU,CAAC;oBAChB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAAC,CAAC,IAAI,UAAU,CAAC;oBAC3B,KAAK,GAAG,CAAC,CAAC;gBACX,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;oBAC5C,QAAQ,CAAC;gBACV,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oBAC3B,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,UAAU,EAAE,KAAK,EAAE,cAAc,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;oBACzE,QAAQ,CAAC;gBACV,CAAC;gBAGD,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;oBACjB,IAAI,QAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC3B,EAAE,CAAC,CAAC,CAAC,GAAG,QAAM,CAAC;wBAAC,QAAQ,CAAC;oBACzB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;wBACd,CAAC,IAAI,QAAM,CAAC;oBACb,IAAI,CAAC,CAAC;wBACL,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;wBAC7B,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAM,GAAG,IAAI,CAAC,CAAC;oBAClC,CAAC;oBACD,KAAK,CAAC;gBACP,CAAC;gBAGD,EAAE,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC;oBACxB,SAAS,GAAG,KAAK,CAAC;oBAClB,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;oBACnB,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;oBACf,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACnB,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACpB,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACpB,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACpB,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACpB,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACnB,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACnB,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;oBACnC,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;oBACnC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;oBAC5C,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;oBAC5C,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;oBACxB,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;oBACxB,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;oBACnD,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;oBACnD,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC/C,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;oBAC1B,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;wBAC3B,GAAG,IAAI,IAAI,CAAC;wBACZ,GAAG,IAAI,IAAI,CAAC;wBACZ,IAAI,IAAI,KAAK,CAAC;wBACd,IAAI,IAAI,KAAK,CAAC;wBACd,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;wBAChD,QAAQ,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC;oBAC5B,CAAC;oBACD,GAAG,IAAI,IAAI,CAAC;oBACZ,GAAG,IAAI,IAAI,CAAC;oBACZ,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;oBAChD,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;oBAC1B,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC;oBACpB,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC;oBACpB,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;oBAChD,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;oBAC1B,OAAO,GAAG,CAAC,CAAC;gBACb,CAAC;gBAGD,CAAC,IAAI,WAAW,CAAC;gBACjB,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC;oBACnB,IAAI,QAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC/B,EAAE,CAAC,CAAC,CAAC,GAAG,QAAM,CAAC;wBAAC,QAAQ,CAAC;oBACzB,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;wBAChB,CAAC,IAAI,QAAM,CAAC;oBACb,IAAI,CAAC,CAAC;wBACL,IAAI,IAAI,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;wBACjC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAM,GAAG,IAAI,CAAC,CAAC;oBAC5C,CAAC;oBACD,KAAK,CAAC;gBACP,CAAC;gBACD,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/G,CAAC;YACD,MAAM,CAAC,GAAG,CAAC;QACZ,CAAC;QAED,0CAAiB,GAAjB,UAAmB,CAAS,EAAE,IAAmB,EAAE,CAAS,EAAE,GAAkB,EAAE,CAAS;YAC1F,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACzG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9B,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QAED,yCAAgB,GAAhB,UAAkB,CAAS,EAAE,IAAmB,EAAE,CAAS,EAAE,GAAkB,EAAE,CAAS;YACzF,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACzG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9B,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QAED,yCAAgB,GAAhB,UAAkB,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,EAAU,EAAE,EAAU,EAC9H,GAAkB,EAAE,CAAS,EAAE,QAAiB;YAChD,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,MAAM,CAAC;YACnC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;YAClE,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;YAC7D,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC;YACzG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACf,EAAE,CAAC,CAAC,QAAQ,CAAC;gBAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QACzH,CAAC;QAED,iCAAQ,GAAR;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,CAAC;QACF,qBAAC;IAAD,CAAC,AA9WD;IACQ,mBAAI,GAAG,CAAC,CAAC,CAAC;IAAQ,qBAAM,GAAG,CAAC,CAAC,CAAC;IAAQ,oBAAK,GAAG,CAAC,CAAC,CAAC;IAD5C,oBAAc,iBA8W1B,CAAA;AACF,CAAC,EAhXM,KAAK,KAAL,KAAK,QAgXX;AChXD,IAAO,KAAK,CA4BX;AA5BD,WAAO,KAAK;IACX;QAWC,4BAAa,IAAY;YATzB,UAAK,GAAG,CAAC,CAAC;YACV,UAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAS7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,yBAAC;IAAD,CAAC,AAdD,IAcC;IAdY,wBAAkB,qBAc9B,CAAA;IAED,IAAY,YAEX;IAFD,WAAY,YAAY;QACvB,iDAAK,CAAA;QAAE,qDAAO,CAAA;IACf,CAAC,EAFW,YAAY,GAAZ,kBAAY,KAAZ,kBAAY,QAEvB;IAED,IAAY,WAEX;IAFD,WAAY,WAAW;QACtB,iDAAM,CAAA;QAAE,+CAAK,CAAA;QAAE,mDAAO,CAAA;IACvB,CAAC,EAFW,WAAW,GAAX,iBAAW,KAAX,iBAAW,QAEtB;IAED,IAAY,UAEX;IAFD,WAAY,UAAU;QACrB,iDAAO,CAAA;QAAE,6CAAK,CAAA;QAAE,uDAAU,CAAA;IAC3B,CAAC,EAFW,UAAU,GAAV,gBAAU,KAAV,gBAAU,QAErB;AACF,CAAC,EA5BM,KAAK,KAAL,KAAK,QA4BX;AC5BD,IAAO,KAAK,CA2JX;AA3JD,WAAO,KAAK;IACX;QAMC,gBAAY,QAAgB;YAJ5B,WAAM,GAAG,IAAI,KAAK,EAAU,CAAC;YAC7B,WAAM,GAAa,EAAE,CAAC;YAIrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1B,CAAC;QAED,uBAAM,GAAN;YACC,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;gBAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,CAAC,CAAC;QACV,CAAC;QACF,aAAC;IAAD,CAAC,AAfD,IAeC;IAED;QAOC,4BAAa,UAAuB;YAAvB,2BAAA,EAAA,eAAuB;YAL5B,iBAAY,GAAgB,EAAE,CAAC;YAC/B,iBAAY,GAAgB,EAAE,CAAC;YAC/B,cAAS,GAAa,EAAE,CAAA;YACxB,WAAM,GAAgB,EAAE,CAAC;YAGhC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC9B,CAAC;QAEO,uCAAU,GAAlB,UAAmB,QAAgB,EAAE,aAA+C,EAAE,IAAY;YACjG,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC/C,EAAE,CAAC,CAAC,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC;gBACzD,YAAY,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;YAC5C,CAAC;YACD,EAAE,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC;gBAAC,YAAY,CAAC,aAAa,GAAG,aAAa,CAAC;YACvE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAI/B,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBACtC,MAAM,CAAC,KAAK,CAAC;YACd,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;QACF,CAAC;QAED,qCAAQ,GAAR,UAAS,QAAgB,EAAE,IAAY;YAAvC,iBAeC;YAdA,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAAC,MAAM,CAAC;YACnD,IAAI,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;YACnC,OAAO,CAAC,kBAAkB,GAAG;gBAC5B,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC/C,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;wBACnD,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;oBAC7C,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAsB,IAAI,iBAAY,OAAO,CAAC,MAAM,UAAK,OAAO,CAAC,YAAc,CAAC;oBACrG,CAAC;gBACF,CAAC;YACF,CAAC,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,qCAAQ,GAAR,UAAS,QAAgB,EAAE,IAAY;YAAvC,iBAeC;YAdA,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAAC,MAAM,CAAC;YACnD,IAAI,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;YACnC,OAAO,CAAC,kBAAkB,GAAG;gBAC5B,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC/C,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;wBACnD,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;oBACzD,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAsB,IAAI,iBAAY,OAAO,CAAC,MAAM,UAAK,OAAO,CAAC,YAAc,CAAC;oBACrG,CAAC;gBACF,CAAC;YACF,CAAC,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,wCAAW,GAAX,UAAa,QAAgB,EAAE,aAA+C,EAAE,IAAY;YAA5F,iBAaC;YAZA,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE5D,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC;YACf,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;YAC9B,GAAG,CAAC,MAAM,GAAG,UAAC,EAAE;gBACf,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;YAC5B,CAAC,CAAA;YACD,GAAG,CAAC,OAAO,GAAG,UAAC,EAAE;gBAChB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,yBAAuB,IAAM,CAAC;YACnD,CAAC,CAAA;QACF,CAAC;QAED,gCAAG,GAAH,UAAK,QAAgB,EAAE,IAAY;YAClC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC/C,EAAE,CAAC,CAAC,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACrE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAEO,+CAAkB,GAA1B,UAA2B,YAAoB;YAC9C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrD,IAAI,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAClC,IAAI,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACtC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;oBAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBACpC,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,CAAC;wBAAC,QAAQ,CAAC;oBAC1D,EAAE,CAAC,CAAC,QAAQ,YAAY,gBAAgB,CAAC,CAAC,CAAC;wBAC1C,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,aAAa,CAAmB,QAAQ,CAAC,CAAC;oBACpF,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;oBACtC,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAED,8CAAiB,GAAjB,UAAmB,QAAgB;YAClC,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC/C,EAAE,CAAC,CAAC,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACrE,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YACtC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QAE5D,CAAC;QAiBD,oCAAO,GAAP;QAEA,CAAC;QAED,sCAAS,GAAT;YACC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5C,CAAC;QAED,sCAAS,GAAT;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QACF,yBAAC;IAAD,CAAC,AAxID,IAwIC;IAxIY,wBAAkB,qBAwI9B,CAAA;AACF,CAAC,EA3JM,KAAK,KAAL,KAAK,QA2JX;AC3JD,IAAO,KAAK,CA8dX;AA9dD,WAAO,KAAK;IACX;QAgBC,kBAAa,IAAkB;YAR/B,iBAAY,GAAG,IAAI,KAAK,EAAa,CAAC;YACtC,qBAAgB,GAAG,IAAI,KAAK,EAAa,CAAC;YAG1C,SAAI,GAAG,CAAC,CAAC;YACT,UAAK,GAAG,KAAK,CAAC;YAAC,UAAK,GAAG,KAAK,CAAC;YAC7B,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YAGZ,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YAEjB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,IAAI,SAAM,CAAC;gBACf,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC;oBAC3B,IAAI,GAAG,IAAI,MAAA,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,CAAC;oBACL,IAAI,QAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC/C,IAAI,GAAG,IAAI,MAAA,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAM,CAAC,CAAC;oBACxC,QAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YAED,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,EAAQ,CAAC;YACnC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC/C,IAAI,IAAI,GAAG,IAAI,MAAA,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YAED,IAAI,CAAC,aAAa,GAAG,IAAI,KAAK,EAAgB,CAAC;YAC/C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpD,IAAI,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,MAAA,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;YACnE,CAAC;YAED,IAAI,CAAC,oBAAoB,GAAG,IAAI,KAAK,EAAuB,CAAC;YAC7D,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3D,IAAI,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,MAAA,mBAAmB,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAC;YACxF,CAAC;YAED,IAAI,CAAC,eAAe,GAAG,IAAI,KAAK,EAAkB,CAAC;YACnD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,IAAI,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBACjD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,MAAA,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC;YACzE,CAAC;YAED,IAAI,CAAC,KAAK,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC;QAED,8BAAW,GAAX;YACC,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YACpC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;YAEjC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;YAGzB,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,IAAI,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACrD,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,IAAI,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC;YACrH,IAAI,eAAe,GAAG,OAAO,GAAG,cAAc,GAAG,SAAS,CAAC;YAE3D,KAAK,EACL,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;oBACrC,IAAI,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;oBACnC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;wBAClC,QAAQ,CAAC,KAAK,CAAC;oBAChB,CAAC;gBACF,CAAC;gBACD,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC;oBAC5C,IAAI,UAAU,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;oBAC1C,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;wBACzC,QAAQ,CAAC,KAAK,CAAC;oBAChB,CAAC;gBACF,CAAC;gBACD,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC;oBACvC,IAAI,UAAU,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;oBACrC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;wBACpC,QAAQ,CAAC,KAAK,CAAC;oBAChB,CAAC;gBACF,CAAC;YACF,CAAC;YAED,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QAED,mCAAgB,GAAhB,UAAkB,UAAwB;YACzC,IAAI,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEtB,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;YACnC,IAAI,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEtB,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAChD,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjF,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEnC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QACnD,CAAC;QAED,qCAAkB,GAAlB,UAAoB,UAA0B;YAC7C,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC;YAC7B,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YACzF,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC;gBACvE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC/E,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACrD,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAE5E,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACtC,EAAE,CAAC,CAAC,UAAU,YAAY,MAAA,cAAc,CAAC;gBAAC,IAAI,CAAC,gCAAgC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAEtG,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;YACnC,IAAI,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;YACnC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE;gBACjC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEnC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE;gBACjC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACzC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE;gBACjC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,0CAAuB,GAAvB,UAAyB,UAA+B;YACvD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAEjC,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;YACnC,IAAI,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;YACnC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpC,IAAI,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC5B,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjF,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEnC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE;gBACpC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC1C,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE;gBACpC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAChC,CAAC;QAED,+CAA4B,GAA5B,UAA8B,IAAU,EAAE,SAAiB,EAAE,QAAc;YAC1E,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC9C,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;gBAAC,MAAM,CAAC;YACzB,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,gCAAgC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;YACnE,CAAC;QACF,CAAC;QAED,mDAAgC,GAAhC,UAAkC,UAAsB,EAAE,QAAc;YACvE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,YAAY,MAAA,cAAc,CAAC,CAAC;gBAAC,MAAM,CAAC;YACpD,IAAI,SAAS,GAAoB,UAAW,CAAC,KAAK,CAAC;YACnD,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAI,CAAC,CAAC;gBACL,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;oBAC7B,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBACxC,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;wBAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;oBACjC,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAED,2BAAQ,GAAR,UAAU,IAAU;YACnB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC;YACxB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;gBAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED,4BAAS,GAAT,UAAW,KAAkB;YAC5B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;oBAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACrB,CAAC;QACF,CAAC;QAGD,uCAAoB,GAApB;YACC,IAAI,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC7C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzD,IAAI,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAS,CAAC;gBACvC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAC1B,CAAC;YACD,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YACpC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACjD,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,CAAC;QAGD,iCAAc,GAAd;YACC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC5B,CAAC;QAGD,sCAAmB,GAAnB;YACC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;YAE3B,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,IAAI,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAClC,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;gBACzD,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;YACtC,CAAC;YAED,IAAI,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACrD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7D,IAAI,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;gBAC3B,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACtC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC5C,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACpC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrC,CAAC;YAED,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxD,IAAI,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;gBAC3B,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACpC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAClC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACtC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7C,CAAC;QACF,CAAC;QAED,sCAAmB,GAAnB;YACC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,MAAA,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3D,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;QAC5B,CAAC;QAGD,8BAAW,GAAX;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QAGD,2BAAQ,GAAR,UAAU,QAAgB;YACzB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;YAC7C,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,gCAAa,GAAb,UAAe,QAAgB;YAC9B,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QAGD,2BAAQ,GAAR,UAAU,QAAgB;YACzB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;YAC7C,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,gCAAa,GAAb,UAAe,QAAgB;YAC9B,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QAID,gCAAa,GAAb,UAAe,QAAgB;YAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QAMD,0BAAO,GAAP,UAAS,OAAa;YACrB,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;gBACrB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;oBACrB,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,CAAC;oBACL,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;oBACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,MAAI,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;wBACpC,EAAE,CAAC,CAAC,MAAI,IAAI,IAAI,CAAC,CAAC,CAAC;4BAClB,IAAI,UAAU,GAAe,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,MAAI,CAAC,CAAC;4BAC5D,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;gCAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;wBACxD,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACrB,CAAC;QAGD,sCAAmB,GAAnB,UAAqB,QAAgB,EAAE,cAAsB;YAC5D,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAC;QAC9E,CAAC;QAGD,gCAAa,GAAb,UAAe,SAAiB,EAAE,cAAsB;YACvD,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;gBACvB,IAAI,UAAU,GAAe,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;gBAChF,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;oBAAC,MAAM,CAAC,UAAU,CAAC;YAC3C,CAAC;YACD,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YACzG,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,gCAAa,GAAb,UAAe,QAAgB,EAAE,cAAsB;YACtD,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC;oBAChC,IAAI,UAAU,GAAe,IAAI,CAAC;oBAClC,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC;wBAC5B,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;wBACnD,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;4BACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,cAAc,GAAG,cAAc,GAAG,QAAQ,CAAC,CAAC;oBACzF,CAAC;oBACD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;oBAC/B,MAAM,CAAC;gBACR,CAAC;YACF,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;QAChD,CAAC;QAGD,mCAAgB,GAAhB,UAAkB,cAAsB;YACvC,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,IAAI,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBACpC,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC;oBAAC,MAAM,CAAC,YAAY,CAAC;YACnE,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,0CAAuB,GAAvB,UAAyB,cAAsB;YAC9C,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACrD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7D,IAAI,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACzC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC;oBAAC,MAAM,CAAC,UAAU,CAAC;YAC/D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,qCAAkB,GAAlB,UAAoB,cAAsB;YACzC,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxD,IAAI,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACpC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC;oBAAC,MAAM,CAAC,UAAU,CAAC;YAC/D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAMD,4BAAS,GAAT,UAAW,MAAe,EAAE,IAAa,EAAE,IAAmB;YAC7D,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC9D,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;YACvI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClD,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,cAAc,GAAG,CAAC,CAAC;gBACvB,IAAI,QAAQ,GAAsB,IAAI,CAAC;gBACvC,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,EAAE,CAAC,CAAC,UAAU,YAAY,MAAA,gBAAgB,CAAC,CAAC,CAAC;oBAC5C,cAAc,GAAG,CAAC,CAAC;oBACnB,QAAQ,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;oBACpC,UAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChF,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,YAAY,MAAA,cAAc,CAAC,CAAC,CAAC;oBACjD,IAAI,IAAI,GAAoB,UAAW,CAAC;oBACxC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC;oBAC1C,QAAQ,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;oBACvD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpE,CAAC;gBACD,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC;oBACtB,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;wBACzD,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC3C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC1B,CAAC;gBACF,CAAC;YACF,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,yBAAM,GAAN,UAAQ,KAAa;YACpB,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC;QACpB,CAAC;QACF,eAAC;IAAD,CAAC,AA5dD,IA4dC;IA5dY,cAAQ,WA4dpB,CAAA;AACF,CAAC,EA9dM,KAAK,KAAL,KAAK,QA8dX;AC9dD,IAAO,KAAK,CAgLX;AAhLD,WAAO,KAAK;IACX;QAAA;YACC,SAAI,GAAG,CAAC,CAAC;YAAC,SAAI,GAAG,CAAC,CAAC;YAAC,SAAI,GAAG,CAAC,CAAC;YAAC,SAAI,GAAG,CAAC,CAAC;YACvC,kBAAa,GAAG,IAAI,KAAK,EAAyB,CAAC;YACnD,aAAQ,GAAG,IAAI,KAAK,EAAqB,CAAC;YAClC,gBAAW,GAAG,IAAI,MAAA,IAAI,CAAoB;gBACjD,MAAM,CAAC,MAAA,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QAuKJ,CAAC;QArKA,+BAAM,GAAN,UAAQ,QAAkB,EAAE,UAAmB;YAC9C,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC3B,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;YAE7B,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YACzB,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9B,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YAEpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,EAAE,CAAC,CAAC,UAAU,YAAY,MAAA,qBAAqB,CAAC,CAAC,CAAC;oBACjD,IAAI,WAAW,GAAG,UAAmC,CAAC;oBACtD,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAEhC,IAAI,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;oBACnC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC;wBACvD,OAAO,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;oBAChE,CAAC;oBACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACvB,WAAW,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,mBAAmB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC3F,CAAC;YACF,CAAC;YAED,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;gBACrC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;gBACrC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;gBACrC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;YACtC,CAAC;QACF,CAAC;QAED,oCAAW,GAAX;YACC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;YACvI,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,QAAQ,GAAG,OAAO,CAAC;gBACvB,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;oBACxD,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACrB,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC1B,CAAC;YACF,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QAGD,0CAAiB,GAAjB,UAAmB,CAAS,EAAE,CAAS;YACtC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;QAC7E,CAAC;QAGD,8CAAqB,GAArB,UAAuB,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;YACpE,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;gBACxH,MAAM,CAAC,KAAK,CAAC;YACd,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;YAC7B,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACtC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;YACzB,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAC7B,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACtC,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACzB,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAGD,+CAAsB,GAAtB,UAAwB,MAAsB;YAC7C,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACjH,CAAC;QAID,sCAAa,GAAb,UAAe,CAAS,EAAE,CAAS;YAClC,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC9C,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAChF,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,6CAAoB,GAApB,UAAsB,OAA0B,EAAE,CAAS,EAAE,CAAS;YACrE,IAAI,QAAQ,GAAG,OAAO,CAAC;YACvB,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAExB,IAAI,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnC,IAAI,OAAO,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC/B,IAAI,KAAK,GAAG,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;gBACpC,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChE,IAAI,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC3B,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;wBAAC,MAAM,GAAG,CAAC,MAAM,CAAC;gBACzG,CAAC;gBACD,SAAS,GAAG,EAAE,CAAC;YAChB,CAAC;YACD,MAAM,CAAC,MAAM,CAAC;QACf,CAAC;QAKD,0CAAiB,GAAjB,UAAmB,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;YAChE,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC9C,EAAE,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAC9F,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,iDAAwB,GAAxB,UAA0B,OAA0B,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;YACnG,IAAI,QAAQ,GAAG,OAAO,CAAC;YACvB,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAExB,IAAI,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAC;YAC1C,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YAC7B,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACjD,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnC,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBAC7B,IAAI,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAC;gBAC1C,IAAI,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;gBACnD,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;gBACjD,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;oBACnD,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;gBACnH,CAAC;gBACD,EAAE,GAAG,EAAE,CAAC;gBACR,EAAE,GAAG,EAAE,CAAC;YACT,CAAC;YACD,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAGD,mCAAU,GAAV,UAAY,WAAkC;YAC7C,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACxE,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACpD,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,iCAAQ,GAAR;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,CAAC;QAED,kCAAS,GAAT;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,CAAC;QACF,qBAAC;IAAD,CAAC,AA7KD,IA6KC;IA7KY,oBAAc,iBA6K1B,CAAA;AAEF,CAAC,EAhLM,KAAK,KAAL,KAAK,QAgLX;AChLD,IAAO,KAAK,CAiTX;AAjTD,WAAO,KAAK;IACX;QAAA;YACS,iBAAY,GAAG,IAAI,MAAA,YAAY,EAAE,CAAC;YAClC,oBAAe,GAAG,IAAI,KAAK,EAAU,CAAC;YACtC,eAAU,GAAG,IAAI,KAAK,EAAU,CAAC;YACzC,oBAAe,GAAG,IAAI,KAAK,EAAU,CAAC;YACtC,qBAAgB,GAAG,IAAI,KAAK,EAAU,CAAC;YAC/B,YAAO,GAAG,IAAI,KAAK,EAAU,CAAC;QAySvC,CAAC;QApSA,oCAAS,GAAT,UAAW,IAAU,EAAE,IAAwB;YAC9C,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAE3B,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;YACjC,IAAI,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACtD,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,gBAAgB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YAChD,IAAI,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;YAC5I,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,GAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzD,IAAI,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAClC,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;YAED,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAChC,CAAC;QAED,0CAAe,GAAf,UAAiB,IAAU;YAC1B,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC;gBAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7F,CAAC;QAED,kCAAO,GAAP;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC;YACxC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,CAAC;QAED,qCAAU,GAAV;YACC,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;QACpC,CAAC;QAED,wCAAa,GAAb,UAAe,QAA2B,EAAE,cAAsB,EAAE,SAA4B,EAAE,eAAuB,EAAE,GAAsB,EAChJ,KAAY,EAAE,IAAW,EAAE,QAAiB;YAE5C,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACzE,IAAI,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC7C,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACrC,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YACjD,IAAI,UAAU,GAAG,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC;YAEnC,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3B,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5B,KAAK,EACL,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,IAAI,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBACjE,IAAI,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAEvD,YAAY,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBACjE,IAAI,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAEvD,YAAY,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBACjE,IAAI,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAEvD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxC,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC;oBAC/B,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;wBAChE,IAAI,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC;wBACzC,EAAE,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC;4BAAC,QAAQ,CAAC;wBACpC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;wBAC3D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBAEvC,IAAI,eAAe,GAAG,gBAAgB,IAAI,CAAC,CAAC;wBAC5C,IAAI,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;wBACtC,IAAI,oBAAoB,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,GAAG,eAAe,GAAG,UAAU,CAAC,CAAC;wBACvG,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,gBAAgB,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;4BACjD,IAAI,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BACzD,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAC5B,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;4BAChC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACtC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;4BAC7B,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;4BAChC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;4BAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4BAClB,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;4BACvD,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;4BACvD,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gCACd,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gCACrC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gCACrC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gCACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACvC,CAAC;4BACD,CAAC,IAAI,UAAU,CAAC;wBACjB,CAAC;wBAED,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;wBAC5B,IAAI,qBAAqB,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;wBACtG,eAAe,EAAE,CAAC;wBAClB,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC;4BAC7C,qBAAqB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;4BACjC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;4BAC5C,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;4BAChD,CAAC,IAAI,CAAC,CAAC;wBACR,CAAC;wBACD,KAAK,IAAI,eAAe,GAAG,CAAC,CAAC;oBAE9B,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,IAAI,oBAAoB,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;wBACzF,oBAAoB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;wBAC7B,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;wBACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;wBACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;wBACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;wBACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;wBACtC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;4BACf,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BAEjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAElC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;wBACnC,CAAC;wBAAC,IAAI,CAAC,CAAC;4BACP,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACrC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACrC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BAEtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BAEtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;wBACvC,CAAC;wBAED,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;wBAC5B,IAAI,qBAAqB,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC9E,qBAAqB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;wBACjC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;wBAC3C,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;wBAC3C,KAAK,IAAI,CAAC,CAAC;wBACX,QAAQ,CAAC,KAAK,CAAC;oBAChB,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAID,+BAAI,GAAJ,UAAM,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,YAA2B,EAAE,MAAqB;YAC/H,IAAI,cAAc,GAAG,MAAM,CAAC;YAC5B,IAAI,OAAO,GAAG,KAAK,CAAC;YAGpB,IAAI,KAAK,GAAkB,IAAI,CAAC;YAChC,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClC,KAAK,GAAG,MAAM,CAAC;gBACf,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YACvB,CAAC;YAAC,IAAI;gBACL,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;YAEtB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAElB,IAAI,gBAAgB,GAAG,YAAY,CAAC;YACpC,IAAI,oBAAoB,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACnD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,IAAI,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjE,IAAI,MAAM,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvE,IAAI,MAAM,GAAG,KAAK,GAAG,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;gBAErD,IAAI,aAAa,GAAG,KAAK,CAAC;gBAC1B,IAAI,mBAAmB,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;gBACxE,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,mBAAmB,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;oBACpD,IAAI,MAAM,GAAG,aAAa,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC/D,IAAI,OAAO,GAAG,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACrE,IAAI,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC1E,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACjE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;4BACX,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACrB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACrB,QAAQ,CAAC;wBACV,CAAC;wBAED,IAAI,EAAE,GAAG,OAAO,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC;wBACjD,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;wBAC3G,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;oBAC5C,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBAClB,IAAI,EAAE,GAAG,OAAO,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC;wBACjD,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;wBAC3G,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACrB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACtB,CAAC;oBACD,OAAO,GAAG,IAAI,CAAC;gBAChB,CAAC;gBAED,EAAE,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;oBAClC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC1B,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEvB,EAAE,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC;oBAAC,KAAK,CAAC;gBACrC,IAAI,IAAI,GAAG,MAAM,CAAC;gBAClB,MAAM,GAAG,KAAK,CAAC;gBACf,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,KAAK,GAAG,IAAI,CAAC;YACd,CAAC;YAED,EAAE,CAAC,CAAC,cAAc,IAAI,MAAM,CAAC,CAAC,CAAC;gBAC9B,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAChD,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;YAAC,IAAI;gBACL,cAAc,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAEnD,MAAM,CAAC,OAAO,CAAC;QAChB,CAAC;QAEa,8BAAa,GAA3B,UAA6B,OAA0B;YACtD,IAAI,QAAQ,GAAG,OAAO,CAAC;YACvB,IAAI,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;YAEpC,IAAI,IAAI,GAAG,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;YACvI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAClB,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtB,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtB,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtB,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;YAC/B,CAAC;YACD,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBAAC,MAAM,CAAC;YAErB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpF,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;gBACtB,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC9B,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACtC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACpB,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACF,CAAC;QACF,uBAAC;IAAD,CAAC,AA/SD,IA+SC;IA/SY,sBAAgB,mBA+S5B,CAAA;AACF,CAAC,EAjTM,KAAK,KAAL,KAAK,QAiTX;ACjTD,IAAO,KAAK,CA2HX;AA3HD,WAAO,KAAK;IACX;QAAA;YAEC,UAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAC9B,UAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAC9B,UAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAE1B,WAAM,GAAG,IAAI,KAAK,EAAa,CAAC;YAChC,eAAU,GAAG,IAAI,KAAK,EAAa,CAAC;YACpC,kBAAa,GAAG,IAAI,KAAK,EAAoB,CAAC;YAC9C,yBAAoB,GAAG,IAAI,KAAK,EAA2B,CAAC;YAC5D,oBAAe,GAAG,IAAI,KAAK,EAAsB,CAAC;YAKlD,QAAG,GAAG,CAAC,CAAC;QA0GT,CAAC;QAvGA,+BAAQ,GAAR,UAAU,QAAgB;YACzB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;YACxC,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,oCAAa,GAAb,UAAe,QAAgB;YAC9B,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QAED,+BAAQ,GAAR,UAAU,QAAgB;YACzB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;YACxC,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,oCAAa,GAAb,UAAe,QAAgB;YAC9B,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QAED,+BAAQ,GAAR,UAAU,QAAgB;YACzB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;YACxC,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,gCAAS,GAAT,UAAW,aAAqB;YAC/B,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC5E,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,IAAI,OAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,OAAK,CAAC,IAAI,IAAI,aAAa,CAAC;oBAAC,MAAM,CAAC,OAAK,CAAC;YAC/C,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,oCAAa,GAAb,UAAe,aAAqB;YACnC,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC5E,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACjC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnD,IAAI,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC9B,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,aAAa,CAAC;oBAAC,MAAM,CAAC,SAAS,CAAC;YACvD,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,uCAAgB,GAAhB,UAAkB,cAAsB;YACvC,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,IAAI,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAClC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,cAAc,CAAC;oBAAC,MAAM,CAAC,UAAU,CAAC;YAC1D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,8CAAuB,GAAvB,UAAyB,cAAsB;YAC9C,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACrD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7D,IAAI,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACzC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,cAAc,CAAC;oBAAC,MAAM,CAAC,UAAU,CAAC;YAC1D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,yCAAkB,GAAlB,UAAoB,cAAsB;YACzC,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxD,IAAI,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACpC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,cAAc,CAAC;oBAAC,MAAM,CAAC,UAAU,CAAC;YAC1D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,8CAAuB,GAAvB,UAAyB,kBAA0B;YAClD,EAAE,CAAC,CAAC,kBAAkB,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACtF,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACrD,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,kBAAkB,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QACF,mBAAC;IAAD,CAAC,AAzHD,IAyHC;IAzHY,kBAAY,eAyHxB,CAAA;AACF,CAAC,EA3HM,KAAK,KAAL,KAAK,QA2HX;AC3HD,IAAO,KAAK,CAqvBX;AArvBD,WAAO,KAAK;IACX;QAKC,sBAAa,gBAAkC;YAH/C,UAAK,GAAG,CAAC,CAAC;YACF,iBAAY,GAAG,IAAI,KAAK,EAAc,CAAC;YAG9C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC1C,CAAC;QAED,uCAAgB,GAAhB,UAAkB,IAAkB;YACnC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,YAAY,GAAG,IAAI,MAAA,YAAY,EAAE,CAAC;YACtC,IAAI,IAAI,GAAG,OAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAG/D,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChC,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC;gBACzB,YAAY,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;gBACrC,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC;gBACzC,YAAY,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;gBACvC,YAAY,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;gBACzC,YAAY,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;gBACnC,YAAY,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC;YAC9C,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAE5B,IAAI,QAAM,GAAa,IAAI,CAAC;oBAC5B,IAAI,UAAU,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAChE,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;wBACxB,QAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;wBAC3C,EAAE,CAAC,CAAC,QAAM,IAAI,IAAI,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,UAAU,CAAC,CAAC;oBAC7E,CAAC;oBACD,IAAI,IAAI,GAAG,IAAI,MAAA,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,QAAM,CAAC,CAAC;oBACzE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC1D,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAChD,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAEzG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC5B,IAAI,QAAQ,GAAW,OAAO,CAAC,IAAI,CAAC;oBACpC,IAAI,QAAQ,GAAW,OAAO,CAAC,IAAI,CAAC;oBACpC,IAAI,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC/C,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,QAAQ,CAAC,CAAC;oBAC1E,IAAI,IAAI,GAAG,IAAI,MAAA,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAEvE,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC1D,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAEnD,IAAI,IAAI,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBACxD,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;wBAClB,IAAI,CAAC,SAAS,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACvC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBACpC,CAAC;oBAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;oBACjE,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAC7F,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACb,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,IAAI,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC/B,IAAI,IAAI,GAAG,IAAI,MAAA,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBACpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;oBAEtD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACrD,IAAI,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAC3C,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,QAAQ,CAAC,CAAC;wBACpE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC;oBAED,IAAI,UAAU,GAAW,aAAa,CAAC,MAAM,CAAC;oBAC9C,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAChD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,UAAU,CAAC,CAAC;oBAEpF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjF,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBAElD,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvC,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAChD,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACtC,IAAI,IAAI,GAAG,IAAI,MAAA,uBAAuB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC3D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;oBAEtD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACrD,IAAI,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAC3C,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,QAAQ,CAAC,CAAC;wBACtF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC;oBAED,IAAI,UAAU,GAAW,aAAa,CAAC,MAAM,CAAC;oBAC9C,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAChD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,UAAU,CAAC,CAAC;oBAEtG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;oBAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;oBAChE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAClE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC5D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAE9D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;oBACpE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAE5D,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9C,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACf,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3C,IAAI,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACjC,IAAI,IAAI,GAAG,IAAI,MAAA,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBACtD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;oBAEtD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACrD,IAAI,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAC3C,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,QAAQ,CAAC,CAAC;wBACtF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC;oBAED,IAAI,UAAU,GAAW,aAAa,CAAC,MAAM,CAAC;oBAC9C,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAChD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,UAAU,CAAC,CAAC;oBAEtF,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;oBACjH,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAC7G,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;oBAC3G,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAClE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAC5D,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,MAAA,YAAY,CAAC,KAAK,CAAC;wBAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;oBACpE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;oBAC1D,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,MAAA,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,MAAA,WAAW,CAAC,KAAK,CAAC;wBAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;oBAC3G,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;oBAEpE,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzC,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChB,GAAG,CAAC,CAAC,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBACjC,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;oBAClC,IAAI,IAAI,GAAG,IAAI,MAAA,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC9B,GAAG,CAAC,CAAC,IAAI,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;wBAC9B,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;wBACrD,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;wBACpE,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAChC,GAAG,CAAC,CAAC,IAAI,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC;4BAC/B,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;4BACnG,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;gCAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;wBAC9E,CAAC;oBACF,CAAC;oBACD,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9B,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;wBAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC7D,CAAC;YACF,CAAC;YAGD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1D,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtC,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,IAAI,GAAG,YAAY,CAAC,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvG,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;gBACxE,IAAI,QAAM,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;gBACzE,EAAE,CAAC,CAAC,QAAM,IAAI,IAAI,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;gBACnF,UAAU,CAAC,IAAI,CAAC,aAAa,CAAkB,QAAM,CAAC,CAAC;gBACvD,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAG7B,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACjB,GAAG,CAAC,CAAC,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBACnC,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACtC,IAAI,IAAI,GAAG,IAAI,MAAA,SAAS,CAAC,SAAS,CAAC,CAAC;oBACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;oBACzD,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBACrB,GAAG,CAAC,CAAC,IAAI,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC3C,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;oBAClD,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;gBAC/D,CAAC;YACF,CAAC;YAED,MAAM,CAAC,YAAY,CAAC;QACrB,CAAC;QAED,qCAAc,GAAd,UAAgB,GAAQ,EAAE,IAAU,EAAE,SAAiB,EAAE,IAAY,EAAE,YAA0B;YAChG,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAExC,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEhD,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACd,KAAK,QAAQ,EAAE,CAAC;oBACf,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC5C,IAAI,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBACzE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;oBAChC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;oBACnB,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC9C,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC9C,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAChD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAChD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBACpD,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;oBACjC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;oBAEnC,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBACtD,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAErD,MAAM,CAAC,YAAY,EAAE,CAAC;oBACtB,MAAM,CAAC,MAAM,CAAC;gBACf,CAAC;gBACD,KAAK,aAAa,EAAE,CAAC;oBACpB,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACrE,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;oBAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;oBAClD,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBACtD,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAClD,MAAM,CAAC,GAAG,CAAC;gBACZ,CAAC;gBACD,KAAK,MAAM,CAAC;gBACZ,KAAK,YAAY,EAAE,CAAC;oBACnB,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC5C,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBACrE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;oBAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;oBAEjB,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC9C,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAEnD,IAAI,QAAM,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBACxD,EAAE,CAAC,CAAC,QAAM,IAAI,IAAI,CAAC,CAAC,CAAC;wBACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;wBACxD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,EAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,QAAM,CAAC,CAAC,CAAC;wBAC3G,MAAM,CAAC,IAAI,CAAC;oBACb,CAAC;oBAED,IAAI,GAAG,GAAkB,GAAG,CAAC,GAAG,CAAC;oBACjC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;oBACzC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;oBAC/B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;oBACrB,IAAI,CAAC,SAAS,EAAE,CAAC;oBAEjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBACpD,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBACD,KAAK,MAAM,EAAE,CAAC;oBACb,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC/D,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;oBAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAClD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;oBAE/D,IAAI,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;oBAClC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;oBAE/C,IAAI,OAAO,GAAkB,MAAA,KAAK,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBAChE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE;wBAC1C,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;oBAEvB,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBACtD,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACnD,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBACD,KAAK,OAAO,EAAE,CAAC;oBACd,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACjE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;oBAC/B,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC7C,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC7C,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAEnD,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC9C,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACpD,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBACD,KAAK,UAAU,EAAE,CAAC;oBACjB,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACnE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;oBAE9B,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;oBAC1C,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;wBACjB,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;wBACtC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,GAAG,CAAC,CAAC;wBACzE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACrB,CAAC;oBAED,IAAI,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;oBAClC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;oBAE/C,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBACtD,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACnD,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;YACF,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,mCAAY,GAAZ,UAAc,GAAQ,EAAE,UAA4B,EAAE,cAAsB;YAC3E,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,UAAU,CAAC,mBAAmB,GAAG,cAAc,CAAC;YAChD,IAAI,QAAQ,GAAkB,GAAG,CAAC,QAAQ,CAAC;YAC3C,EAAE,CAAC,CAAC,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBACvC,IAAI,cAAc,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAClD,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;wBAC9C,cAAc,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;gBAC7B,CAAC;gBACD,UAAU,CAAC,QAAQ,GAAG,cAAc,CAAC;gBACrC,MAAM,CAAC;YACR,CAAC;YACD,IAAI,OAAO,GAAG,IAAI,KAAK,EAAU,CAAC;YAClC,IAAI,KAAK,GAAG,IAAI,KAAK,EAAU,CAAC;YAChC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC7C,IAAI,SAAS,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;oBACtC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;oBACtC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YACD,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;YACzB,UAAU,CAAC,QAAQ,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;QAED,oCAAa,GAAb,UAAe,GAAQ,EAAE,IAAY,EAAE,YAA0B;YAChE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,SAAS,GAAG,IAAI,KAAK,EAAY,CAAC;YACtC,IAAI,QAAQ,GAAG,CAAC,CAAC;YAGjB,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACf,GAAG,CAAC,CAAC,IAAI,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;oBAChC,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAClC,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACrD,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;oBACpE,GAAG,CAAC,CAAC,IAAI,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC;wBAClC,IAAI,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;wBACxC,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC;4BAClC,IAAI,QAAQ,GAAG,IAAI,MAAA,kBAAkB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BAC1D,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;4BAC/D,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC9E,CAAC;wBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC;4BACpC,IAAI,QAAQ,GAAG,IAAI,MAAA,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACrD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,IAAI,KAAK,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;gCACxB,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gCACpC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;gCACjF,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,MAAA,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;wBAExG,CAAC;wBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,IAAI,UAAU,CAAC,CAAC,CAAC;4BACvC,IAAI,QAAQ,GAAG,IAAI,MAAA,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACxD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,IAAI,KAAK,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;gCACxB,IAAI,IAAI,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;gCACvB,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gCACpC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gCAClC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gCACzG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,MAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;wBAE3G,CAAC;wBAAC,IAAI;4BACL,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,YAAY,GAAG,IAAI,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;oBAC/F,CAAC;gBACF,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACf,GAAG,CAAC,CAAC,IAAI,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;oBAChC,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAClC,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACrD,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;oBACpE,GAAG,CAAC,CAAC,IAAI,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC;wBAClC,IAAI,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;wBACxC,EAAE,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC;4BAC/B,IAAI,QAAQ,GAAG,IAAI,MAAA,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACtD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gCAC7D,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,MAAA,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;wBAEzG,CAAC;wBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,KAAK,WAAW,IAAI,YAAY,KAAK,OAAO,IAAI,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC;4BACjG,IAAI,QAAQ,GAAsB,IAAI,CAAC;4BACvC,IAAI,aAAa,GAAG,CAAC,CAAC;4BACtB,EAAE,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC;gCAC5B,QAAQ,GAAG,IAAI,MAAA,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BAClD,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC;gCACjC,QAAQ,GAAG,IAAI,MAAA,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BAClD,IAAI,CAAC,CAAC;gCACL,QAAQ,GAAG,IAAI,MAAA,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gCACrD,aAAa,GAAG,KAAK,CAAC;4BACvB,CAAC;4BACD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gCAC7E,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC;gCACnF,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,MAAA,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;wBAE5G,CAAC;wBAAC,IAAI;4BACL,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,YAAY,GAAG,IAAI,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;oBAC/F,CAAC;gBACF,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACZ,GAAG,CAAC,CAAC,IAAI,cAAc,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBACnC,IAAI,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;oBAC3C,IAAI,UAAU,GAAG,YAAY,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;oBAC/D,IAAI,QAAQ,GAAG,IAAI,MAAA,oBAAoB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;oBAC9D,QAAQ,CAAC,iBAAiB,GAAG,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC5E,IAAI,UAAU,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC/C,IAAI,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;wBAChC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,EAC7E,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACzD,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;wBAC/C,UAAU,EAAE,CAAC;oBACd,CAAC;oBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,MAAA,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC/G,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;gBACnB,GAAG,CAAC,CAAC,IAAI,cAAc,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC1C,IAAI,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;oBAClD,IAAI,UAAU,GAAG,YAAY,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;oBACtE,IAAI,QAAQ,GAAG,IAAI,MAAA,2BAA2B,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;oBACrE,QAAQ,CAAC,wBAAwB,GAAG,YAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC1F,IAAI,UAAU,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC/C,IAAI,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;wBAChC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,EACnF,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC7H,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;wBAC/C,UAAU,EAAE,CAAC;oBACd,CAAC;oBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAC3B,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,MAAA,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzF,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACf,GAAG,CAAC,CAAC,IAAI,cAAc,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtC,IAAI,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;oBAC9C,IAAI,KAAK,GAAG,YAAY,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;oBACjE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,cAAc,CAAC,CAAC;oBACjF,IAAI,IAAI,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oBAC/C,GAAG,CAAC,CAAC,IAAI,YAAY,IAAI,aAAa,CAAC,CAAC,CAAC;wBACxC,IAAI,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;wBAC9C,EAAE,CAAC,CAAC,YAAY,KAAK,UAAU,IAAI,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC;4BAC/D,IAAI,QAAQ,GAAmC,IAAI,CAAC;4BACpD,IAAI,aAAa,GAAG,CAAC,CAAC;4BACtB,EAAE,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC;gCAChC,QAAQ,GAAG,IAAI,MAAA,6BAA6B,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gCACjE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,MAAA,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,MAAA,WAAW,CAAC,KAAK,CAAC;oCAAC,aAAa,GAAG,KAAK,CAAC;4BAC5G,CAAC;4BAAC,IAAI,CAAC,CAAC;gCACP,QAAQ,GAAG,IAAI,MAAA,8BAA8B,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gCAClE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,MAAA,YAAY,CAAC,KAAK,CAAC;oCAAC,aAAa,GAAG,KAAK,CAAC;4BACpE,CAAC;4BACD,QAAQ,CAAC,mBAAmB,GAAG,KAAK,CAAC;4BACrC,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;gCACvG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAC3B,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,MAAA,8BAA8B,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC5F,CAAC;wBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC;4BACnC,IAAI,QAAQ,GAAG,IAAI,MAAA,yBAAyB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACjE,QAAQ,CAAC,mBAAmB,GAAG,KAAK,CAAC;4BACrC,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,EACnF,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;gCAC7C,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAC3B,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,MAAA,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC;wBACvF,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChB,GAAG,CAAC,CAAC,IAAI,UAAU,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;oBACnC,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBACvC,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAC7C,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,UAAU,CAAC,CAAC;oBACnE,GAAG,CAAC,CAAC,IAAI,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC;wBAChC,IAAI,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;wBAClC,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;wBACrD,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;wBACxE,GAAG,CAAC,CAAC,IAAI,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC;4BAClC,IAAI,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;4BACxC,IAAI,UAAU,GAAqB,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;4BAC/E,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;gCAAC,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;4BAC5F,IAAI,QAAQ,GAAG,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC;4BACxC,IAAI,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;4BACnC,IAAI,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;4BAExE,IAAI,QAAQ,GAAG,IAAI,MAAA,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACtD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAC/B,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;4BAEjC,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,IAAI,MAAM,SAAmB,CAAC;gCAC9B,IAAI,aAAa,GAAkB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;gCAC7E,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC;oCACzB,MAAM,GAAG,QAAQ,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;gCAClE,IAAI,CAAC,CAAC;oCACL,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;oCAC3C,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oCACzD,MAAA,KAAK,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;oCACvE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;wCAChB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;4CAC3D,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;oCACrB,CAAC;oCACD,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;wCACf,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE;4CACpC,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAC3B,CAAC;gCACF,CAAC;gCAED,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gCACrD,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC9E,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YAGD,IAAI,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC;YAClC,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC;gBAAC,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC;YACzD,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC3B,IAAI,QAAQ,GAAG,IAAI,MAAA,iBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAC3D,IAAI,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC1C,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/C,IAAI,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;oBACpC,IAAI,SAAS,GAAkB,IAAI,CAAC;oBACpC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;oBAC3D,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;wBACrB,SAAS,GAAG,MAAA,KAAK,CAAC,QAAQ,CAAS,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;wBAClD,IAAI,SAAS,GAAG,MAAA,KAAK,CAAC,QAAQ,CAAS,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBACtE,IAAI,aAAa,GAAG,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC;wBAC1C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACzC,IAAI,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;4BAC3B,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;4BAC3D,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;gCAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;4BAE1E,OAAO,aAAa,IAAI,SAAS;gCAChC,SAAS,CAAC,cAAc,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC;4BAE/C,SAAS,CAAC,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;wBAC/D,CAAC;wBAED,OAAO,aAAa,GAAG,SAAS;4BAC/B,SAAS,CAAC,cAAc,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC;wBAE/C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;4BACtC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gCAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC;oBACrE,CAAC;oBACD,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC/D,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9E,CAAC;YAGD,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChB,IAAI,QAAQ,GAAG,IAAI,MAAA,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACpD,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,IAAI,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC7B,IAAI,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACtD,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC5E,IAAI,OAAK,GAAG,IAAI,MAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBAChD,OAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACpE,OAAK,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;oBAC1E,OAAK,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;oBAC7E,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,OAAK,CAAC,CAAC;gBACxC,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9E,CAAC;YAED,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACnE,CAAC;YAED,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,MAAA,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,gCAAS,GAAT,UAAW,GAAQ,EAAE,QAAuB,EAAE,UAAkB;YAC/D,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAC,MAAM,CAAC;YACvB,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC;gBAC3B,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACjC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACzE,IAAI,KAAK,GAAkB,GAAG,CAAC,KAAK,CAAC;gBACrC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,CAAC;QACF,CAAC;QAED,+BAAQ,GAAR,UAAU,GAAQ,EAAE,IAAY,EAAE,YAAiB;YAClD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;QAC3D,CAAC;QAEM,gCAAmB,GAA1B,UAA4B,GAAW;YACtC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC;gBAAC,MAAM,CAAC,MAAA,SAAS,CAAC,MAAM,CAAC;YAC7C,EAAE,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC;gBAAC,MAAM,CAAC,MAAA,SAAS,CAAC,QAAQ,CAAC;YACjD,EAAE,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC;gBAAC,MAAM,CAAC,MAAA,SAAS,CAAC,QAAQ,CAAC;YACjD,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC;gBAAC,MAAM,CAAC,MAAA,SAAS,CAAC,MAAM,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,yBAAuB,GAAK,CAAC,CAAC;QAC/C,CAAC;QAEM,mCAAsB,GAA7B,UAA+B,GAAW;YACzC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,EAAE,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC;gBAAC,MAAM,CAAC,MAAA,YAAY,CAAC,KAAK,CAAC;YAC9C,EAAE,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC;gBAAC,MAAM,CAAC,MAAA,YAAY,CAAC,OAAO,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,4BAA0B,GAAK,CAAC,CAAC;QAClD,CAAC;QAEM,kCAAqB,GAA5B,UAA8B,GAAW;YACxC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC;gBAAC,MAAM,CAAC,MAAA,WAAW,CAAC,MAAM,CAAC;YAC/C,EAAE,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC;gBAAC,MAAM,CAAC,MAAA,WAAW,CAAC,KAAK,CAAC;YAC7C,EAAE,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC;gBAAC,MAAM,CAAC,MAAA,WAAW,CAAC,OAAO,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,4BAA0B,GAAK,CAAC,CAAC;QAClD,CAAC;QAEM,iCAAoB,GAA3B,UAA6B,GAAW;YACvC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,EAAE,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC;gBAAC,MAAM,CAAC,MAAA,UAAU,CAAC,OAAO,CAAC;YAChD,EAAE,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC;gBAAC,MAAM,CAAC,MAAA,UAAU,CAAC,KAAK,CAAC;YAC5C,EAAE,CAAC,CAAC,GAAG,IAAI,YAAY,CAAC;gBAAC,MAAM,CAAC,MAAA,UAAU,CAAC,UAAU,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,0BAAwB,GAAK,CAAC,CAAC;QAChD,CAAC;QAEM,oCAAuB,GAA9B,UAA+B,GAAW;YACzC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC;gBAAC,MAAM,CAAC,MAAA,aAAa,CAAC,MAAM,CAAC;YACjD,EAAE,CAAC,CAAC,GAAG,IAAI,iBAAiB,CAAC;gBAAC,MAAM,CAAC,MAAA,aAAa,CAAC,eAAe,CAAC;YACnE,EAAE,CAAC,CAAC,GAAG,IAAI,wBAAwB,CAAC;gBAAC,MAAM,CAAC,MAAA,aAAa,CAAC,sBAAsB,CAAC;YACjF,EAAE,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC;gBAAC,MAAM,CAAC,MAAA,aAAa,CAAC,OAAO,CAAC;YACnD,EAAE,CAAC,CAAC,GAAG,IAAI,qBAAqB,CAAC;gBAAC,MAAM,CAAC,MAAA,aAAa,CAAC,mBAAmB,CAAC;YAC3E,MAAM,IAAI,KAAK,CAAC,6BAA2B,GAAK,CAAC,CAAC;QACnD,CAAC;QACF,mBAAC;IAAD,CAAC,AAtuBD,IAsuBC;IAtuBY,kBAAY,eAsuBxB,CAAA;IAED;QAKC,oBAAa,IAAoB,EAAE,IAAY,EAAE,SAAiB,EAAE,MAAc;YACjF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,CAAC;QACF,iBAAC;IAAD,CAAC,AAXD,IAWC;AACF,CAAC,EArvBM,KAAK,KAAL,KAAK,QAqvBX;ACrvBD,IAAO,KAAK,CA6CX;AA7CD,WAAO,KAAK;IACX;QAIC,cAAa,IAAY;YAFzB,gBAAW,GAAG,IAAI,KAAK,EAAmB,CAAC;YAG1C,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QAED,4BAAa,GAAb,UAAe,SAAiB,EAAE,IAAY,EAAE,UAAsB;YACrE,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACtE,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,EAAE,CAAC,CAAC,SAAS,IAAI,WAAW,CAAC,MAAM,CAAC;gBAAC,WAAW,CAAC,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC;YACxE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAG,CAAC;YAC1D,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAC3C,CAAC;QAGD,4BAAa,GAAb,UAAe,SAAiB,EAAE,IAAY;YAC7C,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC7C,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC7C,CAAC;QAGD,wBAAS,GAAT,UAAW,QAAkB,EAAE,OAAa;YAC3C,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChD,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC1C,EAAE,CAAC,CAAC,cAAc,IAAI,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC9D,IAAI,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;oBAChD,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;wBAC5B,IAAI,cAAc,GAAc,UAAU,CAAC,GAAG,CAAC,CAAC;wBAChD,EAAE,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC;4BACtC,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;4BACpD,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;gCAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;4BACvD,KAAK,CAAC;wBACP,CAAC;oBACF,CAAC;gBACF,CAAC;gBACD,SAAS,EAAE,CAAC;YACb,CAAC;QACF,CAAC;QACF,WAAC;IAAD,CAAC,AA3CD,IA2CC;IA3CY,UAAI,OA2ChB,CAAA;AACF,CAAC,EA7CM,KAAK,KAAL,KAAK,QA6CX;AC7CD,IAAO,KAAK,CAsDX;AAtDD,WAAO,KAAK;IACX;QASC,cAAa,IAAc,EAAE,IAAU;YAFvC,uBAAkB,GAAG,IAAI,KAAK,EAAU,CAAC;YAGxC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;YAC7D,IAAI,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC;QAGD,4BAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACxB,CAAC;QAID,4BAAa,GAAb,UAAe,UAAsB;YACpC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC;gBAAC,MAAM,CAAC;YAC1C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC9C,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;QACpC,CAAC;QAED,gCAAiB,GAAjB,UAAmB,IAAY;YAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QACtD,CAAC;QAGD,gCAAiB,GAAjB;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;QACtD,CAAC;QAED,6BAAc,GAAd;YACC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;gBAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7E,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;gBACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,CAAC;gBACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACjG,CAAC;QACF,CAAC;QACF,WAAC;IAAD,CAAC,AApDD,IAoDC;IApDY,UAAI,OAoDhB,CAAA;AACF,CAAC,EAtDM,KAAK,KAAL,KAAK,QAsDX;ACtDD,IAAO,KAAK,CAmBX;AAnBD,WAAO,KAAK;IACX;QASC,kBAAa,KAAa,EAAE,IAAY,EAAE,QAAkB;YAL5D,UAAK,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAM7B,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACtD,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1B,CAAC;QACF,eAAC;IAAD,CAAC,AAjBD,IAiBC;IAjBY,cAAQ,WAiBpB,CAAA;AACF,CAAC,EAnBM,KAAK,KAAL,KAAK,QAmBX;ACnBD,IAAO,KAAK,CAgEX;AAhED,WAAO,KAAK;IACX;QAGC,iBAAa,KAAuB;YACnC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACrB,CAAC;QAED,0BAAQ,GAAR;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QAMa,wBAAgB,GAA9B,UAAgC,IAAY;YAC3C,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC5B,KAAK,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;gBAC7C,KAAK,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;gBAC3C,KAAK,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;gBAC3C,KAAK,sBAAsB,EAAE,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAC;gBACvE,KAAK,qBAAqB,EAAE,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC;gBACrE,KAAK,qBAAqB,EAAE,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC;gBACrE,KAAK,oBAAoB,EAAE,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC;gBACnE,SAAS,MAAM,IAAI,KAAK,CAAC,4BAA0B,IAAM,CAAC,CAAC;YAC5D,CAAC;QACF,CAAC;QAEa,sBAAc,GAA5B,UAA8B,IAAY;YACzC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC5B,KAAK,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC;gBACzD,KAAK,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;gBACnD,KAAK,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;gBACzC,SAAS,MAAM,IAAI,KAAK,CAAC,0BAAwB,IAAM,CAAC,CAAC;YAC1D,CAAC;QACF,CAAC;QACF,cAAC;IAAD,CAAC,AApCD,IAoCC;IApCqB,aAAO,UAoC5B,CAAA;IAED,IAAY,aAQX;IARD,WAAY,aAAa;QACxB,0DAAc,CAAA;QACd,wDAAa,CAAA;QACb,wDAAa,CAAA;QACb,oFAA2B,CAAA;QAC3B,kFAA0B,CAAA;QAC1B,kFAA0B,CAAA;QAC1B,gFAAyB,CAAA;IAC1B,CAAC,EARW,aAAa,GAAb,mBAAa,KAAb,mBAAa,QAQxB;IAED,IAAY,WAIX;IAJD,WAAY,WAAW;QACtB,qEAAsB,CAAA;QACtB,+DAAmB,CAAA;QACnB,qDAAc,CAAA;IACf,CAAC,EAJW,WAAW,GAAX,iBAAW,KAAX,iBAAW,QAItB;IAED;QAAA;YAEC,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YACb,OAAE,GAAG,CAAC,CAAC;YAAC,OAAE,GAAG,CAAC,CAAC;YACf,UAAK,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YACtB,WAAM,GAAG,KAAK,CAAC;YACf,YAAO,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YACzB,kBAAa,GAAG,CAAC,CAAC;YAAC,mBAAc,GAAG,CAAC,CAAC;QACvC,CAAC;QAAD,oBAAC;IAAD,CAAC,AARD,IAQC;IARY,mBAAa,gBAQzB,CAAA;AACF,CAAC,EAhEM,KAAK,KAAL,KAAK,QAgEX;AChED,IAAO,KAAK,CAqLX;AArLD,WAAO,KAAK;IACX;QAIC,sBAAa,SAAiB,EAAE,aAAoC;YAHpE,UAAK,GAAG,IAAI,KAAK,EAAoB,CAAC;YACtC,YAAO,GAAG,IAAI,KAAK,EAAsB,CAAC;YAGzC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACrC,CAAC;QAEO,2BAAI,GAAZ,UAAc,SAAiB,EAAE,aAAoC;YACpE,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAElD,IAAI,MAAM,GAAG,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,KAAK,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;YACjC,IAAI,IAAI,GAAoB,IAAI,CAAC;YACjC,OAAO,IAAI,EAAE,CAAC;gBACb,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC7B,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;oBAChB,KAAK,CAAC;gBACP,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;oBACpB,IAAI,GAAG,IAAI,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBAChB,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAAC;oBAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;oBAEjB,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAClC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBACjC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACzB,CAAC;oBAGD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACxB,IAAI,CAAC,SAAS,GAAG,MAAA,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpD,IAAI,CAAC,SAAS,GAAG,MAAA,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEpD,IAAI,SAAS,GAAE,MAAM,CAAC,SAAS,EAAE,CAAC;oBAClC,IAAI,CAAC,KAAK,GAAG,MAAA,WAAW,CAAC,WAAW,CAAC;oBACrC,IAAI,CAAC,KAAK,GAAG,MAAA,WAAW,CAAC,WAAW,CAAC;oBACrC,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC;wBACpB,IAAI,CAAC,KAAK,GAAG,MAAA,WAAW,CAAC,MAAM,CAAC;oBACjC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC;wBACzB,IAAI,CAAC,KAAK,GAAG,MAAA,WAAW,CAAC,MAAM,CAAC;oBACjC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;wBAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,MAAA,WAAW,CAAC,MAAM,CAAC;oBAE9C,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;oBACnC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;oBACxD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC;oBAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;oBAC7C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,MAAM,GAAsB,IAAI,kBAAkB,EAAE,CAAC;oBACzD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;oBACnB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;oBAEnB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,IAAI,MAAM,CAAC;oBAE7C,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACxB,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3B,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAE3B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACxB,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/B,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEhC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC1B,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;oBAC3B,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;wBACnB,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;wBACtC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;oBACvC,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;wBACrC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;oBACxC,CAAC;oBACD,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;oBACb,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;oBACb,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC/B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAEjC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAElC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BAElC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wBACzB,CAAC;oBACF,CAAC;oBAED,MAAM,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1C,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAE3C,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACxB,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEpC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;oBAE5C,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;oBAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3B,CAAC;YACF,CAAC;QACF,CAAC;QAED,iCAAU,GAAV,UAAY,IAAY;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;oBAClC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACxB,CAAC;YACF,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,8BAAO,GAAP;YACC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACjC,CAAC;QACF,CAAC;QACF,mBAAC;IAAD,CAAC,AAvHD,IAuHC;IAvHY,kBAAY,eAuHxB,CAAA;IAED;QAIC,4BAAa,IAAY;YAFzB,UAAK,GAAW,CAAC,CAAC;YAGjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;QAED,qCAAQ,GAAR;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACjC,CAAC;QAED,sCAAS,GAAT;YACC,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,KAAK,GAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,CAAC;QAED,sCAAS,GAAT,UAAW,KAAoB;YAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;YACjC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnB,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBACzC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;oBAAC,KAAK,CAAC;gBACvB,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC5D,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5C,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACd,CAAC;QACF,yBAAC;IAAD,CAAC,AArCD,IAqCC;IAED;QAAA;QASA,CAAC;QAAD,uBAAC;IAAD,CAAC,AATD,IASC;IATY,sBAAgB,mBAS5B,CAAA;IAED;QAAwC,sCAAa;QAArD;;QAQA,CAAC;QAAD,yBAAC;IAAD,CAAC,AARD,CAAwC,MAAA,aAAa,GAQpD;IARY,wBAAkB,qBAQ9B,CAAA;AACF,CAAC,EArLM,KAAK,KAAL,KAAK,QAqLX;ACrLD,IAAO,KAAK,CAqPX;AArPD,WAAO,KAAK;IACX;QAOC,6BAAa,IAA6B,EAAE,QAAkB;YAH9D,cAAS,GAAG,CAAC,CAAC;YAAC,iBAAY,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAC5D,SAAI,GAAG,IAAI,MAAA,OAAO,EAAE,CAAC;YAGpB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;gBACzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QAED,mCAAK,GAAL;YACC,IAAI,CAAC,MAAM,EAAE,CAAC;QACf,CAAC;QAED,oCAAM,GAAN;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC3B,IAAI;oBACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAE5B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC3B,IAAI;oBACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,CAAC;QACF,CAAC;QAED,gDAAkB,GAAlB;YACC,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,GAAG,CAAC,MAAA,SAAS,CAAC,MAAM,CAAC;YACjF,IAAI,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YAC9D,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;YAC1D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;gBAErB,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;oBACnD,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,cAAc,CAAC;oBAC/D,EAAE,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,EAAE,CAAC;wBACpB,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;oBACpB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAA,SAAS,CAAC,EAAE,CAAC;wBAC1B,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;oBACpB,CAAC,IAAI,SAAS,CAAC;oBACf,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACzC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACrB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBACpE,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;oBACrD,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;oBACrD,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrD,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBACtC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;wBAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC5E,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACjD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBAClC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;wBAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC5E,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;oBAC3B,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC1B,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpF,EAAE,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,EAAE,CAAC;wBACpB,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;oBACpB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAA,SAAS,CAAC,EAAE,CAAC;wBAC1B,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;oBACpB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,QAAQ,CAAC;oBACvC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,CAAC;oBAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YACzC,CAAC;QACF,CAAC;QAED,gDAAkB,GAAlB;YACC,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,GAAG,CAAC,MAAA,SAAS,CAAC,MAAM,CAAC;YACjF,IAAI,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;YACrH,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;gBAErB,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;oBACnD,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,cAAc,CAAC;oBAC5C,EAAE,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,EAAE,CAAC;wBACpB,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;oBACpB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAA,SAAS,CAAC,EAAE,CAAC;wBAAC,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;oBAC/C,CAAC,IAAI,SAAS,CAAC;oBACf,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACzC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACrB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBACpE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC;oBACrC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC;oBACrC,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;oBACnF,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;oBAC/E,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBAChD,EAAE,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,EAAE,CAAC;wBACpB,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;oBACpB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAA,SAAS,CAAC,EAAE,CAAC;wBAAC,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;oBAC/C,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;oBAC3B,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,QAAQ,CAAC;oBACxE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,CAAC;oBAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YACzC,CAAC;QACF,CAAC;QAED,gDAAkB,GAAlB;YACC,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gBAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;YAC1D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;oBAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAEtD,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC9B,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;oBAC/D,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;oBAC1D,QAAQ,IAAI,CAAC,GAAG,SAAS,CAAC;gBAC3B,CAAC;gBAED,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;gBAC7B,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;oBACxD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;gBACzD,CAAC;gBAED,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBACjD,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC;wBAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,MAAM,CAAC;oBACjH,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC;wBAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,MAAM,CAAC;gBAClH,CAAC;gBAED,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC1B,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;oBACzD,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;oBAC1D,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,QAAQ,CAAC;gBAC7B,CAAC;gBAED,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrF,CAAC;QACF,CAAC;QAED,gDAAkB,GAAlB;YACC,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gBAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;YAC1D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;oBAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAEtD,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC9B,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC;oBAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;gBAE1F,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;gBAC7B,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;oBACpD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;gBACrD,CAAC;gBAED,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBACjD,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC;wBAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC/F,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC;wBAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAChG,CAAC;gBAED,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC1B,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;oBAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;gBAEjF,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrF,CAAC;QACF,CAAC;QAED,sCAAQ,GAAR;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,CAAC;QACF,0BAAC;IAAD,CAAC,AAnPD,IAmPC;IAnPY,yBAAmB,sBAmP/B,CAAA;AACF,CAAC,EArPM,KAAK,KAAL,KAAK,QAqPX;ACrPD,IAAO,KAAK,CAgBX;AAhBD,WAAO,KAAK;IACX;QAUC,iCAAa,IAAY;YARzB,UAAK,GAAG,CAAC,CAAC;YACV,UAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAE9B,cAAS,GAAG,CAAC,CAAC;YAAC,iBAAY,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAC5D,mBAAc,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAAC,iBAAY,GAAG,CAAC,CAAC;YAAC,iBAAY,GAAG,CAAC,CAAC;YAAC,iBAAY,GAAG,CAAC,CAAC;YACnG,aAAQ,GAAG,KAAK,CAAC;YACjB,UAAK,GAAG,KAAK,CAAC;YAGb,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,8BAAC;IAAD,CAAC,AAdD,IAcC;IAdY,6BAAuB,0BAcnC,CAAA;AACF,CAAC,EAhBM,KAAK,KAAL,KAAK,QAgBX;AChBD,IAAO,KAAK,CA+OX;AA/OD,WAAO,KAAK;IACX;QAAA;YACS,mBAAc,GAAG,IAAI,KAAK,EAAiB,CAAC;YAC5C,0BAAqB,GAAG,IAAI,KAAK,EAAiB,CAAC;YAEnD,iBAAY,GAAG,IAAI,KAAK,EAAU,CAAC;YACnC,mBAAc,GAAG,IAAI,KAAK,EAAW,CAAC;YACtC,cAAS,GAAG,IAAI,KAAK,EAAU,CAAC;YAEhC,gBAAW,GAAG,IAAI,MAAA,IAAI,CAAgB;gBAC7C,MAAM,CAAC,IAAI,KAAK,EAAU,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEK,uBAAkB,GAAG,IAAI,MAAA,IAAI,CAAgB;gBACpD,MAAM,CAAC,IAAI,KAAK,EAAU,CAAC;YAC5B,CAAC,CAAC,CAAC;QA+NJ,CAAC;QA7NO,kCAAW,GAAlB,UAAoB,aAAgC;YACnD,IAAI,QAAQ,GAAG,aAAa,CAAC;YAC7B,IAAI,WAAW,GAAG,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC;YAE5C,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;YAChC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;gBACnC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhB,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;YACpC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACrB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBAC1C,SAAS,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAE1E,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAErB,OAAO,WAAW,GAAG,CAAC,EAAE,CAAC;gBAExB,IAAI,QAAQ,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;gBAChD,OAAO,IAAI,EAAE,CAAC;oBACb,KAAK,EACL,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnB,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC/E,IAAI,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC/C,IAAI,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC/C,IAAI,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC/C,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,EAAE,IAAI,QAAQ,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC;4BACrF,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gCAAC,QAAQ,CAAC;4BAC7B,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;4BACzB,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;4BAC3C,EAAE,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gCAC3D,EAAE,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;oCAC3D,EAAE,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;wCAAC,KAAK,CAAC,KAAK,CAAC;gCACxE,CAAC;4BACF,CAAC;wBACF,CAAC;wBACD,KAAK,CAAC;oBACP,CAAC;oBAED,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;wBACf,GAAG,CAAC;4BACH,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gCAAC,KAAK,CAAC;4BACzB,CAAC,EAAE,CAAC;wBACL,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;wBAChB,KAAK,CAAC;oBACP,CAAC;oBAED,QAAQ,GAAG,CAAC,CAAC;oBACb,CAAC,GAAG,IAAI,CAAC;oBACT,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;gBACjC,CAAC;gBAGD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;gBAC7D,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;gBAC/C,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvB,WAAW,EAAE,CAAC;gBAEd,IAAI,aAAa,GAAG,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;gBACxD,IAAI,SAAS,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;gBACzC,SAAS,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACjG,SAAS,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC1F,CAAC;YAED,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC;gBACtB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YAED,MAAM,CAAC,SAAS,CAAC;QAClB,CAAC;QAED,gCAAS,GAAT,UAAW,aAA4B,EAAE,SAAwB;YAChE,IAAI,QAAQ,GAAG,aAAa,CAAC;YAC7B,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACzC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAE1B,IAAI,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACvD,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACvD,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;YAEjC,IAAI,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;YACtD,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAE1B,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACxC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAGnB,IAAI,YAAY,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC;YACvC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrD,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;gBACnF,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAG7C,IAAI,MAAM,GAAG,KAAK,CAAC;gBACnB,EAAE,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;oBACxB,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC3B,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBACxG,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5F,EAAE,CAAC,CAAC,QAAQ,IAAI,WAAW,IAAI,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC;wBACxD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACjB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACxB,MAAM,GAAG,IAAI,CAAC;oBACf,CAAC;gBACF,CAAC;gBAGD,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACb,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;wBACxB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC7B,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC5C,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;wBAC9B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC9C,CAAC;oBACD,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;oBACpC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;oBACnB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;oBAClD,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC1B,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxB,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC3D,YAAY,GAAG,EAAE,CAAC;gBACnB,CAAC;YACF,CAAC;YAED,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBACxB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7B,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC5C,CAAC;YAGD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvD,cAAc,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC1C,EAAE,CAAC,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,CAAC;oBAAC,QAAQ,CAAC;gBACzC,IAAI,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,SAAS,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAE1D,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC3B,IAAI,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvD,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnD,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC/C,IAAI,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAEvF,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;oBAC/B,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;wBAAC,QAAQ,CAAC;oBACtB,IAAI,YAAY,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC;oBAC7C,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;wBAAC,QAAQ,CAAC;oBACvC,IAAI,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBACtC,IAAI,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBACvC,IAAI,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBAErC,IAAI,SAAS,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;oBACnC,IAAI,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAE/E,EAAE,CAAC,CAAC,eAAe,IAAI,UAAU,IAAI,gBAAgB,IAAI,SAAS,CAAC;wBAAC,QAAQ,CAAC;oBAC7E,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBAChF,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC9E,EAAE,CAAC,CAAC,QAAQ,IAAI,OAAO,IAAI,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;wBAChD,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;wBACrB,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;wBACxB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACjB,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;wBACpC,SAAS,GAAG,KAAK,CAAC;wBAClB,SAAS,GAAG,KAAK,CAAC;wBAClB,KAAK,GAAG,EAAE,CAAC;wBACX,KAAK,GAAG,EAAE,CAAC;wBACX,EAAE,GAAG,CAAC,CAAC;oBACR,CAAC;gBACF,CAAC;YACF,CAAC;YAGD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrD,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC5B,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;oBACzB,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC/B,cAAc,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAA;oBACzC,qBAAqB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;oBAClC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC9C,CAAC;YACF,CAAC;YAED,MAAM,CAAC,cAAc,CAAC;QACvB,CAAC;QAEc,sBAAS,GAAxB,UAA0B,KAAa,EAAE,WAAmB,EAAE,QAA2B,EAAE,OAA0B;YACpH,IAAI,QAAQ,GAAG,OAAO,CAAC,CAAC,WAAW,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACrE,IAAI,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,EAC7H,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QAEc,yBAAY,GAA3B,UAA6B,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW;YACxG,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QACvE,CAAC;QAEc,oBAAO,GAAtB,UAAwB,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW;YACnG,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;YACnC,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,CAAC;QACF,mBAAC;IAAD,CAAC,AA7OD,IA6OC;IA7OY,kBAAY,eA6OxB,CAAA;AACF,CAAC,EA/OM,KAAK,KAAL,KAAK,QA+OX;AE/OD,IAAO,KAAK,CAkUX;AAlUD,WAAO,KAAK;IAKX;QAAA;YACC,UAAK,GAAG,IAAI,KAAK,EAAU,CAAC;QAmB7B,CAAC;QAjBA,oBAAG,GAAH,UAAK,KAAa;YACjB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YAClC,MAAM,CAAC,CAAC,QAAQ,CAAC;QAClB,CAAC;QAED,yBAAQ,GAAR,UAAU,KAAa;YACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC;QAC3C,CAAC;QAED,uBAAM,GAAN,UAAQ,KAAa;YACpB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;QACnC,CAAC;QAED,sBAAK,GAAL;YACC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,CAAC;QACF,aAAC;IAAD,CAAC,AApBD,IAoBC;IApBY,YAAM,SAoBlB,CAAA;IAUD;QAOC,eAAoB,CAAa,EAAS,CAAa,EAAS,CAAa,EAAS,CAAa;YAA/E,kBAAA,EAAA,KAAa;YAAS,kBAAA,EAAA,KAAa;YAAS,kBAAA,EAAA,KAAa;YAAS,kBAAA,EAAA,KAAa;YAA/E,MAAC,GAAD,CAAC,CAAY;YAAS,MAAC,GAAD,CAAC,CAAY;YAAS,MAAC,GAAD,CAAC,CAAY;YAAS,MAAC,GAAD,CAAC,CAAY;QACnG,CAAC;QAED,mBAAG,GAAH,UAAK,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;YAC9C,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,4BAAY,GAAZ,UAAc,CAAQ;YACrB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,6BAAa,GAAb,UAAe,GAAW;YACzB,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACjD,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;YAChD,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;YAChD,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;YAChD,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;YAC1E,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,mBAAG,GAAH,UAAK,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;YAC9C,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACZ,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,qBAAK,GAAL;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QACF,YAAC;IAAD,CAAC,AA3DD;IACe,WAAK,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,SAAG,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,WAAK,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,UAAI,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,aAAO,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IALlC,WAAK,QA2DjB,CAAA;IAED;QAAA;QAkCA,CAAC;QA1BO,eAAK,GAAZ,UAAc,KAAa,EAAE,GAAW,EAAE,GAAW;YACpD,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;gBAAC,MAAM,CAAC,GAAG,CAAC;YAC5B,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;gBAAC,MAAM,CAAC,GAAG,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAEM,gBAAM,GAAb,UAAe,OAAe;YAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAEM,gBAAM,GAAb,UAAe,OAAe;YAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAEM,gBAAM,GAAb,UAAe,KAAa;YAC3B,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QAEM,eAAK,GAAZ,UAAc,CAAS;YACtB,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;QAEM,cAAI,GAAX,UAAa,CAAS;YACrB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QACF,gBAAC;IAAD,CAAC,AAlCD;IACQ,YAAE,GAAG,SAAS,CAAC;IACf,aAAG,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;IACvB,0BAAgB,GAAG,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC;IACtC,gBAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC;IACpC,0BAAgB,GAAG,SAAS,CAAC,EAAE,GAAG,GAAG,CAAC;IACtC,gBAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC;IAN/B,eAAS,YAkCrB,CAAA;IAED;QAAA;QAqDA,CAAC;QAlDO,eAAS,GAAhB,UAAqB,MAAoB,EAAE,WAAmB,EAAE,IAAkB,EAAE,SAAiB,EAAE,WAAmB;YACzH,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,WAAW,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClF,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;QACF,CAAC;QAEM,kBAAY,GAAnB,UAAwB,KAAe,EAAE,IAAY,EAAE,KAAc;YAAd,sBAAA,EAAA,SAAc;YACpE,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;YAC3B,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC,KAAK,CAAC;YAClC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;YACpB,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;gBACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;oBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACvD,CAAC;YACD,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAEM,yBAAmB,GAA1B,UAA+B,KAAe,EAAE,IAAY,EAAE,KAAc;YAAd,sBAAA,EAAA,SAAc;YAC3E,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC,KAAK,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;QAEM,cAAQ,GAAf,UAAoB,IAAY,EAAE,YAAe;YAChD,IAAI,KAAK,GAAG,IAAI,KAAK,CAAI,IAAI,CAAC,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;gBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAEM,mBAAa,GAApB,UAAsB,IAAY;YACjC,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBACjC,MAAM,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;YAC9B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,IAAI,KAAK,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,CAAC;gBACpC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,CAAC,KAAK,CAAC;YACf,CAAC;QACF,CAAC;QAEM,mBAAa,GAApB,UAAsB,IAAY;YACjC,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBACjC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;YAC5B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,IAAI,KAAK,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,CAAC;gBACpC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,CAAC,KAAK,CAAC;YACf,CAAC;QACF,CAAC;QAEM,kBAAY,GAAnB,UAAqB,KAAoB;YACxC,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QACtE,CAAC;QACF,YAAC;IAAD,CAAC,AArDD;IACQ,2BAAqB,GAAG,OAAM,CAAC,YAAY,CAAC,KAAK,WAAW,CAAC;IADxD,WAAK,QAqDjB,CAAA;IAED;QAAA;QAOA,CAAC;QANO,mBAAQ,GAAf,UAAgB,QAAkB;YACjC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChD,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YACvI,CAAC;QACF,CAAC;QACF,iBAAC;IAAD,CAAC,AAPD,IAOC;IAPY,gBAAU,aAOtB,CAAA;IAED;QAIC,cAAa,YAAqB;YAH1B,UAAK,GAAG,IAAI,KAAK,EAAK,CAAC;YAI9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAClC,CAAC;QAED,qBAAM,GAAN;YACC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACvE,CAAC;QAED,mBAAI,GAAJ,UAAM,IAAO;YACZ,EAAE,CAAC,CAAE,IAAY,CAAC,KAAK,CAAC;gBAAE,IAAY,CAAC,KAAK,EAAE,CAAC;YAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QAED,sBAAO,GAAP,UAAS,KAAmB;YAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,EAAE,CAAC,CAAE,KAAK,CAAC,CAAC,CAAS,CAAC,KAAK,CAAC;oBAAE,KAAK,CAAC,CAAC,CAAS,CAAC,KAAK,EAAE,CAAC;gBACvD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC;QAED,oBAAK,GAAL;YACC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,CAAC;QACF,WAAC;IAAD,CAAC,AA3BD,IA2BC;IA3BY,UAAI,OA2BhB,CAAA;IAED;QACC,iBAAoB,CAAK,EAAS,CAAK;YAAnB,kBAAA,EAAA,KAAK;YAAS,kBAAA,EAAA,KAAK;YAAnB,MAAC,GAAD,CAAC,CAAI;YAAS,MAAC,GAAD,CAAC,CAAI;QACvC,CAAC;QAED,qBAAG,GAAH,UAAK,CAAS,EAAE,CAAS;YACxB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,wBAAM,GAAN;YACC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,2BAAS,GAAT;YACC,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACxB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;YACf,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QACF,cAAC;IAAD,CAAC,AAxBD,IAwBC;IAxBY,aAAO,UAwBnB,CAAA;IAED;QAAA;YACC,aAAQ,GAAG,KAAK,CAAC;YACjB,oBAAe,GAAG,CAAC,CAAC;YACpB,UAAK,GAAG,CAAC,CAAC;YACV,cAAS,GAAG,CAAC,CAAC;YAEN,aAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAC7B,eAAU,GAAG,CAAC,CAAC;YACf,cAAS,GAAG,CAAC,CAAC;QAiBvB,CAAC;QAfA,2BAAM,GAAN;YACC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;YACjC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC;YAC7B,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC;YAC7B,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC3D,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YAEpB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;gBACxD,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACrB,CAAC;QACF,CAAC;QACF,iBAAC;IAAD,CAAC,AAzBD,IAyBC;IAzBY,gBAAU,aAyBtB,CAAA;IAOD;QAOC,sBAAa,UAAuB;YAAvB,2BAAA,EAAA,eAAuB;YALpC,gBAAW,GAAG,CAAC,CAAC;YAChB,cAAS,GAAG,CAAC,CAAC;YACd,SAAI,GAAG,CAAC,CAAC;YACT,UAAK,GAAG,IAAI,CAAC;YAGZ,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAS,UAAU,CAAC,CAAC;QAC7C,CAAC;QAED,oCAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/C,CAAC;QAED,+BAAQ,GAAR,UAAU,KAAa;YACtB,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACzC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC;YACtC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YAChE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,8BAAO,GAAP;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;gBAC1B,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBAChB,IAAI,IAAI,GAAG,CAAC,CAAC;oBACb,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC7C,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACxB,CAAC;oBACD,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;oBACtC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACpB,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YAClB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,MAAM,CAAC,CAAC,CAAC;YACV,CAAC;QACF,CAAC;QACF,mBAAC;IAAD,CAAC,AAtCD,IAsCC;IAtCY,kBAAY,eAsCxB,CAAA;AACF,CAAC,EAlUM,KAAK,KAAL,KAAK,QAkUX;AClUD,IAAO,KAAK,CAuFX;AAvFD,WAAO,KAAK;IACX;QAGC,oBAAa,IAAY;YACxB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,iBAAC;IAAD,CAAC,AAPD,IAOC;IAPqB,gBAAU,aAO/B,CAAA;IAED;QAA+C,oCAAU;QAKxD,0BAAa,IAAY;YAAzB,YACC,kBAAM,IAAI,CAAC,SACX;YAJD,yBAAmB,GAAG,CAAC,CAAC;;QAIxB,CAAC;QAOD,+CAAoB,GAApB,UAAsB,IAAU,EAAE,KAAa,EAAE,KAAa,EAAE,aAAgC,EAAE,MAAc,EAAE,MAAc;YAC/H,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;YACvC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClC,IAAI,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC1C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;gBACnB,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;oBAAC,QAAQ,GAAG,WAAW,CAAC;gBACnD,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACrB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBACnD,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,KAAK,EAAE,GAAC,IAAI,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;oBAChE,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,GAAC,GAAG,CAAC,CAAC,CAAC;oBAC3C,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;oBACvC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC5C,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;YACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACX,IAAI,IAAI,CAAC,CAAC;YACX,CAAC;YACD,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;YACnC,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC7B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;oBAC3D,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;oBACnB,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;oBACnB,CAAC,IAAI,CAAC,CAAC;oBACP,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC3B,IAAI,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACrE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;wBACzD,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;oBAC1D,CAAC;oBACD,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACtB,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC3B,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,MAAM,GAAG,WAAW,CAAC;gBACzB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;oBAC1E,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;oBACnB,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;oBACnB,CAAC,IAAI,CAAC,CAAC;oBACP,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;wBACnC,IAAI,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACjG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;wBACzD,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;oBAC1D,CAAC;oBACD,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACtB,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC3B,CAAC;YACF,CAAC;QACF,CAAC;QAGD,sCAAW,GAAX,UAAa,gBAAkC;YAC9C,MAAM,CAAC,IAAI,IAAI,gBAAgB,CAAC;QACjC,CAAC;QACF,uBAAC;IAAD,CAAC,AA5ED,CAA+C,UAAU,GA4ExD;IA5EqB,sBAAgB,mBA4ErC,CAAA;AACF,CAAC,EAvFM,KAAK,KAAL,KAAK,QAuFX;AEvFD,IAAO,KAAK,CAIX;AAJD,WAAO,KAAK;IACX,IAAY,cAEX;IAFD,WAAY,cAAc;QACzB,uDAAM,CAAA;QAAE,iEAAW,CAAA;QAAE,mDAAI,CAAA;QAAE,+DAAU,CAAA;QAAE,mDAAI,CAAA;QAAE,qDAAK,CAAA;IACnD,CAAC,EAFW,cAAc,GAAd,oBAAc,KAAd,oBAAc,QAEzB;AACF,CAAC,EAJM,KAAK,KAAL,KAAK,QAIX;ACJD,IAAO,KAAK,CAQX;AARD,WAAO,KAAK;IACX;QAA2C,yCAAgB;QAG1D,+BAAa,IAAY;YAAzB,YACC,kBAAM,IAAI,CAAC,SACX;YAJD,WAAK,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;;QAI9B,CAAC;QACF,4BAAC;IAAD,CAAC,AAND,CAA2C,MAAA,gBAAgB,GAM1D;IANY,2BAAqB,wBAMjC,CAAA;AACF,CAAC,EARM,KAAK,KAAL,KAAK,QAQX;ACRD,IAAO,KAAK,CAWX;AAXD,WAAO,KAAK;IACX;QAAwC,sCAAgB;QAMvD,4BAAa,IAAY;YAAzB,YACC,kBAAM,IAAI,CAAC,SACX;YAJD,WAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;;QAInD,CAAC;QACF,yBAAC;IAAD,CAAC,AATD,CAAwC,MAAA,gBAAgB,GASvD;IATY,wBAAkB,qBAS9B,CAAA;AACF,CAAC,EAXM,KAAK,KAAL,KAAK,QAWX;ACXD,IAAO,KAAK,CAkEX;AAlED,WAAO,KAAK;IACX;QAAoC,kCAAgB;QAWnD,wBAAa,IAAY;YAAzB,YACC,kBAAM,IAAI,CAAC,SACX;YARD,WAAK,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAG9B,mBAAa,GAAG,KAAK,CAAC;YACtB,eAAS,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;;QAIlC,CAAC;QAED,kCAAS,GAAT;YACC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;YACxC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;gBACzB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACV,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;YACpB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClB,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC3B,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC;gBAAC,IAAI,CAAC,GAAG,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9G,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACnB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;oBACtC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;gBACjD,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBAClC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;gBAC5C,CAAC;YACF,CAAC;QACF,CAAC;QAED,oCAAW,GAAX,UAAa,gBAAkC;YAC9C,MAAM,CAAC,IAAI,IAAI,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,IAAI,gBAAgB,CAAC,CAAC;QAChG,CAAC;QAED,sCAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACxB,CAAC;QAGD,sCAAa,GAAb,UAAe,UAA0B;YACxC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;gBAC9B,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;gBACpC,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,CAAC;gBAC1D,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;gBACtC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;gBACtC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;gBACxC,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,CAAA;YAC1D,CAAC;QACF,CAAC;QACF,qBAAC;IAAD,CAAC,AA/DD,CAAoC,MAAA,gBAAgB,GA+DnD;IA/DY,oBAAc,iBA+D1B,CAAA;AAEF,CAAC,EAlEM,KAAK,KAAL,KAAK,QAkEX;AClED,IAAO,KAAK,CAUX;AAVD,WAAO,KAAK;IACX;QAAoC,kCAAgB;QAKnD,wBAAa,IAAY;YAAzB,YACC,kBAAM,IAAI,CAAC,SACX;YALD,YAAM,GAAG,KAAK,CAAC;YAAC,mBAAa,GAAG,KAAK,CAAC;YACtC,WAAK,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;;QAI9B,CAAC;QACF,qBAAC;IAAD,CAAC,AARD,CAAoC,MAAA,gBAAgB,GAQnD;IARY,oBAAc,iBAQ1B,CAAA;AACF,CAAC,EAVM,KAAK,KAAL,KAAK,QAUX;ACVD,IAAO,KAAK,CAsBX;AAtBD,WAAO,KAAK;IACX;QAAqC,mCAAgB;QAIpD,yBAAa,IAAY;YAAzB,YACC,kBAAM,IAAI,CAAC,SACX;YAJD,WAAK,GAAG,IAAI,MAAA,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;;QAIpC,CAAC;QAED,8CAAoB,GAApB,UAAsB,IAAU,EAAE,KAAc;YAC/C,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1D,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1D,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,8CAAoB,GAApB,UAAsB,IAAU;YAC/B,IAAI,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjF,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;QAC5C,CAAC;QACF,sBAAC;IAAD,CAAC,AApBD,CAAqC,MAAA,gBAAgB,GAoBpD;IApBY,qBAAe,kBAoB3B,CAAA;AACF,CAAC,EAtBM,KAAK,KAAL,KAAK,QAsBX;ACtBD,IAAO,KAAK,CAkJX;AAlJD,WAAO,KAAK;IACX;QAAsC,oCAAU;QA0D/C,0BAAa,IAAW;YAAxB,YACC,kBAAM,IAAI,CAAC,SACX;YAdD,OAAC,GAAG,CAAC,CAAC;YAAC,OAAC,GAAG,CAAC,CAAC;YAAC,YAAM,GAAG,CAAC,CAAC;YAAC,YAAM,GAAG,CAAC,CAAC;YAAC,cAAQ,GAAG,CAAC,CAAC;YAAC,WAAK,GAAG,CAAC,CAAC;YAAC,YAAM,GAAG,CAAC,CAAC;YAC1E,WAAK,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAM9B,YAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAChC,SAAG,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAE7B,eAAS,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;;QAIlC,CAAC;QAED,uCAAY,GAAZ;YACC,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;YACxE,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1E,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC;YAChF,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC;YACjF,IAAI,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC;YACxD,IAAI,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC;YACzD,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;YAC5C,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,SAAS,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACtC,IAAI,SAAS,GAAG,MAAM,GAAG,GAAG,CAAC;YAC7B,IAAI,SAAS,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACtC,IAAI,SAAS,GAAG,MAAM,GAAG,GAAG,CAAC;YAC7B,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACxC,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC;YAC/B,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACxC,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC;YAC/B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC;YACrD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC;YACrD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC;YACtD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC;YACtD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC;YACvD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC;YACvD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC;YACtD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC;QACvD,CAAC;QAED,oCAAS,GAAT,UAAW,MAAqB;YAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACnB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;YACpB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;YACpB,CAAC;QACF,CAAC;QAED,+CAAoB,GAApB,UAAsB,IAAU,EAAE,aAAgC,EAAE,MAAc,EAAE,MAAc;YACjG,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACrC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;YAE7B,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YACtD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1D,MAAM,IAAI,MAAM,CAAC;YAEjB,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YACtD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1D,MAAM,IAAI,MAAM,CAAC;YAEjB,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YACtD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1D,MAAM,IAAI,MAAM,CAAC;YAEjB,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YACtD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3D,CAAC;QACF,uBAAC;IAAD,CAAC,AAhJD,CAAsC,MAAA,UAAU;IACxC,oBAAG,GAAG,CAAC,CAAC;IACR,oBAAG,GAAG,CAAC,CAAC;IACR,oBAAG,GAAG,CAAC,CAAC;IACR,oBAAG,GAAG,CAAC,CAAC;IACR,oBAAG,GAAG,CAAC,CAAC;IACR,oBAAG,GAAG,CAAC,CAAC;IACR,oBAAG,GAAG,CAAC,CAAC;IACR,oBAAG,GAAG,CAAC,CAAC;IAER,mBAAE,GAAG,CAAC,CAAC;IACP,mBAAE,GAAG,CAAC,CAAC;IACP,oBAAG,GAAG,CAAC,CAAC;IACR,oBAAG,GAAG,CAAC,CAAC;IACR,oBAAG,GAAG,CAAC,CAAC;IACR,oBAAG,GAAG,CAAC,CAAC;IACR,mBAAE,GAAG,CAAC,CAAC;IACP,mBAAE,GAAG,CAAC,CAAC;IAEP,mBAAE,GAAG,CAAC,CAAC;IACP,mBAAE,GAAG,CAAC,CAAC;IACP,oBAAG,GAAG,EAAE,CAAC;IACT,oBAAG,GAAG,EAAE,CAAC;IACT,oBAAG,GAAG,EAAE,CAAC;IACT,oBAAG,GAAG,EAAE,CAAC;IACT,mBAAE,GAAG,EAAE,CAAC;IACR,mBAAE,GAAG,EAAE,CAAC;IAER,mBAAE,GAAG,EAAE,CAAC;IACR,mBAAE,GAAG,EAAE,CAAC;IACR,oBAAG,GAAG,EAAE,CAAC;IACT,oBAAG,GAAG,EAAE,CAAC;IACT,oBAAG,GAAG,EAAE,CAAC;IACT,oBAAG,GAAG,EAAE,CAAC;IACT,mBAAE,GAAG,EAAE,CAAC;IACR,mBAAE,GAAG,EAAE,CAAC;IAER,mBAAE,GAAG,EAAE,CAAC;IACR,mBAAE,GAAG,EAAE,CAAC;IACR,oBAAG,GAAG,EAAE,CAAC;IACT,oBAAG,GAAG,EAAE,CAAC;IACT,oBAAG,GAAG,EAAE,CAAC;IACT,oBAAG,GAAG,EAAE,CAAC;IACT,mBAAE,GAAG,EAAE,CAAC;IACR,mBAAE,GAAG,EAAE,CAAC;IA5CH,sBAAgB,mBAgJ5B,CAAA;AACF,CAAC,EAlJM,KAAK,KAAL,KAAK,QAkJX;AClJD,IAAO,KAAK,CAQX;AARD,WAAO,KAAK;IAAC,IAAA,OAAO,CAQnB;IARY,WAAA,OAAO;QACnB;YAAkC,gCAAkB;YACnD,sBAAa,UAAuB;gBAAvB,2BAAA,EAAA,eAAuB;uBACnC,kBAAM,UAAC,KAAuB;oBAC7B,MAAM,CAAC,IAAI,QAAA,cAAc,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC,EAAE,UAAU,CAAC;YACf,CAAC;YACF,mBAAC;QAAD,CAAC,AAND,CAAkC,KAAK,CAAC,YAAY,GAMnD;QANY,oBAAY,eAMxB,CAAA;IACF,CAAC,EARY,OAAO,GAAP,aAAO,KAAP,aAAO,QAQnB;AAAD,CAAC,EARM,KAAK,KAAL,KAAK,QAQX;ACRD,IAAO,KAAK,CAuEX;AAvED,WAAO,KAAK;IAAC,IAAA,OAAO,CAuEnB;IAvEY,WAAA,OAAO;QACnB;YAUC,qBAAa,IAAgB,EAAE,WAA2B;gBAA3B,4BAAA,EAAA,mBAA2B;gBAJlD,mBAAc,GAAG,CAAC,CAAC;gBAEnB,kBAAa,GAAG,CAAC,CAAC;gBAGzB,EAAE,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,WAAW,CAAC,CAAC;gBAE3G,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;gBACvF,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;gBAC9D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACjB,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACrC,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;gBACtG,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC5B,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,KAAK,CAAC,0BAA0B,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC9F,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,0BAA0B,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC3F,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,0BAA0B,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBACxF,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpD,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC9B,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;gBACxB,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACrB,CAAC;YAED,2BAAK,GAAL;gBACC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YACxB,CAAC;YAED,2BAAK,GAAL,UAAO,QAA2B,EAAE,cAAsB,EAAE,OAA0B,EAAE,aAAqB,EAAE,CAAa;gBAAb,kBAAA,EAAA,KAAa;gBAC3H,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,WAAW,CAAC;gBAC/D,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACjC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;gBAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,GAAG,CAAC,CAAC,EAAC,CAAC,GAAG,cAAc,GAAG,CAAC;oBAC3B,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACtB,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnC,CAAC;gBACD,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBAExB,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;gBAChC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;oBAC9D,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;gBAC3C,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC;YACrC,CAAC;YAED,yBAAG,GAAH;gBACC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;gBACrC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;gBACzC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;gBAC1D,IAAI,GAAG,GAA0B,IAAI,CAAC,IAAI,CAAC,QAAS,CAAC;gBACrD,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC;gBAClC,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;gBACtC,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;gBACtD,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;gBACxB,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;YAC1C,CAAC;YACF,kBAAC;QAAD,CAAC,AArED;QAGgB,uBAAW,GAAG,CAAC,CAAC;QAHnB,mBAAW,cAqEvB,CAAA;IACF,CAAC,EAvEY,OAAO,GAAP,aAAO,KAAP,aAAO,QAuEnB;AAAD,CAAC,EAvEM,KAAK,KAAL,KAAK,QAuEX;ACvED,IAAO,KAAK,CA2IX;AA3ID,WAAO,KAAK;IAAC,IAAA,OAAO,CA2InB;IA3IY,WAAA,OAAO;QACnB;YAAkC,gCAAU;YAe3C,sBAAa,YAA0B;gBAAvC,YACC,iBAAO,SAWP;gBAvBD,aAAO,GAAW,GAAG,CAAC;gBAGd,aAAO,GAAqB,IAAI,MAAA,gBAAgB,EAAE,CAAC;gBAKnD,cAAQ,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACrC,eAAS,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;gBAK/B,KAAI,CAAC,QAAQ,GAAG,IAAI,MAAA,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC3C,IAAI,QAAQ,GAAG,IAAI,MAAA,kBAAkB,CAAC,YAAY,CAAC,CAAC;gBACpD,KAAI,CAAC,KAAK,GAAG,IAAI,MAAA,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAE1C,IAAI,QAAQ,GAAG,KAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC7D,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;gBACjC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC5B,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC;gBACzB,KAAI,CAAC,OAAO,GAAG,IAAI,QAAA,WAAW,CAAC,KAAI,CAAC,CAAC;;YACtC,CAAC;YAED,6BAAM,GAAN,UAAO,SAAiB;gBACvB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAE7B,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACxB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACtB,QAAQ,CAAC,oBAAoB,EAAE,CAAC;gBAEhC,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,CAAC;YAEO,qCAAc,GAAtB;gBACC,IAAI,QAAQ,GAAyB,IAAI,CAAC,QAAQ,CAAC;gBACnD,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,IAAI,cAAc,GAAG,CAAC,CAAC;gBACvB,IAAI,aAAa,GAAG,CAAC,CAAC;gBAEtB,IAAI,SAAS,GAAc,IAAI,CAAC;gBAChC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAE3B,IAAI,QAAQ,GAAsB,IAAI,CAAC,QAAQ,CAAC;gBAChD,IAAI,SAAS,GAAkB,IAAI,CAAC;gBACpC,IAAI,GAAG,GAAsB,IAAI,CAAC;gBAClC,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACxC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC3B,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClD,IAAI,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC;oBACrE,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBACxB,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACtC,IAAI,eAAe,GAAU,IAAI,CAAC;oBAClC,IAAI,OAAO,GAAmB,IAAI,CAAC;oBACnC,IAAI,SAAS,GAAG,CAAC,CAAC;oBAClB,EAAE,CAAC,CAAC,UAAU,YAAY,MAAA,gBAAgB,CAAC,CAAC,CAAC;wBAC5C,IAAI,MAAM,GAAqB,UAAU,CAAC;wBAC1C,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC;wBAC/B,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACzB,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC;wBAC3B,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;wBAChE,SAAS,GAAG,YAAY,CAAC,cAAc,CAAC;wBACxC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;wBACjB,OAAO,GAAwC,MAAM,CAAC,MAAM,CAAC,YAAa,CAAC,OAAO,CAAC;oBACpF,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,YAAY,MAAA,cAAc,CAAC,CAAC,CAAC;wBACjD,IAAI,IAAI,GAAmB,UAAU,CAAC;wBACtC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;wBAC7B,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACzB,SAAS,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC;wBACzD,EAAE,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;4BACjC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;wBACjE,CAAC;wBACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;wBACtF,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC3B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;wBACf,OAAO,GAAwC,IAAI,CAAC,MAAM,CAAC,YAAa,CAAC,OAAO,CAAC;oBAClF,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,YAAY,MAAA,kBAAkB,CAAC,CAAC,CAAC;wBACrD,IAAI,IAAI,GAAuB,CAAC,UAAU,CAAC,CAAC;wBAC5C,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC9B,QAAQ,CAAC;oBACV,CAAC;oBAAC,IAAI;wBAAC,QAAQ,CAAC;oBAEhB,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;wBACrB,EAAE,CAAC,CAAC,CAA2B,IAAI,CAAC,QAAS,CAAC,GAAG,CAAC,CAAC,CAAC;4BACnD,IAAI,GAAG,GAA4B,IAAI,CAAC,QAAQ,CAAC;4BACjD,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;4BAC1B,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxB,CAAC;wBAED,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAClC,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;wBACnC,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;wBAC3B,IAAI,KAAK,GAAG,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;wBAC9D,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC3B,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EACzD,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EACjD,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EACjD,KAAK,CAAC,CAAC;wBAQT,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;4BAC1B,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;4BACjG,IAAI,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;4BAC9C,IAAI,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;4BAChD,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,eAAe,CAAC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBACtG,CAAC;wBAAC,IAAI,CAAC,CAAC;4BACP,IAAI,KAAK,GAAG,QAAQ,CAAC;4BACrB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAC,GAAG,SAAS,EAAE,CAAC,GAAG,GAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gCACtE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gCACnB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gCACvB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gCACvB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gCACvB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gCACtB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;4BAC3B,CAAC;4BACD,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBACpE,CAAC;wBACD,CAAC,IAAI,OAAO,CAAC;oBACd,CAAC;gBACF,CAAC;gBAED,OAAO,CAAC,GAAG,EAAE,CAAC;YACf,CAAC;YACF,mBAAC;QAAD,CAAC,AAzID,CAAkC,KAAK,CAAC,IAAI;QASpC,2BAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,wBAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAVnB,oBAAY,eAyIxB,CAAA;IACF,CAAC,EA3IY,OAAO,GAAP,aAAO,KAAP,aAAO,QA2InB;AAAD,CAAC,EA3IM,KAAK,KAAL,KAAK,QA2IX;AC3ID,IAAO,KAAK,CA0CX;AA1CD,WAAO,KAAK;IAAC,IAAA,OAAO,CA0CnB;IA1CY,WAAA,OAAO;QACnB;YAAoC,kCAAO;YAG1C,wBAAa,KAAuB;gBAApC,YACC,kBAAM,KAAK,CAAC,SAIZ;gBAHA,KAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACxC,KAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;gBAC3B,KAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;;YACjC,CAAC;YAED,mCAAU,GAAV,UAAY,SAAwB,EAAE,SAAwB;gBAC7D,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBAC1E,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAC3E,CAAC;YAED,iCAAQ,GAAR,UAAU,KAAkB,EAAE,KAAkB;gBAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBAChE,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACjE,CAAC;YAED,gCAAO,GAAP;gBACC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC;YAEM,qCAAsB,GAA7B,UAA8B,MAAqB;gBAClD,EAAE,CAAC,CAAC,MAAM,KAAK,MAAA,aAAa,CAAC,MAAM,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC/D,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,MAAA,aAAa,CAAC,MAAM,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC;gBAChF,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,MAAA,aAAa,CAAC,mBAAmB,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC;gBAC9F,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,MAAA,aAAa,CAAC,mBAAmB,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC;gBAC9F,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,MAAA,aAAa,CAAC,oBAAoB,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC;gBAChG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,MAAA,aAAa,CAAC,OAAO,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;gBACtE,IAAI;oBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,MAAM,CAAC,CAAC;YAC3D,CAAC;YAEM,mCAAoB,GAA3B,UAA4B,IAAiB;gBAC5C,EAAE,CAAC,CAAC,IAAI,KAAK,MAAA,WAAW,CAAC,WAAW,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC;gBACvE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,MAAA,WAAW,CAAC,cAAc,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC;gBAClF,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,MAAA,WAAW,CAAC,MAAM,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;gBAClE,IAAI;oBAAC,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC;YACvD,CAAC;YACF,qBAAC;QAAD,CAAC,AAxCD,CAAoC,MAAA,OAAO,GAwC1C;QAxCY,sBAAc,iBAwC1B,CAAA;IACF,CAAC,EA1CY,OAAO,GAAP,aAAO,KAAP,aAAO,QA0CnB;AAAD,CAAC,EA1CM,KAAK,KAAL,KAAK,QA0CX"} \ No newline at end of file +{"version":3,"file":"spine-threejs.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../threejs/src/AssetManager.ts","../threejs/src/MeshBatcher.ts","../threejs/src/SkeletonMesh.ts","../threejs/src/ThreeJsTexture.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/spine-ts/build/spine-webgl.d.ts b/spine-ts/build/spine-webgl.d.ts index 220c65e35..d0a848017 100644 --- a/spine-ts/build/spine-webgl.d.ts +++ b/spine-ts/build/spine-webgl.d.ts @@ -1,1585 +1,1585 @@ declare module spine { - class Animation { - name: string; - timelines: Array; - duration: number; - constructor(name: string, timelines: Array, duration: number); - apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - static binarySearch(values: ArrayLike, target: number, step?: number): number; - static linearSearch(values: ArrayLike, target: number, step: number): number; - } - interface Timeline { - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - getPropertyId(): number; - } - enum TimelineType { - rotate = 0, - translate = 1, - scale = 2, - shear = 3, - attachment = 4, - color = 5, - deform = 6, - event = 7, - drawOrder = 8, - ikConstraint = 9, - transformConstraint = 10, - pathConstraintPosition = 11, - pathConstraintSpacing = 12, - pathConstraintMix = 13, - twoColor = 14, - } - abstract class CurveTimeline implements Timeline { - static LINEAR: number; - static STEPPED: number; - static BEZIER: number; - static BEZIER_SIZE: number; - private curves; - abstract getPropertyId(): number; - constructor(frameCount: number); - getFrameCount(): number; - setLinear(frameIndex: number): void; - setStepped(frameIndex: number): void; - getCurveType(frameIndex: number): number; - setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; - getCurvePercent(frameIndex: number, percent: number): number; - abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class RotateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATION: number; - static ROTATION: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, degrees: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TranslateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_X: number; - static PREV_Y: number; - static X: number; - static Y: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, x: number, y: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ScaleTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ShearTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static R: number; - static G: number; - static B: number; - static A: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TwoColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static PREV_R2: number; - static PREV_G2: number; - static PREV_B2: number; - static R: number; - static G: number; - static B: number; - static A: number; - static R2: number; - static G2: number; - static B2: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class AttachmentTimeline implements Timeline { - slotIndex: number; - frames: ArrayLike; - attachmentNames: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, attachmentName: string): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DeformTimeline extends CurveTimeline { - slotIndex: number; - attachment: VertexAttachment; - frames: ArrayLike; - frameVertices: Array>; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class EventTimeline implements Timeline { - frames: ArrayLike; - events: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, event: Event): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DrawOrderTimeline implements Timeline { - frames: ArrayLike; - drawOrders: Array>; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, drawOrder: Array): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class IkConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_MIX: number; - static PREV_BEND_DIRECTION: number; - static MIX: number; - static BEND_DIRECTION: number; - ikConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TransformConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static PREV_SCALE: number; - static PREV_SHEAR: number; - static ROTATE: number; - static TRANSLATE: number; - static SCALE: number; - static SHEAR: number; - transformConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintPositionTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_VALUE: number; - static VALUE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, value: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintMixTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static ROTATE: number; - static TRANSLATE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } + class Animation { + name: string; + timelines: Array; + duration: number; + constructor(name: string, timelines: Array, duration: number); + apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + static binarySearch(values: ArrayLike, target: number, step?: number): number; + static linearSearch(values: ArrayLike, target: number, step: number): number; + } + interface Timeline { + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + getPropertyId(): number; + } + enum TimelineType { + rotate = 0, + translate = 1, + scale = 2, + shear = 3, + attachment = 4, + color = 5, + deform = 6, + event = 7, + drawOrder = 8, + ikConstraint = 9, + transformConstraint = 10, + pathConstraintPosition = 11, + pathConstraintSpacing = 12, + pathConstraintMix = 13, + twoColor = 14, + } + abstract class CurveTimeline implements Timeline { + static LINEAR: number; + static STEPPED: number; + static BEZIER: number; + static BEZIER_SIZE: number; + private curves; + abstract getPropertyId(): number; + constructor(frameCount: number); + getFrameCount(): number; + setLinear(frameIndex: number): void; + setStepped(frameIndex: number): void; + getCurveType(frameIndex: number): number; + setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; + getCurvePercent(frameIndex: number, percent: number): number; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class RotateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATION: number; + static ROTATION: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, degrees: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TranslateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_X: number; + static PREV_Y: number; + static X: number; + static Y: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, x: number, y: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ScaleTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ShearTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static R: number; + static G: number; + static B: number; + static A: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TwoColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static PREV_R2: number; + static PREV_G2: number; + static PREV_B2: number; + static R: number; + static G: number; + static B: number; + static A: number; + static R2: number; + static G2: number; + static B2: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class AttachmentTimeline implements Timeline { + slotIndex: number; + frames: ArrayLike; + attachmentNames: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, attachmentName: string): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DeformTimeline extends CurveTimeline { + slotIndex: number; + attachment: VertexAttachment; + frames: ArrayLike; + frameVertices: Array>; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class EventTimeline implements Timeline { + frames: ArrayLike; + events: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, event: Event): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DrawOrderTimeline implements Timeline { + frames: ArrayLike; + drawOrders: Array>; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, drawOrder: Array): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class IkConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_MIX: number; + static PREV_BEND_DIRECTION: number; + static MIX: number; + static BEND_DIRECTION: number; + ikConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TransformConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static PREV_SCALE: number; + static PREV_SHEAR: number; + static ROTATE: number; + static TRANSLATE: number; + static SCALE: number; + static SHEAR: number; + transformConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintPositionTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_VALUE: number; + static VALUE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, value: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintMixTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static ROTATE: number; + static TRANSLATE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } } declare module spine { - class AnimationState { - static emptyAnimation: Animation; - static SUBSEQUENT: number; - static FIRST: number; - static DIP: number; - static DIP_MIX: number; - data: AnimationStateData; - tracks: TrackEntry[]; - events: Event[]; - listeners: AnimationStateListener2[]; - queue: EventQueue; - propertyIDs: IntSet; - mixingTo: TrackEntry[]; - animationsChanged: boolean; - timeScale: number; - trackEntryPool: Pool; - constructor(data: AnimationStateData); - update(delta: number): void; - updateMixingFrom(to: TrackEntry, delta: number): boolean; - apply(skeleton: Skeleton): void; - applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; - applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; - queueEvents(entry: TrackEntry, animationTime: number): void; - clearTracks(): void; - clearTrack(trackIndex: number): void; - setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; - setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; - setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; - addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; - addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; - setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; - addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; - setEmptyAnimations(mixDuration: number): void; - expandToIndex(index: number): TrackEntry; - trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; - disposeNext(entry: TrackEntry): void; - _animationsChanged(): void; - getCurrent(trackIndex: number): TrackEntry; - addListener(listener: AnimationStateListener2): void; - removeListener(listener: AnimationStateListener2): void; - clearListeners(): void; - clearListenerNotifications(): void; - } - class TrackEntry { - animation: Animation; - next: TrackEntry; - mixingFrom: TrackEntry; - listener: AnimationStateListener2; - trackIndex: number; - loop: boolean; - eventThreshold: number; - attachmentThreshold: number; - drawOrderThreshold: number; - animationStart: number; - animationEnd: number; - animationLast: number; - nextAnimationLast: number; - delay: number; - trackTime: number; - trackLast: number; - nextTrackLast: number; - trackEnd: number; - timeScale: number; - alpha: number; - mixTime: number; - mixDuration: number; - interruptAlpha: number; - totalAlpha: number; - timelineData: number[]; - timelineDipMix: TrackEntry[]; - timelinesRotation: number[]; - reset(): void; - setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; - hasTimeline(id: number): boolean; - getAnimationTime(): number; - setAnimationLast(animationLast: number): void; - isComplete(): boolean; - resetRotationDirections(): void; - } - class EventQueue { - objects: Array; - drainDisabled: boolean; - animState: AnimationState; - constructor(animState: AnimationState); - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - drain(): void; - clear(): void; - } - enum EventType { - start = 0, - interrupt = 1, - end = 2, - dispose = 3, - complete = 4, - event = 5, - } - interface AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } - abstract class AnimationStateAdapter2 implements AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } + class AnimationState { + static emptyAnimation: Animation; + static SUBSEQUENT: number; + static FIRST: number; + static DIP: number; + static DIP_MIX: number; + data: AnimationStateData; + tracks: TrackEntry[]; + events: Event[]; + listeners: AnimationStateListener2[]; + queue: EventQueue; + propertyIDs: IntSet; + mixingTo: TrackEntry[]; + animationsChanged: boolean; + timeScale: number; + trackEntryPool: Pool; + constructor(data: AnimationStateData); + update(delta: number): void; + updateMixingFrom(to: TrackEntry, delta: number): boolean; + apply(skeleton: Skeleton): boolean; + applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; + applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; + queueEvents(entry: TrackEntry, animationTime: number): void; + clearTracks(): void; + clearTrack(trackIndex: number): void; + setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; + setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; + setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; + addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; + addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; + setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; + addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; + setEmptyAnimations(mixDuration: number): void; + expandToIndex(index: number): TrackEntry; + trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; + disposeNext(entry: TrackEntry): void; + _animationsChanged(): void; + getCurrent(trackIndex: number): TrackEntry; + addListener(listener: AnimationStateListener2): void; + removeListener(listener: AnimationStateListener2): void; + clearListeners(): void; + clearListenerNotifications(): void; + } + class TrackEntry { + animation: Animation; + next: TrackEntry; + mixingFrom: TrackEntry; + listener: AnimationStateListener2; + trackIndex: number; + loop: boolean; + eventThreshold: number; + attachmentThreshold: number; + drawOrderThreshold: number; + animationStart: number; + animationEnd: number; + animationLast: number; + nextAnimationLast: number; + delay: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; + timeScale: number; + alpha: number; + mixTime: number; + mixDuration: number; + interruptAlpha: number; + totalAlpha: number; + timelineData: number[]; + timelineDipMix: TrackEntry[]; + timelinesRotation: number[]; + reset(): void; + setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; + hasTimeline(id: number): boolean; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; + isComplete(): boolean; + resetRotationDirections(): void; + } + class EventQueue { + objects: Array; + drainDisabled: boolean; + animState: AnimationState; + constructor(animState: AnimationState); + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + drain(): void; + clear(): void; + } + enum EventType { + start = 0, + interrupt = 1, + end = 2, + dispose = 3, + complete = 4, + event = 5, + } + interface AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } + abstract class AnimationStateAdapter2 implements AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } } declare module spine { - class AnimationStateData { - skeletonData: SkeletonData; - animationToMixTime: Map; - defaultMix: number; - constructor(skeletonData: SkeletonData); - setMix(fromName: string, toName: string, duration: number): void; - setMixWith(from: Animation, to: Animation, duration: number): void; - getMix(from: Animation, to: Animation): number; - } + class AnimationStateData { + skeletonData: SkeletonData; + animationToMixTime: Map; + defaultMix: number; + constructor(skeletonData: SkeletonData); + setMix(fromName: string, toName: string, duration: number): void; + setMixWith(from: Animation, to: Animation, duration: number): void; + getMix(from: Animation, to: Animation): number; + } } declare module spine { - class AssetManager implements Disposable { - private pathPrefix; - private textureLoader; - private assets; - private errors; - private toLoad; - private loaded; - constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); - loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; - loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - get(path: string): any; - remove(path: string): void; - removeAll(): void; - isLoadingComplete(): boolean; - getToLoad(): number; - getLoaded(): number; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class AssetManager implements Disposable { + private pathPrefix; + private textureLoader; + private assets; + private errors; + private toLoad; + private loaded; + constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); + loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; + loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + get(path: string): any; + remove(path: string): void; + removeAll(): void; + isLoadingComplete(): boolean; + getToLoad(): number; + getLoaded(): number; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class AtlasAttachmentLoader implements AttachmentLoader { - atlas: TextureAtlas; - constructor(atlas: TextureAtlas); - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + class AtlasAttachmentLoader implements AttachmentLoader { + atlas: TextureAtlas; + constructor(atlas: TextureAtlas); + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - enum BlendMode { - Normal = 0, - Additive = 1, - Multiply = 2, - Screen = 3, - } + abstract class Attachment { + name: string; + constructor(name: string); + } + abstract class VertexAttachment extends Attachment { + bones: Array; + vertices: ArrayLike; + worldVerticesLength: number; + constructor(name: string); + computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + } } declare module spine { - class Bone implements Updatable { - data: BoneData; - skeleton: Skeleton; - parent: Bone; - children: Bone[]; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - ax: number; - ay: number; - arotation: number; - ascaleX: number; - ascaleY: number; - ashearX: number; - ashearY: number; - appliedValid: boolean; - a: number; - b: number; - worldX: number; - c: number; - d: number; - worldY: number; - sorted: boolean; - constructor(data: BoneData, skeleton: Skeleton, parent: Bone); - update(): void; - updateWorldTransform(): void; - updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; - setToSetupPose(): void; - getWorldRotationX(): number; - getWorldRotationY(): number; - getWorldScaleX(): number; - getWorldScaleY(): number; - updateAppliedTransform(): void; - worldToLocal(world: Vector2): Vector2; - localToWorld(local: Vector2): Vector2; - worldToLocalRotation(worldRotation: number): number; - localToWorldRotation(localRotation: number): number; - rotateWorld(degrees: number): void; - } + interface AttachmentLoader { + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - class BoneData { - index: number; - name: string; - parent: BoneData; - length: number; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - transformMode: TransformMode; - constructor(index: number, name: string, parent: BoneData); - } - enum TransformMode { - Normal = 0, - OnlyTranslation = 1, - NoRotationOrReflection = 2, - NoScale = 3, - NoScaleOrReflection = 4, - } + enum AttachmentType { + Region = 0, + BoundingBox = 1, + Mesh = 2, + LinkedMesh = 3, + Path = 4, + Point = 5, + } } declare module spine { - interface Constraint extends Updatable { - getOrder(): number; - } + class BoundingBoxAttachment extends VertexAttachment { + color: Color; + constructor(name: string); + } } declare module spine { - class Event { - data: EventData; - intValue: number; - floatValue: number; - stringValue: string; - time: number; - constructor(time: number, data: EventData); - } + class ClippingAttachment extends VertexAttachment { + endSlot: SlotData; + color: Color; + constructor(name: string); + } } declare module spine { - class EventData { - name: string; - intValue: number; - floatValue: number; - stringValue: string; - constructor(name: string); - } + class MeshAttachment extends VertexAttachment { + region: TextureRegion; + path: string; + regionUVs: ArrayLike; + uvs: ArrayLike; + triangles: Array; + color: Color; + hullLength: number; + private parentMesh; + inheritDeform: boolean; + tempColor: Color; + constructor(name: string); + updateUVs(): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + getParentMesh(): MeshAttachment; + setParentMesh(parentMesh: MeshAttachment): void; + } } declare module spine { - class IkConstraint implements Constraint { - data: IkConstraintData; - bones: Array; - target: Bone; - mix: number; - bendDirection: number; - constructor(data: IkConstraintData, skeleton: Skeleton); - getOrder(): number; - apply(): void; - update(): void; - apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; - apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; - } + class PathAttachment extends VertexAttachment { + lengths: Array; + closed: boolean; + constantSpeed: boolean; + color: Color; + constructor(name: string); + } } declare module spine { - class IkConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - bendDirection: number; - mix: number; - constructor(name: string); - } + class PointAttachment extends VertexAttachment { + x: number; + y: number; + rotation: number; + color: Color; + constructor(name: string); + computeWorldPosition(bone: Bone, point: Vector2): Vector2; + computeWorldRotation(bone: Bone): number; + } } declare module spine { - class PathConstraint implements Constraint { - static NONE: number; - static BEFORE: number; - static AFTER: number; - data: PathConstraintData; - bones: Array; - target: Slot; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - spaces: number[]; - positions: number[]; - world: number[]; - curves: number[]; - lengths: number[]; - segments: number[]; - constructor(data: PathConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; - addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; - getOrder(): number; - } + class RegionAttachment extends Attachment { + static OX1: number; + static OY1: number; + static OX2: number; + static OY2: number; + static OX3: number; + static OY3: number; + static OX4: number; + static OY4: number; + static X1: number; + static Y1: number; + static C1R: number; + static C1G: number; + static C1B: number; + static C1A: number; + static U1: number; + static V1: number; + static X2: number; + static Y2: number; + static C2R: number; + static C2G: number; + static C2B: number; + static C2A: number; + static U2: number; + static V2: number; + static X3: number; + static Y3: number; + static C3R: number; + static C3G: number; + static C3B: number; + static C3A: number; + static U3: number; + static V3: number; + static X4: number; + static Y4: number; + static C4R: number; + static C4G: number; + static C4B: number; + static C4A: number; + static U4: number; + static V4: number; + x: number; + y: number; + scaleX: number; + scaleY: number; + rotation: number; + width: number; + height: number; + color: Color; + path: string; + rendererObject: any; + region: TextureRegion; + offset: ArrayLike; + uvs: ArrayLike; + tempColor: Color; + constructor(name: string); + updateOffset(): void; + setRegion(region: TextureRegion): void; + computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; + } } declare module spine { - class PathConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: SlotData; - positionMode: PositionMode; - spacingMode: SpacingMode; - rotateMode: RotateMode; - offsetRotation: number; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - constructor(name: string); - } - enum PositionMode { - Fixed = 0, - Percent = 1, - } - enum SpacingMode { - Length = 0, - Fixed = 1, - Percent = 2, - } - enum RotateMode { - Tangent = 0, - Chain = 1, - ChainScale = 2, - } + enum BlendMode { + Normal = 0, + Additive = 1, + Multiply = 2, + Screen = 3, + } } declare module spine { - class SharedAssetManager implements Disposable { - private pathPrefix; - private clientAssets; - private queuedAssets; - private rawAssets; - private errors; - constructor(pathPrefix?: string); - private queueAsset(clientId, textureLoader, path); - loadText(clientId: string, path: string): void; - loadJson(clientId: string, path: string): void; - loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; - get(clientId: string, path: string): any; - private updateClientAssets(clientAssets); - isLoadingComplete(clientId: string): boolean; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class Bone implements Updatable { + data: BoneData; + skeleton: Skeleton; + parent: Bone; + children: Bone[]; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + ax: number; + ay: number; + arotation: number; + ascaleX: number; + ascaleY: number; + ashearX: number; + ashearY: number; + appliedValid: boolean; + a: number; + b: number; + worldX: number; + c: number; + d: number; + worldY: number; + sorted: boolean; + constructor(data: BoneData, skeleton: Skeleton, parent: Bone); + update(): void; + updateWorldTransform(): void; + updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; + setToSetupPose(): void; + getWorldRotationX(): number; + getWorldRotationY(): number; + getWorldScaleX(): number; + getWorldScaleY(): number; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + worldToLocalRotation(worldRotation: number): number; + localToWorldRotation(localRotation: number): number; + rotateWorld(degrees: number): void; + } } declare module spine { - class Skeleton { - data: SkeletonData; - bones: Array; - slots: Array; - drawOrder: Array; - ikConstraints: Array; - transformConstraints: Array; - pathConstraints: Array; - _updateCache: Updatable[]; - updateCacheReset: Updatable[]; - skin: Skin; - color: Color; - time: number; - flipX: boolean; - flipY: boolean; - x: number; - y: number; - constructor(data: SkeletonData); - updateCache(): void; - sortIkConstraint(constraint: IkConstraint): void; - sortPathConstraint(constraint: PathConstraint): void; - sortTransformConstraint(constraint: TransformConstraint): void; - sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; - sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; - sortBone(bone: Bone): void; - sortReset(bones: Array): void; - updateWorldTransform(): void; - setToSetupPose(): void; - setBonesToSetupPose(): void; - setSlotsToSetupPose(): void; - getRootBone(): Bone; - findBone(boneName: string): Bone; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): Slot; - findSlotIndex(slotName: string): number; - setSkinByName(skinName: string): void; - setSkin(newSkin: Skin): void; - getAttachmentByName(slotName: string, attachmentName: string): Attachment; - getAttachment(slotIndex: number, attachmentName: string): Attachment; - setAttachment(slotName: string, attachmentName: string): void; - findIkConstraint(constraintName: string): IkConstraint; - findTransformConstraint(constraintName: string): TransformConstraint; - findPathConstraint(constraintName: string): PathConstraint; - getBounds(offset: Vector2, size: Vector2, temp: Array): void; - update(delta: number): void; - } + class BoneData { + index: number; + name: string; + parent: BoneData; + length: number; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + transformMode: TransformMode; + constructor(index: number, name: string, parent: BoneData); + } + enum TransformMode { + Normal = 0, + OnlyTranslation = 1, + NoRotationOrReflection = 2, + NoScale = 3, + NoScaleOrReflection = 4, + } } declare module spine { - class SkeletonBounds { - minX: number; - minY: number; - maxX: number; - maxY: number; - boundingBoxes: BoundingBoxAttachment[]; - polygons: ArrayLike[]; - private polygonPool; - update(skeleton: Skeleton, updateAabb: boolean): void; - aabbCompute(): void; - aabbContainsPoint(x: number, y: number): boolean; - aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; - aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; - containsPoint(x: number, y: number): BoundingBoxAttachment; - containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; - intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; - intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; - getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; - getWidth(): number; - getHeight(): number; - } + interface Constraint extends Updatable { + getOrder(): number; + } } declare module spine { - class SkeletonClipping { - private triangulator; - private clippingPolygon; - private clipOutput; - clippedVertices: number[]; - clippedTriangles: number[]; - private scratch; - private clipAttachment; - private clippingPolygons; - clipStart(slot: Slot, clip: ClippingAttachment): number; - clipEndWithSlot(slot: Slot): void; - clipEnd(): void; - isClipping(): boolean; - clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; - clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; - static makeClockwise(polygon: ArrayLike): void; - } + class Event { + data: EventData; + intValue: number; + floatValue: number; + stringValue: string; + time: number; + constructor(time: number, data: EventData); + } } declare module spine { - class SkeletonData { - name: string; - bones: BoneData[]; - slots: SlotData[]; - skins: Skin[]; - defaultSkin: Skin; - events: EventData[]; - animations: Animation[]; - ikConstraints: IkConstraintData[]; - transformConstraints: TransformConstraintData[]; - pathConstraints: PathConstraintData[]; - width: number; - height: number; - version: string; - hash: string; - fps: number; - imagesPath: string; - findBone(boneName: string): BoneData; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): SlotData; - findSlotIndex(slotName: string): number; - findSkin(skinName: string): Skin; - findEvent(eventDataName: string): EventData; - findAnimation(animationName: string): Animation; - findIkConstraint(constraintName: string): IkConstraintData; - findTransformConstraint(constraintName: string): TransformConstraintData; - findPathConstraint(constraintName: string): PathConstraintData; - findPathConstraintIndex(pathConstraintName: string): number; - } + class EventData { + name: string; + intValue: number; + floatValue: number; + stringValue: string; + constructor(name: string); + } } declare module spine { - class SkeletonJson { - attachmentLoader: AttachmentLoader; - scale: number; - private linkedMeshes; - constructor(attachmentLoader: AttachmentLoader); - readSkeletonData(json: string | any): SkeletonData; - readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; - readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; - readAnimation(map: any, name: string, skeletonData: SkeletonData): void; - readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; - getValue(map: any, prop: string, defaultValue: any): any; - static blendModeFromString(str: string): BlendMode; - static positionModeFromString(str: string): PositionMode; - static spacingModeFromString(str: string): SpacingMode; - static rotateModeFromString(str: string): RotateMode; - static transformModeFromString(str: string): TransformMode; - } + class IkConstraint implements Constraint { + data: IkConstraintData; + bones: Array; + target: Bone; + mix: number; + bendDirection: number; + constructor(data: IkConstraintData, skeleton: Skeleton); + getOrder(): number; + apply(): void; + update(): void; + apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; + apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; + } } declare module spine { - class Skin { - name: string; - attachments: Map[]; - constructor(name: string); - addAttachment(slotIndex: number, name: string, attachment: Attachment): void; - getAttachment(slotIndex: number, name: string): Attachment; - attachAll(skeleton: Skeleton, oldSkin: Skin): void; - } + class IkConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + bendDirection: number; + mix: number; + constructor(name: string); + } } declare module spine { - class Slot { - data: SlotData; - bone: Bone; - color: Color; - darkColor: Color; - private attachment; - private attachmentTime; - attachmentVertices: number[]; - constructor(data: SlotData, bone: Bone); - getAttachment(): Attachment; - setAttachment(attachment: Attachment): void; - setAttachmentTime(time: number): void; - getAttachmentTime(): number; - setToSetupPose(): void; - } + class PathConstraint implements Constraint { + static NONE: number; + static BEFORE: number; + static AFTER: number; + data: PathConstraintData; + bones: Array; + target: Slot; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + spaces: number[]; + positions: number[]; + world: number[]; + curves: number[]; + lengths: number[]; + segments: number[]; + constructor(data: PathConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; + addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; + getOrder(): number; + } } declare module spine { - class SlotData { - index: number; - name: string; - boneData: BoneData; - color: Color; - darkColor: Color; - attachmentName: string; - blendMode: BlendMode; - constructor(index: number, name: string, boneData: BoneData); - } + class PathConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: SlotData; + positionMode: PositionMode; + spacingMode: SpacingMode; + rotateMode: RotateMode; + offsetRotation: number; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + constructor(name: string); + } + enum PositionMode { + Fixed = 0, + Percent = 1, + } + enum SpacingMode { + Length = 0, + Fixed = 1, + Percent = 2, + } + enum RotateMode { + Tangent = 0, + Chain = 1, + ChainScale = 2, + } } declare module spine { - abstract class Texture { - protected _image: HTMLImageElement; - constructor(image: HTMLImageElement); - getImage(): HTMLImageElement; - abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - abstract dispose(): void; - static filterFromString(text: string): TextureFilter; - static wrapFromString(text: string): TextureWrap; - } - enum TextureFilter { - Nearest = 9728, - Linear = 9729, - MipMap = 9987, - MipMapNearestNearest = 9984, - MipMapLinearNearest = 9985, - MipMapNearestLinear = 9986, - MipMapLinearLinear = 9987, - } - enum TextureWrap { - MirroredRepeat = 33648, - ClampToEdge = 33071, - Repeat = 10497, - } - class TextureRegion { - renderObject: any; - u: number; - v: number; - u2: number; - v2: number; - width: number; - height: number; - rotate: boolean; - offsetX: number; - offsetY: number; - originalWidth: number; - originalHeight: number; - } + class SharedAssetManager implements Disposable { + private pathPrefix; + private clientAssets; + private queuedAssets; + private rawAssets; + private errors; + constructor(pathPrefix?: string); + private queueAsset(clientId, textureLoader, path); + loadText(clientId: string, path: string): void; + loadJson(clientId: string, path: string): void; + loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; + get(clientId: string, path: string): any; + private updateClientAssets(clientAssets); + isLoadingComplete(clientId: string): boolean; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class TextureAtlas implements Disposable { - pages: TextureAtlasPage[]; - regions: TextureAtlasRegion[]; - constructor(atlasText: string, textureLoader: (path: string) => any); - private load(atlasText, textureLoader); - findRegion(name: string): TextureAtlasRegion; - dispose(): void; - } - class TextureAtlasPage { - name: string; - minFilter: TextureFilter; - magFilter: TextureFilter; - uWrap: TextureWrap; - vWrap: TextureWrap; - texture: Texture; - width: number; - height: number; - } - class TextureAtlasRegion extends TextureRegion { - page: TextureAtlasPage; - name: string; - x: number; - y: number; - index: number; - rotate: boolean; - texture: Texture; - } + class Skeleton { + data: SkeletonData; + bones: Array; + slots: Array; + drawOrder: Array; + ikConstraints: Array; + transformConstraints: Array; + pathConstraints: Array; + _updateCache: Updatable[]; + updateCacheReset: Updatable[]; + skin: Skin; + color: Color; + time: number; + flipX: boolean; + flipY: boolean; + x: number; + y: number; + constructor(data: SkeletonData); + updateCache(): void; + sortIkConstraint(constraint: IkConstraint): void; + sortPathConstraint(constraint: PathConstraint): void; + sortTransformConstraint(constraint: TransformConstraint): void; + sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; + sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; + sortBone(bone: Bone): void; + sortReset(bones: Array): void; + updateWorldTransform(): void; + setToSetupPose(): void; + setBonesToSetupPose(): void; + setSlotsToSetupPose(): void; + getRootBone(): Bone; + findBone(boneName: string): Bone; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): Slot; + findSlotIndex(slotName: string): number; + setSkinByName(skinName: string): void; + setSkin(newSkin: Skin): void; + getAttachmentByName(slotName: string, attachmentName: string): Attachment; + getAttachment(slotIndex: number, attachmentName: string): Attachment; + setAttachment(slotName: string, attachmentName: string): void; + findIkConstraint(constraintName: string): IkConstraint; + findTransformConstraint(constraintName: string): TransformConstraint; + findPathConstraint(constraintName: string): PathConstraint; + getBounds(offset: Vector2, size: Vector2, temp: Array): void; + update(delta: number): void; + } } declare module spine { - class TransformConstraint implements Constraint { - data: TransformConstraintData; - bones: Array; - target: Bone; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - temp: Vector2; - constructor(data: TransformConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - applyAbsoluteWorld(): void; - applyRelativeWorld(): void; - applyAbsoluteLocal(): void; - applyRelativeLocal(): void; - getOrder(): number; - } + class SkeletonBounds { + minX: number; + minY: number; + maxX: number; + maxY: number; + boundingBoxes: BoundingBoxAttachment[]; + polygons: ArrayLike[]; + private polygonPool; + update(skeleton: Skeleton, updateAabb: boolean): void; + aabbCompute(): void; + aabbContainsPoint(x: number, y: number): boolean; + aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; + aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; + containsPoint(x: number, y: number): BoundingBoxAttachment; + containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; + intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; + intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; + getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; + getWidth(): number; + getHeight(): number; + } } declare module spine { - class TransformConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - offsetRotation: number; - offsetX: number; - offsetY: number; - offsetScaleX: number; - offsetScaleY: number; - offsetShearY: number; - relative: boolean; - local: boolean; - constructor(name: string); - } + class SkeletonClipping { + private triangulator; + private clippingPolygon; + private clipOutput; + clippedVertices: number[]; + clippedTriangles: number[]; + private scratch; + private clipAttachment; + private clippingPolygons; + clipStart(slot: Slot, clip: ClippingAttachment): number; + clipEndWithSlot(slot: Slot): void; + clipEnd(): void; + isClipping(): boolean; + clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; + clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; + static makeClockwise(polygon: ArrayLike): void; + } } declare module spine { - class Triangulator { - private convexPolygons; - private convexPolygonsIndices; - private indicesArray; - private isConcaveArray; - private triangles; - private polygonPool; - private polygonIndicesPool; - triangulate(verticesArray: ArrayLike): Array; - decompose(verticesArray: Array, triangles: Array): Array>; - private static isConcave(index, vertexCount, vertices, indices); - private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); - private static winding(p1x, p1y, p2x, p2y, p3x, p3y); - } + class SkeletonData { + name: string; + bones: BoneData[]; + slots: SlotData[]; + skins: Skin[]; + defaultSkin: Skin; + events: EventData[]; + animations: Animation[]; + ikConstraints: IkConstraintData[]; + transformConstraints: TransformConstraintData[]; + pathConstraints: PathConstraintData[]; + width: number; + height: number; + version: string; + hash: string; + fps: number; + imagesPath: string; + findBone(boneName: string): BoneData; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): SlotData; + findSlotIndex(slotName: string): number; + findSkin(skinName: string): Skin; + findEvent(eventDataName: string): EventData; + findAnimation(animationName: string): Animation; + findIkConstraint(constraintName: string): IkConstraintData; + findTransformConstraint(constraintName: string): TransformConstraintData; + findPathConstraint(constraintName: string): PathConstraintData; + findPathConstraintIndex(pathConstraintName: string): number; + } } declare module spine { - interface Updatable { - update(): void; - } + class SkeletonJson { + attachmentLoader: AttachmentLoader; + scale: number; + private linkedMeshes; + constructor(attachmentLoader: AttachmentLoader); + readSkeletonData(json: string | any): SkeletonData; + readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; + readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; + readAnimation(map: any, name: string, skeletonData: SkeletonData): void; + readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; + getValue(map: any, prop: string, defaultValue: any): any; + static blendModeFromString(str: string): BlendMode; + static positionModeFromString(str: string): PositionMode; + static spacingModeFromString(str: string): SpacingMode; + static rotateModeFromString(str: string): RotateMode; + static transformModeFromString(str: string): TransformMode; + } } declare module spine { - interface Map { - [key: string]: T; - } - class IntSet { - array: number[]; - add(value: number): boolean; - contains(value: number): boolean; - remove(value: number): void; - clear(): void; - } - interface Disposable { - dispose(): void; - } - interface Restorable { - restore(): void; - } - class Color { - r: number; - g: number; - b: number; - a: number; - static WHITE: Color; - static RED: Color; - static GREEN: Color; - static BLUE: Color; - static MAGENTA: Color; - constructor(r?: number, g?: number, b?: number, a?: number); - set(r: number, g: number, b: number, a: number): this; - setFromColor(c: Color): this; - setFromString(hex: string): this; - add(r: number, g: number, b: number, a: number): this; - clamp(): this; - } - class MathUtils { - static PI: number; - static PI2: number; - static radiansToDegrees: number; - static radDeg: number; - static degreesToRadians: number; - static degRad: number; - static clamp(value: number, min: number, max: number): number; - static cosDeg(degrees: number): number; - static sinDeg(degrees: number): number; - static signum(value: number): number; - static toInt(x: number): number; - static cbrt(x: number): number; - } - class Utils { - static SUPPORTS_TYPED_ARRAYS: boolean; - static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; - static setArraySize(array: Array, size: number, value?: any): Array; - static ensureArrayCapacity(array: Array, size: number, value?: any): Array; - static newArray(size: number, defaultValue: T): Array; - static newFloatArray(size: number): ArrayLike; - static newShortArray(size: number): ArrayLike; - static toFloatArray(array: Array): number[] | Float32Array; - } - class DebugUtils { - static logBones(skeleton: Skeleton): void; - } - class Pool { - private items; - private instantiator; - constructor(instantiator: () => T); - obtain(): T; - free(item: T): void; - freeAll(items: ArrayLike): void; - clear(): void; - } - class Vector2 { - x: number; - y: number; - constructor(x?: number, y?: number); - set(x: number, y: number): Vector2; - length(): number; - normalize(): this; - } - class TimeKeeper { - maxDelta: number; - framesPerSecond: number; - delta: number; - totalTime: number; - private lastTime; - private frameCount; - private frameTime; - update(): void; - } - interface ArrayLike { - length: number; - [n: number]: T; - } - class WindowedMean { - values: Array; - addedValues: number; - lastValue: number; - mean: number; - dirty: boolean; - constructor(windowSize?: number); - hasEnoughData(): boolean; - addValue(value: number): void; - getMean(): number; - } + class Skin { + name: string; + attachments: Map[]; + constructor(name: string); + addAttachment(slotIndex: number, name: string, attachment: Attachment): void; + getAttachment(slotIndex: number, name: string): Attachment; + attachAll(skeleton: Skeleton, oldSkin: Skin): void; + } } declare module spine { - abstract class Attachment { - name: string; - constructor(name: string); - } - abstract class VertexAttachment extends Attachment { - bones: Array; - vertices: ArrayLike; - worldVerticesLength: number; - constructor(name: string); - computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - } + class Slot { + data: SlotData; + bone: Bone; + color: Color; + darkColor: Color; + private attachment; + private attachmentTime; + attachmentVertices: number[]; + constructor(data: SlotData, bone: Bone); + getAttachment(): Attachment; + setAttachment(attachment: Attachment): void; + setAttachmentTime(time: number): void; + getAttachmentTime(): number; + setToSetupPose(): void; + } } declare module spine { - interface AttachmentLoader { - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + class SlotData { + index: number; + name: string; + boneData: BoneData; + color: Color; + darkColor: Color; + attachmentName: string; + blendMode: BlendMode; + constructor(index: number, name: string, boneData: BoneData); + } } declare module spine { - enum AttachmentType { - Region = 0, - BoundingBox = 1, - Mesh = 2, - LinkedMesh = 3, - Path = 4, - Point = 5, - } + abstract class Texture { + protected _image: HTMLImageElement; + constructor(image: HTMLImageElement); + getImage(): HTMLImageElement; + abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + abstract dispose(): void; + static filterFromString(text: string): TextureFilter; + static wrapFromString(text: string): TextureWrap; + } + enum TextureFilter { + Nearest = 9728, + Linear = 9729, + MipMap = 9987, + MipMapNearestNearest = 9984, + MipMapLinearNearest = 9985, + MipMapNearestLinear = 9986, + MipMapLinearLinear = 9987, + } + enum TextureWrap { + MirroredRepeat = 33648, + ClampToEdge = 33071, + Repeat = 10497, + } + class TextureRegion { + renderObject: any; + u: number; + v: number; + u2: number; + v2: number; + width: number; + height: number; + rotate: boolean; + offsetX: number; + offsetY: number; + originalWidth: number; + originalHeight: number; + } } declare module spine { - class BoundingBoxAttachment extends VertexAttachment { - color: Color; - constructor(name: string); - } + class TextureAtlas implements Disposable { + pages: TextureAtlasPage[]; + regions: TextureAtlasRegion[]; + constructor(atlasText: string, textureLoader: (path: string) => any); + private load(atlasText, textureLoader); + findRegion(name: string): TextureAtlasRegion; + dispose(): void; + } + class TextureAtlasPage { + name: string; + minFilter: TextureFilter; + magFilter: TextureFilter; + uWrap: TextureWrap; + vWrap: TextureWrap; + texture: Texture; + width: number; + height: number; + } + class TextureAtlasRegion extends TextureRegion { + page: TextureAtlasPage; + name: string; + x: number; + y: number; + index: number; + rotate: boolean; + texture: Texture; + } } declare module spine { - class ClippingAttachment extends VertexAttachment { - endSlot: SlotData; - color: Color; - constructor(name: string); - } + class TransformConstraint implements Constraint { + data: TransformConstraintData; + bones: Array; + target: Bone; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + temp: Vector2; + constructor(data: TransformConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + applyAbsoluteWorld(): void; + applyRelativeWorld(): void; + applyAbsoluteLocal(): void; + applyRelativeLocal(): void; + getOrder(): number; + } } declare module spine { - class MeshAttachment extends VertexAttachment { - region: TextureRegion; - path: string; - regionUVs: ArrayLike; - uvs: ArrayLike; - triangles: Array; - color: Color; - hullLength: number; - private parentMesh; - inheritDeform: boolean; - tempColor: Color; - constructor(name: string); - updateUVs(): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - getParentMesh(): MeshAttachment; - setParentMesh(parentMesh: MeshAttachment): void; - } + class TransformConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + offsetRotation: number; + offsetX: number; + offsetY: number; + offsetScaleX: number; + offsetScaleY: number; + offsetShearY: number; + relative: boolean; + local: boolean; + constructor(name: string); + } } declare module spine { - class PathAttachment extends VertexAttachment { - lengths: Array; - closed: boolean; - constantSpeed: boolean; - color: Color; - constructor(name: string); - } + class Triangulator { + private convexPolygons; + private convexPolygonsIndices; + private indicesArray; + private isConcaveArray; + private triangles; + private polygonPool; + private polygonIndicesPool; + triangulate(verticesArray: ArrayLike): Array; + decompose(verticesArray: Array, triangles: Array): Array>; + private static isConcave(index, vertexCount, vertices, indices); + private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); + private static winding(p1x, p1y, p2x, p2y, p3x, p3y); + } } declare module spine { - class PointAttachment extends VertexAttachment { - x: number; - y: number; - rotation: number; - color: Color; - constructor(name: string); - computeWorldPosition(bone: Bone, point: Vector2): Vector2; - computeWorldRotation(bone: Bone): number; - } + interface Updatable { + update(): void; + } } declare module spine { - class RegionAttachment extends Attachment { - static OX1: number; - static OY1: number; - static OX2: number; - static OY2: number; - static OX3: number; - static OY3: number; - static OX4: number; - static OY4: number; - static X1: number; - static Y1: number; - static C1R: number; - static C1G: number; - static C1B: number; - static C1A: number; - static U1: number; - static V1: number; - static X2: number; - static Y2: number; - static C2R: number; - static C2G: number; - static C2B: number; - static C2A: number; - static U2: number; - static V2: number; - static X3: number; - static Y3: number; - static C3R: number; - static C3G: number; - static C3B: number; - static C3A: number; - static U3: number; - static V3: number; - static X4: number; - static Y4: number; - static C4R: number; - static C4G: number; - static C4B: number; - static C4A: number; - static U4: number; - static V4: number; - x: number; - y: number; - scaleX: number; - scaleY: number; - rotation: number; - width: number; - height: number; - color: Color; - path: string; - rendererObject: any; - region: TextureRegion; - offset: ArrayLike; - uvs: ArrayLike; - tempColor: Color; - constructor(name: string); - updateOffset(): void; - setRegion(region: TextureRegion): void; - computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; - } + interface Map { + [key: string]: T; + } + class IntSet { + array: number[]; + add(value: number): boolean; + contains(value: number): boolean; + remove(value: number): void; + clear(): void; + } + interface Disposable { + dispose(): void; + } + interface Restorable { + restore(): void; + } + class Color { + r: number; + g: number; + b: number; + a: number; + static WHITE: Color; + static RED: Color; + static GREEN: Color; + static BLUE: Color; + static MAGENTA: Color; + constructor(r?: number, g?: number, b?: number, a?: number); + set(r: number, g: number, b: number, a: number): this; + setFromColor(c: Color): this; + setFromString(hex: string): this; + add(r: number, g: number, b: number, a: number): this; + clamp(): this; + } + class MathUtils { + static PI: number; + static PI2: number; + static radiansToDegrees: number; + static radDeg: number; + static degreesToRadians: number; + static degRad: number; + static clamp(value: number, min: number, max: number): number; + static cosDeg(degrees: number): number; + static sinDeg(degrees: number): number; + static signum(value: number): number; + static toInt(x: number): number; + static cbrt(x: number): number; + } + class Utils { + static SUPPORTS_TYPED_ARRAYS: boolean; + static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; + static setArraySize(array: Array, size: number, value?: any): Array; + static ensureArrayCapacity(array: Array, size: number, value?: any): Array; + static newArray(size: number, defaultValue: T): Array; + static newFloatArray(size: number): ArrayLike; + static newShortArray(size: number): ArrayLike; + static toFloatArray(array: Array): number[] | Float32Array; + } + class DebugUtils { + static logBones(skeleton: Skeleton): void; + } + class Pool { + private items; + private instantiator; + constructor(instantiator: () => T); + obtain(): T; + free(item: T): void; + freeAll(items: ArrayLike): void; + clear(): void; + } + class Vector2 { + x: number; + y: number; + constructor(x?: number, y?: number); + set(x: number, y: number): Vector2; + length(): number; + normalize(): this; + } + class TimeKeeper { + maxDelta: number; + framesPerSecond: number; + delta: number; + totalTime: number; + private lastTime; + private frameCount; + private frameTime; + update(): void; + } + interface ArrayLike { + length: number; + [n: number]: T; + } + class WindowedMean { + values: Array; + addedValues: number; + lastValue: number; + mean: number; + dirty: boolean; + constructor(windowSize?: number); + hasEnoughData(): boolean; + addValue(value: number): void; + getMean(): number; + } } declare module spine.webgl { - class AssetManager extends spine.AssetManager { - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, pathPrefix?: string); - } + class AssetManager extends spine.AssetManager { + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, pathPrefix?: string); + } } declare module spine.webgl { - class OrthoCamera { - position: Vector3; - direction: Vector3; - up: Vector3; - near: number; - far: number; - zoom: number; - viewportWidth: number; - viewportHeight: number; - projectionView: Matrix4; - inverseProjectionView: Matrix4; - projection: Matrix4; - view: Matrix4; - private tmp; - constructor(viewportWidth: number, viewportHeight: number); - update(): void; - screenToWorld(screenCoords: Vector3, screenWidth: number, screenHeight: number): Vector3; - setViewport(viewportWidth: number, viewportHeight: number): void; - } + class OrthoCamera { + position: Vector3; + direction: Vector3; + up: Vector3; + near: number; + far: number; + zoom: number; + viewportWidth: number; + viewportHeight: number; + projectionView: Matrix4; + inverseProjectionView: Matrix4; + projection: Matrix4; + view: Matrix4; + private tmp; + constructor(viewportWidth: number, viewportHeight: number); + update(): void; + screenToWorld(screenCoords: Vector3, screenWidth: number, screenHeight: number): Vector3; + setViewport(viewportWidth: number, viewportHeight: number): void; + } } declare module spine.webgl { - class GLTexture extends Texture implements Disposable, Restorable { - private context; - private texture; - private boundUnit; - private useMipMaps; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, image: HTMLImageElement, useMipMaps?: boolean); - setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - update(useMipMaps: boolean): void; - restore(): void; - bind(unit?: number): void; - unbind(): void; - dispose(): void; - } + class GLTexture extends Texture implements Disposable, Restorable { + private context; + private texture; + private boundUnit; + private useMipMaps; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, image: HTMLImageElement, useMipMaps?: boolean); + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + update(useMipMaps: boolean): void; + restore(): void; + bind(unit?: number): void; + unbind(): void; + dispose(): void; + } } declare module spine.webgl { - class Input { - element: HTMLElement; - lastX: number; - lastY: number; - buttonDown: boolean; - currTouch: Touch; - touchesPool: Pool; - private listeners; - constructor(element: HTMLElement); - private setupCallbacks(element); - addListener(listener: InputListener): void; - removeListener(listener: InputListener): void; - } - class Touch { - identifier: number; - x: number; - y: number; - constructor(identifier: number, x: number, y: number); - } - interface InputListener { - down(x: number, y: number): void; - up(x: number, y: number): void; - moved(x: number, y: number): void; - dragged(x: number, y: number): void; - } + class Input { + element: HTMLElement; + lastX: number; + lastY: number; + buttonDown: boolean; + currTouch: Touch; + touchesPool: Pool; + private listeners; + constructor(element: HTMLElement); + private setupCallbacks(element); + addListener(listener: InputListener): void; + removeListener(listener: InputListener): void; + } + class Touch { + identifier: number; + x: number; + y: number; + constructor(identifier: number, x: number, y: number); + } + interface InputListener { + down(x: number, y: number): void; + up(x: number, y: number): void; + moved(x: number, y: number): void; + dragged(x: number, y: number): void; + } } declare module spine.webgl { - class LoadingScreen { - static FADE_SECONDS: number; - private static loaded; - private static spinnerImg; - private static logoImg; - private renderer; - private logo; - private spinner; - private angle; - private fadeOut; - private timeKeeper; - backgroundColor: Color; - private tempColor; - private firstDraw; - private static SPINNER_DATA; - private static SPINE_LOGO_DATA; - constructor(renderer: SceneRenderer); - draw(complete?: boolean): void; - } + class LoadingScreen { + static FADE_SECONDS: number; + private static loaded; + private static spinnerImg; + private static logoImg; + private renderer; + private logo; + private spinner; + private angle; + private fadeOut; + private timeKeeper; + backgroundColor: Color; + private tempColor; + private firstDraw; + private static SPINNER_DATA; + private static SPINE_LOGO_DATA; + constructor(renderer: SceneRenderer); + draw(complete?: boolean): void; + } } declare module spine.webgl { - const M00 = 0; - const M01 = 4; - const M02 = 8; - const M03 = 12; - const M10 = 1; - const M11 = 5; - const M12 = 9; - const M13 = 13; - const M20 = 2; - const M21 = 6; - const M22 = 10; - const M23 = 14; - const M30 = 3; - const M31 = 7; - const M32 = 11; - const M33 = 15; - class Matrix4 { - temp: Float32Array; - values: Float32Array; - private static xAxis; - private static yAxis; - private static zAxis; - private static tmpMatrix; - constructor(); - set(values: ArrayLike): Matrix4; - transpose(): Matrix4; - identity(): Matrix4; - invert(): Matrix4; - determinant(): number; - translate(x: number, y: number, z: number): Matrix4; - copy(): Matrix4; - projection(near: number, far: number, fovy: number, aspectRatio: number): Matrix4; - ortho2d(x: number, y: number, width: number, height: number): Matrix4; - ortho(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4; - multiply(matrix: Matrix4): Matrix4; - multiplyLeft(matrix: Matrix4): Matrix4; - lookAt(position: Vector3, direction: Vector3, up: Vector3): this; - static initTemps(): void; - } + const M00: number; + const M01: number; + const M02: number; + const M03: number; + const M10: number; + const M11: number; + const M12: number; + const M13: number; + const M20: number; + const M21: number; + const M22: number; + const M23: number; + const M30: number; + const M31: number; + const M32: number; + const M33: number; + class Matrix4 { + temp: Float32Array; + values: Float32Array; + private static xAxis; + private static yAxis; + private static zAxis; + private static tmpMatrix; + constructor(); + set(values: ArrayLike): Matrix4; + transpose(): Matrix4; + identity(): Matrix4; + invert(): Matrix4; + determinant(): number; + translate(x: number, y: number, z: number): Matrix4; + copy(): Matrix4; + projection(near: number, far: number, fovy: number, aspectRatio: number): Matrix4; + ortho2d(x: number, y: number, width: number, height: number): Matrix4; + ortho(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4; + multiply(matrix: Matrix4): Matrix4; + multiplyLeft(matrix: Matrix4): Matrix4; + lookAt(position: Vector3, direction: Vector3, up: Vector3): this; + static initTemps(): void; + } } declare module spine.webgl { - class Mesh implements Disposable, Restorable { - private attributes; - private context; - private vertices; - private verticesBuffer; - private verticesLength; - private dirtyVertices; - private indices; - private indicesBuffer; - private indicesLength; - private dirtyIndices; - private elementsPerVertex; - getAttributes(): VertexAttribute[]; - maxVertices(): number; - numVertices(): number; - setVerticesLength(length: number): void; - getVertices(): Float32Array; - maxIndices(): number; - numIndices(): number; - setIndicesLength(length: number): void; - getIndices(): Uint16Array; - getVertexSizeInFloats(): number; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, attributes: VertexAttribute[], maxVertices: number, maxIndices: number); - setVertices(vertices: Array): void; - setIndices(indices: Array): void; - draw(shader: Shader, primitiveType: number): void; - drawWithOffset(shader: Shader, primitiveType: number, offset: number, count: number): void; - bind(shader: Shader): void; - unbind(shader: Shader): void; - private update(); - restore(): void; - dispose(): void; - } - class VertexAttribute { - name: string; - type: VertexAttributeType; - numElements: number; - constructor(name: string, type: VertexAttributeType, numElements: number); - } - class Position2Attribute extends VertexAttribute { - constructor(); - } - class Position3Attribute extends VertexAttribute { - constructor(); - } - class TexCoordAttribute extends VertexAttribute { - constructor(unit?: number); - } - class ColorAttribute extends VertexAttribute { - constructor(); - } - class Color2Attribute extends VertexAttribute { - constructor(); - } - enum VertexAttributeType { - Float = 0, - } + class Mesh implements Disposable, Restorable { + private attributes; + private context; + private vertices; + private verticesBuffer; + private verticesLength; + private dirtyVertices; + private indices; + private indicesBuffer; + private indicesLength; + private dirtyIndices; + private elementsPerVertex; + getAttributes(): VertexAttribute[]; + maxVertices(): number; + numVertices(): number; + setVerticesLength(length: number): void; + getVertices(): Float32Array; + maxIndices(): number; + numIndices(): number; + setIndicesLength(length: number): void; + getIndices(): Uint16Array; + getVertexSizeInFloats(): number; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, attributes: VertexAttribute[], maxVertices: number, maxIndices: number); + setVertices(vertices: Array): void; + setIndices(indices: Array): void; + draw(shader: Shader, primitiveType: number): void; + drawWithOffset(shader: Shader, primitiveType: number, offset: number, count: number): void; + bind(shader: Shader): void; + unbind(shader: Shader): void; + private update(); + restore(): void; + dispose(): void; + } + class VertexAttribute { + name: string; + type: VertexAttributeType; + numElements: number; + constructor(name: string, type: VertexAttributeType, numElements: number); + } + class Position2Attribute extends VertexAttribute { + constructor(); + } + class Position3Attribute extends VertexAttribute { + constructor(); + } + class TexCoordAttribute extends VertexAttribute { + constructor(unit?: number); + } + class ColorAttribute extends VertexAttribute { + constructor(); + } + class Color2Attribute extends VertexAttribute { + constructor(); + } + enum VertexAttributeType { + Float = 0, + } } declare module spine.webgl { - class PolygonBatcher implements Disposable { - private context; - private drawCalls; - private isDrawing; - private mesh; - private shader; - private lastTexture; - private verticesLength; - private indicesLength; - private srcBlend; - private dstBlend; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean, maxVertices?: number); - begin(shader: Shader): void; - setBlendMode(srcBlend: number, dstBlend: number): void; - draw(texture: GLTexture, vertices: ArrayLike, indices: Array): void; - private flush(); - end(): void; - getDrawCalls(): number; - dispose(): void; - } + class PolygonBatcher implements Disposable { + private context; + private drawCalls; + private isDrawing; + private mesh; + private shader; + private lastTexture; + private verticesLength; + private indicesLength; + private srcBlend; + private dstBlend; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean, maxVertices?: number); + begin(shader: Shader): void; + setBlendMode(srcBlend: number, dstBlend: number): void; + draw(texture: GLTexture, vertices: ArrayLike, indices: Array): void; + private flush(); + end(): void; + getDrawCalls(): number; + dispose(): void; + } } declare module spine.webgl { - class SceneRenderer implements Disposable { - context: ManagedWebGLRenderingContext; - canvas: HTMLCanvasElement; - camera: OrthoCamera; - batcher: PolygonBatcher; - private twoColorTint; - private batcherShader; - private shapes; - private shapesShader; - private activeRenderer; - private skeletonRenderer; - private skeletonDebugRenderer; - private QUAD; - private QUAD_TRIANGLES; - private WHITE; - constructor(canvas: HTMLCanvasElement, context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean); - begin(): void; - drawSkeleton(skeleton: Skeleton, premultipliedAlpha?: boolean): void; - drawSkeletonDebug(skeleton: Skeleton, premultipliedAlpha?: boolean, ignoredBones?: Array): void; - drawTexture(texture: GLTexture, x: number, y: number, width: number, height: number, color?: Color): void; - drawTextureRotated(texture: GLTexture, x: number, y: number, width: number, height: number, pivotX: number, pivotY: number, angle: number, color?: Color, premultipliedAlpha?: boolean): void; - drawRegion(region: TextureAtlasRegion, x: number, y: number, width: number, height: number, color?: Color, premultipliedAlpha?: boolean): void; - line(x: number, y: number, x2: number, y2: number, color?: Color, color2?: Color): void; - triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; - quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; - rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; - rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; - polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; - circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; - curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; - end(): void; - resize(resizeMode: ResizeMode): void; - private enableRenderer(renderer); - dispose(): void; - } - enum ResizeMode { - Stretch = 0, - Expand = 1, - Fit = 2, - } + class SceneRenderer implements Disposable { + context: ManagedWebGLRenderingContext; + canvas: HTMLCanvasElement; + camera: OrthoCamera; + batcher: PolygonBatcher; + private twoColorTint; + private batcherShader; + private shapes; + private shapesShader; + private activeRenderer; + private skeletonRenderer; + private skeletonDebugRenderer; + private QUAD; + private QUAD_TRIANGLES; + private WHITE; + constructor(canvas: HTMLCanvasElement, context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean); + begin(): void; + drawSkeleton(skeleton: Skeleton, premultipliedAlpha?: boolean): void; + drawSkeletonDebug(skeleton: Skeleton, premultipliedAlpha?: boolean, ignoredBones?: Array): void; + drawTexture(texture: GLTexture, x: number, y: number, width: number, height: number, color?: Color): void; + drawTextureRotated(texture: GLTexture, x: number, y: number, width: number, height: number, pivotX: number, pivotY: number, angle: number, color?: Color, premultipliedAlpha?: boolean): void; + drawRegion(region: TextureAtlasRegion, x: number, y: number, width: number, height: number, color?: Color, premultipliedAlpha?: boolean): void; + line(x: number, y: number, x2: number, y2: number, color?: Color, color2?: Color): void; + triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; + quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; + rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; + rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; + polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; + circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; + curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; + end(): void; + resize(resizeMode: ResizeMode): void; + private enableRenderer(renderer); + dispose(): void; + } + enum ResizeMode { + Stretch = 0, + Expand = 1, + Fit = 2, + } } declare module spine.webgl { - class Shader implements Disposable, Restorable { - private vertexShader; - private fragmentShader; - static MVP_MATRIX: string; - static POSITION: string; - static COLOR: string; - static COLOR2: string; - static TEXCOORDS: string; - static SAMPLER: string; - private context; - private vs; - private fs; - private program; - private tmp2x2; - private tmp3x3; - private tmp4x4; - getProgram(): WebGLProgram; - getVertexShader(): string; - getFragmentShader(): string; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, vertexShader: string, fragmentShader: string); - private compile(); - private compileShader(type, source); - private compileProgram(vs, fs); - restore(): void; - bind(): void; - unbind(): void; - setUniformi(uniform: string, value: number): void; - setUniformf(uniform: string, value: number): void; - setUniform2f(uniform: string, value: number, value2: number): void; - setUniform3f(uniform: string, value: number, value2: number, value3: number): void; - setUniform4f(uniform: string, value: number, value2: number, value3: number, value4: number): void; - setUniform2x2f(uniform: string, value: ArrayLike): void; - setUniform3x3f(uniform: string, value: ArrayLike): void; - setUniform4x4f(uniform: string, value: ArrayLike): void; - getUniformLocation(uniform: string): WebGLUniformLocation; - getAttributeLocation(attribute: string): number; - dispose(): void; - static newColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; - static newTwoColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; - static newColored(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; - } + class Shader implements Disposable, Restorable { + private vertexShader; + private fragmentShader; + static MVP_MATRIX: string; + static POSITION: string; + static COLOR: string; + static COLOR2: string; + static TEXCOORDS: string; + static SAMPLER: string; + private context; + private vs; + private fs; + private program; + private tmp2x2; + private tmp3x3; + private tmp4x4; + getProgram(): WebGLProgram; + getVertexShader(): string; + getFragmentShader(): string; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, vertexShader: string, fragmentShader: string); + private compile(); + private compileShader(type, source); + private compileProgram(vs, fs); + restore(): void; + bind(): void; + unbind(): void; + setUniformi(uniform: string, value: number): void; + setUniformf(uniform: string, value: number): void; + setUniform2f(uniform: string, value: number, value2: number): void; + setUniform3f(uniform: string, value: number, value2: number, value3: number): void; + setUniform4f(uniform: string, value: number, value2: number, value3: number, value4: number): void; + setUniform2x2f(uniform: string, value: ArrayLike): void; + setUniform3x3f(uniform: string, value: ArrayLike): void; + setUniform4x4f(uniform: string, value: ArrayLike): void; + getUniformLocation(uniform: string): WebGLUniformLocation; + getAttributeLocation(attribute: string): number; + dispose(): void; + static newColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; + static newTwoColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; + static newColored(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; + } } declare module spine.webgl { - class ShapeRenderer implements Disposable { - private context; - private isDrawing; - private mesh; - private shapeType; - private color; - private shader; - private vertexIndex; - private tmp; - private srcBlend; - private dstBlend; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, maxVertices?: number); - begin(shader: Shader): void; - setBlendMode(srcBlend: number, dstBlend: number): void; - setColor(color: Color): void; - setColorWith(r: number, g: number, b: number, a: number): void; - point(x: number, y: number, color?: Color): void; - line(x: number, y: number, x2: number, y2: number, color?: Color): void; - triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; - quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; - rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; - rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; - x(x: number, y: number, size: number): void; - polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; - circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; - curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; - private vertex(x, y, color); - end(): void; - private flush(); - private check(shapeType, numVertices); - dispose(): void; - } - enum ShapeType { - Point = 0, - Line = 1, - Filled = 4, - } + class ShapeRenderer implements Disposable { + private context; + private isDrawing; + private mesh; + private shapeType; + private color; + private shader; + private vertexIndex; + private tmp; + private srcBlend; + private dstBlend; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, maxVertices?: number); + begin(shader: Shader): void; + setBlendMode(srcBlend: number, dstBlend: number): void; + setColor(color: Color): void; + setColorWith(r: number, g: number, b: number, a: number): void; + point(x: number, y: number, color?: Color): void; + line(x: number, y: number, x2: number, y2: number, color?: Color): void; + triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; + quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; + rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; + rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; + x(x: number, y: number, size: number): void; + polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; + circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; + curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; + private vertex(x, y, color); + end(): void; + private flush(); + private check(shapeType, numVertices); + dispose(): void; + } + enum ShapeType { + Point = 0, + Line = 1, + Filled = 4, + } } declare module spine.webgl { - class SkeletonDebugRenderer implements Disposable { - boneLineColor: Color; - boneOriginColor: Color; - attachmentLineColor: Color; - triangleLineColor: Color; - pathColor: Color; - clipColor: Color; - aabbColor: Color; - drawBones: boolean; - drawRegionAttachments: boolean; - drawBoundingBoxes: boolean; - drawMeshHull: boolean; - drawMeshTriangles: boolean; - drawPaths: boolean; - drawSkeletonXY: boolean; - drawClipping: boolean; - premultipliedAlpha: boolean; - scale: number; - boneWidth: number; - private context; - private bounds; - private temp; - private vertices; - private static LIGHT_GRAY; - private static GREEN; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext); - draw(shapes: ShapeRenderer, skeleton: Skeleton, ignoredBones?: Array): void; - dispose(): void; - } + class SkeletonDebugRenderer implements Disposable { + boneLineColor: Color; + boneOriginColor: Color; + attachmentLineColor: Color; + triangleLineColor: Color; + pathColor: Color; + clipColor: Color; + aabbColor: Color; + drawBones: boolean; + drawRegionAttachments: boolean; + drawBoundingBoxes: boolean; + drawMeshHull: boolean; + drawMeshTriangles: boolean; + drawPaths: boolean; + drawSkeletonXY: boolean; + drawClipping: boolean; + premultipliedAlpha: boolean; + scale: number; + boneWidth: number; + private context; + private bounds; + private temp; + private vertices; + private static LIGHT_GRAY; + private static GREEN; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext); + draw(shapes: ShapeRenderer, skeleton: Skeleton, ignoredBones?: Array): void; + dispose(): void; + } } declare module spine.webgl { - class SkeletonRenderer { - static QUAD_TRIANGLES: number[]; - premultipliedAlpha: boolean; - private tempColor; - private tempColor2; - private vertices; - private vertexSize; - private twoColorTint; - private renderable; - private clipper; - constructor(context: ManagedWebGLRenderingContext, twoColorTint?: boolean); - draw(batcher: PolygonBatcher, skeleton: Skeleton): void; - } + class SkeletonRenderer { + static QUAD_TRIANGLES: number[]; + premultipliedAlpha: boolean; + private tempColor; + private tempColor2; + private vertices; + private vertexSize; + private twoColorTint; + private renderable; + private clipper; + constructor(context: ManagedWebGLRenderingContext, twoColorTint?: boolean); + draw(batcher: PolygonBatcher, skeleton: Skeleton): void; + } } declare module spine.webgl { - class Vector3 { - x: number; - y: number; - z: number; - constructor(x?: number, y?: number, z?: number); - setFrom(v: Vector3): Vector3; - set(x: number, y: number, z: number): Vector3; - add(v: Vector3): Vector3; - sub(v: Vector3): Vector3; - scale(s: number): Vector3; - normalize(): Vector3; - cross(v: Vector3): Vector3; - multiply(matrix: Matrix4): Vector3; - project(matrix: Matrix4): Vector3; - dot(v: Vector3): number; - length(): number; - distance(v: Vector3): number; - } + class Vector3 { + x: number; + y: number; + z: number; + constructor(x?: number, y?: number, z?: number); + setFrom(v: Vector3): Vector3; + set(x: number, y: number, z: number): Vector3; + add(v: Vector3): Vector3; + sub(v: Vector3): Vector3; + scale(s: number): Vector3; + normalize(): Vector3; + cross(v: Vector3): Vector3; + multiply(matrix: Matrix4): Vector3; + project(matrix: Matrix4): Vector3; + dot(v: Vector3): number; + length(): number; + distance(v: Vector3): number; + } } declare module spine.webgl { - class ManagedWebGLRenderingContext { - canvas: HTMLCanvasElement; - gl: WebGLRenderingContext; - private restorables; - constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext, contextConfig?: any); - addRestorable(restorable: Restorable): void; - removeRestorable(restorable: Restorable): void; - } - class WebGLBlendModeConverter { - static ZERO: number; - static ONE: number; - static SRC_COLOR: number; - static ONE_MINUS_SRC_COLOR: number; - static SRC_ALPHA: number; - static ONE_MINUS_SRC_ALPHA: number; - static DST_ALPHA: number; - static ONE_MINUS_DST_ALPHA: number; - static DST_COLOR: number; - static getDestGLBlendMode(blendMode: BlendMode): number; - static getSourceGLBlendMode(blendMode: BlendMode, premultipliedAlpha?: boolean): number; - } + class ManagedWebGLRenderingContext { + canvas: HTMLCanvasElement; + gl: WebGLRenderingContext; + private restorables; + constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext, contextConfig?: any); + addRestorable(restorable: Restorable): void; + removeRestorable(restorable: Restorable): void; + } + class WebGLBlendModeConverter { + static ZERO: number; + static ONE: number; + static SRC_COLOR: number; + static ONE_MINUS_SRC_COLOR: number; + static SRC_ALPHA: number; + static ONE_MINUS_SRC_ALPHA: number; + static DST_ALPHA: number; + static ONE_MINUS_DST_ALPHA: number; + static DST_COLOR: number; + static getDestGLBlendMode(blendMode: BlendMode): number; + static getSourceGLBlendMode(blendMode: BlendMode, premultipliedAlpha?: boolean): number; + } } diff --git a/spine-ts/build/spine-webgl.js b/spine-ts/build/spine-webgl.js index fa3c7593e..54ed8a874 100644 --- a/spine-ts/build/spine-webgl.js +++ b/spine-ts/build/spine-webgl.js @@ -1,8630 +1,8611 @@ -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; var spine; (function (spine) { - var Animation = (function () { - function Animation(name, timelines, duration) { - if (name == null) - throw new Error("name cannot be null."); - if (timelines == null) - throw new Error("timelines cannot be null."); - this.name = name; - this.timelines = timelines; - this.duration = duration; - } - Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (loop && this.duration != 0) { - time %= this.duration; - if (lastTime > 0) - lastTime %= this.duration; - } - var timelines = this.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); - }; - Animation.binarySearch = function (values, target, step) { - if (step === void 0) { step = 1; } - var low = 0; - var high = values.length / step - 2; - if (high == 0) - return step; - var current = high >>> 1; - while (true) { - if (values[(current + 1) * step] <= target) - low = current + 1; - else - high = current; - if (low == high) - return (low + 1) * step; - current = (low + high) >>> 1; - } - }; - Animation.linearSearch = function (values, target, step) { - for (var i = 0, last = values.length - step; i <= last; i += step) - if (values[i] > target) - return i; - return -1; - }; - return Animation; - }()); - spine.Animation = Animation; - var TimelineType; - (function (TimelineType) { - TimelineType[TimelineType["rotate"] = 0] = "rotate"; - TimelineType[TimelineType["translate"] = 1] = "translate"; - TimelineType[TimelineType["scale"] = 2] = "scale"; - TimelineType[TimelineType["shear"] = 3] = "shear"; - TimelineType[TimelineType["attachment"] = 4] = "attachment"; - TimelineType[TimelineType["color"] = 5] = "color"; - TimelineType[TimelineType["deform"] = 6] = "deform"; - TimelineType[TimelineType["event"] = 7] = "event"; - TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; - TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; - TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; - TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; - TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; - TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; - TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; - })(TimelineType = spine.TimelineType || (spine.TimelineType = {})); - var CurveTimeline = (function () { - function CurveTimeline(frameCount) { - if (frameCount <= 0) - throw new Error("frameCount must be > 0: " + frameCount); - this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); - } - CurveTimeline.prototype.getFrameCount = function () { - return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; - }; - CurveTimeline.prototype.setLinear = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; - }; - CurveTimeline.prototype.setStepped = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; - }; - CurveTimeline.prototype.getCurveType = function (frameIndex) { - var index = frameIndex * CurveTimeline.BEZIER_SIZE; - if (index == this.curves.length) - return CurveTimeline.LINEAR; - var type = this.curves[index]; - if (type == CurveTimeline.LINEAR) - return CurveTimeline.LINEAR; - if (type == CurveTimeline.STEPPED) - return CurveTimeline.STEPPED; - return CurveTimeline.BEZIER; - }; - CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { - var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; - var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; - var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; - var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var curves = this.curves; - curves[i++] = CurveTimeline.BEZIER; - var x = dfx, y = dfy; - for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - curves[i] = x; - curves[i + 1] = y; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - x += dfx; - y += dfy; - } - }; - CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { - percent = spine.MathUtils.clamp(percent, 0, 1); - var curves = this.curves; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var type = curves[i]; - if (type == CurveTimeline.LINEAR) - return percent; - if (type == CurveTimeline.STEPPED) - return 0; - i++; - var x = 0; - for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - x = curves[i]; - if (x >= percent) { - var prevX = void 0, prevY = void 0; - if (i == start) { - prevX = 0; - prevY = 0; - } - else { - prevX = curves[i - 2]; - prevY = curves[i - 1]; - } - return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); - } - } - var y = curves[i - 1]; - return y + (1 - y) * (percent - x) / (1 - x); - }; - return CurveTimeline; - }()); - CurveTimeline.LINEAR = 0; - CurveTimeline.STEPPED = 1; - CurveTimeline.BEZIER = 2; - CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; - spine.CurveTimeline = CurveTimeline; - var RotateTimeline = (function (_super) { - __extends(RotateTimeline, _super); - function RotateTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount << 1); - return _this; - } - RotateTimeline.prototype.getPropertyId = function () { - return (TimelineType.rotate << 24) + this.boneIndex; - }; - RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { - frameIndex <<= 1; - this.frames[frameIndex] = time; - this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; - }; - RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { - if (setupPose) - bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; - else { - var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; - r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; - bone.rotation += r_1 * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); - var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); - var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - r = prevRotation + r * percent; - if (setupPose) { - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation = bone.data.rotation + r * alpha; - } - else { - r = bone.data.rotation + r - bone.rotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation += r * alpha; - } - }; - return RotateTimeline; - }(CurveTimeline)); - RotateTimeline.ENTRIES = 2; - RotateTimeline.PREV_TIME = -2; - RotateTimeline.PREV_ROTATION = -1; - RotateTimeline.ROTATION = 1; - spine.RotateTimeline = RotateTimeline; - var TranslateTimeline = (function (_super) { - __extends(TranslateTimeline, _super); - function TranslateTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); - return _this; - } - TranslateTimeline.prototype.getPropertyId = function () { - return (TimelineType.translate << 24) + this.boneIndex; - }; - TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { - frameIndex *= TranslateTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TranslateTimeline.X] = x; - this.frames[frameIndex + TranslateTimeline.Y] = y; - }; - TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.x = bone.data.x; - bone.y = bone.data.y; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { - x = frames[frames.length + TranslateTimeline.PREV_X]; - y = frames[frames.length + TranslateTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - x = frames[frame + TranslateTimeline.PREV_X]; - y = frames[frame + TranslateTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); - x += (frames[frame + TranslateTimeline.X] - x) * percent; - y += (frames[frame + TranslateTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.x = bone.data.x + x * alpha; - bone.y = bone.data.y + y * alpha; - } - else { - bone.x += (bone.data.x + x - bone.x) * alpha; - bone.y += (bone.data.y + y - bone.y) * alpha; - } - }; - return TranslateTimeline; - }(CurveTimeline)); - TranslateTimeline.ENTRIES = 3; - TranslateTimeline.PREV_TIME = -3; - TranslateTimeline.PREV_X = -2; - TranslateTimeline.PREV_Y = -1; - TranslateTimeline.X = 1; - TranslateTimeline.Y = 2; - spine.TranslateTimeline = TranslateTimeline; - var ScaleTimeline = (function (_super) { - __extends(ScaleTimeline, _super); - function ScaleTimeline(frameCount) { - return _super.call(this, frameCount) || this; - } - ScaleTimeline.prototype.getPropertyId = function () { - return (TimelineType.scale << 24) + this.boneIndex; - }; - ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.scaleX = bone.data.scaleX; - bone.scaleY = bone.data.scaleY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { - x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; - y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; - } - else { - var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - x = frames[frame + ScaleTimeline.PREV_X]; - y = frames[frame + ScaleTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); - x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; - y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; - } - if (alpha == 1) { - bone.scaleX = x; - bone.scaleY = y; - } - else { - var bx = 0, by = 0; - if (setupPose) { - bx = bone.data.scaleX; - by = bone.data.scaleY; - } - else { - bx = bone.scaleX; - by = bone.scaleY; - } - if (mixingOut) { - x = Math.abs(x) * spine.MathUtils.signum(bx); - y = Math.abs(y) * spine.MathUtils.signum(by); - } - else { - bx = Math.abs(bx) * spine.MathUtils.signum(x); - by = Math.abs(by) * spine.MathUtils.signum(y); - } - bone.scaleX = bx + (x - bx) * alpha; - bone.scaleY = by + (y - by) * alpha; - } - }; - return ScaleTimeline; - }(TranslateTimeline)); - spine.ScaleTimeline = ScaleTimeline; - var ShearTimeline = (function (_super) { - __extends(ShearTimeline, _super); - function ShearTimeline(frameCount) { - return _super.call(this, frameCount) || this; - } - ShearTimeline.prototype.getPropertyId = function () { - return (TimelineType.shear << 24) + this.boneIndex; - }; - ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.shearX = bone.data.shearX; - bone.shearY = bone.data.shearY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { - x = frames[frames.length + ShearTimeline.PREV_X]; - y = frames[frames.length + ShearTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - x = frames[frame + ShearTimeline.PREV_X]; - y = frames[frame + ShearTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); - x = x + (frames[frame + ShearTimeline.X] - x) * percent; - y = y + (frames[frame + ShearTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.shearX = bone.data.shearX + x * alpha; - bone.shearY = bone.data.shearY + y * alpha; - } - else { - bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; - } - }; - return ShearTimeline; - }(TranslateTimeline)); - spine.ShearTimeline = ShearTimeline; - var ColorTimeline = (function (_super) { - __extends(ColorTimeline, _super); - function ColorTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); - return _this; - } - ColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.color << 24) + this.slotIndex; - }; - ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { - frameIndex *= ColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + ColorTimeline.R] = r; - this.frames[frameIndex + ColorTimeline.G] = g; - this.frames[frameIndex + ColorTimeline.B] = b; - this.frames[frameIndex + ColorTimeline.A] = a; - }; - ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - slot.color.setFromColor(slot.data.color); - return; - } - var r = 0, g = 0, b = 0, a = 0; - if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + ColorTimeline.PREV_R]; - g = frames[i + ColorTimeline.PREV_G]; - b = frames[i + ColorTimeline.PREV_B]; - a = frames[i + ColorTimeline.PREV_A]; - } - else { - var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); - r = frames[frame + ColorTimeline.PREV_R]; - g = frames[frame + ColorTimeline.PREV_G]; - b = frames[frame + ColorTimeline.PREV_B]; - a = frames[frame + ColorTimeline.PREV_A]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + ColorTimeline.R] - r) * percent; - g += (frames[frame + ColorTimeline.G] - g) * percent; - b += (frames[frame + ColorTimeline.B] - b) * percent; - a += (frames[frame + ColorTimeline.A] - a) * percent; - } - if (alpha == 1) - slot.color.set(r, g, b, a); - else { - var color = slot.color; - if (setupPose) - color.setFromColor(slot.data.color); - color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); - } - }; - return ColorTimeline; - }(CurveTimeline)); - ColorTimeline.ENTRIES = 5; - ColorTimeline.PREV_TIME = -5; - ColorTimeline.PREV_R = -4; - ColorTimeline.PREV_G = -3; - ColorTimeline.PREV_B = -2; - ColorTimeline.PREV_A = -1; - ColorTimeline.R = 1; - ColorTimeline.G = 2; - ColorTimeline.B = 3; - ColorTimeline.A = 4; - spine.ColorTimeline = ColorTimeline; - var TwoColorTimeline = (function (_super) { - __extends(TwoColorTimeline, _super); - function TwoColorTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); - return _this; - } - TwoColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.twoColor << 24) + this.slotIndex; - }; - TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { - frameIndex *= TwoColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TwoColorTimeline.R] = r; - this.frames[frameIndex + TwoColorTimeline.G] = g; - this.frames[frameIndex + TwoColorTimeline.B] = b; - this.frames[frameIndex + TwoColorTimeline.A] = a; - this.frames[frameIndex + TwoColorTimeline.R2] = r2; - this.frames[frameIndex + TwoColorTimeline.G2] = g2; - this.frames[frameIndex + TwoColorTimeline.B2] = b2; - }; - TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - slot.color.setFromColor(slot.data.color); - slot.darkColor.setFromColor(slot.data.darkColor); - } - return; - } - var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; - if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + TwoColorTimeline.PREV_R]; - g = frames[i + TwoColorTimeline.PREV_G]; - b = frames[i + TwoColorTimeline.PREV_B]; - a = frames[i + TwoColorTimeline.PREV_A]; - r2 = frames[i + TwoColorTimeline.PREV_R2]; - g2 = frames[i + TwoColorTimeline.PREV_G2]; - b2 = frames[i + TwoColorTimeline.PREV_B2]; - } - else { - var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); - r = frames[frame + TwoColorTimeline.PREV_R]; - g = frames[frame + TwoColorTimeline.PREV_G]; - b = frames[frame + TwoColorTimeline.PREV_B]; - a = frames[frame + TwoColorTimeline.PREV_A]; - r2 = frames[frame + TwoColorTimeline.PREV_R2]; - g2 = frames[frame + TwoColorTimeline.PREV_G2]; - b2 = frames[frame + TwoColorTimeline.PREV_B2]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + TwoColorTimeline.R] - r) * percent; - g += (frames[frame + TwoColorTimeline.G] - g) * percent; - b += (frames[frame + TwoColorTimeline.B] - b) * percent; - a += (frames[frame + TwoColorTimeline.A] - a) * percent; - r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; - g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; - b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; - } - if (alpha == 1) { - slot.color.set(r, g, b, a); - slot.darkColor.set(r2, g2, b2, 1); - } - else { - var light = slot.color; - var dark = slot.darkColor; - if (setupPose) { - light.setFromColor(slot.data.color); - dark.setFromColor(slot.data.darkColor); - } - light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); - dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); - } - }; - return TwoColorTimeline; - }(CurveTimeline)); - TwoColorTimeline.ENTRIES = 8; - TwoColorTimeline.PREV_TIME = -8; - TwoColorTimeline.PREV_R = -7; - TwoColorTimeline.PREV_G = -6; - TwoColorTimeline.PREV_B = -5; - TwoColorTimeline.PREV_A = -4; - TwoColorTimeline.PREV_R2 = -3; - TwoColorTimeline.PREV_G2 = -2; - TwoColorTimeline.PREV_B2 = -1; - TwoColorTimeline.R = 1; - TwoColorTimeline.G = 2; - TwoColorTimeline.B = 3; - TwoColorTimeline.A = 4; - TwoColorTimeline.R2 = 5; - TwoColorTimeline.G2 = 6; - TwoColorTimeline.B2 = 7; - spine.TwoColorTimeline = TwoColorTimeline; - var AttachmentTimeline = (function () { - function AttachmentTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.attachmentNames = new Array(frameCount); - } - AttachmentTimeline.prototype.getPropertyId = function () { - return (TimelineType.attachment << 24) + this.slotIndex; - }; - AttachmentTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { - this.frames[frameIndex] = time; - this.attachmentNames[frameIndex] = attachmentName; - }; - AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - if (mixingOut && setupPose) { - var attachmentName_1 = slot.data.attachmentName; - slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - var attachmentName_2 = slot.data.attachmentName; - slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); - } - return; - } - var frameIndex = 0; - if (time >= frames[frames.length - 1]) - frameIndex = frames.length - 1; - else - frameIndex = Animation.binarySearch(frames, time, 1) - 1; - var attachmentName = this.attachmentNames[frameIndex]; - skeleton.slots[this.slotIndex] - .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); - }; - return AttachmentTimeline; - }()); - spine.AttachmentTimeline = AttachmentTimeline; - var DeformTimeline = (function (_super) { - __extends(DeformTimeline, _super); - function DeformTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount); - _this.frameVertices = new Array(frameCount); - return _this; - } - DeformTimeline.prototype.getPropertyId = function () { - return (TimelineType.deform << 24) + this.slotIndex; - }; - DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { - this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; - }; - DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var slotAttachment = slot.getAttachment(); - if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) - return; - var frames = this.frames; - var verticesArray = slot.attachmentVertices; - if (time < frames[0]) { - if (setupPose) - spine.Utils.setArraySize(verticesArray, 0); - return; - } - var frameVertices = this.frameVertices; - var vertexCount = frameVertices[0].length; - if (verticesArray.length != vertexCount) - alpha = 1; - var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); - if (time >= frames[frames.length - 1]) { - var lastVertices = frameVertices[frames.length - 1]; - if (alpha == 1) { - spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var setup = setupVertices[i]; - vertices[i] = setup + (lastVertices[i] - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] = lastVertices[i] * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time); - var prevVertices = frameVertices[frame - 1]; - var nextVertices = frameVertices[frame]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); - if (alpha == 1) { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i], setup = setupVertices[i]; - vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; - } - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; - } - } - }; - return DeformTimeline; - }(CurveTimeline)); - spine.DeformTimeline = DeformTimeline; - var EventTimeline = (function () { - function EventTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.events = new Array(frameCount); - } - EventTimeline.prototype.getPropertyId = function () { - return TimelineType.event << 24; - }; - EventTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - EventTimeline.prototype.setFrame = function (frameIndex, event) { - this.frames[frameIndex] = event.time; - this.events[frameIndex] = event; - }; - EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - if (firedEvents == null) - return; - var frames = this.frames; - var frameCount = this.frames.length; - if (lastTime > time) { - this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); - lastTime = -1; - } - else if (lastTime >= frames[frameCount - 1]) - return; - if (time < frames[0]) - return; - var frame = 0; - if (lastTime < frames[0]) - frame = 0; - else { - frame = Animation.binarySearch(frames, lastTime); - var frameTime = frames[frame]; - while (frame > 0) { - if (frames[frame - 1] != frameTime) - break; - frame--; - } - } - for (; frame < frameCount && time >= frames[frame]; frame++) - firedEvents.push(this.events[frame]); - }; - return EventTimeline; - }()); - spine.EventTimeline = EventTimeline; - var DrawOrderTimeline = (function () { - function DrawOrderTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.drawOrders = new Array(frameCount); - } - DrawOrderTimeline.prototype.getPropertyId = function () { - return TimelineType.drawOrder << 24; - }; - DrawOrderTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { - this.frames[frameIndex] = time; - this.drawOrders[frameIndex] = drawOrder; - }; - DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var drawOrder = skeleton.drawOrder; - var slots = skeleton.slots; - if (mixingOut && setupPose) { - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frame = 0; - if (time >= frames[frames.length - 1]) - frame = frames.length - 1; - else - frame = Animation.binarySearch(frames, time) - 1; - var drawOrderToSetupIndex = this.drawOrders[frame]; - if (drawOrderToSetupIndex == null) - spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); - else { - for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) - drawOrder[i] = slots[drawOrderToSetupIndex[i]]; - } - }; - return DrawOrderTimeline; - }()); - spine.DrawOrderTimeline = DrawOrderTimeline; - var IkConstraintTimeline = (function (_super) { - __extends(IkConstraintTimeline, _super); - function IkConstraintTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); - return _this; - } - IkConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; - }; - IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { - frameIndex *= IkConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; - this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; - }; - IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.mix = constraint.data.mix; - constraint.bendDirection = constraint.data.bendDirection; - } - return; - } - if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { - if (setupPose) { - constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection - : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - return; - } - var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); - var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); - if (setupPose) { - constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - }; - return IkConstraintTimeline; - }(CurveTimeline)); - IkConstraintTimeline.ENTRIES = 3; - IkConstraintTimeline.PREV_TIME = -3; - IkConstraintTimeline.PREV_MIX = -2; - IkConstraintTimeline.PREV_BEND_DIRECTION = -1; - IkConstraintTimeline.MIX = 1; - IkConstraintTimeline.BEND_DIRECTION = 2; - spine.IkConstraintTimeline = IkConstraintTimeline; - var TransformConstraintTimeline = (function (_super) { - __extends(TransformConstraintTimeline, _super); - function TransformConstraintTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); - return _this; - } - TransformConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; - }; - TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { - frameIndex *= TransformConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; - this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; - this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; - }; - TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.rotateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - return; - } - var rotate = 0, translate = 0, scale = 0, shear = 0; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { - var i = frames.length; - rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; - } - else { - var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; - scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; - shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; - } - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; - constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; - constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; - constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - constraint.scaleMix += (scale - constraint.scaleMix) * alpha; - constraint.shearMix += (shear - constraint.shearMix) * alpha; - } - }; - return TransformConstraintTimeline; - }(CurveTimeline)); - TransformConstraintTimeline.ENTRIES = 5; - TransformConstraintTimeline.PREV_TIME = -5; - TransformConstraintTimeline.PREV_ROTATE = -4; - TransformConstraintTimeline.PREV_TRANSLATE = -3; - TransformConstraintTimeline.PREV_SCALE = -2; - TransformConstraintTimeline.PREV_SHEAR = -1; - TransformConstraintTimeline.ROTATE = 1; - TransformConstraintTimeline.TRANSLATE = 2; - TransformConstraintTimeline.SCALE = 3; - TransformConstraintTimeline.SHEAR = 4; - spine.TransformConstraintTimeline = TransformConstraintTimeline; - var PathConstraintPositionTimeline = (function (_super) { - __extends(PathConstraintPositionTimeline, _super); - function PathConstraintPositionTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); - return _this; - } - PathConstraintPositionTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; - }; - PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { - frameIndex *= PathConstraintPositionTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; - }; - PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.position = constraint.data.position; - return; - } - var position = 0; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) - position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); - position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; - } - if (setupPose) - constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; - else - constraint.position += (position - constraint.position) * alpha; - }; - return PathConstraintPositionTimeline; - }(CurveTimeline)); - PathConstraintPositionTimeline.ENTRIES = 2; - PathConstraintPositionTimeline.PREV_TIME = -2; - PathConstraintPositionTimeline.PREV_VALUE = -1; - PathConstraintPositionTimeline.VALUE = 1; - spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; - var PathConstraintSpacingTimeline = (function (_super) { - __extends(PathConstraintSpacingTimeline, _super); - function PathConstraintSpacingTimeline(frameCount) { - return _super.call(this, frameCount) || this; - } - PathConstraintSpacingTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; - }; - PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.spacing = constraint.data.spacing; - return; - } - var spacing = 0; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) - spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); - spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; - } - if (setupPose) - constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; - else - constraint.spacing += (spacing - constraint.spacing) * alpha; - }; - return PathConstraintSpacingTimeline; - }(PathConstraintPositionTimeline)); - spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; - var PathConstraintMixTimeline = (function (_super) { - __extends(PathConstraintMixTimeline, _super); - function PathConstraintMixTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); - return _this; - } - PathConstraintMixTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; - }; - PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { - frameIndex *= PathConstraintMixTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; - }; - PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix; - constraint.translateMix = constraint.data.translateMix; - } - return; - } - var rotate = 0, translate = 0; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { - rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; - } - else { - var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; - } - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; - constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - } - }; - return PathConstraintMixTimeline; - }(CurveTimeline)); - PathConstraintMixTimeline.ENTRIES = 3; - PathConstraintMixTimeline.PREV_TIME = -3; - PathConstraintMixTimeline.PREV_ROTATE = -2; - PathConstraintMixTimeline.PREV_TRANSLATE = -1; - PathConstraintMixTimeline.ROTATE = 1; - PathConstraintMixTimeline.TRANSLATE = 2; - spine.PathConstraintMixTimeline = PathConstraintMixTimeline; + var Animation = (function () { + function Animation(name, timelines, duration) { + if (name == null) + throw new Error("name cannot be null."); + if (timelines == null) + throw new Error("timelines cannot be null."); + this.name = name; + this.timelines = timelines; + this.duration = duration; + } + Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (loop && this.duration != 0) { + time %= this.duration; + if (lastTime > 0) + lastTime %= this.duration; + } + var timelines = this.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); + }; + Animation.binarySearch = function (values, target, step) { + if (step === void 0) { step = 1; } + var low = 0; + var high = values.length / step - 2; + if (high == 0) + return step; + var current = high >>> 1; + while (true) { + if (values[(current + 1) * step] <= target) + low = current + 1; + else + high = current; + if (low == high) + return (low + 1) * step; + current = (low + high) >>> 1; + } + }; + Animation.linearSearch = function (values, target, step) { + for (var i = 0, last = values.length - step; i <= last; i += step) + if (values[i] > target) + return i; + return -1; + }; + return Animation; + }()); + spine.Animation = Animation; + (function (TimelineType) { + TimelineType[TimelineType["rotate"] = 0] = "rotate"; + TimelineType[TimelineType["translate"] = 1] = "translate"; + TimelineType[TimelineType["scale"] = 2] = "scale"; + TimelineType[TimelineType["shear"] = 3] = "shear"; + TimelineType[TimelineType["attachment"] = 4] = "attachment"; + TimelineType[TimelineType["color"] = 5] = "color"; + TimelineType[TimelineType["deform"] = 6] = "deform"; + TimelineType[TimelineType["event"] = 7] = "event"; + TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; + TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; + TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; + TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; + TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; + TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; + TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; + var CurveTimeline = (function () { + function CurveTimeline(frameCount) { + if (frameCount <= 0) + throw new Error("frameCount must be > 0: " + frameCount); + this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); + } + CurveTimeline.prototype.getFrameCount = function () { + return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; + }; + CurveTimeline.prototype.setLinear = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; + }; + CurveTimeline.prototype.setStepped = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; + }; + CurveTimeline.prototype.getCurveType = function (frameIndex) { + var index = frameIndex * CurveTimeline.BEZIER_SIZE; + if (index == this.curves.length) + return CurveTimeline.LINEAR; + var type = this.curves[index]; + if (type == CurveTimeline.LINEAR) + return CurveTimeline.LINEAR; + if (type == CurveTimeline.STEPPED) + return CurveTimeline.STEPPED; + return CurveTimeline.BEZIER; + }; + CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { + var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; + var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; + var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; + var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var curves = this.curves; + curves[i++] = CurveTimeline.BEZIER; + var x = dfx, y = dfy; + for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + curves[i] = x; + curves[i + 1] = y; + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + x += dfx; + y += dfy; + } + }; + CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { + percent = spine.MathUtils.clamp(percent, 0, 1); + var curves = this.curves; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var type = curves[i]; + if (type == CurveTimeline.LINEAR) + return percent; + if (type == CurveTimeline.STEPPED) + return 0; + i++; + var x = 0; + for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + x = curves[i]; + if (x >= percent) { + var prevX = void 0, prevY = void 0; + if (i == start) { + prevX = 0; + prevY = 0; + } + else { + prevX = curves[i - 2]; + prevY = curves[i - 1]; + } + return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); + } + } + var y = curves[i - 1]; + return y + (1 - y) * (percent - x) / (1 - x); + }; + CurveTimeline.LINEAR = 0; + CurveTimeline.STEPPED = 1; + CurveTimeline.BEZIER = 2; + CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; + return CurveTimeline; + }()); + spine.CurveTimeline = CurveTimeline; + var RotateTimeline = (function (_super) { + __extends(RotateTimeline, _super); + function RotateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount << 1); + } + RotateTimeline.prototype.getPropertyId = function () { + return (TimelineType.rotate << 24) + this.boneIndex; + }; + RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { + frameIndex <<= 1; + this.frames[frameIndex] = time; + this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; + }; + RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { + if (setupPose) + bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; + else { + var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; + r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; + bone.rotation += r_1 * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); + var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); + var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + r = prevRotation + r * percent; + if (setupPose) { + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation = bone.data.rotation + r * alpha; + } + else { + r = bone.data.rotation + r - bone.rotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation += r * alpha; + } + }; + RotateTimeline.ENTRIES = 2; + RotateTimeline.PREV_TIME = -2; + RotateTimeline.PREV_ROTATION = -1; + RotateTimeline.ROTATION = 1; + return RotateTimeline; + }(CurveTimeline)); + spine.RotateTimeline = RotateTimeline; + var TranslateTimeline = (function (_super) { + __extends(TranslateTimeline, _super); + function TranslateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); + } + TranslateTimeline.prototype.getPropertyId = function () { + return (TimelineType.translate << 24) + this.boneIndex; + }; + TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { + frameIndex *= TranslateTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TranslateTimeline.X] = x; + this.frames[frameIndex + TranslateTimeline.Y] = y; + }; + TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { + x = frames[frames.length + TranslateTimeline.PREV_X]; + y = frames[frames.length + TranslateTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); + x = frames[frame + TranslateTimeline.PREV_X]; + y = frames[frame + TranslateTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); + x += (frames[frame + TranslateTimeline.X] - x) * percent; + y += (frames[frame + TranslateTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.x = bone.data.x + x * alpha; + bone.y = bone.data.y + y * alpha; + } + else { + bone.x += (bone.data.x + x - bone.x) * alpha; + bone.y += (bone.data.y + y - bone.y) * alpha; + } + }; + TranslateTimeline.ENTRIES = 3; + TranslateTimeline.PREV_TIME = -3; + TranslateTimeline.PREV_X = -2; + TranslateTimeline.PREV_Y = -1; + TranslateTimeline.X = 1; + TranslateTimeline.Y = 2; + return TranslateTimeline; + }(CurveTimeline)); + spine.TranslateTimeline = TranslateTimeline; + var ScaleTimeline = (function (_super) { + __extends(ScaleTimeline, _super); + function ScaleTimeline(frameCount) { + _super.call(this, frameCount); + } + ScaleTimeline.prototype.getPropertyId = function () { + return (TimelineType.scale << 24) + this.boneIndex; + }; + ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { + x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; + y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; + } + else { + var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); + x = frames[frame + ScaleTimeline.PREV_X]; + y = frames[frame + ScaleTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); + x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; + y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; + } + if (alpha == 1) { + bone.scaleX = x; + bone.scaleY = y; + } + else { + var bx = 0, by = 0; + if (setupPose) { + bx = bone.data.scaleX; + by = bone.data.scaleY; + } + else { + bx = bone.scaleX; + by = bone.scaleY; + } + if (mixingOut) { + x = Math.abs(x) * spine.MathUtils.signum(bx); + y = Math.abs(y) * spine.MathUtils.signum(by); + } + else { + bx = Math.abs(bx) * spine.MathUtils.signum(x); + by = Math.abs(by) * spine.MathUtils.signum(y); + } + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + } + }; + return ScaleTimeline; + }(TranslateTimeline)); + spine.ScaleTimeline = ScaleTimeline; + var ShearTimeline = (function (_super) { + __extends(ShearTimeline, _super); + function ShearTimeline(frameCount) { + _super.call(this, frameCount); + } + ShearTimeline.prototype.getPropertyId = function () { + return (TimelineType.shear << 24) + this.boneIndex; + }; + ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { + x = frames[frames.length + ShearTimeline.PREV_X]; + y = frames[frames.length + ShearTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); + x = frames[frame + ShearTimeline.PREV_X]; + y = frames[frame + ShearTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); + x = x + (frames[frame + ShearTimeline.X] - x) * percent; + y = y + (frames[frame + ShearTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.shearX = bone.data.shearX + x * alpha; + bone.shearY = bone.data.shearY + y * alpha; + } + else { + bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; + bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; + } + }; + return ShearTimeline; + }(TranslateTimeline)); + spine.ShearTimeline = ShearTimeline; + var ColorTimeline = (function (_super) { + __extends(ColorTimeline, _super); + function ColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); + } + ColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.color << 24) + this.slotIndex; + }; + ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { + frameIndex *= ColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + ColorTimeline.R] = r; + this.frames[frameIndex + ColorTimeline.G] = g; + this.frames[frameIndex + ColorTimeline.B] = b; + this.frames[frameIndex + ColorTimeline.A] = a; + }; + ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + slot.color.setFromColor(slot.data.color); + return; + } + var r = 0, g = 0, b = 0, a = 0; + if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + ColorTimeline.PREV_R]; + g = frames[i + ColorTimeline.PREV_G]; + b = frames[i + ColorTimeline.PREV_B]; + a = frames[i + ColorTimeline.PREV_A]; + } + else { + var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); + r = frames[frame + ColorTimeline.PREV_R]; + g = frames[frame + ColorTimeline.PREV_G]; + b = frames[frame + ColorTimeline.PREV_B]; + a = frames[frame + ColorTimeline.PREV_A]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + ColorTimeline.R] - r) * percent; + g += (frames[frame + ColorTimeline.G] - g) * percent; + b += (frames[frame + ColorTimeline.B] - b) * percent; + a += (frames[frame + ColorTimeline.A] - a) * percent; + } + if (alpha == 1) + slot.color.set(r, g, b, a); + else { + var color = slot.color; + if (setupPose) + color.setFromColor(slot.data.color); + color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); + } + }; + ColorTimeline.ENTRIES = 5; + ColorTimeline.PREV_TIME = -5; + ColorTimeline.PREV_R = -4; + ColorTimeline.PREV_G = -3; + ColorTimeline.PREV_B = -2; + ColorTimeline.PREV_A = -1; + ColorTimeline.R = 1; + ColorTimeline.G = 2; + ColorTimeline.B = 3; + ColorTimeline.A = 4; + return ColorTimeline; + }(CurveTimeline)); + spine.ColorTimeline = ColorTimeline; + var TwoColorTimeline = (function (_super) { + __extends(TwoColorTimeline, _super); + function TwoColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); + } + TwoColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.twoColor << 24) + this.slotIndex; + }; + TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { + frameIndex *= TwoColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TwoColorTimeline.R] = r; + this.frames[frameIndex + TwoColorTimeline.G] = g; + this.frames[frameIndex + TwoColorTimeline.B] = b; + this.frames[frameIndex + TwoColorTimeline.A] = a; + this.frames[frameIndex + TwoColorTimeline.R2] = r2; + this.frames[frameIndex + TwoColorTimeline.G2] = g2; + this.frames[frameIndex + TwoColorTimeline.B2] = b2; + }; + TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + slot.color.setFromColor(slot.data.color); + slot.darkColor.setFromColor(slot.data.darkColor); + } + return; + } + var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; + if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + TwoColorTimeline.PREV_R]; + g = frames[i + TwoColorTimeline.PREV_G]; + b = frames[i + TwoColorTimeline.PREV_B]; + a = frames[i + TwoColorTimeline.PREV_A]; + r2 = frames[i + TwoColorTimeline.PREV_R2]; + g2 = frames[i + TwoColorTimeline.PREV_G2]; + b2 = frames[i + TwoColorTimeline.PREV_B2]; + } + else { + var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); + r = frames[frame + TwoColorTimeline.PREV_R]; + g = frames[frame + TwoColorTimeline.PREV_G]; + b = frames[frame + TwoColorTimeline.PREV_B]; + a = frames[frame + TwoColorTimeline.PREV_A]; + r2 = frames[frame + TwoColorTimeline.PREV_R2]; + g2 = frames[frame + TwoColorTimeline.PREV_G2]; + b2 = frames[frame + TwoColorTimeline.PREV_B2]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + TwoColorTimeline.R] - r) * percent; + g += (frames[frame + TwoColorTimeline.G] - g) * percent; + b += (frames[frame + TwoColorTimeline.B] - b) * percent; + a += (frames[frame + TwoColorTimeline.A] - a) * percent; + r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; + g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; + b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; + } + if (alpha == 1) { + slot.color.set(r, g, b, a); + slot.darkColor.set(r2, g2, b2, 1); + } + else { + var light = slot.color; + var dark = slot.darkColor; + if (setupPose) { + light.setFromColor(slot.data.color); + dark.setFromColor(slot.data.darkColor); + } + light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); + dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); + } + }; + TwoColorTimeline.ENTRIES = 8; + TwoColorTimeline.PREV_TIME = -8; + TwoColorTimeline.PREV_R = -7; + TwoColorTimeline.PREV_G = -6; + TwoColorTimeline.PREV_B = -5; + TwoColorTimeline.PREV_A = -4; + TwoColorTimeline.PREV_R2 = -3; + TwoColorTimeline.PREV_G2 = -2; + TwoColorTimeline.PREV_B2 = -1; + TwoColorTimeline.R = 1; + TwoColorTimeline.G = 2; + TwoColorTimeline.B = 3; + TwoColorTimeline.A = 4; + TwoColorTimeline.R2 = 5; + TwoColorTimeline.G2 = 6; + TwoColorTimeline.B2 = 7; + return TwoColorTimeline; + }(CurveTimeline)); + spine.TwoColorTimeline = TwoColorTimeline; + var AttachmentTimeline = (function () { + function AttachmentTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.attachmentNames = new Array(frameCount); + } + AttachmentTimeline.prototype.getPropertyId = function () { + return (TimelineType.attachment << 24) + this.slotIndex; + }; + AttachmentTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { + this.frames[frameIndex] = time; + this.attachmentNames[frameIndex] = attachmentName; + }; + AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + if (mixingOut && setupPose) { + var attachmentName_1 = slot.data.attachmentName; + slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + var attachmentName_2 = slot.data.attachmentName; + slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); + } + return; + } + var frameIndex = 0; + if (time >= frames[frames.length - 1]) + frameIndex = frames.length - 1; + else + frameIndex = Animation.binarySearch(frames, time, 1) - 1; + var attachmentName = this.attachmentNames[frameIndex]; + skeleton.slots[this.slotIndex] + .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); + }; + return AttachmentTimeline; + }()); + spine.AttachmentTimeline = AttachmentTimeline; + var DeformTimeline = (function (_super) { + __extends(DeformTimeline, _super); + function DeformTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount); + this.frameVertices = new Array(frameCount); + } + DeformTimeline.prototype.getPropertyId = function () { + return (TimelineType.deform << 24) + this.slotIndex; + }; + DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { + this.frames[frameIndex] = time; + this.frameVertices[frameIndex] = vertices; + }; + DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var slotAttachment = slot.getAttachment(); + if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) + return; + var frames = this.frames; + var verticesArray = slot.attachmentVertices; + if (time < frames[0]) { + if (setupPose) + spine.Utils.setArraySize(verticesArray, 0); + return; + } + var frameVertices = this.frameVertices; + var vertexCount = frameVertices[0].length; + if (verticesArray.length != vertexCount) + alpha = 1; + var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); + if (time >= frames[frames.length - 1]) { + var lastVertices = frameVertices[frames.length - 1]; + if (alpha == 1) { + spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var setup = setupVertices[i]; + vertices[i] = setup + (lastVertices[i] - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] = lastVertices[i] * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] += (lastVertices[i] - vertices[i]) * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time); + var prevVertices = frameVertices[frame - 1]; + var nextVertices = frameVertices[frame]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); + if (alpha == 1) { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = prev + (nextVertices[i] - prev) * percent; + } + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i], setup = setupVertices[i]; + vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; + } + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; + } + } + }; + return DeformTimeline; + }(CurveTimeline)); + spine.DeformTimeline = DeformTimeline; + var EventTimeline = (function () { + function EventTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.events = new Array(frameCount); + } + EventTimeline.prototype.getPropertyId = function () { + return TimelineType.event << 24; + }; + EventTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + EventTimeline.prototype.setFrame = function (frameIndex, event) { + this.frames[frameIndex] = event.time; + this.events[frameIndex] = event; + }; + EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + if (firedEvents == null) + return; + var frames = this.frames; + var frameCount = this.frames.length; + if (lastTime > time) { + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); + lastTime = -1; + } + else if (lastTime >= frames[frameCount - 1]) + return; + if (time < frames[0]) + return; + var frame = 0; + if (lastTime < frames[0]) + frame = 0; + else { + frame = Animation.binarySearch(frames, lastTime); + var frameTime = frames[frame]; + while (frame > 0) { + if (frames[frame - 1] != frameTime) + break; + frame--; + } + } + for (; frame < frameCount && time >= frames[frame]; frame++) + firedEvents.push(this.events[frame]); + }; + return EventTimeline; + }()); + spine.EventTimeline = EventTimeline; + var DrawOrderTimeline = (function () { + function DrawOrderTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.drawOrders = new Array(frameCount); + } + DrawOrderTimeline.prototype.getPropertyId = function () { + return TimelineType.drawOrder << 24; + }; + DrawOrderTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { + this.frames[frameIndex] = time; + this.drawOrders[frameIndex] = drawOrder; + }; + DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var drawOrder = skeleton.drawOrder; + var slots = skeleton.slots; + if (mixingOut && setupPose) { + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frame = 0; + if (time >= frames[frames.length - 1]) + frame = frames.length - 1; + else + frame = Animation.binarySearch(frames, time) - 1; + var drawOrderToSetupIndex = this.drawOrders[frame]; + if (drawOrderToSetupIndex == null) + spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); + else { + for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) + drawOrder[i] = slots[drawOrderToSetupIndex[i]]; + } + }; + return DrawOrderTimeline; + }()); + spine.DrawOrderTimeline = DrawOrderTimeline; + var IkConstraintTimeline = (function (_super) { + __extends(IkConstraintTimeline, _super); + function IkConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); + } + IkConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; + }; + IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { + frameIndex *= IkConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; + this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; + }; + IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.mix = constraint.data.mix; + constraint.bendDirection = constraint.data.bendDirection; + } + return; + } + if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { + if (setupPose) { + constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection + : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + return; + } + var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); + var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); + if (setupPose) { + constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + }; + IkConstraintTimeline.ENTRIES = 3; + IkConstraintTimeline.PREV_TIME = -3; + IkConstraintTimeline.PREV_MIX = -2; + IkConstraintTimeline.PREV_BEND_DIRECTION = -1; + IkConstraintTimeline.MIX = 1; + IkConstraintTimeline.BEND_DIRECTION = 2; + return IkConstraintTimeline; + }(CurveTimeline)); + spine.IkConstraintTimeline = IkConstraintTimeline; + var TransformConstraintTimeline = (function (_super) { + __extends(TransformConstraintTimeline, _super); + function TransformConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); + } + TransformConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; + }; + TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { + frameIndex *= TransformConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; + this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; + this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; + }; + TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.rotateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + return; + } + var rotate = 0, translate = 0, scale = 0, shear = 0; + if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { + var i = frames.length; + rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; + } + else { + var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); + rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; + scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; + shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; + } + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; + constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; + constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; + constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + constraint.scaleMix += (scale - constraint.scaleMix) * alpha; + constraint.shearMix += (shear - constraint.shearMix) * alpha; + } + }; + TransformConstraintTimeline.ENTRIES = 5; + TransformConstraintTimeline.PREV_TIME = -5; + TransformConstraintTimeline.PREV_ROTATE = -4; + TransformConstraintTimeline.PREV_TRANSLATE = -3; + TransformConstraintTimeline.PREV_SCALE = -2; + TransformConstraintTimeline.PREV_SHEAR = -1; + TransformConstraintTimeline.ROTATE = 1; + TransformConstraintTimeline.TRANSLATE = 2; + TransformConstraintTimeline.SCALE = 3; + TransformConstraintTimeline.SHEAR = 4; + return TransformConstraintTimeline; + }(CurveTimeline)); + spine.TransformConstraintTimeline = TransformConstraintTimeline; + var PathConstraintPositionTimeline = (function (_super) { + __extends(PathConstraintPositionTimeline, _super); + function PathConstraintPositionTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); + } + PathConstraintPositionTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; + }; + PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { + frameIndex *= PathConstraintPositionTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; + }; + PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.position = constraint.data.position; + return; + } + var position = 0; + if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) + position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); + position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); + position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; + } + if (setupPose) + constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; + else + constraint.position += (position - constraint.position) * alpha; + }; + PathConstraintPositionTimeline.ENTRIES = 2; + PathConstraintPositionTimeline.PREV_TIME = -2; + PathConstraintPositionTimeline.PREV_VALUE = -1; + PathConstraintPositionTimeline.VALUE = 1; + return PathConstraintPositionTimeline; + }(CurveTimeline)); + spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; + var PathConstraintSpacingTimeline = (function (_super) { + __extends(PathConstraintSpacingTimeline, _super); + function PathConstraintSpacingTimeline(frameCount) { + _super.call(this, frameCount); + } + PathConstraintSpacingTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; + }; + PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.spacing = constraint.data.spacing; + return; + } + var spacing = 0; + if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) + spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); + spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); + spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; + } + if (setupPose) + constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; + else + constraint.spacing += (spacing - constraint.spacing) * alpha; + }; + return PathConstraintSpacingTimeline; + }(PathConstraintPositionTimeline)); + spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; + var PathConstraintMixTimeline = (function (_super) { + __extends(PathConstraintMixTimeline, _super); + function PathConstraintMixTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); + } + PathConstraintMixTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; + }; + PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { + frameIndex *= PathConstraintMixTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; + }; + PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } + return; + } + var rotate = 0, translate = 0; + if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { + rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; + } + else { + var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); + rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; + } + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; + constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + } + }; + PathConstraintMixTimeline.ENTRIES = 3; + PathConstraintMixTimeline.PREV_TIME = -3; + PathConstraintMixTimeline.PREV_ROTATE = -2; + PathConstraintMixTimeline.PREV_TRANSLATE = -1; + PathConstraintMixTimeline.ROTATE = 1; + PathConstraintMixTimeline.TRANSLATE = 2; + return PathConstraintMixTimeline; + }(CurveTimeline)); + spine.PathConstraintMixTimeline = PathConstraintMixTimeline; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationState = (function () { - function AnimationState(data) { - this.tracks = new Array(); - this.events = new Array(); - this.listeners = new Array(); - this.queue = new EventQueue(this); - this.propertyIDs = new spine.IntSet(); - this.mixingTo = new Array(); - this.animationsChanged = false; - this.timeScale = 1; - this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); - this.data = data; - } - AnimationState.prototype.update = function (delta) { - delta *= this.timeScale; - var tracks = this.tracks; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null) - continue; - current.animationLast = current.nextAnimationLast; - current.trackLast = current.nextTrackLast; - var currentDelta = delta * current.timeScale; - if (current.delay > 0) { - current.delay -= currentDelta; - if (current.delay > 0) - continue; - currentDelta = -current.delay; - current.delay = 0; - } - var next = current.next; - if (next != null) { - var nextTime = current.trackLast - next.delay; - if (nextTime >= 0) { - next.delay = 0; - next.trackTime = nextTime + delta * next.timeScale; - current.trackTime += currentDelta; - this.setCurrent(i, next, true); - while (next.mixingFrom != null) { - next.mixTime += currentDelta; - next = next.mixingFrom; - } - continue; - } - } - else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { - tracks[i] = null; - this.queue.end(current); - this.disposeNext(current); - continue; - } - if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { - var from = current.mixingFrom; - current.mixingFrom = null; - while (from != null) { - this.queue.end(from); - from = from.mixingFrom; - } - } - current.trackTime += currentDelta; - } - this.queue.drain(); - }; - AnimationState.prototype.updateMixingFrom = function (to, delta) { - var from = to.mixingFrom; - if (from == null) - return true; - var finished = this.updateMixingFrom(from, delta); - if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { - if (from.totalAlpha == 0) { - to.mixingFrom = from.mixingFrom; - to.interruptAlpha = from.interruptAlpha; - this.queue.end(from); - } - return finished; - } - from.animationLast = from.nextAnimationLast; - from.trackLast = from.nextTrackLast; - from.trackTime += delta * from.timeScale; - to.mixTime += delta * to.timeScale; - return false; - }; - AnimationState.prototype.apply = function (skeleton) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (this.animationsChanged) - this._animationsChanged(); - var events = this.events; - var tracks = this.tracks; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null || current.delay > 0) - continue; - var mix = current.alpha; - if (current.mixingFrom != null) - mix *= this.applyMixingFrom(current, skeleton); - else if (current.trackTime >= current.trackEnd && current.next == null) - mix = 0; - var animationLast = current.animationLast, animationTime = current.getAnimationTime(); - var timelineCount = current.animation.timelines.length; - var timelines = current.animation.timelines; - if (mix == 1) { - for (var ii = 0; ii < timelineCount; ii++) - timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); - } - else { - var timelineData = current.timelineData; - var firstFrame = current.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = current.timelinesRotation; - for (var ii = 0; ii < timelineCount; ii++) { - var timeline = timelines[ii]; - if (timeline instanceof spine.RotateTimeline) { - this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); - } - else - timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); - } - } - this.queueEvents(current, animationTime); - events.length = 0; - current.nextAnimationLast = animationTime; - current.nextTrackLast = current.trackTime; - } - this.queue.drain(); - }; - AnimationState.prototype.applyMixingFrom = function (to, skeleton) { - var from = to.mixingFrom; - if (from.mixingFrom != null) - this.applyMixingFrom(from, skeleton); - var mix = 0; - if (to.mixDuration == 0) - mix = 1; - else { - mix = to.mixTime / to.mixDuration; - if (mix > 1) - mix = 1; - } - var events = mix < from.eventThreshold ? this.events : null; - var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; - var animationLast = from.animationLast, animationTime = from.getAnimationTime(); - var timelineCount = from.animation.timelines.length; - var timelines = from.animation.timelines; - var timelineData = from.timelineData; - var timelineDipMix = from.timelineDipMix; - var firstFrame = from.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = from.timelinesRotation; - var first = false; - var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha; - from.totalAlpha = 0; - for (var i = 0; i < timelineCount; i++) { - var timeline = timelines[i]; - switch (timelineData[i]) { - case AnimationState.SUBSEQUENT: - first = false; - alpha = alphaMix; - break; - case AnimationState.FIRST: - first = true; - alpha = alphaMix; - break; - case AnimationState.DIP: - first = true; - alpha = alphaDip; - break; - default: - first = true; - alpha = alphaDip; - var dipMix = timelineDipMix[i]; - alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); - break; - } - from.totalAlpha += alpha; - if (timeline instanceof spine.RotateTimeline) - this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); - else { - if (!first) { - if (!attachments && timeline instanceof spine.AttachmentTimeline) - continue; - if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) - continue; - } - timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); - } - } - if (to.mixDuration > 0) - this.queueEvents(from, animationTime); - this.events.length = 0; - from.nextAnimationLast = animationTime; - from.nextTrackLast = from.trackTime; - return mix; - }; - AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { - if (firstFrame) - timelinesRotation[i] = 0; - if (alpha == 1) { - timeline.apply(skeleton, 0, time, null, 1, setupPose, false); - return; - } - var rotateTimeline = timeline; - var frames = rotateTimeline.frames; - var bone = skeleton.bones[rotateTimeline.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - var r2 = 0; - if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) - r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; - else { - var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); - var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); - r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - r2 = prevRotation + r2 * percent + bone.data.rotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - } - var r1 = setupPose ? bone.data.rotation : bone.rotation; - var total = 0, diff = r2 - r1; - if (diff == 0) { - total = timelinesRotation[i]; - } - else { - diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; - var lastTotal = 0, lastDiff = 0; - if (firstFrame) { - lastTotal = 0; - lastDiff = diff; - } - else { - lastTotal = timelinesRotation[i]; - lastDiff = timelinesRotation[i + 1]; - } - var current = diff > 0, dir = lastTotal >= 0; - if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { - if (Math.abs(lastTotal) > 180) - lastTotal += 360 * spine.MathUtils.signum(lastTotal); - dir = current; - } - total = diff + lastTotal - lastTotal % 360; - if (dir != current) - total += 360 * spine.MathUtils.signum(lastTotal); - timelinesRotation[i] = total; - } - timelinesRotation[i + 1] = diff; - r1 += total * alpha; - bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; - }; - AnimationState.prototype.queueEvents = function (entry, animationTime) { - var animationStart = entry.animationStart, animationEnd = entry.animationEnd; - var duration = animationEnd - animationStart; - var trackLastWrapped = entry.trackLast % duration; - var events = this.events; - var i = 0, n = events.length; - for (; i < n; i++) { - var event_1 = events[i]; - if (event_1.time < trackLastWrapped) - break; - if (event_1.time > animationEnd) - continue; - this.queue.event(entry, event_1); - } - if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) - : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { - this.queue.complete(entry); - } - for (; i < n; i++) { - var event_2 = events[i]; - if (event_2.time < animationStart) - continue; - this.queue.event(entry, events[i]); - } - }; - AnimationState.prototype.clearTracks = function () { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) - this.clearTrack(i); - this.tracks.length = 0; - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.clearTrack = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return; - var current = this.tracks[trackIndex]; - if (current == null) - return; - this.queue.end(current); - this.disposeNext(current); - var entry = current; - while (true) { - var from = entry.mixingFrom; - if (from == null) - break; - this.queue.end(from); - entry.mixingFrom = null; - entry = from; - } - this.tracks[current.trackIndex] = null; - this.queue.drain(); - }; - AnimationState.prototype.setCurrent = function (index, current, interrupt) { - var from = this.expandToIndex(index); - this.tracks[index] = current; - if (from != null) { - if (interrupt) - this.queue.interrupt(from); - current.mixingFrom = from; - current.mixTime = 0; - if (from.mixingFrom != null && from.mixDuration > 0) - current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); - from.timelinesRotation.length = 0; - } - this.queue.start(current); - }; - AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.setAnimationWith(trackIndex, animation, loop); - }; - AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { - if (animation == null) - throw new Error("animation cannot be null."); - var interrupt = true; - var current = this.expandToIndex(trackIndex); - if (current != null) { - if (current.nextTrackLast == -1) { - this.tracks[trackIndex] = current.mixingFrom; - this.queue.interrupt(current); - this.queue.end(current); - this.disposeNext(current); - current = current.mixingFrom; - interrupt = false; - } - else - this.disposeNext(current); - } - var entry = this.trackEntry(trackIndex, animation, loop, current); - this.setCurrent(trackIndex, entry, interrupt); - this.queue.drain(); - return entry; - }; - AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.addAnimationWith(trackIndex, animation, loop, delay); - }; - AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { - if (animation == null) - throw new Error("animation cannot be null."); - var last = this.expandToIndex(trackIndex); - if (last != null) { - while (last.next != null) - last = last.next; - } - var entry = this.trackEntry(trackIndex, animation, loop, last); - if (last == null) { - this.setCurrent(trackIndex, entry, true); - this.queue.drain(); - } - else { - last.next = entry; - if (delay <= 0) { - var duration = last.animationEnd - last.animationStart; - if (duration != 0) - delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); - else - delay = 0; - } - } - entry.delay = delay; - return entry; - }; - AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { - var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { - if (delay <= 0) - delay -= mixDuration; - var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.setEmptyAnimations = function (mixDuration) { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var current = this.tracks[i]; - if (current != null) - this.setEmptyAnimation(current.trackIndex, mixDuration); - } - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.expandToIndex = function (index) { - if (index < this.tracks.length) - return this.tracks[index]; - spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); - this.tracks.length = index + 1; - return null; - }; - AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { - var entry = this.trackEntryPool.obtain(); - entry.trackIndex = trackIndex; - entry.animation = animation; - entry.loop = loop; - entry.eventThreshold = 0; - entry.attachmentThreshold = 0; - entry.drawOrderThreshold = 0; - entry.animationStart = 0; - entry.animationEnd = animation.duration; - entry.animationLast = -1; - entry.nextAnimationLast = -1; - entry.delay = 0; - entry.trackTime = 0; - entry.trackLast = -1; - entry.nextTrackLast = -1; - entry.trackEnd = Number.MAX_VALUE; - entry.timeScale = 1; - entry.alpha = 1; - entry.interruptAlpha = 1; - entry.mixTime = 0; - entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); - return entry; - }; - AnimationState.prototype.disposeNext = function (entry) { - var next = entry.next; - while (next != null) { - this.queue.dispose(next); - next = next.next; - } - entry.next = null; - }; - AnimationState.prototype._animationsChanged = function () { - this.animationsChanged = false; - var propertyIDs = this.propertyIDs; - propertyIDs.clear(); - var mixingTo = this.mixingTo; - var lastEntry = null; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var entry = this.tracks[i]; - if (entry != null) { - entry.setTimelineData(lastEntry, mixingTo, propertyIDs); - lastEntry = entry; - } - } - }; - AnimationState.prototype.getCurrent = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return null; - return this.tracks[trackIndex]; - }; - AnimationState.prototype.addListener = function (listener) { - if (listener == null) - throw new Error("listener cannot be null."); - this.listeners.push(listener); - }; - AnimationState.prototype.removeListener = function (listener) { - var index = this.listeners.indexOf(listener); - if (index >= 0) - this.listeners.splice(index, 1); - }; - AnimationState.prototype.clearListeners = function () { - this.listeners.length = 0; - }; - AnimationState.prototype.clearListenerNotifications = function () { - this.queue.clear(); - }; - return AnimationState; - }()); - AnimationState.emptyAnimation = new spine.Animation("", [], 0); - AnimationState.SUBSEQUENT = 0; - AnimationState.FIRST = 1; - AnimationState.DIP = 2; - AnimationState.DIP_MIX = 3; - spine.AnimationState = AnimationState; - var TrackEntry = (function () { - function TrackEntry() { - this.timelineData = new Array(); - this.timelineDipMix = new Array(); - this.timelinesRotation = new Array(); - } - TrackEntry.prototype.reset = function () { - this.next = null; - this.mixingFrom = null; - this.animation = null; - this.listener = null; - this.timelineData.length = 0; - this.timelineDipMix.length = 0; - this.timelinesRotation.length = 0; - }; - TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { - if (to != null) - mixingToArray.push(to); - var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; - if (to != null) - mixingToArray.pop(); - var mixingTo = mixingToArray; - var mixingToLast = mixingToArray.length - 1; - var timelines = this.animation.timelines; - var timelinesCount = this.animation.timelines.length; - var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); - this.timelineDipMix.length = 0; - var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); - outer: for (var i = 0; i < timelinesCount; i++) { - var id = timelines[i].getPropertyId(); - if (!propertyIDs.add(id)) - timelineData[i] = AnimationState.SUBSEQUENT; - else if (to == null || !to.hasTimeline(id)) - timelineData[i] = AnimationState.FIRST; - else { - for (var ii = mixingToLast; ii >= 0; ii--) { - var entry = mixingTo[ii]; - if (!entry.hasTimeline(id)) { - if (entry.mixDuration > 0) { - timelineData[i] = AnimationState.DIP_MIX; - timelineDipMix[i] = entry; - continue outer; - } - } - } - timelineData[i] = AnimationState.DIP; - } - } - return lastEntry; - }; - TrackEntry.prototype.hasTimeline = function (id) { - var timelines = this.animation.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - if (timelines[i].getPropertyId() == id) - return true; - return false; - }; - TrackEntry.prototype.getAnimationTime = function () { - if (this.loop) { - var duration = this.animationEnd - this.animationStart; - if (duration == 0) - return this.animationStart; - return (this.trackTime % duration) + this.animationStart; - } - return Math.min(this.trackTime + this.animationStart, this.animationEnd); - }; - TrackEntry.prototype.setAnimationLast = function (animationLast) { - this.animationLast = animationLast; - this.nextAnimationLast = animationLast; - }; - TrackEntry.prototype.isComplete = function () { - return this.trackTime >= this.animationEnd - this.animationStart; - }; - TrackEntry.prototype.resetRotationDirections = function () { - this.timelinesRotation.length = 0; - }; - return TrackEntry; - }()); - spine.TrackEntry = TrackEntry; - var EventQueue = (function () { - function EventQueue(animState) { - this.objects = []; - this.drainDisabled = false; - this.animState = animState; - } - EventQueue.prototype.start = function (entry) { - this.objects.push(EventType.start); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.interrupt = function (entry) { - this.objects.push(EventType.interrupt); - this.objects.push(entry); - }; - EventQueue.prototype.end = function (entry) { - this.objects.push(EventType.end); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.dispose = function (entry) { - this.objects.push(EventType.dispose); - this.objects.push(entry); - }; - EventQueue.prototype.complete = function (entry) { - this.objects.push(EventType.complete); - this.objects.push(entry); - }; - EventQueue.prototype.event = function (entry, event) { - this.objects.push(EventType.event); - this.objects.push(entry); - this.objects.push(event); - }; - EventQueue.prototype.drain = function () { - if (this.drainDisabled) - return; - this.drainDisabled = true; - var objects = this.objects; - var listeners = this.animState.listeners; - for (var i = 0; i < objects.length; i += 2) { - var type = objects[i]; - var entry = objects[i + 1]; - switch (type) { - case EventType.start: - if (entry.listener != null && entry.listener.start) - entry.listener.start(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].start) - listeners[ii].start(entry); - break; - case EventType.interrupt: - if (entry.listener != null && entry.listener.interrupt) - entry.listener.interrupt(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].interrupt) - listeners[ii].interrupt(entry); - break; - case EventType.end: - if (entry.listener != null && entry.listener.end) - entry.listener.end(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].end) - listeners[ii].end(entry); - case EventType.dispose: - if (entry.listener != null && entry.listener.dispose) - entry.listener.dispose(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].dispose) - listeners[ii].dispose(entry); - this.animState.trackEntryPool.free(entry); - break; - case EventType.complete: - if (entry.listener != null && entry.listener.complete) - entry.listener.complete(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].complete) - listeners[ii].complete(entry); - break; - case EventType.event: - var event_3 = objects[i++ + 2]; - if (entry.listener != null && entry.listener.event) - entry.listener.event(entry, event_3); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].event) - listeners[ii].event(entry, event_3); - break; - } - } - this.clear(); - this.drainDisabled = false; - }; - EventQueue.prototype.clear = function () { - this.objects.length = 0; - }; - return EventQueue; - }()); - spine.EventQueue = EventQueue; - var EventType; - (function (EventType) { - EventType[EventType["start"] = 0] = "start"; - EventType[EventType["interrupt"] = 1] = "interrupt"; - EventType[EventType["end"] = 2] = "end"; - EventType[EventType["dispose"] = 3] = "dispose"; - EventType[EventType["complete"] = 4] = "complete"; - EventType[EventType["event"] = 5] = "event"; - })(EventType = spine.EventType || (spine.EventType = {})); - var AnimationStateAdapter2 = (function () { - function AnimationStateAdapter2() { - } - AnimationStateAdapter2.prototype.start = function (entry) { - }; - AnimationStateAdapter2.prototype.interrupt = function (entry) { - }; - AnimationStateAdapter2.prototype.end = function (entry) { - }; - AnimationStateAdapter2.prototype.dispose = function (entry) { - }; - AnimationStateAdapter2.prototype.complete = function (entry) { - }; - AnimationStateAdapter2.prototype.event = function (entry, event) { - }; - return AnimationStateAdapter2; - }()); - spine.AnimationStateAdapter2 = AnimationStateAdapter2; + var AnimationState = (function () { + function AnimationState(data) { + this.tracks = new Array(); + this.events = new Array(); + this.listeners = new Array(); + this.queue = new EventQueue(this); + this.propertyIDs = new spine.IntSet(); + this.mixingTo = new Array(); + this.animationsChanged = false; + this.timeScale = 1; + this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); + this.data = data; + } + AnimationState.prototype.update = function (delta) { + delta *= this.timeScale; + var tracks = this.tracks; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null) + continue; + current.animationLast = current.nextAnimationLast; + current.trackLast = current.nextTrackLast; + var currentDelta = delta * current.timeScale; + if (current.delay > 0) { + current.delay -= currentDelta; + if (current.delay > 0) + continue; + currentDelta = -current.delay; + current.delay = 0; + } + var next = current.next; + if (next != null) { + var nextTime = current.trackLast - next.delay; + if (nextTime >= 0) { + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; + this.setCurrent(i, next, true); + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + } + else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; + } + if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { + var from = current.mixingFrom; + current.mixingFrom = null; + while (from != null) { + this.queue.end(from); + from = from.mixingFrom; + } + } + current.trackTime += currentDelta; + } + this.queue.drain(); + }; + AnimationState.prototype.updateMixingFrom = function (to, delta) { + var from = to.mixingFrom; + if (from == null) + return true; + var finished = this.updateMixingFrom(from, delta); + if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { + if (from.totalAlpha == 0) { + to.mixingFrom = from.mixingFrom; + to.interruptAlpha = from.interruptAlpha; + this.queue.end(from); + } + return finished; + } + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + from.trackTime += delta * from.timeScale; + to.mixTime += delta * to.timeScale; + return false; + }; + AnimationState.prototype.apply = function (skeleton) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (this.animationsChanged) + this._animationsChanged(); + var events = this.events; + var tracks = this.tracks; + var applied = false; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null || current.delay > 0) + continue; + applied = true; + var mix = current.alpha; + if (current.mixingFrom != null) + mix *= this.applyMixingFrom(current, skeleton); + else if (current.trackTime >= current.trackEnd && current.next == null) + mix = 0; + var animationLast = current.animationLast, animationTime = current.getAnimationTime(); + var timelineCount = current.animation.timelines.length; + var timelines = current.animation.timelines; + if (mix == 1) { + for (var ii = 0; ii < timelineCount; ii++) + timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); + } + else { + var timelineData = current.timelineData; + var firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = current.timelinesRotation; + for (var ii = 0; ii < timelineCount; ii++) { + var timeline = timelines[ii]; + if (timeline instanceof spine.RotateTimeline) { + this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); + } + else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); + } + } + this.queueEvents(current, animationTime); + events.length = 0; + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; + } + this.queue.drain(); + return applied; + }; + AnimationState.prototype.applyMixingFrom = function (to, skeleton) { + var from = to.mixingFrom; + if (from.mixingFrom != null) + this.applyMixingFrom(from, skeleton); + var mix = 0; + if (to.mixDuration == 0) + mix = 1; + else { + mix = to.mixTime / to.mixDuration; + if (mix > 1) + mix = 1; + } + var events = mix < from.eventThreshold ? this.events : null; + var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; + var animationLast = from.animationLast, animationTime = from.getAnimationTime(); + var timelineCount = from.animation.timelines.length; + var timelines = from.animation.timelines; + var timelineData = from.timelineData; + var timelineDipMix = from.timelineDipMix; + var firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = from.timelinesRotation; + var first = false; + var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; + from.totalAlpha = 0; + for (var i = 0; i < timelineCount; i++) { + var timeline = timelines[i]; + switch (timelineData[i]) { + case AnimationState.SUBSEQUENT: + first = false; + alpha = alphaMix; + break; + case AnimationState.FIRST: + first = true; + alpha = alphaMix; + break; + case AnimationState.DIP: + first = true; + alpha = alphaDip; + break; + default: + first = true; + alpha = alphaDip; + var dipMix = timelineDipMix[i]; + alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); + break; + } + from.totalAlpha += alpha; + if (timeline instanceof spine.RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); + else { + if (!first) { + if (!attachments && timeline instanceof spine.AttachmentTimeline) + continue; + if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) + continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); + } + } + if (to.mixDuration > 0) + this.queueEvents(from, animationTime); + this.events.length = 0; + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + }; + AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { + if (firstFrame) + timelinesRotation[i] = 0; + if (alpha == 1) { + timeline.apply(skeleton, 0, time, null, 1, setupPose, false); + return; + } + var rotateTimeline = timeline; + var frames = rotateTimeline.frames; + var bone = skeleton.bones[rotateTimeline.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + var r2 = 0; + if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) + r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; + else { + var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); + var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); + r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + r2 = prevRotation + r2 * percent + bone.data.rotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + } + var r1 = setupPose ? bone.data.rotation : bone.rotation; + var total = 0, diff = r2 - r1; + if (diff == 0) { + total = timelinesRotation[i]; + } + else { + diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; + var lastTotal = 0, lastDiff = 0; + if (firstFrame) { + lastTotal = 0; + lastDiff = diff; + } + else { + lastTotal = timelinesRotation[i]; + lastDiff = timelinesRotation[i + 1]; + } + var current = diff > 0, dir = lastTotal >= 0; + if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { + if (Math.abs(lastTotal) > 180) + lastTotal += 360 * spine.MathUtils.signum(lastTotal); + dir = current; + } + total = diff + lastTotal - lastTotal % 360; + if (dir != current) + total += 360 * spine.MathUtils.signum(lastTotal); + timelinesRotation[i] = total; + } + timelinesRotation[i + 1] = diff; + r1 += total * alpha; + bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; + }; + AnimationState.prototype.queueEvents = function (entry, animationTime) { + var animationStart = entry.animationStart, animationEnd = entry.animationEnd; + var duration = animationEnd - animationStart; + var trackLastWrapped = entry.trackLast % duration; + var events = this.events; + var i = 0, n = events.length; + for (; i < n; i++) { + var event_1 = events[i]; + if (event_1.time < trackLastWrapped) + break; + if (event_1.time > animationEnd) + continue; + this.queue.event(entry, event_1); + } + if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) + : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { + this.queue.complete(entry); + } + for (; i < n; i++) { + var event_2 = events[i]; + if (event_2.time < animationStart) + continue; + this.queue.event(entry, events[i]); + } + }; + AnimationState.prototype.clearTracks = function () { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) + this.clearTrack(i); + this.tracks.length = 0; + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.clearTrack = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return; + var current = this.tracks[trackIndex]; + if (current == null) + return; + this.queue.end(current); + this.disposeNext(current); + var entry = current; + while (true) { + var from = entry.mixingFrom; + if (from == null) + break; + this.queue.end(from); + entry.mixingFrom = null; + entry = from; + } + this.tracks[current.trackIndex] = null; + this.queue.drain(); + }; + AnimationState.prototype.setCurrent = function (index, current, interrupt) { + var from = this.expandToIndex(index); + this.tracks[index] = current; + if (from != null) { + if (interrupt) + this.queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + if (from.mixingFrom != null && from.mixDuration > 0) + current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); + from.timelinesRotation.length = 0; + } + this.queue.start(current); + }; + AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.setAnimationWith(trackIndex, animation, loop); + }; + AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { + if (animation == null) + throw new Error("animation cannot be null."); + var interrupt = true; + var current = this.expandToIndex(trackIndex); + if (current != null) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = current.mixingFrom; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = current.mixingFrom; + interrupt = false; + } + else + this.disposeNext(current); + } + var entry = this.trackEntry(trackIndex, animation, loop, current); + this.setCurrent(trackIndex, entry, interrupt); + this.queue.drain(); + return entry; + }; + AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.addAnimationWith(trackIndex, animation, loop, delay); + }; + AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { + if (animation == null) + throw new Error("animation cannot be null."); + var last = this.expandToIndex(trackIndex); + if (last != null) { + while (last.next != null) + last = last.next; + } + var entry = this.trackEntry(trackIndex, animation, loop, last); + if (last == null) { + this.setCurrent(trackIndex, entry, true); + this.queue.drain(); + } + else { + last.next = entry; + if (delay <= 0) { + var duration = last.animationEnd - last.animationStart; + if (duration != 0) + delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); + else + delay = 0; + } + } + entry.delay = delay; + return entry; + }; + AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { + var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { + if (delay <= 0) + delay -= mixDuration; + var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.setEmptyAnimations = function (mixDuration) { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var current = this.tracks[i]; + if (current != null) + this.setEmptyAnimation(current.trackIndex, mixDuration); + } + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.expandToIndex = function (index) { + if (index < this.tracks.length) + return this.tracks[index]; + spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); + this.tracks.length = index + 1; + return null; + }; + AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { + var entry = this.trackEntryPool.obtain(); + entry.trackIndex = trackIndex; + entry.animation = animation; + entry.loop = loop; + entry.eventThreshold = 0; + entry.attachmentThreshold = 0; + entry.drawOrderThreshold = 0; + entry.animationStart = 0; + entry.animationEnd = animation.duration; + entry.animationLast = -1; + entry.nextAnimationLast = -1; + entry.delay = 0; + entry.trackTime = 0; + entry.trackLast = -1; + entry.nextTrackLast = -1; + entry.trackEnd = Number.MAX_VALUE; + entry.timeScale = 1; + entry.alpha = 1; + entry.interruptAlpha = 1; + entry.mixTime = 0; + entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); + return entry; + }; + AnimationState.prototype.disposeNext = function (entry) { + var next = entry.next; + while (next != null) { + this.queue.dispose(next); + next = next.next; + } + entry.next = null; + }; + AnimationState.prototype._animationsChanged = function () { + this.animationsChanged = false; + var propertyIDs = this.propertyIDs; + propertyIDs.clear(); + var mixingTo = this.mixingTo; + var lastEntry = null; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var entry = this.tracks[i]; + if (entry != null) { + entry.setTimelineData(lastEntry, mixingTo, propertyIDs); + lastEntry = entry; + } + } + }; + AnimationState.prototype.getCurrent = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return null; + return this.tracks[trackIndex]; + }; + AnimationState.prototype.addListener = function (listener) { + if (listener == null) + throw new Error("listener cannot be null."); + this.listeners.push(listener); + }; + AnimationState.prototype.removeListener = function (listener) { + var index = this.listeners.indexOf(listener); + if (index >= 0) + this.listeners.splice(index, 1); + }; + AnimationState.prototype.clearListeners = function () { + this.listeners.length = 0; + }; + AnimationState.prototype.clearListenerNotifications = function () { + this.queue.clear(); + }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); + AnimationState.SUBSEQUENT = 0; + AnimationState.FIRST = 1; + AnimationState.DIP = 2; + AnimationState.DIP_MIX = 3; + return AnimationState; + }()); + spine.AnimationState = AnimationState; + var TrackEntry = (function () { + function TrackEntry() { + this.timelineData = new Array(); + this.timelineDipMix = new Array(); + this.timelinesRotation = new Array(); + } + TrackEntry.prototype.reset = function () { + this.next = null; + this.mixingFrom = null; + this.animation = null; + this.listener = null; + this.timelineData.length = 0; + this.timelineDipMix.length = 0; + this.timelinesRotation.length = 0; + }; + TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { + if (to != null) + mixingToArray.push(to); + var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; + if (to != null) + mixingToArray.pop(); + var mixingTo = mixingToArray; + var mixingToLast = mixingToArray.length - 1; + var timelines = this.animation.timelines; + var timelinesCount = this.animation.timelines.length; + var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); + this.timelineDipMix.length = 0; + var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); + outer: for (var i = 0; i < timelinesCount; i++) { + var id = timelines[i].getPropertyId(); + if (!propertyIDs.add(id)) + timelineData[i] = AnimationState.SUBSEQUENT; + else if (to == null || !to.hasTimeline(id)) + timelineData[i] = AnimationState.FIRST; + else { + for (var ii = mixingToLast; ii >= 0; ii--) { + var entry = mixingTo[ii]; + if (!entry.hasTimeline(id)) { + if (entry.mixDuration > 0) { + timelineData[i] = AnimationState.DIP_MIX; + timelineDipMix[i] = entry; + continue outer; + } + } + } + timelineData[i] = AnimationState.DIP; + } + } + return lastEntry; + }; + TrackEntry.prototype.hasTimeline = function (id) { + var timelines = this.animation.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + if (timelines[i].getPropertyId() == id) + return true; + return false; + }; + TrackEntry.prototype.getAnimationTime = function () { + if (this.loop) { + var duration = this.animationEnd - this.animationStart; + if (duration == 0) + return this.animationStart; + return (this.trackTime % duration) + this.animationStart; + } + return Math.min(this.trackTime + this.animationStart, this.animationEnd); + }; + TrackEntry.prototype.setAnimationLast = function (animationLast) { + this.animationLast = animationLast; + this.nextAnimationLast = animationLast; + }; + TrackEntry.prototype.isComplete = function () { + return this.trackTime >= this.animationEnd - this.animationStart; + }; + TrackEntry.prototype.resetRotationDirections = function () { + this.timelinesRotation.length = 0; + }; + return TrackEntry; + }()); + spine.TrackEntry = TrackEntry; + var EventQueue = (function () { + function EventQueue(animState) { + this.objects = []; + this.drainDisabled = false; + this.animState = animState; + } + EventQueue.prototype.start = function (entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.interrupt = function (entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); + }; + EventQueue.prototype.end = function (entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.dispose = function (entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); + }; + EventQueue.prototype.complete = function (entry) { + this.objects.push(EventType.complete); + this.objects.push(entry); + }; + EventQueue.prototype.event = function (entry, event) { + this.objects.push(EventType.event); + this.objects.push(entry); + this.objects.push(event); + }; + EventQueue.prototype.drain = function () { + if (this.drainDisabled) + return; + this.drainDisabled = true; + var objects = this.objects; + var listeners = this.animState.listeners; + for (var i = 0; i < objects.length; i += 2) { + var type = objects[i]; + var entry = objects[i + 1]; + switch (type) { + case EventType.start: + if (entry.listener != null && entry.listener.start) + entry.listener.start(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].start) + listeners[ii].start(entry); + break; + case EventType.interrupt: + if (entry.listener != null && entry.listener.interrupt) + entry.listener.interrupt(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].interrupt) + listeners[ii].interrupt(entry); + break; + case EventType.end: + if (entry.listener != null && entry.listener.end) + entry.listener.end(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].end) + listeners[ii].end(entry); + case EventType.dispose: + if (entry.listener != null && entry.listener.dispose) + entry.listener.dispose(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].dispose) + listeners[ii].dispose(entry); + this.animState.trackEntryPool.free(entry); + break; + case EventType.complete: + if (entry.listener != null && entry.listener.complete) + entry.listener.complete(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].complete) + listeners[ii].complete(entry); + break; + case EventType.event: + var event_3 = objects[i++ + 2]; + if (entry.listener != null && entry.listener.event) + entry.listener.event(entry, event_3); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].event) + listeners[ii].event(entry, event_3); + break; + } + } + this.clear(); + this.drainDisabled = false; + }; + EventQueue.prototype.clear = function () { + this.objects.length = 0; + }; + return EventQueue; + }()); + spine.EventQueue = EventQueue; + (function (EventType) { + EventType[EventType["start"] = 0] = "start"; + EventType[EventType["interrupt"] = 1] = "interrupt"; + EventType[EventType["end"] = 2] = "end"; + EventType[EventType["dispose"] = 3] = "dispose"; + EventType[EventType["complete"] = 4] = "complete"; + EventType[EventType["event"] = 5] = "event"; + })(spine.EventType || (spine.EventType = {})); + var EventType = spine.EventType; + var AnimationStateAdapter2 = (function () { + function AnimationStateAdapter2() { + } + AnimationStateAdapter2.prototype.start = function (entry) { + }; + AnimationStateAdapter2.prototype.interrupt = function (entry) { + }; + AnimationStateAdapter2.prototype.end = function (entry) { + }; + AnimationStateAdapter2.prototype.dispose = function (entry) { + }; + AnimationStateAdapter2.prototype.complete = function (entry) { + }; + AnimationStateAdapter2.prototype.event = function (entry, event) { + }; + return AnimationStateAdapter2; + }()); + spine.AnimationStateAdapter2 = AnimationStateAdapter2; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationStateData = (function () { - function AnimationStateData(skeletonData) { - this.animationToMixTime = {}; - this.defaultMix = 0; - if (skeletonData == null) - throw new Error("skeletonData cannot be null."); - this.skeletonData = skeletonData; - } - AnimationStateData.prototype.setMix = function (fromName, toName, duration) { - var from = this.skeletonData.findAnimation(fromName); - if (from == null) - throw new Error("Animation not found: " + fromName); - var to = this.skeletonData.findAnimation(toName); - if (to == null) - throw new Error("Animation not found: " + toName); - this.setMixWith(from, to, duration); - }; - AnimationStateData.prototype.setMixWith = function (from, to, duration) { - if (from == null) - throw new Error("from cannot be null."); - if (to == null) - throw new Error("to cannot be null."); - var key = from.name + to.name; - this.animationToMixTime[key] = duration; - }; - AnimationStateData.prototype.getMix = function (from, to) { - var key = from.name + to.name; - var value = this.animationToMixTime[key]; - return value === undefined ? this.defaultMix : value; - }; - return AnimationStateData; - }()); - spine.AnimationStateData = AnimationStateData; + var AnimationStateData = (function () { + function AnimationStateData(skeletonData) { + this.animationToMixTime = {}; + this.defaultMix = 0; + if (skeletonData == null) + throw new Error("skeletonData cannot be null."); + this.skeletonData = skeletonData; + } + AnimationStateData.prototype.setMix = function (fromName, toName, duration) { + var from = this.skeletonData.findAnimation(fromName); + if (from == null) + throw new Error("Animation not found: " + fromName); + var to = this.skeletonData.findAnimation(toName); + if (to == null) + throw new Error("Animation not found: " + toName); + this.setMixWith(from, to, duration); + }; + AnimationStateData.prototype.setMixWith = function (from, to, duration) { + if (from == null) + throw new Error("from cannot be null."); + if (to == null) + throw new Error("to cannot be null."); + var key = from.name + to.name; + this.animationToMixTime[key] = duration; + }; + AnimationStateData.prototype.getMix = function (from, to) { + var key = from.name + to.name; + var value = this.animationToMixTime[key]; + return value === undefined ? this.defaultMix : value; + }; + return AnimationStateData; + }()); + spine.AnimationStateData = AnimationStateData; })(spine || (spine = {})); var spine; (function (spine) { - var AssetManager = (function () { - function AssetManager(textureLoader, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.assets = {}; - this.errors = {}; - this.toLoad = 0; - this.loaded = 0; - this.textureLoader = textureLoader; - this.pathPrefix = pathPrefix; - } - AssetManager.prototype.loadText = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.assets[path] = request.responseText; - if (success) - success(path, request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - if (error) - error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); - } - _this.toLoad--; - _this.loaded++; - } - }; - request.open("GET", path, true); - request.send(); - }; - AssetManager.prototype.loadTexture = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = path; - }; - AssetManager.prototype.loadTextureData = function (path, data, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = data; - }; - AssetManager.prototype.get = function (path) { - path = this.pathPrefix + path; - return this.assets[path]; - }; - AssetManager.prototype.remove = function (path) { - path = this.pathPrefix + path; - var asset = this.assets[path]; - if (asset.dispose) - asset.dispose(); - this.assets[path] = null; - }; - AssetManager.prototype.removeAll = function () { - for (var key in this.assets) { - var asset = this.assets[key]; - if (asset.dispose) - asset.dispose(); - } - this.assets = {}; - }; - AssetManager.prototype.isLoadingComplete = function () { - return this.toLoad == 0; - }; - AssetManager.prototype.getToLoad = function () { - return this.toLoad; - }; - AssetManager.prototype.getLoaded = function () { - return this.loaded; - }; - AssetManager.prototype.dispose = function () { - this.removeAll(); - }; - AssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - AssetManager.prototype.getErrors = function () { - return this.errors; - }; - return AssetManager; - }()); - spine.AssetManager = AssetManager; + var AssetManager = (function () { + function AssetManager(textureLoader, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.assets = {}; + this.errors = {}; + this.toLoad = 0; + this.loaded = 0; + this.textureLoader = textureLoader; + this.pathPrefix = pathPrefix; + } + AssetManager.prototype.loadText = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.assets[path] = request.responseText; + if (success) + success(path, request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + if (error) + error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); + } + _this.toLoad--; + _this.loaded++; + } + }; + request.open("GET", path, true); + request.send(); + }; + AssetManager.prototype.loadTexture = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = path; + }; + AssetManager.prototype.loadTextureData = function (path, data, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = data; + }; + AssetManager.prototype.get = function (path) { + path = this.pathPrefix + path; + return this.assets[path]; + }; + AssetManager.prototype.remove = function (path) { + path = this.pathPrefix + path; + var asset = this.assets[path]; + if (asset.dispose) + asset.dispose(); + this.assets[path] = null; + }; + AssetManager.prototype.removeAll = function () { + for (var key in this.assets) { + var asset = this.assets[key]; + if (asset.dispose) + asset.dispose(); + } + this.assets = {}; + }; + AssetManager.prototype.isLoadingComplete = function () { + return this.toLoad == 0; + }; + AssetManager.prototype.getToLoad = function () { + return this.toLoad; + }; + AssetManager.prototype.getLoaded = function () { + return this.loaded; + }; + AssetManager.prototype.dispose = function () { + this.removeAll(); + }; + AssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + AssetManager.prototype.getErrors = function () { + return this.errors; + }; + return AssetManager; + }()); + spine.AssetManager = AssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var AtlasAttachmentLoader = (function () { - function AtlasAttachmentLoader(atlas) { - this.atlas = atlas; - } - AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.RegionAttachment(name); - attachment.setRegion(region); - return attachment; - }; - AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.MeshAttachment(name); - attachment.region = region; - return attachment; - }; - AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { - return new spine.BoundingBoxAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { - return new spine.PathAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { - return new spine.PointAttachment(name); - }; - AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { - return new spine.ClippingAttachment(name); - }; - return AtlasAttachmentLoader; - }()); - spine.AtlasAttachmentLoader = AtlasAttachmentLoader; + var AtlasAttachmentLoader = (function () { + function AtlasAttachmentLoader(atlas) { + this.atlas = atlas; + } + AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.RegionAttachment(name); + attachment.setRegion(region); + return attachment; + }; + AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.MeshAttachment(name); + attachment.region = region; + return attachment; + }; + AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { + return new spine.BoundingBoxAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { + return new spine.PathAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { + return new spine.PointAttachment(name); + }; + AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { + return new spine.ClippingAttachment(name); + }; + return AtlasAttachmentLoader; + }()); + spine.AtlasAttachmentLoader = AtlasAttachmentLoader; })(spine || (spine = {})); var spine; (function (spine) { - var BlendMode; - (function (BlendMode) { - BlendMode[BlendMode["Normal"] = 0] = "Normal"; - BlendMode[BlendMode["Additive"] = 1] = "Additive"; - BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; - BlendMode[BlendMode["Screen"] = 3] = "Screen"; - })(BlendMode = spine.BlendMode || (spine.BlendMode = {})); + var Attachment = (function () { + function Attachment(name) { + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return Attachment; + }()); + spine.Attachment = Attachment; + var VertexAttachment = (function (_super) { + __extends(VertexAttachment, _super); + function VertexAttachment(name) { + _super.call(this, name); + this.worldVerticesLength = 0; + } + VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { + count = offset + (count >> 1) * stride; + var skeleton = slot.bone.skeleton; + var deformArray = slot.attachmentVertices; + var vertices = this.vertices; + var bones = this.bones; + if (bones == null) { + if (deformArray.length > 0) + vertices = deformArray; + var bone = slot.bone; + var x = bone.worldX; + var y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { + var vx = vertices[v_1], vy = vertices[v_1 + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + } + return; + } + var v = 0, skip = 0; + for (var i = 0; i < start; i += 2) { + var n = bones[v]; + v += n + 1; + skip += n; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = offset, b = skip * 3; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + else { + var deform = deformArray; + for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3, f += 2) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + }; + VertexAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment; + }; + return VertexAttachment; + }(Attachment)); + spine.VertexAttachment = VertexAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var Bone = (function () { - function Bone(data, skeleton, parent) { - this.children = new Array(); - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 0; - this.scaleY = 0; - this.shearX = 0; - this.shearY = 0; - this.ax = 0; - this.ay = 0; - this.arotation = 0; - this.ascaleX = 0; - this.ascaleY = 0; - this.ashearX = 0; - this.ashearY = 0; - this.appliedValid = false; - this.a = 0; - this.b = 0; - this.worldX = 0; - this.c = 0; - this.d = 0; - this.worldY = 0; - this.sorted = false; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.skeleton = skeleton; - this.parent = parent; - this.setToSetupPose(); - } - Bone.prototype.update = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransform = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { - this.ax = x; - this.ay = y; - this.arotation = rotation; - this.ascaleX = scaleX; - this.ascaleY = scaleY; - this.ashearX = shearX; - this.ashearY = shearY; - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - var skeleton = this.skeleton; - if (skeleton.flipX) { - x = -x; - la = -la; - lb = -lb; - } - if (skeleton.flipY) { - y = -y; - lc = -lc; - ld = -ld; - } - this.a = la; - this.b = lb; - this.c = lc; - this.d = ld; - this.worldX = x + skeleton.x; - this.worldY = y + skeleton.y; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - this.worldX = pa * x + pb * y + parent.worldX; - this.worldY = pc * x + pd * y + parent.worldY; - switch (this.data.transformMode) { - case spine.TransformMode.Normal: { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - return; - } - case spine.TransformMode.OnlyTranslation: { - var rotationY = rotation + 90 + shearY; - this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; - this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; - break; - } - case spine.TransformMode.NoRotationOrReflection: { - var s = pa * pa + pc * pc; - var prx = 0; - if (s > 0.0001) { - s = Math.abs(pa * pd - pb * pc) / s; - pb = pc * s; - pd = pa * s; - prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; - } - else { - pa = 0; - pc = 0; - prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; - } - var rx = rotation + shearX - prx; - var ry = rotation + shearY - prx + 90; - var la = spine.MathUtils.cosDeg(rx) * scaleX; - var lb = spine.MathUtils.cosDeg(ry) * scaleY; - var lc = spine.MathUtils.sinDeg(rx) * scaleX; - var ld = spine.MathUtils.sinDeg(ry) * scaleY; - this.a = pa * la - pb * lc; - this.b = pa * lb - pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - break; - } - case spine.TransformMode.NoScale: - case spine.TransformMode.NoScaleOrReflection: { - var cos = spine.MathUtils.cosDeg(rotation); - var sin = spine.MathUtils.sinDeg(rotation); - var za = pa * cos + pb * sin; - var zc = pc * cos + pd * sin; - var s = Math.sqrt(za * za + zc * zc); - if (s > 0.00001) - s = 1 / s; - za *= s; - zc *= s; - s = Math.sqrt(za * za + zc * zc); - var r = Math.PI / 2 + Math.atan2(zc, za); - var zb = Math.cos(r) * s; - var zd = Math.sin(r) * s; - var la = spine.MathUtils.cosDeg(shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; - var lc = spine.MathUtils.sinDeg(shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; - this.a = za * la + zb * lc; - this.b = za * lb + zb * ld; - this.c = zc * la + zd * lc; - this.d = zc * lb + zd * ld; - if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { - this.b = -this.b; - this.d = -this.d; - } - return; - } - } - if (this.skeleton.flipX) { - this.a = -this.a; - this.b = -this.b; - } - if (this.skeleton.flipY) { - this.c = -this.c; - this.d = -this.d; - } - }; - Bone.prototype.setToSetupPose = function () { - var data = this.data; - this.x = data.x; - this.y = data.y; - this.rotation = data.rotation; - this.scaleX = data.scaleX; - this.scaleY = data.scaleY; - this.shearX = data.shearX; - this.shearY = data.shearY; - }; - Bone.prototype.getWorldRotationX = function () { - return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldRotationY = function () { - return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldScaleX = function () { - return Math.sqrt(this.a * this.a + this.c * this.c); - }; - Bone.prototype.getWorldScaleY = function () { - return Math.sqrt(this.b * this.b + this.d * this.d); - }; - Bone.prototype.updateAppliedTransform = function () { - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - this.ax = this.worldX; - this.ay = this.worldY; - this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); - this.ashearX = 0; - this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - var pid = 1 / (pa * pd - pb * pc); - var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; - this.ax = (dx * pd * pid - dy * pb * pid); - this.ay = (dy * pa * pid - dx * pc * pid); - var ia = pid * pd; - var id = pid * pa; - var ib = pid * pb; - var ic = pid * pc; - var ra = ia * this.a - ib * this.c; - var rb = ia * this.b - ib * this.d; - var rc = id * this.c - ic * this.a; - var rd = id * this.d - ic * this.b; - this.ashearX = 0; - this.ascaleX = Math.sqrt(ra * ra + rc * rc); - if (this.ascaleX > 0.0001) { - var det = ra * rd - rb * rc; - this.ascaleY = det / this.ascaleX; - this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; - this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; - } - else { - this.ascaleX = 0; - this.ascaleY = Math.sqrt(rb * rb + rd * rd); - this.ashearY = 0; - this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; - } - }; - Bone.prototype.worldToLocal = function (world) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var invDet = 1 / (a * d - b * c); - var x = world.x - this.worldX, y = world.y - this.worldY; - world.x = (x * d * invDet - y * b * invDet); - world.y = (y * a * invDet - x * c * invDet); - return world; - }; - Bone.prototype.localToWorld = function (local) { - var x = local.x, y = local.y; - local.x = x * this.a + y * this.b + this.worldX; - local.y = x * this.c + y * this.d + this.worldY; - return local; - }; - Bone.prototype.worldToLocalRotation = function (worldRotation) { - var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); - return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; - }; - Bone.prototype.localToWorldRotation = function (localRotation) { - var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); - return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.rotateWorld = function (degrees) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); - this.a = cos * a - sin * c; - this.b = cos * b - sin * d; - this.c = sin * a + cos * c; - this.d = sin * b + cos * d; - this.appliedValid = false; - }; - return Bone; - }()); - spine.Bone = Bone; + (function (AttachmentType) { + AttachmentType[AttachmentType["Region"] = 0] = "Region"; + AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; + AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; + AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; + AttachmentType[AttachmentType["Path"] = 4] = "Path"; + AttachmentType[AttachmentType["Point"] = 5] = "Point"; + })(spine.AttachmentType || (spine.AttachmentType = {})); + var AttachmentType = spine.AttachmentType; })(spine || (spine = {})); var spine; (function (spine) { - var BoneData = (function () { - function BoneData(index, name, parent) { - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 1; - this.scaleY = 1; - this.shearX = 0; - this.shearY = 0; - this.transformMode = TransformMode.Normal; - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - this.index = index; - this.name = name; - this.parent = parent; - } - return BoneData; - }()); - spine.BoneData = BoneData; - var TransformMode; - (function (TransformMode) { - TransformMode[TransformMode["Normal"] = 0] = "Normal"; - TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; - TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; - TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; - TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; - })(TransformMode = spine.TransformMode || (spine.TransformMode = {})); + var BoundingBoxAttachment = (function (_super) { + __extends(BoundingBoxAttachment, _super); + function BoundingBoxAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + } + return BoundingBoxAttachment; + }(spine.VertexAttachment)); + spine.BoundingBoxAttachment = BoundingBoxAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var Event = (function () { - function Event(time, data) { - if (data == null) - throw new Error("data cannot be null."); - this.time = time; - this.data = data; - } - return Event; - }()); - spine.Event = Event; + var ClippingAttachment = (function (_super) { + __extends(ClippingAttachment, _super); + function ClippingAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); + } + return ClippingAttachment; + }(spine.VertexAttachment)); + spine.ClippingAttachment = ClippingAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var EventData = (function () { - function EventData(name) { - this.name = name; - } - return EventData; - }()); - spine.EventData = EventData; + var MeshAttachment = (function (_super) { + __extends(MeshAttachment, _super); + function MeshAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + this.inheritDeform = false; + this.tempColor = new spine.Color(0, 0, 0, 0); + } + MeshAttachment.prototype.updateUVs = function () { + var u = 0, v = 0, width = 0, height = 0; + if (this.region == null) { + u = v = 0; + width = height = 1; + } + else { + u = this.region.u; + v = this.region.v; + width = this.region.u2 - u; + height = this.region.v2 - v; + } + var regionUVs = this.regionUVs; + if (this.uvs == null || this.uvs.length != regionUVs.length) + this.uvs = spine.Utils.newFloatArray(regionUVs.length); + var uvs = this.uvs; + if (this.region.rotate) { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); + }; + MeshAttachment.prototype.getParentMesh = function () { + return this.parentMesh; + }; + MeshAttachment.prototype.setParentMesh = function (parentMesh) { + this.parentMesh = parentMesh; + if (parentMesh != null) { + this.bones = parentMesh.bones; + this.vertices = parentMesh.vertices; + this.worldVerticesLength = parentMesh.worldVerticesLength; + this.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + this.worldVerticesLength = parentMesh.worldVerticesLength; + } + }; + return MeshAttachment; + }(spine.VertexAttachment)); + spine.MeshAttachment = MeshAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraint = (function () { - function IkConstraint(data, skeleton) { - this.mix = 1; - this.bendDirection = 0; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.mix = data.mix; - this.bendDirection = data.bendDirection; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - IkConstraint.prototype.getOrder = function () { - return this.data.order; - }; - IkConstraint.prototype.apply = function () { - this.update(); - }; - IkConstraint.prototype.update = function () { - var target = this.target; - var bones = this.bones; - switch (bones.length) { - case 1: - this.apply1(bones[0], target.worldX, target.worldY, this.mix); - break; - case 2: - this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); - break; - } - }; - IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var p = bone.parent; - var id = 1 / (p.a * p.d - p.b * p.c); - var x = targetX - p.worldX, y = targetY - p.worldY; - var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; - var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; - if (bone.ascaleX < 0) - rotationIK += 180; - if (rotationIK > 180) - rotationIK -= 360; - else if (rotationIK < -180) - rotationIK += 360; - bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); - }; - IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { - if (alpha == 0) { - child.updateWorldTransform(); - return; - } - if (!parent.appliedValid) - parent.updateAppliedTransform(); - if (!child.appliedValid) - child.updateAppliedTransform(); - var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; - var os1 = 0, os2 = 0, s2 = 0; - if (psx < 0) { - psx = -psx; - os1 = 180; - s2 = -1; - } - else { - os1 = 0; - s2 = 1; - } - if (psy < 0) { - psy = -psy; - s2 = -s2; - } - if (csx < 0) { - csx = -csx; - os2 = 180; - } - else - os2 = 0; - var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; - var u = Math.abs(psx - psy) <= 0.0001; - if (!u) { - cy = 0; - cwx = a * cx + parent.worldX; - cwy = c * cx + parent.worldY; - } - else { - cy = child.ay; - cwx = a * cx + b * cy + parent.worldX; - cwy = c * cx + d * cy + parent.worldY; - } - var pp = parent.parent; - a = pp.a; - b = pp.b; - c = pp.c; - d = pp.d; - var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; - var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; - x = cwx - pp.worldX; - y = cwy - pp.worldY; - var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; - var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; - outer: if (u) { - l2 *= psx; - var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); - if (cos < -1) - cos = -1; - else if (cos > 1) - cos = 1; - a2 = Math.acos(cos) * bendDir; - a = l1 + l2 * cos; - b = l2 * Math.sin(a2); - a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); - } - else { - a = psx * l2; - b = psy * l2; - var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); - c = bb * l1 * l1 + aa * dd - aa * bb; - var c1 = -2 * bb * l1, c2 = bb - aa; - d = c1 * c1 - 4 * c2 * c; - if (d >= 0) { - var q = Math.sqrt(d); - if (c1 < 0) - q = -q; - q = -(c1 + q) / 2; - var r0 = q / c2, r1 = c / q; - var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; - if (r * r <= dd) { - y = Math.sqrt(dd - r * r) * bendDir; - a1 = ta - Math.atan2(y, r); - a2 = Math.atan2(y / psy, (r - l1) / psx); - break outer; - } - } - var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; - var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; - c = -a * l1 / (aa - bb); - if (c >= -1 && c <= 1) { - c = Math.acos(c); - x = a * Math.cos(c) + l1; - y = b * Math.sin(c); - d = x * x + y * y; - if (d < minDist) { - minAngle = c; - minDist = d; - minX = x; - minY = y; - } - if (d > maxDist) { - maxAngle = c; - maxDist = d; - maxX = x; - maxY = y; - } - } - if (dd <= (minDist + maxDist) / 2) { - a1 = ta - Math.atan2(minY * bendDir, minX); - a2 = minAngle * bendDir; - } - else { - a1 = ta - Math.atan2(maxY * bendDir, maxX); - a2 = maxAngle * bendDir; - } - } - var os = Math.atan2(cy, cx) * s2; - var rotation = parent.arotation; - a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; - if (a1 > 180) - a1 -= 360; - else if (a1 < -180) - a1 += 360; - parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); - rotation = child.arotation; - a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; - if (a2 > 180) - a2 -= 360; - else if (a2 < -180) - a2 += 360; - child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); - }; - return IkConstraint; - }()); - spine.IkConstraint = IkConstraint; + var PathAttachment = (function (_super) { + __extends(PathAttachment, _super); + function PathAttachment(name) { + _super.call(this, name); + this.closed = false; + this.constantSpeed = false; + this.color = new spine.Color(1, 1, 1, 1); + } + return PathAttachment; + }(spine.VertexAttachment)); + spine.PathAttachment = PathAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraintData = (function () { - function IkConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.bendDirection = 1; - this.mix = 1; - this.name = name; - } - return IkConstraintData; - }()); - spine.IkConstraintData = IkConstraintData; + var PointAttachment = (function (_super) { + __extends(PointAttachment, _super); + function PointAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.38, 0.94, 0, 1); + } + PointAttachment.prototype.computeWorldPosition = function (bone, point) { + point.x = this.x * bone.a + this.y * bone.b + bone.worldX; + point.y = this.x * bone.c + this.y * bone.d + bone.worldY; + return point; + }; + PointAttachment.prototype.computeWorldRotation = function (bone) { + var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); + var x = cos * bone.a + sin * bone.b; + var y = cos * bone.c + sin * bone.d; + return Math.atan2(y, x) * spine.MathUtils.radDeg; + }; + return PointAttachment; + }(spine.VertexAttachment)); + spine.PointAttachment = PointAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraint = (function () { - function PathConstraint(data, skeleton) { - this.position = 0; - this.spacing = 0; - this.rotateMix = 0; - this.translateMix = 0; - this.spaces = new Array(); - this.positions = new Array(); - this.world = new Array(); - this.curves = new Array(); - this.lengths = new Array(); - this.segments = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0, n = data.bones.length; i < n; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findSlot(data.target.name); - this.position = data.position; - this.spacing = data.spacing; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - } - PathConstraint.prototype.apply = function () { - this.update(); - }; - PathConstraint.prototype.update = function () { - var attachment = this.target.getAttachment(); - if (!(attachment instanceof spine.PathAttachment)) - return; - var rotateMix = this.rotateMix, translateMix = this.translateMix; - var translate = translateMix > 0, rotate = rotateMix > 0; - if (!translate && !rotate) - return; - var data = this.data; - var spacingMode = data.spacingMode; - var lengthSpacing = spacingMode == spine.SpacingMode.Length; - var rotateMode = data.rotateMode; - var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; - var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; - var bones = this.bones; - var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; - var spacing = this.spacing; - if (scale || lengthSpacing) { - if (scale) - lengths = spine.Utils.setArraySize(this.lengths, boneCount); - for (var i = 0, n = spacesCount - 1; i < n;) { - var bone = bones[i]; - var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; - var length_1 = Math.sqrt(x * x + y * y); - if (scale) - lengths[i] = length_1; - spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; - } - } - else { - for (var i = 1; i < spacesCount; i++) - spaces[i] = spacing; - } - var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); - var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - var tip = false; - if (offsetRotation == 0) - tip = rotateMode == spine.RotateMode.Chain; - else { - tip = false; - var p = this.target.bone; - offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - } - for (var i = 0, p = 3; i < boneCount; i++, p += 3) { - var bone = bones[i]; - bone.worldX += (boneX - bone.worldX) * translateMix; - bone.worldY += (boneY - bone.worldY) * translateMix; - var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; - if (scale) { - var length_2 = lengths[i]; - if (length_2 != 0) { - var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; - bone.a *= s; - bone.c *= s; - } - } - boneX = x; - boneY = y; - if (rotate) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; - if (tangents) - r = positions[p - 1]; - else if (spaces[i + 1] == 0) - r = positions[p + 2]; - else - r = Math.atan2(dy, dx); - r -= Math.atan2(c, a); - if (tip) { - cos = Math.cos(r); - sin = Math.sin(r); - var length_3 = bone.data.length; - boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; - boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; - } - else { - r += offsetRotation; - } - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - cos = Math.cos(r); - sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - } - bone.appliedValid = false; - } - }; - PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { - var target = this.target; - var position = this.position; - var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; - var closed = path.closed; - var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; - if (!path.constantSpeed) { - var lengths = path.lengths; - curveCount -= closed ? 1 : 2; - var pathLength_1 = lengths[curveCount]; - if (percentPosition) - position *= pathLength_1; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength_1; - } - world = spine.Utils.setArraySize(this.world, 8); - for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength_1; - if (p < 0) - p += pathLength_1; - curve = 0; - } - else if (p < 0) { - if (prevCurve != PathConstraint.BEFORE) { - prevCurve = PathConstraint.BEFORE; - path.computeWorldVertices(target, 2, 4, world, 0, 2); - } - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength_1) { - if (prevCurve != PathConstraint.AFTER) { - prevCurve = PathConstraint.AFTER; - path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); - } - this.addAfterPosition(p - pathLength_1, world, 0, out, o); - continue; - } - for (;; curve++) { - var length_4 = lengths[curve]; - if (p > length_4) - continue; - if (curve == 0) - p /= length_4; - else { - var prev = lengths[curve - 1]; - p = (p - prev) / (length_4 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - if (closed && curve == curveCount) { - path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); - path.computeWorldVertices(target, 0, 4, world, 4, 2); - } - else - path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); - } - this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); - } - return out; - } - if (closed) { - verticesLength += 2; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); - path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); - world[verticesLength - 2] = world[0]; - world[verticesLength - 1] = world[1]; - } - else { - curveCount--; - verticesLength -= 4; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); - } - var curves = spine.Utils.setArraySize(this.curves, curveCount); - var pathLength = 0; - var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; - var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; - for (var i = 0, w = 2; i < curveCount; i++, w += 6) { - cx1 = world[w]; - cy1 = world[w + 1]; - cx2 = world[w + 2]; - cy2 = world[w + 3]; - x2 = world[w + 4]; - y2 = world[w + 5]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; - tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - curves[i] = pathLength; - x1 = x2; - y1 = y2; - } - if (percentPosition) - position *= pathLength; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength; - } - var segments = this.segments; - var curveLength = 0; - for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength; - if (p < 0) - p += pathLength; - curve = 0; - } - else if (p < 0) { - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength) { - this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); - continue; - } - for (;; curve++) { - var length_5 = curves[curve]; - if (p > length_5) - continue; - if (curve == 0) - p /= length_5; - else { - var prev = curves[curve - 1]; - p = (p - prev) / (length_5 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - var ii = curve * 6; - x1 = world[ii]; - y1 = world[ii + 1]; - cx1 = world[ii + 2]; - cy1 = world[ii + 3]; - cx2 = world[ii + 4]; - cy2 = world[ii + 5]; - x2 = world[ii + 6]; - y2 = world[ii + 7]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.03; - tmpy = (y1 - cy1 * 2 + cy2) * 0.03; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; - curveLength = Math.sqrt(dfx * dfx + dfy * dfy); - segments[0] = curveLength; - for (ii = 1; ii < 8; ii++) { - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[ii] = curveLength; - } - dfx += ddfx; - dfy += ddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[8] = curveLength; - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[9] = curveLength; - segment = 0; - } - p *= curveLength; - for (;; segment++) { - var length_6 = segments[segment]; - if (p > length_6) - continue; - if (segment == 0) - p /= length_6; - else { - var prev = segments[segment - 1]; - p = segment + (p - prev) / (length_6 - prev); - } - break; - } - this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); - } - return out; - }; - PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { - var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { - var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { - if (p == 0 || isNaN(p)) - p = 0.0001; - var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; - var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; - var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; - out[o] = x; - out[o + 1] = y; - if (tangents) - out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); - }; - PathConstraint.prototype.getOrder = function () { - return this.data.order; - }; - return PathConstraint; - }()); - PathConstraint.NONE = -1; - PathConstraint.BEFORE = -2; - PathConstraint.AFTER = -3; - spine.PathConstraint = PathConstraint; + var RegionAttachment = (function (_super) { + __extends(RegionAttachment, _super); + function RegionAttachment(name) { + _super.call(this, name); + this.x = 0; + this.y = 0; + this.scaleX = 1; + this.scaleY = 1; + this.rotation = 0; + this.width = 0; + this.height = 0; + this.color = new spine.Color(1, 1, 1, 1); + this.offset = spine.Utils.newFloatArray(8); + this.uvs = spine.Utils.newFloatArray(8); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.updateOffset = function () { + var regionScaleX = this.width / this.region.originalWidth * this.scaleX; + var regionScaleY = this.height / this.region.originalHeight * this.scaleY; + var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; + var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; + var localX2 = localX + this.region.width * regionScaleX; + var localY2 = localY + this.region.height * regionScaleY; + var radians = this.rotation * Math.PI / 180; + var cos = Math.cos(radians); + var sin = Math.sin(radians); + var localXCos = localX * cos + this.x; + var localXSin = localX * sin; + var localYCos = localY * cos + this.y; + var localYSin = localY * sin; + var localX2Cos = localX2 * cos + this.x; + var localX2Sin = localX2 * sin; + var localY2Cos = localY2 * cos + this.y; + var localY2Sin = localY2 * sin; + var offset = this.offset; + offset[RegionAttachment.OX1] = localXCos - localYSin; + offset[RegionAttachment.OY1] = localYCos + localXSin; + offset[RegionAttachment.OX2] = localXCos - localY2Sin; + offset[RegionAttachment.OY2] = localY2Cos + localXSin; + offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; + offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; + offset[RegionAttachment.OX4] = localX2Cos - localYSin; + offset[RegionAttachment.OY4] = localYCos + localX2Sin; + }; + RegionAttachment.prototype.setRegion = function (region) { + this.region = region; + var uvs = this.uvs; + if (region.rotate) { + uvs[2] = region.u; + uvs[3] = region.v2; + uvs[4] = region.u; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v; + uvs[0] = region.u2; + uvs[1] = region.v2; + } + else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; + } + }; + RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { + var vertexOffset = this.offset; + var x = bone.worldX, y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var offsetX = 0, offsetY = 0; + offsetX = vertexOffset[RegionAttachment.OX1]; + offsetY = vertexOffset[RegionAttachment.OY1]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX2]; + offsetY = vertexOffset[RegionAttachment.OY2]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX3]; + offsetY = vertexOffset[RegionAttachment.OY3]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX4]; + offsetY = vertexOffset[RegionAttachment.OY4]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + }; + RegionAttachment.OX1 = 0; + RegionAttachment.OY1 = 1; + RegionAttachment.OX2 = 2; + RegionAttachment.OY2 = 3; + RegionAttachment.OX3 = 4; + RegionAttachment.OY3 = 5; + RegionAttachment.OX4 = 6; + RegionAttachment.OY4 = 7; + RegionAttachment.X1 = 0; + RegionAttachment.Y1 = 1; + RegionAttachment.C1R = 2; + RegionAttachment.C1G = 3; + RegionAttachment.C1B = 4; + RegionAttachment.C1A = 5; + RegionAttachment.U1 = 6; + RegionAttachment.V1 = 7; + RegionAttachment.X2 = 8; + RegionAttachment.Y2 = 9; + RegionAttachment.C2R = 10; + RegionAttachment.C2G = 11; + RegionAttachment.C2B = 12; + RegionAttachment.C2A = 13; + RegionAttachment.U2 = 14; + RegionAttachment.V2 = 15; + RegionAttachment.X3 = 16; + RegionAttachment.Y3 = 17; + RegionAttachment.C3R = 18; + RegionAttachment.C3G = 19; + RegionAttachment.C3B = 20; + RegionAttachment.C3A = 21; + RegionAttachment.U3 = 22; + RegionAttachment.V3 = 23; + RegionAttachment.X4 = 24; + RegionAttachment.Y4 = 25; + RegionAttachment.C4R = 26; + RegionAttachment.C4G = 27; + RegionAttachment.C4B = 28; + RegionAttachment.C4A = 29; + RegionAttachment.U4 = 30; + RegionAttachment.V4 = 31; + return RegionAttachment; + }(spine.Attachment)); + spine.RegionAttachment = RegionAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraintData = (function () { - function PathConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.name = name; - } - return PathConstraintData; - }()); - spine.PathConstraintData = PathConstraintData; - var PositionMode; - (function (PositionMode) { - PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; - PositionMode[PositionMode["Percent"] = 1] = "Percent"; - })(PositionMode = spine.PositionMode || (spine.PositionMode = {})); - var SpacingMode; - (function (SpacingMode) { - SpacingMode[SpacingMode["Length"] = 0] = "Length"; - SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; - SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; - })(SpacingMode = spine.SpacingMode || (spine.SpacingMode = {})); - var RotateMode; - (function (RotateMode) { - RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; - RotateMode[RotateMode["Chain"] = 1] = "Chain"; - RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; - })(RotateMode = spine.RotateMode || (spine.RotateMode = {})); + (function (BlendMode) { + BlendMode[BlendMode["Normal"] = 0] = "Normal"; + BlendMode[BlendMode["Additive"] = 1] = "Additive"; + BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; + BlendMode[BlendMode["Screen"] = 3] = "Screen"; + })(spine.BlendMode || (spine.BlendMode = {})); + var BlendMode = spine.BlendMode; })(spine || (spine = {})); var spine; (function (spine) { - var Assets = (function () { - function Assets(clientId) { - this.toLoad = new Array(); - this.assets = {}; - this.clientId = clientId; - } - Assets.prototype.loaded = function () { - var i = 0; - for (var v in this.assets) - i++; - return i; - }; - return Assets; - }()); - var SharedAssetManager = (function () { - function SharedAssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.clientAssets = {}; - this.queuedAssets = {}; - this.rawAssets = {}; - this.errors = {}; - this.pathPrefix = pathPrefix; - } - SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) { - clientAssets = new Assets(clientId); - this.clientAssets[clientId] = clientAssets; - } - if (textureLoader !== null) - clientAssets.textureLoader = textureLoader; - clientAssets.toLoad.push(path); - if (this.queuedAssets[path] === path) { - return false; - } - else { - this.queuedAssets[path] = path; - return true; - } - }; - SharedAssetManager.prototype.loadText = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = request.responseText; - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadJson = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = JSON.parse(request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, textureLoader, path)) - return; - var img = new Image(); - img.src = path; - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - _this.rawAssets[path] = img; - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - }; - }; - SharedAssetManager.prototype.get = function (clientId, path) { - path = this.pathPrefix + path; - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - return clientAssets.assets[path]; - }; - SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { - for (var i = 0; i < clientAssets.toLoad.length; i++) { - var path = clientAssets.toLoad[i]; - var asset = clientAssets.assets[path]; - if (asset === null || asset === undefined) { - var rawAsset = this.rawAssets[path]; - if (rawAsset === null || rawAsset === undefined) - continue; - if (rawAsset instanceof HTMLImageElement) { - clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); - } - else { - clientAssets.assets[path] = rawAsset; - } - } - } - }; - SharedAssetManager.prototype.isLoadingComplete = function (clientId) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - this.updateClientAssets(clientAssets); - return clientAssets.toLoad.length == clientAssets.loaded(); - }; - SharedAssetManager.prototype.dispose = function () { - }; - SharedAssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - SharedAssetManager.prototype.getErrors = function () { - return this.errors; - }; - return SharedAssetManager; - }()); - spine.SharedAssetManager = SharedAssetManager; + var Bone = (function () { + function Bone(data, skeleton, parent) { + this.children = new Array(); + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 0; + this.scaleY = 0; + this.shearX = 0; + this.shearY = 0; + this.ax = 0; + this.ay = 0; + this.arotation = 0; + this.ascaleX = 0; + this.ascaleY = 0; + this.ashearX = 0; + this.ashearY = 0; + this.appliedValid = false; + this.a = 0; + this.b = 0; + this.worldX = 0; + this.c = 0; + this.d = 0; + this.worldY = 0; + this.sorted = false; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.skeleton = skeleton; + this.parent = parent; + this.setToSetupPose(); + } + Bone.prototype.update = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransform = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { + this.ax = x; + this.ay = y; + this.arotation = rotation; + this.ascaleX = scaleX; + this.ascaleY = scaleY; + this.ashearX = shearX; + this.ashearY = shearY; + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + var skeleton = this.skeleton; + if (skeleton.flipX) { + x = -x; + la = -la; + lb = -lb; + } + if (skeleton.flipY) { + y = -y; + lc = -lc; + ld = -ld; + } + this.a = la; + this.b = lb; + this.c = lc; + this.d = ld; + this.worldX = x + skeleton.x; + this.worldY = y + skeleton.y; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + this.worldX = pa * x + pb * y + parent.worldX; + this.worldY = pc * x + pd * y + parent.worldY; + switch (this.data.transformMode) { + case spine.TransformMode.Normal: { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + this.a = pa * la + pb * lc; + this.b = pa * lb + pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + return; + } + case spine.TransformMode.OnlyTranslation: { + var rotationY = rotation + 90 + shearY; + this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; + this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; + break; + } + case spine.TransformMode.NoRotationOrReflection: { + var s = pa * pa + pc * pc; + var prx = 0; + if (s > 0.0001) { + s = Math.abs(pa * pd - pb * pc) / s; + pb = pc * s; + pd = pa * s; + prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; + } + else { + pa = 0; + pc = 0; + prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; + } + var rx = rotation + shearX - prx; + var ry = rotation + shearY - prx + 90; + var la = spine.MathUtils.cosDeg(rx) * scaleX; + var lb = spine.MathUtils.cosDeg(ry) * scaleY; + var lc = spine.MathUtils.sinDeg(rx) * scaleX; + var ld = spine.MathUtils.sinDeg(ry) * scaleY; + this.a = pa * la - pb * lc; + this.b = pa * lb - pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + break; + } + case spine.TransformMode.NoScale: + case spine.TransformMode.NoScaleOrReflection: { + var cos = spine.MathUtils.cosDeg(rotation); + var sin = spine.MathUtils.sinDeg(rotation); + var za = pa * cos + pb * sin; + var zc = pc * cos + pd * sin; + var s = Math.sqrt(za * za + zc * zc); + if (s > 0.00001) + s = 1 / s; + za *= s; + zc *= s; + s = Math.sqrt(za * za + zc * zc); + var r = Math.PI / 2 + Math.atan2(zc, za); + var zb = Math.cos(r) * s; + var zd = Math.sin(r) * s; + var la = spine.MathUtils.cosDeg(shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; + var lc = spine.MathUtils.sinDeg(shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; + this.a = za * la + zb * lc; + this.b = za * lb + zb * ld; + this.c = zc * la + zd * lc; + this.d = zc * lb + zd * ld; + if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { + this.b = -this.b; + this.d = -this.d; + } + return; + } + } + if (this.skeleton.flipX) { + this.a = -this.a; + this.b = -this.b; + } + if (this.skeleton.flipY) { + this.c = -this.c; + this.d = -this.d; + } + }; + Bone.prototype.setToSetupPose = function () { + var data = this.data; + this.x = data.x; + this.y = data.y; + this.rotation = data.rotation; + this.scaleX = data.scaleX; + this.scaleY = data.scaleY; + this.shearX = data.shearX; + this.shearY = data.shearY; + }; + Bone.prototype.getWorldRotationX = function () { + return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldRotationY = function () { + return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldScaleX = function () { + return Math.sqrt(this.a * this.a + this.c * this.c); + }; + Bone.prototype.getWorldScaleY = function () { + return Math.sqrt(this.b * this.b + this.d * this.d); + }; + Bone.prototype.updateAppliedTransform = function () { + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + this.ax = this.worldX; + this.ay = this.worldY; + this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); + this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); + this.ashearX = 0; + this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + var pid = 1 / (pa * pd - pb * pc); + var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; + this.ax = (dx * pd * pid - dy * pb * pid); + this.ay = (dy * pa * pid - dx * pc * pid); + var ia = pid * pd; + var id = pid * pa; + var ib = pid * pb; + var ic = pid * pc; + var ra = ia * this.a - ib * this.c; + var rb = ia * this.b - ib * this.d; + var rc = id * this.c - ic * this.a; + var rd = id * this.d - ic * this.b; + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { + var det = ra * rd - rb * rc; + this.ascaleY = det / this.ascaleX; + this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; + this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; + } + else { + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; + } + }; + Bone.prototype.worldToLocal = function (world) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var invDet = 1 / (a * d - b * c); + var x = world.x - this.worldX, y = world.y - this.worldY; + world.x = (x * d * invDet - y * b * invDet); + world.y = (y * a * invDet - x * c * invDet); + return world; + }; + Bone.prototype.localToWorld = function (local) { + var x = local.x, y = local.y; + local.x = x * this.a + y * this.b + this.worldX; + local.y = x * this.c + y * this.d + this.worldY; + return local; + }; + Bone.prototype.worldToLocalRotation = function (worldRotation) { + var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); + return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; + }; + Bone.prototype.localToWorldRotation = function (localRotation) { + var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); + return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.rotateWorld = function (degrees) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); + this.a = cos * a - sin * c; + this.b = cos * b - sin * d; + this.c = sin * a + cos * c; + this.d = sin * b + cos * d; + this.appliedValid = false; + }; + return Bone; + }()); + spine.Bone = Bone; })(spine || (spine = {})); var spine; (function (spine) { - var Skeleton = (function () { - function Skeleton(data) { - this._updateCache = new Array(); - this.updateCacheReset = new Array(); - this.time = 0; - this.flipX = false; - this.flipY = false; - this.x = 0; - this.y = 0; - if (data == null) - throw new Error("data cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) { - var boneData = data.bones[i]; - var bone = void 0; - if (boneData.parent == null) - bone = new spine.Bone(boneData, this, null); - else { - var parent_1 = this.bones[boneData.parent.index]; - bone = new spine.Bone(boneData, this, parent_1); - parent_1.children.push(bone); - } - this.bones.push(bone); - } - this.slots = new Array(); - this.drawOrder = new Array(); - for (var i = 0; i < data.slots.length; i++) { - var slotData = data.slots[i]; - var bone = this.bones[slotData.boneData.index]; - var slot = new spine.Slot(slotData, bone); - this.slots.push(slot); - this.drawOrder.push(slot); - } - this.ikConstraints = new Array(); - for (var i = 0; i < data.ikConstraints.length; i++) { - var ikConstraintData = data.ikConstraints[i]; - this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); - } - this.transformConstraints = new Array(); - for (var i = 0; i < data.transformConstraints.length; i++) { - var transformConstraintData = data.transformConstraints[i]; - this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); - } - this.pathConstraints = new Array(); - for (var i = 0; i < data.pathConstraints.length; i++) { - var pathConstraintData = data.pathConstraints[i]; - this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); - } - this.color = new spine.Color(1, 1, 1, 1); - this.updateCache(); - } - Skeleton.prototype.updateCache = function () { - var updateCache = this._updateCache; - updateCache.length = 0; - this.updateCacheReset.length = 0; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].sorted = false; - var ikConstraints = this.ikConstraints; - var transformConstraints = this.transformConstraints; - var pathConstraints = this.pathConstraints; - var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; - var constraintCount = ikCount + transformCount + pathCount; - outer: for (var i = 0; i < constraintCount; i++) { - for (var ii = 0; ii < ikCount; ii++) { - var constraint = ikConstraints[ii]; - if (constraint.data.order == i) { - this.sortIkConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < transformCount; ii++) { - var constraint = transformConstraints[ii]; - if (constraint.data.order == i) { - this.sortTransformConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < pathCount; ii++) { - var constraint = pathConstraints[ii]; - if (constraint.data.order == i) { - this.sortPathConstraint(constraint); - continue outer; - } - } - } - for (var i = 0, n = bones.length; i < n; i++) - this.sortBone(bones[i]); - }; - Skeleton.prototype.sortIkConstraint = function (constraint) { - var target = constraint.target; - this.sortBone(target); - var constrained = constraint.bones; - var parent = constrained[0]; - this.sortBone(parent); - if (constrained.length > 1) { - var child = constrained[constrained.length - 1]; - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - this._updateCache.push(constraint); - this.sortReset(parent.children); - constrained[constrained.length - 1].sorted = true; - }; - Skeleton.prototype.sortPathConstraint = function (constraint) { - var slot = constraint.target; - var slotIndex = slot.data.index; - var slotBone = slot.bone; - if (this.skin != null) - this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); - if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) - this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); - for (var i = 0, n = this.data.skins.length; i < n; i++) - this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); - var attachment = slot.getAttachment(); - if (attachment instanceof spine.PathAttachment) - this.sortPathConstraintAttachmentWith(attachment, slotBone); - var constrained = constraint.bones; - var boneCount = constrained.length; - for (var i = 0; i < boneCount; i++) - this.sortBone(constrained[i]); - this._updateCache.push(constraint); - for (var i = 0; i < boneCount; i++) - this.sortReset(constrained[i].children); - for (var i = 0; i < boneCount; i++) - constrained[i].sorted = true; - }; - Skeleton.prototype.sortTransformConstraint = function (constraint) { - this.sortBone(constraint.target); - var constrained = constraint.bones; - var boneCount = constrained.length; - if (constraint.data.local) { - for (var i = 0; i < boneCount; i++) { - var child = constrained[i]; - this.sortBone(child.parent); - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - } - else { - for (var i = 0; i < boneCount; i++) { - this.sortBone(constrained[i]); - } - } - this._updateCache.push(constraint); - for (var ii = 0; ii < boneCount; ii++) - this.sortReset(constrained[ii].children); - for (var ii = 0; ii < boneCount; ii++) - constrained[ii].sorted = true; - }; - Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { - var attachments = skin.attachments[slotIndex]; - if (!attachments) - return; - for (var key in attachments) { - this.sortPathConstraintAttachmentWith(attachments[key], slotBone); - } - }; - Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { - if (!(attachment instanceof spine.PathAttachment)) - return; - var pathBones = attachment.bones; - if (pathBones == null) - this.sortBone(slotBone); - else { - var bones = this.bones; - var i = 0; - while (i < pathBones.length) { - var boneCount = pathBones[i++]; - for (var n = i + boneCount; i < n; i++) { - var boneIndex = pathBones[i]; - this.sortBone(bones[boneIndex]); - } - } - } - }; - Skeleton.prototype.sortBone = function (bone) { - if (bone.sorted) - return; - var parent = bone.parent; - if (parent != null) - this.sortBone(parent); - bone.sorted = true; - this._updateCache.push(bone); - }; - Skeleton.prototype.sortReset = function (bones) { - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.sorted) - this.sortReset(bone.children); - bone.sorted = false; - } - }; - Skeleton.prototype.updateWorldTransform = function () { - var updateCacheReset = this.updateCacheReset; - for (var i = 0, n = updateCacheReset.length; i < n; i++) { - var bone = updateCacheReset[i]; - bone.ax = bone.x; - bone.ay = bone.y; - bone.arotation = bone.rotation; - bone.ascaleX = bone.scaleX; - bone.ascaleY = bone.scaleY; - bone.ashearX = bone.shearX; - bone.ashearY = bone.shearY; - bone.appliedValid = true; - } - var updateCache = this._updateCache; - for (var i = 0, n = updateCache.length; i < n; i++) - updateCache[i].update(); - }; - Skeleton.prototype.setToSetupPose = function () { - this.setBonesToSetupPose(); - this.setSlotsToSetupPose(); - }; - Skeleton.prototype.setBonesToSetupPose = function () { - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].setToSetupPose(); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - constraint.bendDirection = constraint.data.bendDirection; - constraint.mix = constraint.data.mix; - } - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - var data = constraint.data; - constraint.position = data.position; - constraint.spacing = data.spacing; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - } - }; - Skeleton.prototype.setSlotsToSetupPose = function () { - var slots = this.slots; - spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); - for (var i = 0, n = slots.length; i < n; i++) - slots[i].setToSetupPose(); - }; - Skeleton.prototype.getRootBone = function () { - if (this.bones.length == 0) - return null; - return this.bones[0]; - }; - Skeleton.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.data.name == boneName) - return bone; - } - return null; - }; - Skeleton.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].data.name == boneName) - return i; - return -1; - }; - Skeleton.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) - return slot; - } - return null; - }; - Skeleton.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].data.name == slotName) - return i; - return -1; - }; - Skeleton.prototype.setSkinByName = function (skinName) { - var skin = this.data.findSkin(skinName); - if (skin == null) - throw new Error("Skin not found: " + skinName); - this.setSkin(skin); - }; - Skeleton.prototype.setSkin = function (newSkin) { - if (newSkin != null) { - if (this.skin != null) - newSkin.attachAll(this, this.skin); - else { - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var name_1 = slot.data.attachmentName; - if (name_1 != null) { - var attachment = newSkin.getAttachment(i, name_1); - if (attachment != null) - slot.setAttachment(attachment); - } - } - } - } - this.skin = newSkin; - }; - Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { - return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); - }; - Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { - if (attachmentName == null) - throw new Error("attachmentName cannot be null."); - if (this.skin != null) { - var attachment = this.skin.getAttachment(slotIndex, attachmentName); - if (attachment != null) - return attachment; - } - if (this.data.defaultSkin != null) - return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); - return null; - }; - Skeleton.prototype.setAttachment = function (slotName, attachmentName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) { - var attachment = null; - if (attachmentName != null) { - attachment = this.getAttachment(i, attachmentName); - if (attachment == null) - throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); - } - slot.setAttachment(attachment); - return; - } - } - throw new Error("Slot not found: " + slotName); - }; - Skeleton.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var ikConstraint = ikConstraints[i]; - if (ikConstraint.data.name == constraintName) - return ikConstraint; - } - return null; - }; - Skeleton.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.getBounds = function (offset, size, temp) { - if (offset == null) - throw new Error("offset cannot be null."); - if (size == null) - throw new Error("size cannot be null."); - var drawOrder = this.drawOrder; - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var verticesLength = 0; - var vertices = null; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.RegionAttachment) { - verticesLength = 8; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - attachment.computeWorldVertices(slot.bone, vertices, 0, 2); - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - verticesLength = mesh.worldVerticesLength; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); - } - if (vertices != null) { - for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { - var x = vertices[ii], y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - } - offset.set(minX, minY); - size.set(maxX - minX, maxY - minY); - }; - Skeleton.prototype.update = function (delta) { - this.time += delta; - }; - return Skeleton; - }()); - spine.Skeleton = Skeleton; + var BoneData = (function () { + function BoneData(index, name, parent) { + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 1; + this.scaleY = 1; + this.shearX = 0; + this.shearY = 0; + this.transformMode = TransformMode.Normal; + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + this.index = index; + this.name = name; + this.parent = parent; + } + return BoneData; + }()); + spine.BoneData = BoneData; + (function (TransformMode) { + TransformMode[TransformMode["Normal"] = 0] = "Normal"; + TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; + TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; + TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; + TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; + })(spine.TransformMode || (spine.TransformMode = {})); + var TransformMode = spine.TransformMode; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonBounds = (function () { - function SkeletonBounds() { - this.minX = 0; - this.minY = 0; - this.maxX = 0; - this.maxY = 0; - this.boundingBoxes = new Array(); - this.polygons = new Array(); - this.polygonPool = new spine.Pool(function () { - return spine.Utils.newFloatArray(16); - }); - } - SkeletonBounds.prototype.update = function (skeleton, updateAabb) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - var boundingBoxes = this.boundingBoxes; - var polygons = this.polygons; - var polygonPool = this.polygonPool; - var slots = skeleton.slots; - var slotCount = slots.length; - boundingBoxes.length = 0; - polygonPool.freeAll(polygons); - polygons.length = 0; - for (var i = 0; i < slotCount; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.BoundingBoxAttachment) { - var boundingBox = attachment; - boundingBoxes.push(boundingBox); - var polygon = polygonPool.obtain(); - if (polygon.length != boundingBox.worldVerticesLength) { - polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); - } - polygons.push(polygon); - boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); - } - } - if (updateAabb) { - this.aabbCompute(); - } - else { - this.minX = Number.POSITIVE_INFINITY; - this.minY = Number.POSITIVE_INFINITY; - this.maxX = Number.NEGATIVE_INFINITY; - this.maxY = Number.NEGATIVE_INFINITY; - } - }; - SkeletonBounds.prototype.aabbCompute = function () { - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) { - var polygon = polygons[i]; - var vertices = polygon; - for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { - var x = vertices[ii]; - var y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - this.minX = minX; - this.minY = minY; - this.maxX = maxX; - this.maxY = maxY; - }; - SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { - return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; - }; - SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { - var minX = this.minX; - var minY = this.minY; - var maxX = this.maxX; - var maxY = this.maxY; - if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) - return false; - var m = (y2 - y1) / (x2 - x1); - var y = m * (minX - x1) + y1; - if (y > minY && y < maxY) - return true; - y = m * (maxX - x1) + y1; - if (y > minY && y < maxY) - return true; - var x = (minY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - x = (maxY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - return false; - }; - SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { - return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; - }; - SkeletonBounds.prototype.containsPoint = function (x, y) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.containsPointPolygon(polygons[i], x, y)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { - var vertices = polygon; - var nn = polygon.length; - var prevIndex = nn - 2; - var inside = false; - for (var ii = 0; ii < nn; ii += 2) { - var vertexY = vertices[ii + 1]; - var prevY = vertices[prevIndex + 1]; - if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { - var vertexX = vertices[ii]; - if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) - inside = !inside; - } - prevIndex = ii; - } - return inside; - }; - SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { - var vertices = polygon; - var nn = polygon.length; - var width12 = x1 - x2, height12 = y1 - y2; - var det1 = x1 * y2 - y1 * x2; - var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; - for (var ii = 0; ii < nn; ii += 2) { - var x4 = vertices[ii], y4 = vertices[ii + 1]; - var det2 = x3 * y4 - y3 * x4; - var width34 = x3 - x4, height34 = y3 - y4; - var det3 = width12 * height34 - height12 * width34; - var x = (det1 * width34 - width12 * det2) / det3; - if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { - var y = (det1 * height34 - height12 * det2) / det3; - if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) - return true; - } - x3 = x4; - y3 = y4; - } - return false; - }; - SkeletonBounds.prototype.getPolygon = function (boundingBox) { - if (boundingBox == null) - throw new Error("boundingBox cannot be null."); - var index = this.boundingBoxes.indexOf(boundingBox); - return index == -1 ? null : this.polygons[index]; - }; - SkeletonBounds.prototype.getWidth = function () { - return this.maxX - this.minX; - }; - SkeletonBounds.prototype.getHeight = function () { - return this.maxY - this.minY; - }; - return SkeletonBounds; - }()); - spine.SkeletonBounds = SkeletonBounds; + var Event = (function () { + function Event(time, data) { + if (data == null) + throw new Error("data cannot be null."); + this.time = time; + this.data = data; + } + return Event; + }()); + spine.Event = Event; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonClipping = (function () { - function SkeletonClipping() { - this.triangulator = new spine.Triangulator(); - this.clippingPolygon = new Array(); - this.clipOutput = new Array(); - this.clippedVertices = new Array(); - this.clippedTriangles = new Array(); - this.scratch = new Array(); - } - SkeletonClipping.prototype.clipStart = function (slot, clip) { - if (this.clipAttachment != null) - return 0; - this.clipAttachment = clip; - var n = clip.worldVerticesLength; - var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); - clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); - var clippingPolygon = this.clippingPolygon; - SkeletonClipping.makeClockwise(clippingPolygon); - var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); - for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { - var polygon = clippingPolygons[i]; - SkeletonClipping.makeClockwise(polygon); - polygon.push(polygon[0]); - polygon.push(polygon[1]); - } - return clippingPolygons.length; - }; - SkeletonClipping.prototype.clipEndWithSlot = function (slot) { - if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) - this.clipEnd(); - }; - SkeletonClipping.prototype.clipEnd = function () { - if (this.clipAttachment == null) - return; - this.clipAttachment = null; - this.clippingPolygons = null; - this.clippedVertices.length = 0; - this.clippedTriangles.length = 0; - this.clippingPolygon.length = 0; - }; - SkeletonClipping.prototype.isClipping = function () { - return this.clipAttachment != null; - }; - SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { - var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; - var clippedTriangles = this.clippedTriangles; - var polygons = this.clippingPolygons; - var polygonsCount = this.clippingPolygons.length; - var vertexSize = twoColor ? 12 : 8; - var index = 0; - clippedVertices.length = 0; - clippedTriangles.length = 0; - outer: for (var i = 0; i < trianglesLength; i += 3) { - var vertexOffset = triangles[i] << 1; - var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; - var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 1] << 1; - var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; - var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 2] << 1; - var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; - var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; - for (var p = 0; p < polygonsCount; p++) { - var s = clippedVertices.length; - if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { - var clipOutputLength = clipOutput.length; - if (clipOutputLength == 0) - continue; - var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; - var d = 1 / (d0 * d2 + d1 * (y1 - y3)); - var clipOutputCount = clipOutputLength >> 1; - var clipOutputItems = this.clipOutput; - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); - for (var ii = 0; ii < clipOutputLength; ii += 2) { - var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; - clippedVerticesItems[s] = x; - clippedVerticesItems[s + 1] = y; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - var c0 = x - x3, c1 = y - y3; - var a = (d0 * c0 + d1 * c1) * d; - var b = (d4 * c0 + d2 * c1) * d; - var c = 1 - a - b; - clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; - clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; - if (twoColor) { - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 8] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - } - s += vertexSize; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); - clipOutputCount--; - for (var ii = 1; ii < clipOutputCount; ii++) { - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + ii); - clippedTrianglesItems[s + 2] = (index + ii + 1); - s += 3; - } - index += clipOutputCount + 1; - } - else { - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); - clippedVerticesItems[s] = x1; - clippedVerticesItems[s + 1] = y1; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - if (!twoColor) { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = x2; - clippedVerticesItems[s + 9] = y2; - clippedVerticesItems[s + 10] = light.r; - clippedVerticesItems[s + 11] = light.g; - clippedVerticesItems[s + 12] = light.b; - clippedVerticesItems[s + 13] = light.a; - clippedVerticesItems[s + 14] = u2; - clippedVerticesItems[s + 15] = v2; - clippedVerticesItems[s + 16] = x3; - clippedVerticesItems[s + 17] = y3; - clippedVerticesItems[s + 18] = light.r; - clippedVerticesItems[s + 19] = light.g; - clippedVerticesItems[s + 20] = light.b; - clippedVerticesItems[s + 21] = light.a; - clippedVerticesItems[s + 22] = u3; - clippedVerticesItems[s + 23] = v3; - } - else { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 9] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - clippedVerticesItems[s + 12] = x2; - clippedVerticesItems[s + 13] = y2; - clippedVerticesItems[s + 14] = light.r; - clippedVerticesItems[s + 15] = light.g; - clippedVerticesItems[s + 16] = light.b; - clippedVerticesItems[s + 17] = light.a; - clippedVerticesItems[s + 18] = u2; - clippedVerticesItems[s + 19] = v2; - clippedVerticesItems[s + 20] = dark.r; - clippedVerticesItems[s + 21] = dark.g; - clippedVerticesItems[s + 22] = dark.b; - clippedVerticesItems[s + 23] = dark.a; - clippedVerticesItems[s + 24] = x3; - clippedVerticesItems[s + 25] = y3; - clippedVerticesItems[s + 26] = light.r; - clippedVerticesItems[s + 27] = light.g; - clippedVerticesItems[s + 28] = light.b; - clippedVerticesItems[s + 29] = light.a; - clippedVerticesItems[s + 30] = u3; - clippedVerticesItems[s + 31] = v3; - clippedVerticesItems[s + 32] = dark.r; - clippedVerticesItems[s + 33] = dark.g; - clippedVerticesItems[s + 34] = dark.b; - clippedVerticesItems[s + 35] = dark.a; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + 1); - clippedTrianglesItems[s + 2] = (index + 2); - index += 3; - continue outer; - } - } - } - }; - SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { - var originalOutput = output; - var clipped = false; - var input = null; - if (clippingArea.length % 4 >= 2) { - input = output; - output = this.scratch; - } - else - input = this.scratch; - input.length = 0; - input.push(x1); - input.push(y1); - input.push(x2); - input.push(y2); - input.push(x3); - input.push(y3); - input.push(x1); - input.push(y1); - output.length = 0; - var clippingVertices = clippingArea; - var clippingVerticesLast = clippingArea.length - 4; - for (var i = 0;; i += 2) { - var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; - var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; - var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; - var inputVertices = input; - var inputVerticesLength = input.length - 2, outputStart = output.length; - for (var ii = 0; ii < inputVerticesLength; ii += 2) { - var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; - var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; - var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; - if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { - if (side2) { - output.push(inputX2); - output.push(inputY2); - continue; - } - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - } - else if (side2) { - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - output.push(inputX2); - output.push(inputY2); - } - clipped = true; - } - if (outputStart == output.length) { - originalOutput.length = 0; - return true; - } - output.push(output[0]); - output.push(output[1]); - if (i == clippingVerticesLast) - break; - var temp = output; - output = input; - output.length = 0; - input = temp; - } - if (originalOutput != output) { - originalOutput.length = 0; - for (var i = 0, n = output.length - 2; i < n; i++) - originalOutput[i] = output[i]; - } - else - originalOutput.length = originalOutput.length - 2; - return clipped; - }; - SkeletonClipping.makeClockwise = function (polygon) { - var vertices = polygon; - var verticeslength = polygon.length; - var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; - for (var i = 0, n = verticeslength - 3; i < n; i += 2) { - p1x = vertices[i]; - p1y = vertices[i + 1]; - p2x = vertices[i + 2]; - p2y = vertices[i + 3]; - area += p1x * p2y - p2x * p1y; - } - if (area < 0) - return; - for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { - var x = vertices[i], y = vertices[i + 1]; - var other = lastX - i; - vertices[i] = vertices[other]; - vertices[i + 1] = vertices[other + 1]; - vertices[other] = x; - vertices[other + 1] = y; - } - }; - return SkeletonClipping; - }()); - spine.SkeletonClipping = SkeletonClipping; + var EventData = (function () { + function EventData(name) { + this.name = name; + } + return EventData; + }()); + spine.EventData = EventData; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonData = (function () { - function SkeletonData() { - this.bones = new Array(); - this.slots = new Array(); - this.skins = new Array(); - this.events = new Array(); - this.animations = new Array(); - this.ikConstraints = new Array(); - this.transformConstraints = new Array(); - this.pathConstraints = new Array(); - this.fps = 0; - } - SkeletonData.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.name == boneName) - return bone; - } - return null; - }; - SkeletonData.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].name == boneName) - return i; - return -1; - }; - SkeletonData.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.name == slotName) - return slot; - } - return null; - }; - SkeletonData.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].name == slotName) - return i; - return -1; - }; - SkeletonData.prototype.findSkin = function (skinName) { - if (skinName == null) - throw new Error("skinName cannot be null."); - var skins = this.skins; - for (var i = 0, n = skins.length; i < n; i++) { - var skin = skins[i]; - if (skin.name == skinName) - return skin; - } - return null; - }; - SkeletonData.prototype.findEvent = function (eventDataName) { - if (eventDataName == null) - throw new Error("eventDataName cannot be null."); - var events = this.events; - for (var i = 0, n = events.length; i < n; i++) { - var event_4 = events[i]; - if (event_4.name == eventDataName) - return event_4; - } - return null; - }; - SkeletonData.prototype.findAnimation = function (animationName) { - if (animationName == null) - throw new Error("animationName cannot be null."); - var animations = this.animations; - for (var i = 0, n = animations.length; i < n; i++) { - var animation = animations[i]; - if (animation.name == animationName) - return animation; - } - return null; - }; - SkeletonData.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { - if (pathConstraintName == null) - throw new Error("pathConstraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) - if (pathConstraints[i].name == pathConstraintName) - return i; - return -1; - }; - return SkeletonData; - }()); - spine.SkeletonData = SkeletonData; + var IkConstraint = (function () { + function IkConstraint(data, skeleton) { + this.mix = 1; + this.bendDirection = 0; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.mix = data.mix; + this.bendDirection = data.bendDirection; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + IkConstraint.prototype.getOrder = function () { + return this.data.order; + }; + IkConstraint.prototype.apply = function () { + this.update(); + }; + IkConstraint.prototype.update = function () { + var target = this.target; + var bones = this.bones; + switch (bones.length) { + case 1: + this.apply1(bones[0], target.worldX, target.worldY, this.mix); + break; + case 2: + this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); + break; + } + }; + IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var p = bone.parent; + var id = 1 / (p.a * p.d - p.b * p.c); + var x = targetX - p.worldX, y = targetY - p.worldY; + var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; + var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; + if (bone.ascaleX < 0) + rotationIK += 180; + if (rotationIK > 180) + rotationIK -= 360; + else if (rotationIK < -180) + rotationIK += 360; + bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); + }; + IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { + if (alpha == 0) { + child.updateWorldTransform(); + return; + } + if (!parent.appliedValid) + parent.updateAppliedTransform(); + if (!child.appliedValid) + child.updateAppliedTransform(); + var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; + var os1 = 0, os2 = 0, s2 = 0; + if (psx < 0) { + psx = -psx; + os1 = 180; + s2 = -1; + } + else { + os1 = 0; + s2 = 1; + } + if (psy < 0) { + psy = -psy; + s2 = -s2; + } + if (csx < 0) { + csx = -csx; + os2 = 180; + } + else + os2 = 0; + var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + var u = Math.abs(psx - psy) <= 0.0001; + if (!u) { + cy = 0; + cwx = a * cx + parent.worldX; + cwy = c * cx + parent.worldY; + } + else { + cy = child.ay; + cwx = a * cx + b * cy + parent.worldX; + cwy = c * cx + d * cy + parent.worldY; + } + var pp = parent.parent; + a = pp.a; + b = pp.b; + c = pp.c; + d = pp.d; + var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; + var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; + x = cwx - pp.worldX; + y = cwy - pp.worldY; + var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; + var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; + outer: if (u) { + l2 *= psx; + var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); + if (cos < -1) + cos = -1; + else if (cos > 1) + cos = 1; + a2 = Math.acos(cos) * bendDir; + a = l1 + l2 * cos; + b = l2 * Math.sin(a2); + a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); + } + else { + a = psx * l2; + b = psy * l2; + var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); + c = bb * l1 * l1 + aa * dd - aa * bb; + var c1 = -2 * bb * l1, c2 = bb - aa; + d = c1 * c1 - 4 * c2 * c; + if (d >= 0) { + var q = Math.sqrt(d); + if (c1 < 0) + q = -q; + q = -(c1 + q) / 2; + var r0 = q / c2, r1 = c / q; + var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; + if (r * r <= dd) { + y = Math.sqrt(dd - r * r) * bendDir; + a1 = ta - Math.atan2(y, r); + a2 = Math.atan2(y / psy, (r - l1) / psx); + break outer; + } + } + var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; + var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } + } + if (dd <= (minDist + maxDist) / 2) { + a1 = ta - Math.atan2(minY * bendDir, minX); + a2 = minAngle * bendDir; + } + else { + a1 = ta - Math.atan2(maxY * bendDir, maxX); + a2 = maxAngle * bendDir; + } + } + var os = Math.atan2(cy, cx) * s2; + var rotation = parent.arotation; + a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; + if (a1 > 180) + a1 -= 360; + else if (a1 < -180) + a1 += 360; + parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); + rotation = child.arotation; + a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; + if (a2 > 180) + a2 -= 360; + else if (a2 < -180) + a2 += 360; + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); + }; + return IkConstraint; + }()); + spine.IkConstraint = IkConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonJson = (function () { - function SkeletonJson(attachmentLoader) { - this.scale = 1; - this.linkedMeshes = new Array(); - this.attachmentLoader = attachmentLoader; - } - SkeletonJson.prototype.readSkeletonData = function (json) { - var scale = this.scale; - var skeletonData = new spine.SkeletonData(); - var root = typeof (json) === "string" ? JSON.parse(json) : json; - var skeletonMap = root.skeleton; - if (skeletonMap != null) { - skeletonData.hash = skeletonMap.hash; - skeletonData.version = skeletonMap.spine; - skeletonData.width = skeletonMap.width; - skeletonData.height = skeletonMap.height; - skeletonData.fps = skeletonMap.fps; - skeletonData.imagesPath = skeletonMap.images; - } - if (root.bones) { - for (var i = 0; i < root.bones.length; i++) { - var boneMap = root.bones[i]; - var parent_2 = null; - var parentName = this.getValue(boneMap, "parent", null); - if (parentName != null) { - parent_2 = skeletonData.findBone(parentName); - if (parent_2 == null) - throw new Error("Parent bone not found: " + parentName); - } - var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); - data.length = this.getValue(boneMap, "length", 0) * scale; - data.x = this.getValue(boneMap, "x", 0) * scale; - data.y = this.getValue(boneMap, "y", 0) * scale; - data.rotation = this.getValue(boneMap, "rotation", 0); - data.scaleX = this.getValue(boneMap, "scaleX", 1); - data.scaleY = this.getValue(boneMap, "scaleY", 1); - data.shearX = this.getValue(boneMap, "shearX", 0); - data.shearY = this.getValue(boneMap, "shearY", 0); - data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); - skeletonData.bones.push(data); - } - } - if (root.slots) { - for (var i = 0; i < root.slots.length; i++) { - var slotMap = root.slots[i]; - var slotName = slotMap.name; - var boneName = slotMap.bone; - var boneData = skeletonData.findBone(boneName); - if (boneData == null) - throw new Error("Slot bone not found: " + boneName); - var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); - var color = this.getValue(slotMap, "color", null); - if (color != null) - data.color.setFromString(color); - var dark = this.getValue(slotMap, "dark", null); - if (dark != null) { - data.darkColor = new spine.Color(1, 1, 1, 1); - data.darkColor.setFromString(dark); - } - data.attachmentName = this.getValue(slotMap, "attachment", null); - data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); - skeletonData.slots.push(data); - } - } - if (root.ik) { - for (var i = 0; i < root.ik.length; i++) { - var constraintMap = root.ik[i]; - var data = new spine.IkConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("IK bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("IK target bone not found: " + targetName); - data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; - data.mix = this.getValue(constraintMap, "mix", 1); - skeletonData.ikConstraints.push(data); - } - } - if (root.transform) { - for (var i = 0; i < root.transform.length; i++) { - var constraintMap = root.transform[i]; - var data = new spine.TransformConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("Transform constraint target bone not found: " + targetName); - data.local = this.getValue(constraintMap, "local", false); - data.relative = this.getValue(constraintMap, "relative", false); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.offsetX = this.getValue(constraintMap, "x", 0) * scale; - data.offsetY = this.getValue(constraintMap, "y", 0) * scale; - data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); - data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); - data.offsetShearY = this.getValue(constraintMap, "shearY", 0); - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); - data.shearMix = this.getValue(constraintMap, "shearMix", 1); - skeletonData.transformConstraints.push(data); - } - } - if (root.path) { - for (var i = 0; i < root.path.length; i++) { - var constraintMap = root.path[i]; - var data = new spine.PathConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findSlot(targetName); - if (data.target == null) - throw new Error("Path target slot not found: " + targetName); - data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); - data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); - data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.position = this.getValue(constraintMap, "position", 0); - if (data.positionMode == spine.PositionMode.Fixed) - data.position *= scale; - data.spacing = this.getValue(constraintMap, "spacing", 0); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - data.spacing *= scale; - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - skeletonData.pathConstraints.push(data); - } - } - if (root.skins) { - for (var skinName in root.skins) { - var skinMap = root.skins[skinName]; - var skin = new spine.Skin(skinName); - for (var slotName in skinMap) { - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - var slotMap = skinMap[slotName]; - for (var entryName in slotMap) { - var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); - if (attachment != null) - skin.addAttachment(slotIndex, entryName, attachment); - } - } - skeletonData.skins.push(skin); - if (skin.name == "default") - skeletonData.defaultSkin = skin; - } - } - for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { - var linkedMesh = this.linkedMeshes[i]; - var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); - if (skin == null) - throw new Error("Skin not found: " + linkedMesh.skin); - var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_3 == null) - throw new Error("Parent mesh not found: " + linkedMesh.parent); - linkedMesh.mesh.setParentMesh(parent_3); - linkedMesh.mesh.updateUVs(); - } - this.linkedMeshes.length = 0; - if (root.events) { - for (var eventName in root.events) { - var eventMap = root.events[eventName]; - var data = new spine.EventData(eventName); - data.intValue = this.getValue(eventMap, "int", 0); - data.floatValue = this.getValue(eventMap, "float", 0); - data.stringValue = this.getValue(eventMap, "string", ""); - skeletonData.events.push(data); - } - } - if (root.animations) { - for (var animationName in root.animations) { - var animationMap = root.animations[animationName]; - this.readAnimation(animationMap, animationName, skeletonData); - } - } - return skeletonData; - }; - SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { - var scale = this.scale; - name = this.getValue(map, "name", name); - var type = this.getValue(map, "type", "region"); - switch (type) { - case "region": { - var path = this.getValue(map, "path", name); - var region = this.attachmentLoader.newRegionAttachment(skin, name, path); - if (region == null) - return null; - region.path = path; - region.x = this.getValue(map, "x", 0) * scale; - region.y = this.getValue(map, "y", 0) * scale; - region.scaleX = this.getValue(map, "scaleX", 1); - region.scaleY = this.getValue(map, "scaleY", 1); - region.rotation = this.getValue(map, "rotation", 0); - region.width = map.width * scale; - region.height = map.height * scale; - var color = this.getValue(map, "color", null); - if (color != null) - region.color.setFromString(color); - region.updateOffset(); - return region; - } - case "boundingbox": { - var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); - if (box == null) - return null; - this.readVertices(map, box, map.vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - box.color.setFromString(color); - return box; - } - case "mesh": - case "linkedmesh": { - var path = this.getValue(map, "path", name); - var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); - if (mesh == null) - return null; - mesh.path = path; - var color = this.getValue(map, "color", null); - if (color != null) - mesh.color.setFromString(color); - var parent_4 = this.getValue(map, "parent", null); - if (parent_4 != null) { - mesh.inheritDeform = this.getValue(map, "deform", true); - this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); - return mesh; - } - var uvs = map.uvs; - this.readVertices(map, mesh, uvs.length); - mesh.triangles = map.triangles; - mesh.regionUVs = uvs; - mesh.updateUVs(); - mesh.hullLength = this.getValue(map, "hull", 0) * 2; - return mesh; - } - case "path": { - var path = this.attachmentLoader.newPathAttachment(skin, name); - if (path == null) - return null; - path.closed = this.getValue(map, "closed", false); - path.constantSpeed = this.getValue(map, "constantSpeed", true); - var vertexCount = map.vertexCount; - this.readVertices(map, path, vertexCount << 1); - var lengths = spine.Utils.newArray(vertexCount / 3, 0); - for (var i = 0; i < map.lengths.length; i++) - lengths[i++] = map.lengths[i] * scale; - path.lengths = lengths; - var color = this.getValue(map, "color", null); - if (color != null) - path.color.setFromString(color); - return path; - } - case "point": { - var point = this.attachmentLoader.newPointAttachment(skin, name); - if (point == null) - return null; - point.x = this.getValue(map, "x", 0) * scale; - point.y = this.getValue(map, "y", 0) * scale; - point.rotation = this.getValue(map, "rotation", 0); - var color = this.getValue(map, "color", null); - if (color != null) - point.color.setFromString(color); - return point; - } - case "clipping": { - var clip = this.attachmentLoader.newClippingAttachment(skin, name); - if (clip == null) - return null; - var end = this.getValue(map, "end", null); - if (end != null) { - var slot = skeletonData.findSlot(end); - if (slot == null) - throw new Error("Clipping end slot not found: " + end); - clip.endSlot = slot; - } - var vertexCount = map.vertexCount; - this.readVertices(map, clip, vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - clip.color.setFromString(color); - return clip; - } - } - return null; - }; - SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { - var scale = this.scale; - attachment.worldVerticesLength = verticesLength; - var vertices = map.vertices; - if (verticesLength == vertices.length) { - var scaledVertices = spine.Utils.toFloatArray(vertices); - if (scale != 1) { - for (var i = 0, n = vertices.length; i < n; i++) - scaledVertices[i] *= scale; - } - attachment.vertices = scaledVertices; - return; - } - var weights = new Array(); - var bones = new Array(); - for (var i = 0, n = vertices.length; i < n;) { - var boneCount = vertices[i++]; - bones.push(boneCount); - for (var nn = i + boneCount * 4; i < nn; i += 4) { - bones.push(vertices[i]); - weights.push(vertices[i + 1] * scale); - weights.push(vertices[i + 2] * scale); - weights.push(vertices[i + 3]); - } - } - attachment.bones = bones; - attachment.vertices = spine.Utils.toFloatArray(weights); - }; - SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { - var scale = this.scale; - var timelines = new Array(); - var duration = 0; - if (map.slots) { - for (var slotName in map.slots) { - var slotMap = map.slots[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - if (timelineName == "attachment") { - var timeline = new spine.AttachmentTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - else if (timelineName == "color") { - var timeline = new spine.ColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var color = new spine.Color(); - color.setFromString(valueMap.color); - timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); - } - else if (timelineName == "twoColor") { - var timeline = new spine.TwoColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var light = new spine.Color(); - var dark = new spine.Color(); - light.setFromString(valueMap.light); - dark.setFromString(valueMap.dark); - timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); - } - } - } - if (map.bones) { - for (var boneName in map.bones) { - var boneMap = map.bones[boneName]; - var boneIndex = skeletonData.findBoneIndex(boneName); - if (boneIndex == -1) - throw new Error("Bone not found: " + boneName); - for (var timelineName in boneMap) { - var timelineMap = boneMap[timelineName]; - if (timelineName === "rotate") { - var timeline = new spine.RotateTimeline(timelineMap.length); - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); - } - else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "scale") - timeline = new spine.ScaleTimeline(timelineMap.length); - else if (timelineName === "shear") - timeline = new spine.ShearTimeline(timelineMap.length); - else { - timeline = new spine.TranslateTimeline(timelineMap.length); - timelineScale = scale; - } - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); - timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); - } - } - } - if (map.ik) { - for (var constraintName in map.ik) { - var constraintMap = map.ik[constraintName]; - var constraint = skeletonData.findIkConstraint(constraintName); - var timeline = new spine.IkConstraintTimeline(constraintMap.length); - timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); - } - } - if (map.transform) { - for (var constraintName in map.transform) { - var constraintMap = map.transform[constraintName]; - var constraint = skeletonData.findTransformConstraint(constraintName); - var timeline = new spine.TransformConstraintTimeline(constraintMap.length); - timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); - } - } - if (map.paths) { - for (var constraintName in map.paths) { - var constraintMap = map.paths[constraintName]; - var index = skeletonData.findPathConstraintIndex(constraintName); - if (index == -1) - throw new Error("Path constraint not found: " + constraintName); - var data = skeletonData.pathConstraints[index]; - for (var timelineName in constraintMap) { - var timelineMap = constraintMap[timelineName]; - if (timelineName === "position" || timelineName === "spacing") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "spacing") { - timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - timelineScale = scale; - } - else { - timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); - if (data.positionMode == spine.PositionMode.Fixed) - timelineScale = scale; - } - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); - } - else if (timelineName === "mix") { - var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); - } - } - } - } - if (map.deform) { - for (var deformName in map.deform) { - var deformMap = map.deform[deformName]; - var skin = skeletonData.findSkin(deformName); - if (skin == null) - throw new Error("Skin not found: " + deformName); - for (var slotName in deformMap) { - var slotMap = deformMap[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotMap.name); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - var attachment = skin.getAttachment(slotIndex, timelineName); - if (attachment == null) - throw new Error("Deform attachment not found: " + timelineMap.name); - var weighted = attachment.bones != null; - var vertices = attachment.vertices; - var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; - var timeline = new spine.DeformTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - timeline.attachment = attachment; - var frameIndex = 0; - for (var j = 0; j < timelineMap.length; j++) { - var valueMap = timelineMap[j]; - var deform = void 0; - var verticesValue = this.getValue(valueMap, "vertices", null); - if (verticesValue == null) - deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; - else { - deform = spine.Utils.newFloatArray(deformLength); - var start = this.getValue(valueMap, "offset", 0); - spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); - if (scale != 1) { - for (var i = start, n = i + verticesValue.length; i < n; i++) - deform[i] *= scale; - } - if (!weighted) { - for (var i = 0; i < deformLength; i++) - deform[i] += vertices[i]; - } - } - timeline.setFrame(frameIndex, valueMap.time, deform); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - } - } - } - var drawOrderNode = map.drawOrder; - if (drawOrderNode == null) - drawOrderNode = map.draworder; - if (drawOrderNode != null) { - var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); - var slotCount = skeletonData.slots.length; - var frameIndex = 0; - for (var j = 0; j < drawOrderNode.length; j++) { - var drawOrderMap = drawOrderNode[j]; - var drawOrder = null; - var offsets = this.getValue(drawOrderMap, "offsets", null); - if (offsets != null) { - drawOrder = spine.Utils.newArray(slotCount, -1); - var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); - var originalIndex = 0, unchangedIndex = 0; - for (var i = 0; i < offsets.length; i++) { - var offsetMap = offsets[i]; - var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); - if (slotIndex == -1) - throw new Error("Slot not found: " + offsetMap.slot); - while (originalIndex != slotIndex) - unchanged[unchangedIndex++] = originalIndex++; - drawOrder[originalIndex + offsetMap.offset] = originalIndex++; - } - while (originalIndex < slotCount) - unchanged[unchangedIndex++] = originalIndex++; - for (var i = slotCount - 1; i >= 0; i--) - if (drawOrder[i] == -1) - drawOrder[i] = unchanged[--unchangedIndex]; - } - timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (map.events) { - var timeline = new spine.EventTimeline(map.events.length); - var frameIndex = 0; - for (var i = 0; i < map.events.length; i++) { - var eventMap = map.events[i]; - var eventData = skeletonData.findEvent(eventMap.name); - if (eventData == null) - throw new Error("Event not found: " + eventMap.name); - var event_5 = new spine.Event(eventMap.time, eventData); - event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); - event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); - event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); - timeline.setFrame(frameIndex++, event_5); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (isNaN(duration)) { - throw new Error("Error while parsing animation, duration is NaN"); - } - skeletonData.animations.push(new spine.Animation(name, timelines, duration)); - }; - SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { - if (!map.curve) - return; - if (map.curve === "stepped") - timeline.setStepped(frameIndex); - else if (Object.prototype.toString.call(map.curve) === '[object Array]') { - var curve = map.curve; - timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); - } - }; - SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { - return map[prop] !== undefined ? map[prop] : defaultValue; - }; - SkeletonJson.blendModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.BlendMode.Normal; - if (str == "additive") - return spine.BlendMode.Additive; - if (str == "multiply") - return spine.BlendMode.Multiply; - if (str == "screen") - return spine.BlendMode.Screen; - throw new Error("Unknown blend mode: " + str); - }; - SkeletonJson.positionModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "fixed") - return spine.PositionMode.Fixed; - if (str == "percent") - return spine.PositionMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.spacingModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "length") - return spine.SpacingMode.Length; - if (str == "fixed") - return spine.SpacingMode.Fixed; - if (str == "percent") - return spine.SpacingMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.rotateModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "tangent") - return spine.RotateMode.Tangent; - if (str == "chain") - return spine.RotateMode.Chain; - if (str == "chainscale") - return spine.RotateMode.ChainScale; - throw new Error("Unknown rotate mode: " + str); - }; - SkeletonJson.transformModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.TransformMode.Normal; - if (str == "onlytranslation") - return spine.TransformMode.OnlyTranslation; - if (str == "norotationorreflection") - return spine.TransformMode.NoRotationOrReflection; - if (str == "noscale") - return spine.TransformMode.NoScale; - if (str == "noscaleorreflection") - return spine.TransformMode.NoScaleOrReflection; - throw new Error("Unknown transform mode: " + str); - }; - return SkeletonJson; - }()); - spine.SkeletonJson = SkeletonJson; - var LinkedMesh = (function () { - function LinkedMesh(mesh, skin, slotIndex, parent) { - this.mesh = mesh; - this.skin = skin; - this.slotIndex = slotIndex; - this.parent = parent; - } - return LinkedMesh; - }()); + var IkConstraintData = (function () { + function IkConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.bendDirection = 1; + this.mix = 1; + this.name = name; + } + return IkConstraintData; + }()); + spine.IkConstraintData = IkConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var Skin = (function () { - function Skin(name) { - this.attachments = new Array(); - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - Skin.prototype.addAttachment = function (slotIndex, name, attachment) { - if (attachment == null) - throw new Error("attachment cannot be null."); - var attachments = this.attachments; - if (slotIndex >= attachments.length) - attachments.length = slotIndex + 1; - if (!attachments[slotIndex]) - attachments[slotIndex] = {}; - attachments[slotIndex][name] = attachment; - }; - Skin.prototype.getAttachment = function (slotIndex, name) { - var dictionary = this.attachments[slotIndex]; - return dictionary ? dictionary[name] : null; - }; - Skin.prototype.attachAll = function (skeleton, oldSkin) { - var slotIndex = 0; - for (var i = 0; i < skeleton.slots.length; i++) { - var slot = skeleton.slots[i]; - var slotAttachment = slot.getAttachment(); - if (slotAttachment && slotIndex < oldSkin.attachments.length) { - var dictionary = oldSkin.attachments[slotIndex]; - for (var key in dictionary) { - var skinAttachment = dictionary[key]; - if (slotAttachment == skinAttachment) { - var attachment = this.getAttachment(slotIndex, key); - if (attachment != null) - slot.setAttachment(attachment); - break; - } - } - } - slotIndex++; - } - }; - return Skin; - }()); - spine.Skin = Skin; + var PathConstraint = (function () { + function PathConstraint(data, skeleton) { + this.position = 0; + this.spacing = 0; + this.rotateMix = 0; + this.translateMix = 0; + this.spaces = new Array(); + this.positions = new Array(); + this.world = new Array(); + this.curves = new Array(); + this.lengths = new Array(); + this.segments = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0, n = data.bones.length; i < n; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findSlot(data.target.name); + this.position = data.position; + this.spacing = data.spacing; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + } + PathConstraint.prototype.apply = function () { + this.update(); + }; + PathConstraint.prototype.update = function () { + var attachment = this.target.getAttachment(); + if (!(attachment instanceof spine.PathAttachment)) + return; + var rotateMix = this.rotateMix, translateMix = this.translateMix; + var translate = translateMix > 0, rotate = rotateMix > 0; + if (!translate && !rotate) + return; + var data = this.data; + var spacingMode = data.spacingMode; + var lengthSpacing = spacingMode == spine.SpacingMode.Length; + var rotateMode = data.rotateMode; + var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; + var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; + var bones = this.bones; + var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; + var spacing = this.spacing; + if (scale || lengthSpacing) { + if (scale) + lengths = spine.Utils.setArraySize(this.lengths, boneCount); + for (var i = 0, n = spacesCount - 1; i < n;) { + var bone = bones[i]; + var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; + var length_1 = Math.sqrt(x * x + y * y); + if (scale) + lengths[i] = length_1; + spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; + } + } + else { + for (var i = 1; i < spacesCount; i++) + spaces[i] = spacing; + } + var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); + var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; + var tip = false; + if (offsetRotation == 0) + tip = rotateMode == spine.RotateMode.Chain; + else { + tip = false; + var p = this.target.bone; + offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + } + for (var i = 0, p = 3; i < boneCount; i++, p += 3) { + var bone = bones[i]; + bone.worldX += (boneX - bone.worldX) * translateMix; + bone.worldY += (boneY - bone.worldY) * translateMix; + var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; + if (scale) { + var length_2 = lengths[i]; + if (length_2 != 0) { + var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; + bone.a *= s; + bone.c *= s; + } + } + boneX = x; + boneY = y; + if (rotate) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; + if (tangents) + r = positions[p - 1]; + else if (spaces[i + 1] == 0) + r = positions[p + 2]; + else + r = Math.atan2(dy, dx); + r -= Math.atan2(c, a); + if (tip) { + cos = Math.cos(r); + sin = Math.sin(r); + var length_3 = bone.data.length; + boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; + boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; + } + else { + r += offsetRotation; + } + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + cos = Math.cos(r); + sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + bone.appliedValid = false; + } + }; + PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { + var target = this.target; + var position = this.position; + var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; + var closed = path.closed; + var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; + if (!path.constantSpeed) { + var lengths = path.lengths; + curveCount -= closed ? 1 : 2; + var pathLength_1 = lengths[curveCount]; + if (percentPosition) + position *= pathLength_1; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength_1; + } + world = spine.Utils.setArraySize(this.world, 8); + for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength_1; + if (p < 0) + p += pathLength_1; + curve = 0; + } + else if (p < 0) { + if (prevCurve != PathConstraint.BEFORE) { + prevCurve = PathConstraint.BEFORE; + path.computeWorldVertices(target, 2, 4, world, 0, 2); + } + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength_1) { + if (prevCurve != PathConstraint.AFTER) { + prevCurve = PathConstraint.AFTER; + path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); + } + this.addAfterPosition(p - pathLength_1, world, 0, out, o); + continue; + } + for (;; curve++) { + var length_4 = lengths[curve]; + if (p > length_4) + continue; + if (curve == 0) + p /= length_4; + else { + var prev = lengths[curve - 1]; + p = (p - prev) / (length_4 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + if (closed && curve == curveCount) { + path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); + path.computeWorldVertices(target, 0, 4, world, 4, 2); + } + else + path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); + } + this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); + } + return out; + } + if (closed) { + verticesLength += 2; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); + path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); + world[verticesLength - 2] = world[0]; + world[verticesLength - 1] = world[1]; + } + else { + curveCount--; + verticesLength -= 4; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); + } + var curves = spine.Utils.setArraySize(this.curves, curveCount); + var pathLength = 0; + var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; + var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; + for (var i = 0, w = 2; i < curveCount; i++, w += 6) { + cx1 = world[w]; + cy1 = world[w + 1]; + cx2 = world[w + 2]; + cy2 = world[w + 3]; + x2 = world[w + 4]; + y2 = world[w + 5]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; + tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + curves[i] = pathLength; + x1 = x2; + y1 = y2; + } + if (percentPosition) + position *= pathLength; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength; + } + var segments = this.segments; + var curveLength = 0; + for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength; + if (p < 0) + p += pathLength; + curve = 0; + } + else if (p < 0) { + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength) { + this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); + continue; + } + for (;; curve++) { + var length_5 = curves[curve]; + if (p > length_5) + continue; + if (curve == 0) + p /= length_5; + else { + var prev = curves[curve - 1]; + p = (p - prev) / (length_5 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + var ii = curve * 6; + x1 = world[ii]; + y1 = world[ii + 1]; + cx1 = world[ii + 2]; + cy1 = world[ii + 3]; + cx2 = world[ii + 4]; + cy2 = world[ii + 5]; + x2 = world[ii + 6]; + y2 = world[ii + 7]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.03; + tmpy = (y1 - cy1 * 2 + cy2) * 0.03; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; + curveLength = Math.sqrt(dfx * dfx + dfy * dfy); + segments[0] = curveLength; + for (ii = 1; ii < 8; ii++) { + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[ii] = curveLength; + } + dfx += ddfx; + dfy += ddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[8] = curveLength; + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[9] = curveLength; + segment = 0; + } + p *= curveLength; + for (;; segment++) { + var length_6 = segments[segment]; + if (p > length_6) + continue; + if (segment == 0) + p /= length_6; + else { + var prev = segments[segment - 1]; + p = segment + (p - prev) / (length_6 - prev); + } + break; + } + this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); + } + return out; + }; + PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { + var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { + var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { + if (p == 0 || isNaN(p)) + p = 0.0001; + var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; + var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; + var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; + out[o] = x; + out[o + 1] = y; + if (tangents) + out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); + }; + PathConstraint.prototype.getOrder = function () { + return this.data.order; + }; + PathConstraint.NONE = -1; + PathConstraint.BEFORE = -2; + PathConstraint.AFTER = -3; + return PathConstraint; + }()); + spine.PathConstraint = PathConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var Slot = (function () { - function Slot(data, bone) { - this.attachmentVertices = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (bone == null) - throw new Error("bone cannot be null."); - this.data = data; - this.bone = bone; - this.color = new spine.Color(); - this.darkColor = data.darkColor == null ? null : new spine.Color(); - this.setToSetupPose(); - } - Slot.prototype.getAttachment = function () { - return this.attachment; - }; - Slot.prototype.setAttachment = function (attachment) { - if (this.attachment == attachment) - return; - this.attachment = attachment; - this.attachmentTime = this.bone.skeleton.time; - this.attachmentVertices.length = 0; - }; - Slot.prototype.setAttachmentTime = function (time) { - this.attachmentTime = this.bone.skeleton.time - time; - }; - Slot.prototype.getAttachmentTime = function () { - return this.bone.skeleton.time - this.attachmentTime; - }; - Slot.prototype.setToSetupPose = function () { - this.color.setFromColor(this.data.color); - if (this.darkColor != null) - this.darkColor.setFromColor(this.data.darkColor); - if (this.data.attachmentName == null) - this.attachment = null; - else { - this.attachment = null; - this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); - } - }; - return Slot; - }()); - spine.Slot = Slot; + var PathConstraintData = (function () { + function PathConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.name = name; + } + return PathConstraintData; + }()); + spine.PathConstraintData = PathConstraintData; + (function (PositionMode) { + PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; + PositionMode[PositionMode["Percent"] = 1] = "Percent"; + })(spine.PositionMode || (spine.PositionMode = {})); + var PositionMode = spine.PositionMode; + (function (SpacingMode) { + SpacingMode[SpacingMode["Length"] = 0] = "Length"; + SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; + SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; + })(spine.SpacingMode || (spine.SpacingMode = {})); + var SpacingMode = spine.SpacingMode; + (function (RotateMode) { + RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; + RotateMode[RotateMode["Chain"] = 1] = "Chain"; + RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; + })(spine.RotateMode || (spine.RotateMode = {})); + var RotateMode = spine.RotateMode; })(spine || (spine = {})); var spine; (function (spine) { - var SlotData = (function () { - function SlotData(index, name, boneData) { - this.color = new spine.Color(1, 1, 1, 1); - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - if (boneData == null) - throw new Error("boneData cannot be null."); - this.index = index; - this.name = name; - this.boneData = boneData; - } - return SlotData; - }()); - spine.SlotData = SlotData; + var Assets = (function () { + function Assets(clientId) { + this.toLoad = new Array(); + this.assets = {}; + this.clientId = clientId; + } + Assets.prototype.loaded = function () { + var i = 0; + for (var v in this.assets) + i++; + return i; + }; + return Assets; + }()); + var SharedAssetManager = (function () { + function SharedAssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.clientAssets = {}; + this.queuedAssets = {}; + this.rawAssets = {}; + this.errors = {}; + this.pathPrefix = pathPrefix; + } + SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) { + clientAssets = new Assets(clientId); + this.clientAssets[clientId] = clientAssets; + } + if (textureLoader !== null) + clientAssets.textureLoader = textureLoader; + clientAssets.toLoad.push(path); + if (this.queuedAssets[path] === path) { + return false; + } + else { + this.queuedAssets[path] = path; + return true; + } + }; + SharedAssetManager.prototype.loadText = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = request.responseText; + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadJson = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = JSON.parse(request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, textureLoader, path)) + return; + var img = new Image(); + img.src = path; + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + _this.rawAssets[path] = img; + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + }; + }; + SharedAssetManager.prototype.get = function (clientId, path) { + path = this.pathPrefix + path; + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + return clientAssets.assets[path]; + }; + SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { + for (var i = 0; i < clientAssets.toLoad.length; i++) { + var path = clientAssets.toLoad[i]; + var asset = clientAssets.assets[path]; + if (asset === null || asset === undefined) { + var rawAsset = this.rawAssets[path]; + if (rawAsset === null || rawAsset === undefined) + continue; + if (rawAsset instanceof HTMLImageElement) { + clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); + } + else { + clientAssets.assets[path] = rawAsset; + } + } + } + }; + SharedAssetManager.prototype.isLoadingComplete = function (clientId) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + this.updateClientAssets(clientAssets); + return clientAssets.toLoad.length == clientAssets.loaded(); + }; + SharedAssetManager.prototype.dispose = function () { + }; + SharedAssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + SharedAssetManager.prototype.getErrors = function () { + return this.errors; + }; + return SharedAssetManager; + }()); + spine.SharedAssetManager = SharedAssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var Texture = (function () { - function Texture(image) { - this._image = image; - } - Texture.prototype.getImage = function () { - return this._image; - }; - Texture.filterFromString = function (text) { - switch (text.toLowerCase()) { - case "nearest": return TextureFilter.Nearest; - case "linear": return TextureFilter.Linear; - case "mipmap": return TextureFilter.MipMap; - case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; - case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; - case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; - case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; - default: throw new Error("Unknown texture filter " + text); - } - }; - Texture.wrapFromString = function (text) { - switch (text.toLowerCase()) { - case "mirroredtepeat": return TextureWrap.MirroredRepeat; - case "clamptoedge": return TextureWrap.ClampToEdge; - case "repeat": return TextureWrap.Repeat; - default: throw new Error("Unknown texture wrap " + text); - } - }; - return Texture; - }()); - spine.Texture = Texture; - var TextureFilter; - (function (TextureFilter) { - TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; - TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; - TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; - TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; - TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; - TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; - TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; - })(TextureFilter = spine.TextureFilter || (spine.TextureFilter = {})); - var TextureWrap; - (function (TextureWrap) { - TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; - TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; - TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; - })(TextureWrap = spine.TextureWrap || (spine.TextureWrap = {})); - var TextureRegion = (function () { - function TextureRegion() { - this.u = 0; - this.v = 0; - this.u2 = 0; - this.v2 = 0; - this.width = 0; - this.height = 0; - this.rotate = false; - this.offsetX = 0; - this.offsetY = 0; - this.originalWidth = 0; - this.originalHeight = 0; - } - return TextureRegion; - }()); - spine.TextureRegion = TextureRegion; + var Skeleton = (function () { + function Skeleton(data) { + this._updateCache = new Array(); + this.updateCacheReset = new Array(); + this.time = 0; + this.flipX = false; + this.flipY = false; + this.x = 0; + this.y = 0; + if (data == null) + throw new Error("data cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) { + var boneData = data.bones[i]; + var bone = void 0; + if (boneData.parent == null) + bone = new spine.Bone(boneData, this, null); + else { + var parent_1 = this.bones[boneData.parent.index]; + bone = new spine.Bone(boneData, this, parent_1); + parent_1.children.push(bone); + } + this.bones.push(bone); + } + this.slots = new Array(); + this.drawOrder = new Array(); + for (var i = 0; i < data.slots.length; i++) { + var slotData = data.slots[i]; + var bone = this.bones[slotData.boneData.index]; + var slot = new spine.Slot(slotData, bone); + this.slots.push(slot); + this.drawOrder.push(slot); + } + this.ikConstraints = new Array(); + for (var i = 0; i < data.ikConstraints.length; i++) { + var ikConstraintData = data.ikConstraints[i]; + this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); + } + this.transformConstraints = new Array(); + for (var i = 0; i < data.transformConstraints.length; i++) { + var transformConstraintData = data.transformConstraints[i]; + this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); + } + this.pathConstraints = new Array(); + for (var i = 0; i < data.pathConstraints.length; i++) { + var pathConstraintData = data.pathConstraints[i]; + this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); + } + this.color = new spine.Color(1, 1, 1, 1); + this.updateCache(); + } + Skeleton.prototype.updateCache = function () { + var updateCache = this._updateCache; + updateCache.length = 0; + this.updateCacheReset.length = 0; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].sorted = false; + var ikConstraints = this.ikConstraints; + var transformConstraints = this.transformConstraints; + var pathConstraints = this.pathConstraints; + var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; + var constraintCount = ikCount + transformCount + pathCount; + outer: for (var i = 0; i < constraintCount; i++) { + for (var ii = 0; ii < ikCount; ii++) { + var constraint = ikConstraints[ii]; + if (constraint.data.order == i) { + this.sortIkConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < transformCount; ii++) { + var constraint = transformConstraints[ii]; + if (constraint.data.order == i) { + this.sortTransformConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < pathCount; ii++) { + var constraint = pathConstraints[ii]; + if (constraint.data.order == i) { + this.sortPathConstraint(constraint); + continue outer; + } + } + } + for (var i = 0, n = bones.length; i < n; i++) + this.sortBone(bones[i]); + }; + Skeleton.prototype.sortIkConstraint = function (constraint) { + var target = constraint.target; + this.sortBone(target); + var constrained = constraint.bones; + var parent = constrained[0]; + this.sortBone(parent); + if (constrained.length > 1) { + var child = constrained[constrained.length - 1]; + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + this._updateCache.push(constraint); + this.sortReset(parent.children); + constrained[constrained.length - 1].sorted = true; + }; + Skeleton.prototype.sortPathConstraint = function (constraint) { + var slot = constraint.target; + var slotIndex = slot.data.index; + var slotBone = slot.bone; + if (this.skin != null) + this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); + if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) + this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); + for (var i = 0, n = this.data.skins.length; i < n; i++) + this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); + var attachment = slot.getAttachment(); + if (attachment instanceof spine.PathAttachment) + this.sortPathConstraintAttachmentWith(attachment, slotBone); + var constrained = constraint.bones; + var boneCount = constrained.length; + for (var i = 0; i < boneCount; i++) + this.sortBone(constrained[i]); + this._updateCache.push(constraint); + for (var i = 0; i < boneCount; i++) + this.sortReset(constrained[i].children); + for (var i = 0; i < boneCount; i++) + constrained[i].sorted = true; + }; + Skeleton.prototype.sortTransformConstraint = function (constraint) { + this.sortBone(constraint.target); + var constrained = constraint.bones; + var boneCount = constrained.length; + if (constraint.data.local) { + for (var i = 0; i < boneCount; i++) { + var child = constrained[i]; + this.sortBone(child.parent); + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + } + else { + for (var i = 0; i < boneCount; i++) { + this.sortBone(constrained[i]); + } + } + this._updateCache.push(constraint); + for (var ii = 0; ii < boneCount; ii++) + this.sortReset(constrained[ii].children); + for (var ii = 0; ii < boneCount; ii++) + constrained[ii].sorted = true; + }; + Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { + var attachments = skin.attachments[slotIndex]; + if (!attachments) + return; + for (var key in attachments) { + this.sortPathConstraintAttachmentWith(attachments[key], slotBone); + } + }; + Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { + if (!(attachment instanceof spine.PathAttachment)) + return; + var pathBones = attachment.bones; + if (pathBones == null) + this.sortBone(slotBone); + else { + var bones = this.bones; + var i = 0; + while (i < pathBones.length) { + var boneCount = pathBones[i++]; + for (var n = i + boneCount; i < n; i++) { + var boneIndex = pathBones[i]; + this.sortBone(bones[boneIndex]); + } + } + } + }; + Skeleton.prototype.sortBone = function (bone) { + if (bone.sorted) + return; + var parent = bone.parent; + if (parent != null) + this.sortBone(parent); + bone.sorted = true; + this._updateCache.push(bone); + }; + Skeleton.prototype.sortReset = function (bones) { + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.sorted) + this.sortReset(bone.children); + bone.sorted = false; + } + }; + Skeleton.prototype.updateWorldTransform = function () { + var updateCacheReset = this.updateCacheReset; + for (var i = 0, n = updateCacheReset.length; i < n; i++) { + var bone = updateCacheReset[i]; + bone.ax = bone.x; + bone.ay = bone.y; + bone.arotation = bone.rotation; + bone.ascaleX = bone.scaleX; + bone.ascaleY = bone.scaleY; + bone.ashearX = bone.shearX; + bone.ashearY = bone.shearY; + bone.appliedValid = true; + } + var updateCache = this._updateCache; + for (var i = 0, n = updateCache.length; i < n; i++) + updateCache[i].update(); + }; + Skeleton.prototype.setToSetupPose = function () { + this.setBonesToSetupPose(); + this.setSlotsToSetupPose(); + }; + Skeleton.prototype.setBonesToSetupPose = function () { + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].setToSetupPose(); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + constraint.bendDirection = constraint.data.bendDirection; + constraint.mix = constraint.data.mix; + } + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + var data = constraint.data; + constraint.position = data.position; + constraint.spacing = data.spacing; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + } + }; + Skeleton.prototype.setSlotsToSetupPose = function () { + var slots = this.slots; + spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); + for (var i = 0, n = slots.length; i < n; i++) + slots[i].setToSetupPose(); + }; + Skeleton.prototype.getRootBone = function () { + if (this.bones.length == 0) + return null; + return this.bones[0]; + }; + Skeleton.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.data.name == boneName) + return bone; + } + return null; + }; + Skeleton.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].data.name == boneName) + return i; + return -1; + }; + Skeleton.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) + return slot; + } + return null; + }; + Skeleton.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].data.name == slotName) + return i; + return -1; + }; + Skeleton.prototype.setSkinByName = function (skinName) { + var skin = this.data.findSkin(skinName); + if (skin == null) + throw new Error("Skin not found: " + skinName); + this.setSkin(skin); + }; + Skeleton.prototype.setSkin = function (newSkin) { + if (newSkin != null) { + if (this.skin != null) + newSkin.attachAll(this, this.skin); + else { + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var name_1 = slot.data.attachmentName; + if (name_1 != null) { + var attachment = newSkin.getAttachment(i, name_1); + if (attachment != null) + slot.setAttachment(attachment); + } + } + } + } + this.skin = newSkin; + }; + Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { + return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); + }; + Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { + if (attachmentName == null) + throw new Error("attachmentName cannot be null."); + if (this.skin != null) { + var attachment = this.skin.getAttachment(slotIndex, attachmentName); + if (attachment != null) + return attachment; + } + if (this.data.defaultSkin != null) + return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); + return null; + }; + Skeleton.prototype.setAttachment = function (slotName, attachmentName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) { + var attachment = null; + if (attachmentName != null) { + attachment = this.getAttachment(i, attachmentName); + if (attachment == null) + throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); + } + slot.setAttachment(attachment); + return; + } + } + throw new Error("Slot not found: " + slotName); + }; + Skeleton.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var ikConstraint = ikConstraints[i]; + if (ikConstraint.data.name == constraintName) + return ikConstraint; + } + return null; + }; + Skeleton.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.getBounds = function (offset, size, temp) { + if (offset == null) + throw new Error("offset cannot be null."); + if (size == null) + throw new Error("size cannot be null."); + var drawOrder = this.drawOrder; + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var verticesLength = 0; + var vertices = null; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.RegionAttachment) { + verticesLength = 8; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + attachment.computeWorldVertices(slot.bone, vertices, 0, 2); + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + verticesLength = mesh.worldVerticesLength; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); + } + if (vertices != null) { + for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { + var x = vertices[ii], y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + } + offset.set(minX, minY); + size.set(maxX - minX, maxY - minY); + }; + Skeleton.prototype.update = function (delta) { + this.time += delta; + }; + return Skeleton; + }()); + spine.Skeleton = Skeleton; })(spine || (spine = {})); var spine; (function (spine) { - var TextureAtlas = (function () { - function TextureAtlas(atlasText, textureLoader) { - this.pages = new Array(); - this.regions = new Array(); - this.load(atlasText, textureLoader); - } - TextureAtlas.prototype.load = function (atlasText, textureLoader) { - if (textureLoader == null) - throw new Error("textureLoader cannot be null."); - var reader = new TextureAtlasReader(atlasText); - var tuple = new Array(4); - var page = null; - while (true) { - var line = reader.readLine(); - if (line == null) - break; - line = line.trim(); - if (line.length == 0) - page = null; - else if (!page) { - page = new TextureAtlasPage(); - page.name = line; - if (reader.readTuple(tuple) == 2) { - page.width = parseInt(tuple[0]); - page.height = parseInt(tuple[1]); - reader.readTuple(tuple); - } - reader.readTuple(tuple); - page.minFilter = spine.Texture.filterFromString(tuple[0]); - page.magFilter = spine.Texture.filterFromString(tuple[1]); - var direction = reader.readValue(); - page.uWrap = spine.TextureWrap.ClampToEdge; - page.vWrap = spine.TextureWrap.ClampToEdge; - if (direction == "x") - page.uWrap = spine.TextureWrap.Repeat; - else if (direction == "y") - page.vWrap = spine.TextureWrap.Repeat; - else if (direction == "xy") - page.uWrap = page.vWrap = spine.TextureWrap.Repeat; - page.texture = textureLoader(line); - page.texture.setFilters(page.minFilter, page.magFilter); - page.texture.setWraps(page.uWrap, page.vWrap); - page.width = page.texture.getImage().width; - page.height = page.texture.getImage().height; - this.pages.push(page); - } - else { - var region = new TextureAtlasRegion(); - region.name = line; - region.page = page; - region.rotate = reader.readValue() == "true"; - reader.readTuple(tuple); - var x = parseInt(tuple[0]); - var y = parseInt(tuple[1]); - reader.readTuple(tuple); - var width = parseInt(tuple[0]); - var height = parseInt(tuple[1]); - region.u = x / page.width; - region.v = y / page.height; - if (region.rotate) { - region.u2 = (x + height) / page.width; - region.v2 = (y + width) / page.height; - } - else { - region.u2 = (x + width) / page.width; - region.v2 = (y + height) / page.height; - } - region.x = x; - region.y = y; - region.width = Math.abs(width); - region.height = Math.abs(height); - if (reader.readTuple(tuple) == 4) { - if (reader.readTuple(tuple) == 4) { - reader.readTuple(tuple); - } - } - region.originalWidth = parseInt(tuple[0]); - region.originalHeight = parseInt(tuple[1]); - reader.readTuple(tuple); - region.offsetX = parseInt(tuple[0]); - region.offsetY = parseInt(tuple[1]); - region.index = parseInt(reader.readValue()); - region.texture = page.texture; - this.regions.push(region); - } - } - }; - TextureAtlas.prototype.findRegion = function (name) { - for (var i = 0; i < this.regions.length; i++) { - if (this.regions[i].name == name) { - return this.regions[i]; - } - } - return null; - }; - TextureAtlas.prototype.dispose = function () { - for (var i = 0; i < this.pages.length; i++) { - this.pages[i].texture.dispose(); - } - }; - return TextureAtlas; - }()); - spine.TextureAtlas = TextureAtlas; - var TextureAtlasReader = (function () { - function TextureAtlasReader(text) { - this.index = 0; - this.lines = text.split(/\r\n|\r|\n/); - } - TextureAtlasReader.prototype.readLine = function () { - if (this.index >= this.lines.length) - return null; - return this.lines[this.index++]; - }; - TextureAtlasReader.prototype.readValue = function () { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - return line.substring(colon + 1).trim(); - }; - TextureAtlasReader.prototype.readTuple = function (tuple) { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - var i = 0, lastMatch = colon + 1; - for (; i < 3; i++) { - var comma = line.indexOf(",", lastMatch); - if (comma == -1) - break; - tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); - lastMatch = comma + 1; - } - tuple[i] = line.substring(lastMatch).trim(); - return i + 1; - }; - return TextureAtlasReader; - }()); - var TextureAtlasPage = (function () { - function TextureAtlasPage() { - } - return TextureAtlasPage; - }()); - spine.TextureAtlasPage = TextureAtlasPage; - var TextureAtlasRegion = (function (_super) { - __extends(TextureAtlasRegion, _super); - function TextureAtlasRegion() { - return _super !== null && _super.apply(this, arguments) || this; - } - return TextureAtlasRegion; - }(spine.TextureRegion)); - spine.TextureAtlasRegion = TextureAtlasRegion; + var SkeletonBounds = (function () { + function SkeletonBounds() { + this.minX = 0; + this.minY = 0; + this.maxX = 0; + this.maxY = 0; + this.boundingBoxes = new Array(); + this.polygons = new Array(); + this.polygonPool = new spine.Pool(function () { + return spine.Utils.newFloatArray(16); + }); + } + SkeletonBounds.prototype.update = function (skeleton, updateAabb) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + var boundingBoxes = this.boundingBoxes; + var polygons = this.polygons; + var polygonPool = this.polygonPool; + var slots = skeleton.slots; + var slotCount = slots.length; + boundingBoxes.length = 0; + polygonPool.freeAll(polygons); + polygons.length = 0; + for (var i = 0; i < slotCount; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.BoundingBoxAttachment) { + var boundingBox = attachment; + boundingBoxes.push(boundingBox); + var polygon = polygonPool.obtain(); + if (polygon.length != boundingBox.worldVerticesLength) { + polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); + } + polygons.push(polygon); + boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); + } + } + if (updateAabb) { + this.aabbCompute(); + } + else { + this.minX = Number.POSITIVE_INFINITY; + this.minY = Number.POSITIVE_INFINITY; + this.maxX = Number.NEGATIVE_INFINITY; + this.maxY = Number.NEGATIVE_INFINITY; + } + }; + SkeletonBounds.prototype.aabbCompute = function () { + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) { + var polygon = polygons[i]; + var vertices = polygon; + for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { + var x = vertices[ii]; + var y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + this.minX = minX; + this.minY = minY; + this.maxX = maxX; + this.maxY = maxY; + }; + SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { + return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; + }; + SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { + var minX = this.minX; + var minY = this.minY; + var maxX = this.maxX; + var maxY = this.maxY; + if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) + return false; + var m = (y2 - y1) / (x2 - x1); + var y = m * (minX - x1) + y1; + if (y > minY && y < maxY) + return true; + y = m * (maxX - x1) + y1; + if (y > minY && y < maxY) + return true; + var x = (minY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + x = (maxY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + return false; + }; + SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { + return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; + }; + SkeletonBounds.prototype.containsPoint = function (x, y) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.containsPointPolygon(polygons[i], x, y)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { + var vertices = polygon; + var nn = polygon.length; + var prevIndex = nn - 2; + var inside = false; + for (var ii = 0; ii < nn; ii += 2) { + var vertexY = vertices[ii + 1]; + var prevY = vertices[prevIndex + 1]; + if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { + var vertexX = vertices[ii]; + if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) + inside = !inside; + } + prevIndex = ii; + } + return inside; + }; + SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { + var vertices = polygon; + var nn = polygon.length; + var width12 = x1 - x2, height12 = y1 - y2; + var det1 = x1 * y2 - y1 * x2; + var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; + for (var ii = 0; ii < nn; ii += 2) { + var x4 = vertices[ii], y4 = vertices[ii + 1]; + var det2 = x3 * y4 - y3 * x4; + var width34 = x3 - x4, height34 = y3 - y4; + var det3 = width12 * height34 - height12 * width34; + var x = (det1 * width34 - width12 * det2) / det3; + if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { + var y = (det1 * height34 - height12 * det2) / det3; + if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) + return true; + } + x3 = x4; + y3 = y4; + } + return false; + }; + SkeletonBounds.prototype.getPolygon = function (boundingBox) { + if (boundingBox == null) + throw new Error("boundingBox cannot be null."); + var index = this.boundingBoxes.indexOf(boundingBox); + return index == -1 ? null : this.polygons[index]; + }; + SkeletonBounds.prototype.getWidth = function () { + return this.maxX - this.minX; + }; + SkeletonBounds.prototype.getHeight = function () { + return this.maxY - this.minY; + }; + return SkeletonBounds; + }()); + spine.SkeletonBounds = SkeletonBounds; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraint = (function () { - function TransformConstraint(data, skeleton) { - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.temp = new spine.Vector2(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - this.scaleMix = data.scaleMix; - this.shearMix = data.shearMix; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - TransformConstraint.prototype.apply = function () { - this.update(); - }; - TransformConstraint.prototype.update = function () { - if (this.data.local) { - if (this.data.relative) - this.applyRelativeLocal(); - else - this.applyAbsoluteLocal(); - } - else { - if (this.data.relative) - this.applyRelativeWorld(); - else - this.applyAbsoluteWorld(); - } - }; - TransformConstraint.prototype.applyAbsoluteWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect; - var offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += (temp.x - bone.worldX) * translateMix; - bone.worldY += (temp.y - bone.worldY) * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); - var ts = Math.sqrt(ta * ta + tc * tc); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; - bone.a *= s; - bone.c *= s; - s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); - ts = Math.sqrt(tb * tb + td * td); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var b = bone.b, d = bone.d; - var by = Math.atan2(d, b); - var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r = by + (r + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyRelativeWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += temp.x * translateMix; - bone.worldY += temp.y * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; - bone.a *= s; - bone.c *= s; - s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var r = Math.atan2(td, tb) - Math.atan2(tc, ta); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - var b = bone.b, d = bone.d; - r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyAbsoluteLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) { - var r = target.arotation - rotation + this.data.offsetRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - rotation += r * rotateMix; - } - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax - x + this.data.offsetX) * translateMix; - y += (target.ay - y + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; - if (scaleY > 0.00001) - scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; - } - var shearY = bone.ashearY; - if (shearMix > 0) { - var r = target.ashearY - shearY + this.data.offsetShearY; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.shearY += r * shearMix; - } - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.applyRelativeLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) - rotation += (target.arotation + this.data.offsetRotation) * rotateMix; - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax + this.data.offsetX) * translateMix; - y += (target.ay + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; - if (scaleY > 0.00001) - scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; - } - var shearY = bone.ashearY; - if (shearMix > 0) - shearY += (target.ashearY + this.data.offsetShearY) * shearMix; - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.getOrder = function () { - return this.data.order; - }; - return TransformConstraint; - }()); - spine.TransformConstraint = TransformConstraint; + var SkeletonClipping = (function () { + function SkeletonClipping() { + this.triangulator = new spine.Triangulator(); + this.clippingPolygon = new Array(); + this.clipOutput = new Array(); + this.clippedVertices = new Array(); + this.clippedTriangles = new Array(); + this.scratch = new Array(); + } + SkeletonClipping.prototype.clipStart = function (slot, clip) { + if (this.clipAttachment != null) + return 0; + this.clipAttachment = clip; + var n = clip.worldVerticesLength; + var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); + clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); + var clippingPolygon = this.clippingPolygon; + SkeletonClipping.makeClockwise(clippingPolygon); + var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); + for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { + var polygon = clippingPolygons[i]; + SkeletonClipping.makeClockwise(polygon); + polygon.push(polygon[0]); + polygon.push(polygon[1]); + } + return clippingPolygons.length; + }; + SkeletonClipping.prototype.clipEndWithSlot = function (slot) { + if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) + this.clipEnd(); + }; + SkeletonClipping.prototype.clipEnd = function () { + if (this.clipAttachment == null) + return; + this.clipAttachment = null; + this.clippingPolygons = null; + this.clippedVertices.length = 0; + this.clippedTriangles.length = 0; + this.clippingPolygon.length = 0; + }; + SkeletonClipping.prototype.isClipping = function () { + return this.clipAttachment != null; + }; + SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { + var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; + var clippedTriangles = this.clippedTriangles; + var polygons = this.clippingPolygons; + var polygonsCount = this.clippingPolygons.length; + var vertexSize = twoColor ? 12 : 8; + var index = 0; + clippedVertices.length = 0; + clippedTriangles.length = 0; + outer: for (var i = 0; i < trianglesLength; i += 3) { + var vertexOffset = triangles[i] << 1; + var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; + var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 1] << 1; + var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; + var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 2] << 1; + var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; + var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; + for (var p = 0; p < polygonsCount; p++) { + var s = clippedVertices.length; + if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { + var clipOutputLength = clipOutput.length; + if (clipOutputLength == 0) + continue; + var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; + var d = 1 / (d0 * d2 + d1 * (y1 - y3)); + var clipOutputCount = clipOutputLength >> 1; + var clipOutputItems = this.clipOutput; + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); + for (var ii = 0; ii < clipOutputLength; ii += 2) { + var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; + clippedVerticesItems[s] = x; + clippedVerticesItems[s + 1] = y; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + var c0 = x - x3, c1 = y - y3; + var a = (d0 * c0 + d1 * c1) * d; + var b = (d4 * c0 + d2 * c1) * d; + var c = 1 - a - b; + clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; + clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; + if (twoColor) { + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 8] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + } + s += vertexSize; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); + clipOutputCount--; + for (var ii = 1; ii < clipOutputCount; ii++) { + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + ii); + clippedTrianglesItems[s + 2] = (index + ii + 1); + s += 3; + } + index += clipOutputCount + 1; + } + else { + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); + clippedVerticesItems[s] = x1; + clippedVerticesItems[s + 1] = y1; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + if (!twoColor) { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = x2; + clippedVerticesItems[s + 9] = y2; + clippedVerticesItems[s + 10] = light.r; + clippedVerticesItems[s + 11] = light.g; + clippedVerticesItems[s + 12] = light.b; + clippedVerticesItems[s + 13] = light.a; + clippedVerticesItems[s + 14] = u2; + clippedVerticesItems[s + 15] = v2; + clippedVerticesItems[s + 16] = x3; + clippedVerticesItems[s + 17] = y3; + clippedVerticesItems[s + 18] = light.r; + clippedVerticesItems[s + 19] = light.g; + clippedVerticesItems[s + 20] = light.b; + clippedVerticesItems[s + 21] = light.a; + clippedVerticesItems[s + 22] = u3; + clippedVerticesItems[s + 23] = v3; + } + else { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 9] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + clippedVerticesItems[s + 12] = x2; + clippedVerticesItems[s + 13] = y2; + clippedVerticesItems[s + 14] = light.r; + clippedVerticesItems[s + 15] = light.g; + clippedVerticesItems[s + 16] = light.b; + clippedVerticesItems[s + 17] = light.a; + clippedVerticesItems[s + 18] = u2; + clippedVerticesItems[s + 19] = v2; + clippedVerticesItems[s + 20] = dark.r; + clippedVerticesItems[s + 21] = dark.g; + clippedVerticesItems[s + 22] = dark.b; + clippedVerticesItems[s + 23] = dark.a; + clippedVerticesItems[s + 24] = x3; + clippedVerticesItems[s + 25] = y3; + clippedVerticesItems[s + 26] = light.r; + clippedVerticesItems[s + 27] = light.g; + clippedVerticesItems[s + 28] = light.b; + clippedVerticesItems[s + 29] = light.a; + clippedVerticesItems[s + 30] = u3; + clippedVerticesItems[s + 31] = v3; + clippedVerticesItems[s + 32] = dark.r; + clippedVerticesItems[s + 33] = dark.g; + clippedVerticesItems[s + 34] = dark.b; + clippedVerticesItems[s + 35] = dark.a; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + 1); + clippedTrianglesItems[s + 2] = (index + 2); + index += 3; + continue outer; + } + } + } + }; + SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { + var originalOutput = output; + var clipped = false; + var input = null; + if (clippingArea.length % 4 >= 2) { + input = output; + output = this.scratch; + } + else + input = this.scratch; + input.length = 0; + input.push(x1); + input.push(y1); + input.push(x2); + input.push(y2); + input.push(x3); + input.push(y3); + input.push(x1); + input.push(y1); + output.length = 0; + var clippingVertices = clippingArea; + var clippingVerticesLast = clippingArea.length - 4; + for (var i = 0;; i += 2) { + var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; + var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; + var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; + var inputVertices = input; + var inputVerticesLength = input.length - 2, outputStart = output.length; + for (var ii = 0; ii < inputVerticesLength; ii += 2) { + var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; + var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; + var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; + if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { + if (side2) { + output.push(inputX2); + output.push(inputY2); + continue; + } + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + } + else if (side2) { + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + output.push(inputX2); + output.push(inputY2); + } + clipped = true; + } + if (outputStart == output.length) { + originalOutput.length = 0; + return true; + } + output.push(output[0]); + output.push(output[1]); + if (i == clippingVerticesLast) + break; + var temp = output; + output = input; + output.length = 0; + input = temp; + } + if (originalOutput != output) { + originalOutput.length = 0; + for (var i = 0, n = output.length - 2; i < n; i++) + originalOutput[i] = output[i]; + } + else + originalOutput.length = originalOutput.length - 2; + return clipped; + }; + SkeletonClipping.makeClockwise = function (polygon) { + var vertices = polygon; + var verticeslength = polygon.length; + var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; + for (var i = 0, n = verticeslength - 3; i < n; i += 2) { + p1x = vertices[i]; + p1y = vertices[i + 1]; + p2x = vertices[i + 2]; + p2y = vertices[i + 3]; + area += p1x * p2y - p2x * p1y; + } + if (area < 0) + return; + for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { + var x = vertices[i], y = vertices[i + 1]; + var other = lastX - i; + vertices[i] = vertices[other]; + vertices[i + 1] = vertices[other + 1]; + vertices[other] = x; + vertices[other + 1] = y; + } + }; + return SkeletonClipping; + }()); + spine.SkeletonClipping = SkeletonClipping; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraintData = (function () { - function TransformConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.offsetRotation = 0; - this.offsetX = 0; - this.offsetY = 0; - this.offsetScaleX = 0; - this.offsetScaleY = 0; - this.offsetShearY = 0; - this.relative = false; - this.local = false; - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return TransformConstraintData; - }()); - spine.TransformConstraintData = TransformConstraintData; + var SkeletonData = (function () { + function SkeletonData() { + this.bones = new Array(); + this.slots = new Array(); + this.skins = new Array(); + this.events = new Array(); + this.animations = new Array(); + this.ikConstraints = new Array(); + this.transformConstraints = new Array(); + this.pathConstraints = new Array(); + this.fps = 0; + } + SkeletonData.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.name == boneName) + return bone; + } + return null; + }; + SkeletonData.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].name == boneName) + return i; + return -1; + }; + SkeletonData.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.name == slotName) + return slot; + } + return null; + }; + SkeletonData.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].name == slotName) + return i; + return -1; + }; + SkeletonData.prototype.findSkin = function (skinName) { + if (skinName == null) + throw new Error("skinName cannot be null."); + var skins = this.skins; + for (var i = 0, n = skins.length; i < n; i++) { + var skin = skins[i]; + if (skin.name == skinName) + return skin; + } + return null; + }; + SkeletonData.prototype.findEvent = function (eventDataName) { + if (eventDataName == null) + throw new Error("eventDataName cannot be null."); + var events = this.events; + for (var i = 0, n = events.length; i < n; i++) { + var event_4 = events[i]; + if (event_4.name == eventDataName) + return event_4; + } + return null; + }; + SkeletonData.prototype.findAnimation = function (animationName) { + if (animationName == null) + throw new Error("animationName cannot be null."); + var animations = this.animations; + for (var i = 0, n = animations.length; i < n; i++) { + var animation = animations[i]; + if (animation.name == animationName) + return animation; + } + return null; + }; + SkeletonData.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { + if (pathConstraintName == null) + throw new Error("pathConstraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) + if (pathConstraints[i].name == pathConstraintName) + return i; + return -1; + }; + return SkeletonData; + }()); + spine.SkeletonData = SkeletonData; })(spine || (spine = {})); var spine; (function (spine) { - var Triangulator = (function () { - function Triangulator() { - this.convexPolygons = new Array(); - this.convexPolygonsIndices = new Array(); - this.indicesArray = new Array(); - this.isConcaveArray = new Array(); - this.triangles = new Array(); - this.polygonPool = new spine.Pool(function () { - return new Array(); - }); - this.polygonIndicesPool = new spine.Pool(function () { - return new Array(); - }); - } - Triangulator.prototype.triangulate = function (verticesArray) { - var vertices = verticesArray; - var vertexCount = verticesArray.length >> 1; - var indices = this.indicesArray; - indices.length = 0; - for (var i = 0; i < vertexCount; i++) - indices[i] = i; - var isConcave = this.isConcaveArray; - isConcave.length = 0; - for (var i = 0, n = vertexCount; i < n; ++i) - isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); - var triangles = this.triangles; - triangles.length = 0; - while (vertexCount > 3) { - var previous = vertexCount - 1, i = 0, next = 1; - while (true) { - outer: if (!isConcave[i]) { - var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; - var p1x = vertices[p1], p1y = vertices[p1 + 1]; - var p2x = vertices[p2], p2y = vertices[p2 + 1]; - var p3x = vertices[p3], p3y = vertices[p3 + 1]; - for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { - if (!isConcave[ii]) - continue; - var v = indices[ii] << 1; - var vx = vertices[v], vy = vertices[v + 1]; - if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { - if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { - if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) - break outer; - } - } - } - break; - } - if (next == 0) { - do { - if (!isConcave[i]) - break; - i--; - } while (i > 0); - break; - } - previous = i; - i = next; - next = (next + 1) % vertexCount; - } - triangles.push(indices[(vertexCount + i - 1) % vertexCount]); - triangles.push(indices[i]); - triangles.push(indices[(i + 1) % vertexCount]); - indices.splice(i, 1); - isConcave.splice(i, 1); - vertexCount--; - var previousIndex = (vertexCount + i - 1) % vertexCount; - var nextIndex = i == vertexCount ? 0 : i; - isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); - isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); - } - if (vertexCount == 3) { - triangles.push(indices[2]); - triangles.push(indices[0]); - triangles.push(indices[1]); - } - return triangles; - }; - Triangulator.prototype.decompose = function (verticesArray, triangles) { - var vertices = verticesArray; - var convexPolygons = this.convexPolygons; - this.polygonPool.freeAll(convexPolygons); - convexPolygons.length = 0; - var convexPolygonsIndices = this.convexPolygonsIndices; - this.polygonIndicesPool.freeAll(convexPolygonsIndices); - convexPolygonsIndices.length = 0; - var polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - var polygon = this.polygonPool.obtain(); - polygon.length = 0; - var fanBaseIndex = -1, lastWinding = 0; - for (var i = 0, n = triangles.length; i < n; i += 3) { - var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; - var x1 = vertices[t1], y1 = vertices[t1 + 1]; - var x2 = vertices[t2], y2 = vertices[t2 + 1]; - var x3 = vertices[t3], y3 = vertices[t3 + 1]; - var merged = false; - if (fanBaseIndex == t1) { - var o = polygon.length - 4; - var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); - var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); - if (winding1 == lastWinding && winding2 == lastWinding) { - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(t3); - merged = true; - } - } - if (!merged) { - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - else { - this.polygonPool.free(polygon); - this.polygonIndicesPool.free(polygonIndices); - } - polygon = this.polygonPool.obtain(); - polygon.length = 0; - polygon.push(x1); - polygon.push(y1); - polygon.push(x2); - polygon.push(y2); - polygon.push(x3); - polygon.push(y3); - polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - polygonIndices.push(t1); - polygonIndices.push(t2); - polygonIndices.push(t3); - lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); - fanBaseIndex = t1; - } - } - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - for (var i = 0, n = convexPolygons.length; i < n; i++) { - polygonIndices = convexPolygonsIndices[i]; - if (polygonIndices.length == 0) - continue; - var firstIndex = polygonIndices[0]; - var lastIndex = polygonIndices[polygonIndices.length - 1]; - polygon = convexPolygons[i]; - var o = polygon.length - 4; - var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; - var prevX = polygon[o + 2], prevY = polygon[o + 3]; - var firstX = polygon[0], firstY = polygon[1]; - var secondX = polygon[2], secondY = polygon[3]; - var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); - for (var ii = 0; ii < n; ii++) { - if (ii == i) - continue; - var otherIndices = convexPolygonsIndices[ii]; - if (otherIndices.length != 3) - continue; - var otherFirstIndex = otherIndices[0]; - var otherSecondIndex = otherIndices[1]; - var otherLastIndex = otherIndices[2]; - var otherPoly = convexPolygons[ii]; - var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; - if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) - continue; - var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); - var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); - if (winding1 == winding && winding2 == winding) { - otherPoly.length = 0; - otherIndices.length = 0; - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(otherLastIndex); - prevPrevX = prevX; - prevPrevY = prevY; - prevX = x3; - prevY = y3; - ii = 0; - } - } - } - for (var i = convexPolygons.length - 1; i >= 0; i--) { - polygon = convexPolygons[i]; - if (polygon.length == 0) { - convexPolygons.splice(i, 1); - this.polygonPool.free(polygon); - polygonIndices = convexPolygonsIndices[i]; - convexPolygonsIndices.splice(i, 1); - this.polygonIndicesPool.free(polygonIndices); - } - } - return convexPolygons; - }; - Triangulator.isConcave = function (index, vertexCount, vertices, indices) { - var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; - var current = indices[index] << 1; - var next = indices[(index + 1) % vertexCount] << 1; - return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); - }; - Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { - return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; - }; - Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { - var px = p2x - p1x, py = p2y - p1y; - return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; - }; - return Triangulator; - }()); - spine.Triangulator = Triangulator; + var SkeletonJson = (function () { + function SkeletonJson(attachmentLoader) { + this.scale = 1; + this.linkedMeshes = new Array(); + this.attachmentLoader = attachmentLoader; + } + SkeletonJson.prototype.readSkeletonData = function (json) { + var scale = this.scale; + var skeletonData = new spine.SkeletonData(); + var root = typeof (json) === "string" ? JSON.parse(json) : json; + var skeletonMap = root.skeleton; + if (skeletonMap != null) { + skeletonData.hash = skeletonMap.hash; + skeletonData.version = skeletonMap.spine; + skeletonData.width = skeletonMap.width; + skeletonData.height = skeletonMap.height; + skeletonData.fps = skeletonMap.fps; + skeletonData.imagesPath = skeletonMap.images; + } + if (root.bones) { + for (var i = 0; i < root.bones.length; i++) { + var boneMap = root.bones[i]; + var parent_2 = null; + var parentName = this.getValue(boneMap, "parent", null); + if (parentName != null) { + parent_2 = skeletonData.findBone(parentName); + if (parent_2 == null) + throw new Error("Parent bone not found: " + parentName); + } + var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); + data.length = this.getValue(boneMap, "length", 0) * scale; + data.x = this.getValue(boneMap, "x", 0) * scale; + data.y = this.getValue(boneMap, "y", 0) * scale; + data.rotation = this.getValue(boneMap, "rotation", 0); + data.scaleX = this.getValue(boneMap, "scaleX", 1); + data.scaleY = this.getValue(boneMap, "scaleY", 1); + data.shearX = this.getValue(boneMap, "shearX", 0); + data.shearY = this.getValue(boneMap, "shearY", 0); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); + skeletonData.bones.push(data); + } + } + if (root.slots) { + for (var i = 0; i < root.slots.length; i++) { + var slotMap = root.slots[i]; + var slotName = slotMap.name; + var boneName = slotMap.bone; + var boneData = skeletonData.findBone(boneName); + if (boneData == null) + throw new Error("Slot bone not found: " + boneName); + var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); + var color = this.getValue(slotMap, "color", null); + if (color != null) + data.color.setFromString(color); + var dark = this.getValue(slotMap, "dark", null); + if (dark != null) { + data.darkColor = new spine.Color(1, 1, 1, 1); + data.darkColor.setFromString(dark); + } + data.attachmentName = this.getValue(slotMap, "attachment", null); + data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); + skeletonData.slots.push(data); + } + } + if (root.ik) { + for (var i = 0; i < root.ik.length; i++) { + var constraintMap = root.ik[i]; + var data = new spine.IkConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("IK bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("IK target bone not found: " + targetName); + data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; + data.mix = this.getValue(constraintMap, "mix", 1); + skeletonData.ikConstraints.push(data); + } + } + if (root.transform) { + for (var i = 0; i < root.transform.length; i++) { + var constraintMap = root.transform[i]; + var data = new spine.TransformConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("Transform constraint target bone not found: " + targetName); + data.local = this.getValue(constraintMap, "local", false); + data.relative = this.getValue(constraintMap, "relative", false); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.offsetX = this.getValue(constraintMap, "x", 0) * scale; + data.offsetY = this.getValue(constraintMap, "y", 0) * scale; + data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); + data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); + data.offsetShearY = this.getValue(constraintMap, "shearY", 0); + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); + data.shearMix = this.getValue(constraintMap, "shearMix", 1); + skeletonData.transformConstraints.push(data); + } + } + if (root.path) { + for (var i = 0; i < root.path.length; i++) { + var constraintMap = root.path[i]; + var data = new spine.PathConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findSlot(targetName); + if (data.target == null) + throw new Error("Path target slot not found: " + targetName); + data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); + data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); + data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.position = this.getValue(constraintMap, "position", 0); + if (data.positionMode == spine.PositionMode.Fixed) + data.position *= scale; + data.spacing = this.getValue(constraintMap, "spacing", 0); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + data.spacing *= scale; + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + skeletonData.pathConstraints.push(data); + } + } + if (root.skins) { + for (var skinName in root.skins) { + var skinMap = root.skins[skinName]; + var skin = new spine.Skin(skinName); + for (var slotName in skinMap) { + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + var slotMap = skinMap[slotName]; + for (var entryName in slotMap) { + var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); + if (attachment != null) + skin.addAttachment(slotIndex, entryName, attachment); + } + } + skeletonData.skins.push(skin); + if (skin.name == "default") + skeletonData.defaultSkin = skin; + } + } + for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { + var linkedMesh = this.linkedMeshes[i]; + var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); + if (skin == null) + throw new Error("Skin not found: " + linkedMesh.skin); + var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); + if (parent_3 == null) + throw new Error("Parent mesh not found: " + linkedMesh.parent); + linkedMesh.mesh.setParentMesh(parent_3); + linkedMesh.mesh.updateUVs(); + } + this.linkedMeshes.length = 0; + if (root.events) { + for (var eventName in root.events) { + var eventMap = root.events[eventName]; + var data = new spine.EventData(eventName); + data.intValue = this.getValue(eventMap, "int", 0); + data.floatValue = this.getValue(eventMap, "float", 0); + data.stringValue = this.getValue(eventMap, "string", ""); + skeletonData.events.push(data); + } + } + if (root.animations) { + for (var animationName in root.animations) { + var animationMap = root.animations[animationName]; + this.readAnimation(animationMap, animationName, skeletonData); + } + } + return skeletonData; + }; + SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { + var scale = this.scale; + name = this.getValue(map, "name", name); + var type = this.getValue(map, "type", "region"); + switch (type) { + case "region": { + var path = this.getValue(map, "path", name); + var region = this.attachmentLoader.newRegionAttachment(skin, name, path); + if (region == null) + return null; + region.path = path; + region.x = this.getValue(map, "x", 0) * scale; + region.y = this.getValue(map, "y", 0) * scale; + region.scaleX = this.getValue(map, "scaleX", 1); + region.scaleY = this.getValue(map, "scaleY", 1); + region.rotation = this.getValue(map, "rotation", 0); + region.width = map.width * scale; + region.height = map.height * scale; + var color = this.getValue(map, "color", null); + if (color != null) + region.color.setFromString(color); + region.updateOffset(); + return region; + } + case "boundingbox": { + var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); + if (box == null) + return null; + this.readVertices(map, box, map.vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + box.color.setFromString(color); + return box; + } + case "mesh": + case "linkedmesh": { + var path = this.getValue(map, "path", name); + var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); + if (mesh == null) + return null; + mesh.path = path; + var color = this.getValue(map, "color", null); + if (color != null) + mesh.color.setFromString(color); + var parent_4 = this.getValue(map, "parent", null); + if (parent_4 != null) { + mesh.inheritDeform = this.getValue(map, "deform", true); + this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); + return mesh; + } + var uvs = map.uvs; + this.readVertices(map, mesh, uvs.length); + mesh.triangles = map.triangles; + mesh.regionUVs = uvs; + mesh.updateUVs(); + mesh.hullLength = this.getValue(map, "hull", 0) * 2; + return mesh; + } + case "path": { + var path = this.attachmentLoader.newPathAttachment(skin, name); + if (path == null) + return null; + path.closed = this.getValue(map, "closed", false); + path.constantSpeed = this.getValue(map, "constantSpeed", true); + var vertexCount = map.vertexCount; + this.readVertices(map, path, vertexCount << 1); + var lengths = spine.Utils.newArray(vertexCount / 3, 0); + for (var i = 0; i < map.lengths.length; i++) + lengths[i++] = map.lengths[i] * scale; + path.lengths = lengths; + var color = this.getValue(map, "color", null); + if (color != null) + path.color.setFromString(color); + return path; + } + case "point": { + var point = this.attachmentLoader.newPointAttachment(skin, name); + if (point == null) + return null; + point.x = this.getValue(map, "x", 0) * scale; + point.y = this.getValue(map, "y", 0) * scale; + point.rotation = this.getValue(map, "rotation", 0); + var color = this.getValue(map, "color", null); + if (color != null) + point.color.setFromString(color); + return point; + } + case "clipping": { + var clip = this.attachmentLoader.newClippingAttachment(skin, name); + if (clip == null) + return null; + var end = this.getValue(map, "end", null); + if (end != null) { + var slot = skeletonData.findSlot(end); + if (slot == null) + throw new Error("Clipping end slot not found: " + end); + clip.endSlot = slot; + } + var vertexCount = map.vertexCount; + this.readVertices(map, clip, vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + clip.color.setFromString(color); + return clip; + } + } + return null; + }; + SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { + var scale = this.scale; + attachment.worldVerticesLength = verticesLength; + var vertices = map.vertices; + if (verticesLength == vertices.length) { + var scaledVertices = spine.Utils.toFloatArray(vertices); + if (scale != 1) { + for (var i = 0, n = vertices.length; i < n; i++) + scaledVertices[i] *= scale; + } + attachment.vertices = scaledVertices; + return; + } + var weights = new Array(); + var bones = new Array(); + for (var i = 0, n = vertices.length; i < n;) { + var boneCount = vertices[i++]; + bones.push(boneCount); + for (var nn = i + boneCount * 4; i < nn; i += 4) { + bones.push(vertices[i]); + weights.push(vertices[i + 1] * scale); + weights.push(vertices[i + 2] * scale); + weights.push(vertices[i + 3]); + } + } + attachment.bones = bones; + attachment.vertices = spine.Utils.toFloatArray(weights); + }; + SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { + var scale = this.scale; + var timelines = new Array(); + var duration = 0; + if (map.slots) { + for (var slotName in map.slots) { + var slotMap = map.slots[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + if (timelineName == "attachment") { + var timeline = new spine.AttachmentTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + else if (timelineName == "color") { + var timeline = new spine.ColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var color = new spine.Color(); + color.setFromString(valueMap.color); + timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); + } + else if (timelineName == "twoColor") { + var timeline = new spine.TwoColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var light = new spine.Color(); + var dark = new spine.Color(); + light.setFromString(valueMap.light); + dark.setFromString(valueMap.dark); + timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); + } + } + } + if (map.bones) { + for (var boneName in map.bones) { + var boneMap = map.bones[boneName]; + var boneIndex = skeletonData.findBoneIndex(boneName); + if (boneIndex == -1) + throw new Error("Bone not found: " + boneName); + for (var timelineName in boneMap) { + var timelineMap = boneMap[timelineName]; + if (timelineName === "rotate") { + var timeline = new spine.RotateTimeline(timelineMap.length); + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); + } + else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "scale") + timeline = new spine.ScaleTimeline(timelineMap.length); + else if (timelineName === "shear") + timeline = new spine.ShearTimeline(timelineMap.length); + else { + timeline = new spine.TranslateTimeline(timelineMap.length); + timelineScale = scale; + } + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); + timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); + } + } + } + if (map.ik) { + for (var constraintName in map.ik) { + var constraintMap = map.ik[constraintName]; + var constraint = skeletonData.findIkConstraint(constraintName); + var timeline = new spine.IkConstraintTimeline(constraintMap.length); + timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); + } + } + if (map.transform) { + for (var constraintName in map.transform) { + var constraintMap = map.transform[constraintName]; + var constraint = skeletonData.findTransformConstraint(constraintName); + var timeline = new spine.TransformConstraintTimeline(constraintMap.length); + timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); + } + } + if (map.paths) { + for (var constraintName in map.paths) { + var constraintMap = map.paths[constraintName]; + var index = skeletonData.findPathConstraintIndex(constraintName); + if (index == -1) + throw new Error("Path constraint not found: " + constraintName); + var data = skeletonData.pathConstraints[index]; + for (var timelineName in constraintMap) { + var timelineMap = constraintMap[timelineName]; + if (timelineName === "position" || timelineName === "spacing") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "spacing") { + timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + timelineScale = scale; + } + else { + timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); + if (data.positionMode == spine.PositionMode.Fixed) + timelineScale = scale; + } + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); + } + else if (timelineName === "mix") { + var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); + } + } + } + } + if (map.deform) { + for (var deformName in map.deform) { + var deformMap = map.deform[deformName]; + var skin = skeletonData.findSkin(deformName); + if (skin == null) + throw new Error("Skin not found: " + deformName); + for (var slotName in deformMap) { + var slotMap = deformMap[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotMap.name); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + var attachment = skin.getAttachment(slotIndex, timelineName); + if (attachment == null) + throw new Error("Deform attachment not found: " + timelineMap.name); + var weighted = attachment.bones != null; + var vertices = attachment.vertices; + var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; + var timeline = new spine.DeformTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + timeline.attachment = attachment; + var frameIndex = 0; + for (var j = 0; j < timelineMap.length; j++) { + var valueMap = timelineMap[j]; + var deform = void 0; + var verticesValue = this.getValue(valueMap, "vertices", null); + if (verticesValue == null) + deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; + else { + deform = spine.Utils.newFloatArray(deformLength); + var start = this.getValue(valueMap, "offset", 0); + spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); + if (scale != 1) { + for (var i = start, n = i + verticesValue.length; i < n; i++) + deform[i] *= scale; + } + if (!weighted) { + for (var i = 0; i < deformLength; i++) + deform[i] += vertices[i]; + } + } + timeline.setFrame(frameIndex, valueMap.time, deform); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + } + } + } + var drawOrderNode = map.drawOrder; + if (drawOrderNode == null) + drawOrderNode = map.draworder; + if (drawOrderNode != null) { + var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); + var slotCount = skeletonData.slots.length; + var frameIndex = 0; + for (var j = 0; j < drawOrderNode.length; j++) { + var drawOrderMap = drawOrderNode[j]; + var drawOrder = null; + var offsets = this.getValue(drawOrderMap, "offsets", null); + if (offsets != null) { + drawOrder = spine.Utils.newArray(slotCount, -1); + var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); + var originalIndex = 0, unchangedIndex = 0; + for (var i = 0; i < offsets.length; i++) { + var offsetMap = offsets[i]; + var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); + if (slotIndex == -1) + throw new Error("Slot not found: " + offsetMap.slot); + while (originalIndex != slotIndex) + unchanged[unchangedIndex++] = originalIndex++; + drawOrder[originalIndex + offsetMap.offset] = originalIndex++; + } + while (originalIndex < slotCount) + unchanged[unchangedIndex++] = originalIndex++; + for (var i = slotCount - 1; i >= 0; i--) + if (drawOrder[i] == -1) + drawOrder[i] = unchanged[--unchangedIndex]; + } + timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (map.events) { + var timeline = new spine.EventTimeline(map.events.length); + var frameIndex = 0; + for (var i = 0; i < map.events.length; i++) { + var eventMap = map.events[i]; + var eventData = skeletonData.findEvent(eventMap.name); + if (eventData == null) + throw new Error("Event not found: " + eventMap.name); + var event_5 = new spine.Event(eventMap.time, eventData); + event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); + event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); + event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); + timeline.setFrame(frameIndex++, event_5); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (isNaN(duration)) { + throw new Error("Error while parsing animation, duration is NaN"); + } + skeletonData.animations.push(new spine.Animation(name, timelines, duration)); + }; + SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { + if (!map.curve) + return; + if (map.curve === "stepped") + timeline.setStepped(frameIndex); + else if (Object.prototype.toString.call(map.curve) === '[object Array]') { + var curve = map.curve; + timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); + } + }; + SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { + return map[prop] !== undefined ? map[prop] : defaultValue; + }; + SkeletonJson.blendModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.BlendMode.Normal; + if (str == "additive") + return spine.BlendMode.Additive; + if (str == "multiply") + return spine.BlendMode.Multiply; + if (str == "screen") + return spine.BlendMode.Screen; + throw new Error("Unknown blend mode: " + str); + }; + SkeletonJson.positionModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "fixed") + return spine.PositionMode.Fixed; + if (str == "percent") + return spine.PositionMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.spacingModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "length") + return spine.SpacingMode.Length; + if (str == "fixed") + return spine.SpacingMode.Fixed; + if (str == "percent") + return spine.SpacingMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.rotateModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "tangent") + return spine.RotateMode.Tangent; + if (str == "chain") + return spine.RotateMode.Chain; + if (str == "chainscale") + return spine.RotateMode.ChainScale; + throw new Error("Unknown rotate mode: " + str); + }; + SkeletonJson.transformModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.TransformMode.Normal; + if (str == "onlytranslation") + return spine.TransformMode.OnlyTranslation; + if (str == "norotationorreflection") + return spine.TransformMode.NoRotationOrReflection; + if (str == "noscale") + return spine.TransformMode.NoScale; + if (str == "noscaleorreflection") + return spine.TransformMode.NoScaleOrReflection; + throw new Error("Unknown transform mode: " + str); + }; + return SkeletonJson; + }()); + spine.SkeletonJson = SkeletonJson; + var LinkedMesh = (function () { + function LinkedMesh(mesh, skin, slotIndex, parent) { + this.mesh = mesh; + this.skin = skin; + this.slotIndex = slotIndex; + this.parent = parent; + } + return LinkedMesh; + }()); })(spine || (spine = {})); var spine; (function (spine) { - var IntSet = (function () { - function IntSet() { - this.array = new Array(); - } - IntSet.prototype.add = function (value) { - var contains = this.contains(value); - this.array[value | 0] = value | 0; - return !contains; - }; - IntSet.prototype.contains = function (value) { - return this.array[value | 0] != undefined; - }; - IntSet.prototype.remove = function (value) { - this.array[value | 0] = undefined; - }; - IntSet.prototype.clear = function () { - this.array.length = 0; - }; - return IntSet; - }()); - spine.IntSet = IntSet; - var Color = (function () { - function Color(r, g, b, a) { - if (r === void 0) { r = 0; } - if (g === void 0) { g = 0; } - if (b === void 0) { b = 0; } - if (a === void 0) { a = 0; } - this.r = r; - this.g = g; - this.b = b; - this.a = a; - } - Color.prototype.set = function (r, g, b, a) { - this.r = r; - this.g = g; - this.b = b; - this.a = a; - this.clamp(); - return this; - }; - Color.prototype.setFromColor = function (c) { - this.r = c.r; - this.g = c.g; - this.b = c.b; - this.a = c.a; - return this; - }; - Color.prototype.setFromString = function (hex) { - hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; - this.r = parseInt(hex.substr(0, 2), 16) / 255.0; - this.g = parseInt(hex.substr(2, 2), 16) / 255.0; - this.b = parseInt(hex.substr(4, 2), 16) / 255.0; - this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; - return this; - }; - Color.prototype.add = function (r, g, b, a) { - this.r += r; - this.g += g; - this.b += b; - this.a += a; - this.clamp(); - return this; - }; - Color.prototype.clamp = function () { - if (this.r < 0) - this.r = 0; - else if (this.r > 1) - this.r = 1; - if (this.g < 0) - this.g = 0; - else if (this.g > 1) - this.g = 1; - if (this.b < 0) - this.b = 0; - else if (this.b > 1) - this.b = 1; - if (this.a < 0) - this.a = 0; - else if (this.a > 1) - this.a = 1; - return this; - }; - return Color; - }()); - Color.WHITE = new Color(1, 1, 1, 1); - Color.RED = new Color(1, 0, 0, 1); - Color.GREEN = new Color(0, 1, 0, 1); - Color.BLUE = new Color(0, 0, 1, 1); - Color.MAGENTA = new Color(1, 0, 1, 1); - spine.Color = Color; - var MathUtils = (function () { - function MathUtils() { - } - MathUtils.clamp = function (value, min, max) { - if (value < min) - return min; - if (value > max) - return max; - return value; - }; - MathUtils.cosDeg = function (degrees) { - return Math.cos(degrees * MathUtils.degRad); - }; - MathUtils.sinDeg = function (degrees) { - return Math.sin(degrees * MathUtils.degRad); - }; - MathUtils.signum = function (value) { - return value > 0 ? 1 : value < 0 ? -1 : 0; - }; - MathUtils.toInt = function (x) { - return x > 0 ? Math.floor(x) : Math.ceil(x); - }; - MathUtils.cbrt = function (x) { - var y = Math.pow(Math.abs(x), 1 / 3); - return x < 0 ? -y : y; - }; - return MathUtils; - }()); - MathUtils.PI = 3.1415927; - MathUtils.PI2 = MathUtils.PI * 2; - MathUtils.radiansToDegrees = 180 / MathUtils.PI; - MathUtils.radDeg = MathUtils.radiansToDegrees; - MathUtils.degreesToRadians = MathUtils.PI / 180; - MathUtils.degRad = MathUtils.degreesToRadians; - spine.MathUtils = MathUtils; - var Utils = (function () { - function Utils() { - } - Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { - for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { - dest[j] = source[i]; - } - }; - Utils.setArraySize = function (array, size, value) { - if (value === void 0) { value = 0; } - var oldSize = array.length; - if (oldSize == size) - return array; - array.length = size; - if (oldSize < size) { - for (var i = oldSize; i < size; i++) - array[i] = value; - } - return array; - }; - Utils.ensureArrayCapacity = function (array, size, value) { - if (value === void 0) { value = 0; } - if (array.length >= size) - return array; - return Utils.setArraySize(array, size, value); - }; - Utils.newArray = function (size, defaultValue) { - var array = new Array(size); - for (var i = 0; i < size; i++) - array[i] = defaultValue; - return array; - }; - Utils.newFloatArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Float32Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.newShortArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Int16Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.toFloatArray = function (array) { - return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; - }; - return Utils; - }()); - Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; - spine.Utils = Utils; - var DebugUtils = (function () { - function DebugUtils() { - } - DebugUtils.logBones = function (skeleton) { - for (var i = 0; i < skeleton.bones.length; i++) { - var bone = skeleton.bones[i]; - console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); - } - }; - return DebugUtils; - }()); - spine.DebugUtils = DebugUtils; - var Pool = (function () { - function Pool(instantiator) { - this.items = new Array(); - this.instantiator = instantiator; - } - Pool.prototype.obtain = function () { - return this.items.length > 0 ? this.items.pop() : this.instantiator(); - }; - Pool.prototype.free = function (item) { - if (item.reset) - item.reset(); - this.items.push(item); - }; - Pool.prototype.freeAll = function (items) { - for (var i = 0; i < items.length; i++) { - if (items[i].reset) - items[i].reset(); - this.items[i] = items[i]; - } - }; - Pool.prototype.clear = function () { - this.items.length = 0; - }; - return Pool; - }()); - spine.Pool = Pool; - var Vector2 = (function () { - function Vector2(x, y) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - this.x = x; - this.y = y; - } - Vector2.prototype.set = function (x, y) { - this.x = x; - this.y = y; - return this; - }; - Vector2.prototype.length = function () { - var x = this.x; - var y = this.y; - return Math.sqrt(x * x + y * y); - }; - Vector2.prototype.normalize = function () { - var len = this.length(); - if (len != 0) { - this.x /= len; - this.y /= len; - } - return this; - }; - return Vector2; - }()); - spine.Vector2 = Vector2; - var TimeKeeper = (function () { - function TimeKeeper() { - this.maxDelta = 0.064; - this.framesPerSecond = 0; - this.delta = 0; - this.totalTime = 0; - this.lastTime = Date.now() / 1000; - this.frameCount = 0; - this.frameTime = 0; - } - TimeKeeper.prototype.update = function () { - var now = Date.now() / 1000; - this.delta = now - this.lastTime; - this.frameTime += this.delta; - this.totalTime += this.delta; - if (this.delta > this.maxDelta) - this.delta = this.maxDelta; - this.lastTime = now; - this.frameCount++; - if (this.frameTime > 1) { - this.framesPerSecond = this.frameCount / this.frameTime; - this.frameTime = 0; - this.frameCount = 0; - } - }; - return TimeKeeper; - }()); - spine.TimeKeeper = TimeKeeper; - var WindowedMean = (function () { - function WindowedMean(windowSize) { - if (windowSize === void 0) { windowSize = 32; } - this.addedValues = 0; - this.lastValue = 0; - this.mean = 0; - this.dirty = true; - this.values = new Array(windowSize); - } - WindowedMean.prototype.hasEnoughData = function () { - return this.addedValues >= this.values.length; - }; - WindowedMean.prototype.addValue = function (value) { - if (this.addedValues < this.values.length) - this.addedValues++; - this.values[this.lastValue++] = value; - if (this.lastValue > this.values.length - 1) - this.lastValue = 0; - this.dirty = true; - }; - WindowedMean.prototype.getMean = function () { - if (this.hasEnoughData()) { - if (this.dirty) { - var mean = 0; - for (var i = 0; i < this.values.length; i++) { - mean += this.values[i]; - } - this.mean = mean / this.values.length; - this.dirty = false; - } - return this.mean; - } - else { - return 0; - } - }; - return WindowedMean; - }()); - spine.WindowedMean = WindowedMean; + var Skin = (function () { + function Skin(name) { + this.attachments = new Array(); + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + Skin.prototype.addAttachment = function (slotIndex, name, attachment) { + if (attachment == null) + throw new Error("attachment cannot be null."); + var attachments = this.attachments; + if (slotIndex >= attachments.length) + attachments.length = slotIndex + 1; + if (!attachments[slotIndex]) + attachments[slotIndex] = {}; + attachments[slotIndex][name] = attachment; + }; + Skin.prototype.getAttachment = function (slotIndex, name) { + var dictionary = this.attachments[slotIndex]; + return dictionary ? dictionary[name] : null; + }; + Skin.prototype.attachAll = function (skeleton, oldSkin) { + var slotIndex = 0; + for (var i = 0; i < skeleton.slots.length; i++) { + var slot = skeleton.slots[i]; + var slotAttachment = slot.getAttachment(); + if (slotAttachment && slotIndex < oldSkin.attachments.length) { + var dictionary = oldSkin.attachments[slotIndex]; + for (var key in dictionary) { + var skinAttachment = dictionary[key]; + if (slotAttachment == skinAttachment) { + var attachment = this.getAttachment(slotIndex, key); + if (attachment != null) + slot.setAttachment(attachment); + break; + } + } + } + slotIndex++; + } + }; + return Skin; + }()); + spine.Skin = Skin; })(spine || (spine = {})); var spine; (function (spine) { - var Attachment = (function () { - function Attachment(name) { - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return Attachment; - }()); - spine.Attachment = Attachment; - var VertexAttachment = (function (_super) { - __extends(VertexAttachment, _super); - function VertexAttachment(name) { - var _this = _super.call(this, name) || this; - _this.worldVerticesLength = 0; - return _this; - } - VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { - count = offset + (count >> 1) * stride; - var skeleton = slot.bone.skeleton; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices; - var bones = this.bones; - if (bones == null) { - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - var x = bone.worldX; - var y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { - var vx = vertices[v_1], vy = vertices[v_1 + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - } - return; - } - var v = 0, skip = 0; - for (var i = 0; i < start; i += 2) { - var n = bones[v]; - v += n + 1; - skip += n; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = offset, b = skip * 3; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - else { - var deform = deformArray; - for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3, f += 2) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - }; - VertexAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment; - }; - return VertexAttachment; - }(Attachment)); - spine.VertexAttachment = VertexAttachment; + var Slot = (function () { + function Slot(data, bone) { + this.attachmentVertices = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (bone == null) + throw new Error("bone cannot be null."); + this.data = data; + this.bone = bone; + this.color = new spine.Color(); + this.darkColor = data.darkColor == null ? null : new spine.Color(); + this.setToSetupPose(); + } + Slot.prototype.getAttachment = function () { + return this.attachment; + }; + Slot.prototype.setAttachment = function (attachment) { + if (this.attachment == attachment) + return; + this.attachment = attachment; + this.attachmentTime = this.bone.skeleton.time; + this.attachmentVertices.length = 0; + }; + Slot.prototype.setAttachmentTime = function (time) { + this.attachmentTime = this.bone.skeleton.time - time; + }; + Slot.prototype.getAttachmentTime = function () { + return this.bone.skeleton.time - this.attachmentTime; + }; + Slot.prototype.setToSetupPose = function () { + this.color.setFromColor(this.data.color); + if (this.darkColor != null) + this.darkColor.setFromColor(this.data.darkColor); + if (this.data.attachmentName == null) + this.attachment = null; + else { + this.attachment = null; + this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); + } + }; + return Slot; + }()); + spine.Slot = Slot; })(spine || (spine = {})); var spine; (function (spine) { - var AttachmentType; - (function (AttachmentType) { - AttachmentType[AttachmentType["Region"] = 0] = "Region"; - AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; - AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; - AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; - AttachmentType[AttachmentType["Path"] = 4] = "Path"; - AttachmentType[AttachmentType["Point"] = 5] = "Point"; - })(AttachmentType = spine.AttachmentType || (spine.AttachmentType = {})); + var SlotData = (function () { + function SlotData(index, name, boneData) { + this.color = new spine.Color(1, 1, 1, 1); + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + if (boneData == null) + throw new Error("boneData cannot be null."); + this.index = index; + this.name = name; + this.boneData = boneData; + } + return SlotData; + }()); + spine.SlotData = SlotData; })(spine || (spine = {})); var spine; (function (spine) { - var BoundingBoxAttachment = (function (_super) { - __extends(BoundingBoxAttachment, _super); - function BoundingBoxAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(1, 1, 1, 1); - return _this; - } - return BoundingBoxAttachment; - }(spine.VertexAttachment)); - spine.BoundingBoxAttachment = BoundingBoxAttachment; + var Texture = (function () { + function Texture(image) { + this._image = image; + } + Texture.prototype.getImage = function () { + return this._image; + }; + Texture.filterFromString = function (text) { + switch (text.toLowerCase()) { + case "nearest": return TextureFilter.Nearest; + case "linear": return TextureFilter.Linear; + case "mipmap": return TextureFilter.MipMap; + case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; + case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; + case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; + case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; + default: throw new Error("Unknown texture filter " + text); + } + }; + Texture.wrapFromString = function (text) { + switch (text.toLowerCase()) { + case "mirroredtepeat": return TextureWrap.MirroredRepeat; + case "clamptoedge": return TextureWrap.ClampToEdge; + case "repeat": return TextureWrap.Repeat; + default: throw new Error("Unknown texture wrap " + text); + } + }; + return Texture; + }()); + spine.Texture = Texture; + (function (TextureFilter) { + TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; + TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; + TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; + TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; + TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; + TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; + TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; + })(spine.TextureFilter || (spine.TextureFilter = {})); + var TextureFilter = spine.TextureFilter; + (function (TextureWrap) { + TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; + TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; + TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; + })(spine.TextureWrap || (spine.TextureWrap = {})); + var TextureWrap = spine.TextureWrap; + var TextureRegion = (function () { + function TextureRegion() { + this.u = 0; + this.v = 0; + this.u2 = 0; + this.v2 = 0; + this.width = 0; + this.height = 0; + this.rotate = false; + this.offsetX = 0; + this.offsetY = 0; + this.originalWidth = 0; + this.originalHeight = 0; + } + return TextureRegion; + }()); + spine.TextureRegion = TextureRegion; })(spine || (spine = {})); var spine; (function (spine) { - var ClippingAttachment = (function (_super) { - __extends(ClippingAttachment, _super); - function ClippingAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); - return _this; - } - return ClippingAttachment; - }(spine.VertexAttachment)); - spine.ClippingAttachment = ClippingAttachment; + var TextureAtlas = (function () { + function TextureAtlas(atlasText, textureLoader) { + this.pages = new Array(); + this.regions = new Array(); + this.load(atlasText, textureLoader); + } + TextureAtlas.prototype.load = function (atlasText, textureLoader) { + if (textureLoader == null) + throw new Error("textureLoader cannot be null."); + var reader = new TextureAtlasReader(atlasText); + var tuple = new Array(4); + var page = null; + while (true) { + var line = reader.readLine(); + if (line == null) + break; + line = line.trim(); + if (line.length == 0) + page = null; + else if (!page) { + page = new TextureAtlasPage(); + page.name = line; + if (reader.readTuple(tuple) == 2) { + page.width = parseInt(tuple[0]); + page.height = parseInt(tuple[1]); + reader.readTuple(tuple); + } + reader.readTuple(tuple); + page.minFilter = spine.Texture.filterFromString(tuple[0]); + page.magFilter = spine.Texture.filterFromString(tuple[1]); + var direction = reader.readValue(); + page.uWrap = spine.TextureWrap.ClampToEdge; + page.vWrap = spine.TextureWrap.ClampToEdge; + if (direction == "x") + page.uWrap = spine.TextureWrap.Repeat; + else if (direction == "y") + page.vWrap = spine.TextureWrap.Repeat; + else if (direction == "xy") + page.uWrap = page.vWrap = spine.TextureWrap.Repeat; + page.texture = textureLoader(line); + page.texture.setFilters(page.minFilter, page.magFilter); + page.texture.setWraps(page.uWrap, page.vWrap); + page.width = page.texture.getImage().width; + page.height = page.texture.getImage().height; + this.pages.push(page); + } + else { + var region = new TextureAtlasRegion(); + region.name = line; + region.page = page; + region.rotate = reader.readValue() == "true"; + reader.readTuple(tuple); + var x = parseInt(tuple[0]); + var y = parseInt(tuple[1]); + reader.readTuple(tuple); + var width = parseInt(tuple[0]); + var height = parseInt(tuple[1]); + region.u = x / page.width; + region.v = y / page.height; + if (region.rotate) { + region.u2 = (x + height) / page.width; + region.v2 = (y + width) / page.height; + } + else { + region.u2 = (x + width) / page.width; + region.v2 = (y + height) / page.height; + } + region.x = x; + region.y = y; + region.width = Math.abs(width); + region.height = Math.abs(height); + if (reader.readTuple(tuple) == 4) { + if (reader.readTuple(tuple) == 4) { + reader.readTuple(tuple); + } + } + region.originalWidth = parseInt(tuple[0]); + region.originalHeight = parseInt(tuple[1]); + reader.readTuple(tuple); + region.offsetX = parseInt(tuple[0]); + region.offsetY = parseInt(tuple[1]); + region.index = parseInt(reader.readValue()); + region.texture = page.texture; + this.regions.push(region); + } + } + }; + TextureAtlas.prototype.findRegion = function (name) { + for (var i = 0; i < this.regions.length; i++) { + if (this.regions[i].name == name) { + return this.regions[i]; + } + } + return null; + }; + TextureAtlas.prototype.dispose = function () { + for (var i = 0; i < this.pages.length; i++) { + this.pages[i].texture.dispose(); + } + }; + return TextureAtlas; + }()); + spine.TextureAtlas = TextureAtlas; + var TextureAtlasReader = (function () { + function TextureAtlasReader(text) { + this.index = 0; + this.lines = text.split(/\r\n|\r|\n/); + } + TextureAtlasReader.prototype.readLine = function () { + if (this.index >= this.lines.length) + return null; + return this.lines[this.index++]; + }; + TextureAtlasReader.prototype.readValue = function () { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + return line.substring(colon + 1).trim(); + }; + TextureAtlasReader.prototype.readTuple = function (tuple) { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + var i = 0, lastMatch = colon + 1; + for (; i < 3; i++) { + var comma = line.indexOf(",", lastMatch); + if (comma == -1) + break; + tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); + lastMatch = comma + 1; + } + tuple[i] = line.substring(lastMatch).trim(); + return i + 1; + }; + return TextureAtlasReader; + }()); + var TextureAtlasPage = (function () { + function TextureAtlasPage() { + } + return TextureAtlasPage; + }()); + spine.TextureAtlasPage = TextureAtlasPage; + var TextureAtlasRegion = (function (_super) { + __extends(TextureAtlasRegion, _super); + function TextureAtlasRegion() { + _super.apply(this, arguments); + } + return TextureAtlasRegion; + }(spine.TextureRegion)); + spine.TextureAtlasRegion = TextureAtlasRegion; })(spine || (spine = {})); var spine; (function (spine) { - var MeshAttachment = (function (_super) { - __extends(MeshAttachment, _super); - function MeshAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(1, 1, 1, 1); - _this.inheritDeform = false; - _this.tempColor = new spine.Color(0, 0, 0, 0); - return _this; - } - MeshAttachment.prototype.updateUVs = function () { - var u = 0, v = 0, width = 0, height = 0; - if (this.region == null) { - u = v = 0; - width = height = 1; - } - else { - u = this.region.u; - v = this.region.v; - width = this.region.u2 - u; - height = this.region.v2 - v; - } - var regionUVs = this.regionUVs; - if (this.uvs == null || this.uvs.length != regionUVs.length) - this.uvs = spine.Utils.newFloatArray(regionUVs.length); - var uvs = this.uvs; - if (this.region.rotate) { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i + 1] * width; - uvs[i + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i] * width; - uvs[i + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); - }; - MeshAttachment.prototype.getParentMesh = function () { - return this.parentMesh; - }; - MeshAttachment.prototype.setParentMesh = function (parentMesh) { - this.parentMesh = parentMesh; - if (parentMesh != null) { - this.bones = parentMesh.bones; - this.vertices = parentMesh.vertices; - this.worldVerticesLength = parentMesh.worldVerticesLength; - this.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - this.worldVerticesLength = parentMesh.worldVerticesLength; - } - }; - return MeshAttachment; - }(spine.VertexAttachment)); - spine.MeshAttachment = MeshAttachment; + var TransformConstraint = (function () { + function TransformConstraint(data, skeleton) { + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.temp = new spine.Vector2(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + this.scaleMix = data.scaleMix; + this.shearMix = data.shearMix; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + TransformConstraint.prototype.apply = function () { + this.update(); + }; + TransformConstraint.prototype.update = function () { + if (this.data.local) { + if (this.data.relative) + this.applyRelativeLocal(); + else + this.applyAbsoluteLocal(); + } + else { + if (this.data.relative) + this.applyRelativeWorld(); + else + this.applyAbsoluteWorld(); + } + }; + TransformConstraint.prototype.applyAbsoluteWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect; + var offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += (temp.x - bone.worldX) * translateMix; + bone.worldY += (temp.y - bone.worldY) * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var ts = Math.sqrt(ta * ta + tc * tc); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; + bone.a *= s; + bone.c *= s; + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + ts = Math.sqrt(tb * tb + td * td); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var b = bone.b, d = bone.d; + var by = Math.atan2(d, b); + var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r = by + (r + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyRelativeWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += temp.x * translateMix; + bone.worldY += temp.y * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; + bone.a *= s; + bone.c *= s; + s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var r = Math.atan2(td, tb) - Math.atan2(tc, ta); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + var b = bone.b, d = bone.d; + r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyAbsoluteLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) { + var r = target.arotation - rotation + this.data.offsetRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + rotation += r * rotateMix; + } + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax - x + this.data.offsetX) * translateMix; + y += (target.ay - y + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; + if (scaleY > 0.00001) + scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; + } + var shearY = bone.ashearY; + if (shearMix > 0) { + var r = target.ashearY - shearY + this.data.offsetShearY; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.shearY += r * shearMix; + } + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.applyRelativeLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) + rotation += (target.arotation + this.data.offsetRotation) * rotateMix; + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax + this.data.offsetX) * translateMix; + y += (target.ay + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; + if (scaleY > 0.00001) + scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; + } + var shearY = bone.ashearY; + if (shearMix > 0) + shearY += (target.ashearY + this.data.offsetShearY) * shearMix; + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.getOrder = function () { + return this.data.order; + }; + return TransformConstraint; + }()); + spine.TransformConstraint = TransformConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var PathAttachment = (function (_super) { - __extends(PathAttachment, _super); - function PathAttachment(name) { - var _this = _super.call(this, name) || this; - _this.closed = false; - _this.constantSpeed = false; - _this.color = new spine.Color(1, 1, 1, 1); - return _this; - } - return PathAttachment; - }(spine.VertexAttachment)); - spine.PathAttachment = PathAttachment; + var TransformConstraintData = (function () { + function TransformConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.offsetRotation = 0; + this.offsetX = 0; + this.offsetY = 0; + this.offsetScaleX = 0; + this.offsetScaleY = 0; + this.offsetShearY = 0; + this.relative = false; + this.local = false; + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return TransformConstraintData; + }()); + spine.TransformConstraintData = TransformConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var PointAttachment = (function (_super) { - __extends(PointAttachment, _super); - function PointAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(0.38, 0.94, 0, 1); - return _this; - } - PointAttachment.prototype.computeWorldPosition = function (bone, point) { - point.x = this.x * bone.a + this.y * bone.b + bone.worldX; - point.y = this.x * bone.c + this.y * bone.d + bone.worldY; - return point; - }; - PointAttachment.prototype.computeWorldRotation = function (bone) { - var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); - var x = cos * bone.a + sin * bone.b; - var y = cos * bone.c + sin * bone.d; - return Math.atan2(y, x) * spine.MathUtils.radDeg; - }; - return PointAttachment; - }(spine.VertexAttachment)); - spine.PointAttachment = PointAttachment; + var Triangulator = (function () { + function Triangulator() { + this.convexPolygons = new Array(); + this.convexPolygonsIndices = new Array(); + this.indicesArray = new Array(); + this.isConcaveArray = new Array(); + this.triangles = new Array(); + this.polygonPool = new spine.Pool(function () { + return new Array(); + }); + this.polygonIndicesPool = new spine.Pool(function () { + return new Array(); + }); + } + Triangulator.prototype.triangulate = function (verticesArray) { + var vertices = verticesArray; + var vertexCount = verticesArray.length >> 1; + var indices = this.indicesArray; + indices.length = 0; + for (var i = 0; i < vertexCount; i++) + indices[i] = i; + var isConcave = this.isConcaveArray; + isConcave.length = 0; + for (var i = 0, n = vertexCount; i < n; ++i) + isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); + var triangles = this.triangles; + triangles.length = 0; + while (vertexCount > 3) { + var previous = vertexCount - 1, i = 0, next = 1; + while (true) { + outer: if (!isConcave[i]) { + var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; + var p1x = vertices[p1], p1y = vertices[p1 + 1]; + var p2x = vertices[p2], p2y = vertices[p2 + 1]; + var p3x = vertices[p3], p3y = vertices[p3 + 1]; + for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { + if (!isConcave[ii]) + continue; + var v = indices[ii] << 1; + var vx = vertices[v], vy = vertices[v + 1]; + if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { + if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { + if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) + break outer; + } + } + } + break; + } + if (next == 0) { + do { + if (!isConcave[i]) + break; + i--; + } while (i > 0); + break; + } + previous = i; + i = next; + next = (next + 1) % vertexCount; + } + triangles.push(indices[(vertexCount + i - 1) % vertexCount]); + triangles.push(indices[i]); + triangles.push(indices[(i + 1) % vertexCount]); + indices.splice(i, 1); + isConcave.splice(i, 1); + vertexCount--; + var previousIndex = (vertexCount + i - 1) % vertexCount; + var nextIndex = i == vertexCount ? 0 : i; + isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); + isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); + } + if (vertexCount == 3) { + triangles.push(indices[2]); + triangles.push(indices[0]); + triangles.push(indices[1]); + } + return triangles; + }; + Triangulator.prototype.decompose = function (verticesArray, triangles) { + var vertices = verticesArray; + var convexPolygons = this.convexPolygons; + this.polygonPool.freeAll(convexPolygons); + convexPolygons.length = 0; + var convexPolygonsIndices = this.convexPolygonsIndices; + this.polygonIndicesPool.freeAll(convexPolygonsIndices); + convexPolygonsIndices.length = 0; + var polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + var polygon = this.polygonPool.obtain(); + polygon.length = 0; + var fanBaseIndex = -1, lastWinding = 0; + for (var i = 0, n = triangles.length; i < n; i += 3) { + var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; + var x1 = vertices[t1], y1 = vertices[t1 + 1]; + var x2 = vertices[t2], y2 = vertices[t2 + 1]; + var x3 = vertices[t3], y3 = vertices[t3 + 1]; + var merged = false; + if (fanBaseIndex == t1) { + var o = polygon.length - 4; + var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); + var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); + if (winding1 == lastWinding && winding2 == lastWinding) { + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(t3); + merged = true; + } + } + if (!merged) { + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + else { + this.polygonPool.free(polygon); + this.polygonIndicesPool.free(polygonIndices); + } + polygon = this.polygonPool.obtain(); + polygon.length = 0; + polygon.push(x1); + polygon.push(y1); + polygon.push(x2); + polygon.push(y2); + polygon.push(x3); + polygon.push(y3); + polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + polygonIndices.push(t1); + polygonIndices.push(t2); + polygonIndices.push(t3); + lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); + fanBaseIndex = t1; + } + } + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + for (var i = 0, n = convexPolygons.length; i < n; i++) { + polygonIndices = convexPolygonsIndices[i]; + if (polygonIndices.length == 0) + continue; + var firstIndex = polygonIndices[0]; + var lastIndex = polygonIndices[polygonIndices.length - 1]; + polygon = convexPolygons[i]; + var o = polygon.length - 4; + var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; + var prevX = polygon[o + 2], prevY = polygon[o + 3]; + var firstX = polygon[0], firstY = polygon[1]; + var secondX = polygon[2], secondY = polygon[3]; + var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); + for (var ii = 0; ii < n; ii++) { + if (ii == i) + continue; + var otherIndices = convexPolygonsIndices[ii]; + if (otherIndices.length != 3) + continue; + var otherFirstIndex = otherIndices[0]; + var otherSecondIndex = otherIndices[1]; + var otherLastIndex = otherIndices[2]; + var otherPoly = convexPolygons[ii]; + var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; + if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) + continue; + var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); + var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); + if (winding1 == winding && winding2 == winding) { + otherPoly.length = 0; + otherIndices.length = 0; + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(otherLastIndex); + prevPrevX = prevX; + prevPrevY = prevY; + prevX = x3; + prevY = y3; + ii = 0; + } + } + } + for (var i = convexPolygons.length - 1; i >= 0; i--) { + polygon = convexPolygons[i]; + if (polygon.length == 0) { + convexPolygons.splice(i, 1); + this.polygonPool.free(polygon); + polygonIndices = convexPolygonsIndices[i]; + convexPolygonsIndices.splice(i, 1); + this.polygonIndicesPool.free(polygonIndices); + } + } + return convexPolygons; + }; + Triangulator.isConcave = function (index, vertexCount, vertices, indices) { + var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; + var current = indices[index] << 1; + var next = indices[(index + 1) % vertexCount] << 1; + return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); + }; + Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { + return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; + }; + Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { + var px = p2x - p1x, py = p2y - p1y; + return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; + }; + return Triangulator; + }()); + spine.Triangulator = Triangulator; })(spine || (spine = {})); var spine; (function (spine) { - var RegionAttachment = (function (_super) { - __extends(RegionAttachment, _super); - function RegionAttachment(name) { - var _this = _super.call(this, name) || this; - _this.x = 0; - _this.y = 0; - _this.scaleX = 1; - _this.scaleY = 1; - _this.rotation = 0; - _this.width = 0; - _this.height = 0; - _this.color = new spine.Color(1, 1, 1, 1); - _this.offset = spine.Utils.newFloatArray(8); - _this.uvs = spine.Utils.newFloatArray(8); - _this.tempColor = new spine.Color(1, 1, 1, 1); - return _this; - } - RegionAttachment.prototype.updateOffset = function () { - var regionScaleX = this.width / this.region.originalWidth * this.scaleX; - var regionScaleY = this.height / this.region.originalHeight * this.scaleY; - var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; - var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; - var localX2 = localX + this.region.width * regionScaleX; - var localY2 = localY + this.region.height * regionScaleY; - var radians = this.rotation * Math.PI / 180; - var cos = Math.cos(radians); - var sin = Math.sin(radians); - var localXCos = localX * cos + this.x; - var localXSin = localX * sin; - var localYCos = localY * cos + this.y; - var localYSin = localY * sin; - var localX2Cos = localX2 * cos + this.x; - var localX2Sin = localX2 * sin; - var localY2Cos = localY2 * cos + this.y; - var localY2Sin = localY2 * sin; - var offset = this.offset; - offset[RegionAttachment.OX1] = localXCos - localYSin; - offset[RegionAttachment.OY1] = localYCos + localXSin; - offset[RegionAttachment.OX2] = localXCos - localY2Sin; - offset[RegionAttachment.OY2] = localY2Cos + localXSin; - offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; - offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; - offset[RegionAttachment.OX4] = localX2Cos - localYSin; - offset[RegionAttachment.OY4] = localYCos + localX2Sin; - }; - RegionAttachment.prototype.setRegion = function (region) { - this.region = region; - var uvs = this.uvs; - if (region.rotate) { - uvs[2] = region.u; - uvs[3] = region.v2; - uvs[4] = region.u; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v; - uvs[0] = region.u2; - uvs[1] = region.v2; - } - else { - uvs[0] = region.u; - uvs[1] = region.v2; - uvs[2] = region.u; - uvs[3] = region.v; - uvs[4] = region.u2; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v2; - } - }; - RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { - var vertexOffset = this.offset; - var x = bone.worldX, y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = vertexOffset[RegionAttachment.OX1]; - offsetY = vertexOffset[RegionAttachment.OY1]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX2]; - offsetY = vertexOffset[RegionAttachment.OY2]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX3]; - offsetY = vertexOffset[RegionAttachment.OY3]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX4]; - offsetY = vertexOffset[RegionAttachment.OY4]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - }; - return RegionAttachment; - }(spine.Attachment)); - RegionAttachment.OX1 = 0; - RegionAttachment.OY1 = 1; - RegionAttachment.OX2 = 2; - RegionAttachment.OY2 = 3; - RegionAttachment.OX3 = 4; - RegionAttachment.OY3 = 5; - RegionAttachment.OX4 = 6; - RegionAttachment.OY4 = 7; - RegionAttachment.X1 = 0; - RegionAttachment.Y1 = 1; - RegionAttachment.C1R = 2; - RegionAttachment.C1G = 3; - RegionAttachment.C1B = 4; - RegionAttachment.C1A = 5; - RegionAttachment.U1 = 6; - RegionAttachment.V1 = 7; - RegionAttachment.X2 = 8; - RegionAttachment.Y2 = 9; - RegionAttachment.C2R = 10; - RegionAttachment.C2G = 11; - RegionAttachment.C2B = 12; - RegionAttachment.C2A = 13; - RegionAttachment.U2 = 14; - RegionAttachment.V2 = 15; - RegionAttachment.X3 = 16; - RegionAttachment.Y3 = 17; - RegionAttachment.C3R = 18; - RegionAttachment.C3G = 19; - RegionAttachment.C3B = 20; - RegionAttachment.C3A = 21; - RegionAttachment.U3 = 22; - RegionAttachment.V3 = 23; - RegionAttachment.X4 = 24; - RegionAttachment.Y4 = 25; - RegionAttachment.C4R = 26; - RegionAttachment.C4G = 27; - RegionAttachment.C4B = 28; - RegionAttachment.C4A = 29; - RegionAttachment.U4 = 30; - RegionAttachment.V4 = 31; - spine.RegionAttachment = RegionAttachment; + var IntSet = (function () { + function IntSet() { + this.array = new Array(); + } + IntSet.prototype.add = function (value) { + var contains = this.contains(value); + this.array[value | 0] = value | 0; + return !contains; + }; + IntSet.prototype.contains = function (value) { + return this.array[value | 0] != undefined; + }; + IntSet.prototype.remove = function (value) { + this.array[value | 0] = undefined; + }; + IntSet.prototype.clear = function () { + this.array.length = 0; + }; + return IntSet; + }()); + spine.IntSet = IntSet; + var Color = (function () { + function Color(r, g, b, a) { + if (r === void 0) { r = 0; } + if (g === void 0) { g = 0; } + if (b === void 0) { b = 0; } + if (a === void 0) { a = 0; } + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + Color.prototype.set = function (r, g, b, a) { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + this.clamp(); + return this; + }; + Color.prototype.setFromColor = function (c) { + this.r = c.r; + this.g = c.g; + this.b = c.b; + this.a = c.a; + return this; + }; + Color.prototype.setFromString = function (hex) { + hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; + this.r = parseInt(hex.substr(0, 2), 16) / 255.0; + this.g = parseInt(hex.substr(2, 2), 16) / 255.0; + this.b = parseInt(hex.substr(4, 2), 16) / 255.0; + this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; + return this; + }; + Color.prototype.add = function (r, g, b, a) { + this.r += r; + this.g += g; + this.b += b; + this.a += a; + this.clamp(); + return this; + }; + Color.prototype.clamp = function () { + if (this.r < 0) + this.r = 0; + else if (this.r > 1) + this.r = 1; + if (this.g < 0) + this.g = 0; + else if (this.g > 1) + this.g = 1; + if (this.b < 0) + this.b = 0; + else if (this.b > 1) + this.b = 1; + if (this.a < 0) + this.a = 0; + else if (this.a > 1) + this.a = 1; + return this; + }; + Color.WHITE = new Color(1, 1, 1, 1); + Color.RED = new Color(1, 0, 0, 1); + Color.GREEN = new Color(0, 1, 0, 1); + Color.BLUE = new Color(0, 0, 1, 1); + Color.MAGENTA = new Color(1, 0, 1, 1); + return Color; + }()); + spine.Color = Color; + var MathUtils = (function () { + function MathUtils() { + } + MathUtils.clamp = function (value, min, max) { + if (value < min) + return min; + if (value > max) + return max; + return value; + }; + MathUtils.cosDeg = function (degrees) { + return Math.cos(degrees * MathUtils.degRad); + }; + MathUtils.sinDeg = function (degrees) { + return Math.sin(degrees * MathUtils.degRad); + }; + MathUtils.signum = function (value) { + return value > 0 ? 1 : value < 0 ? -1 : 0; + }; + MathUtils.toInt = function (x) { + return x > 0 ? Math.floor(x) : Math.ceil(x); + }; + MathUtils.cbrt = function (x) { + var y = Math.pow(Math.abs(x), 1 / 3); + return x < 0 ? -y : y; + }; + MathUtils.PI = 3.1415927; + MathUtils.PI2 = MathUtils.PI * 2; + MathUtils.radiansToDegrees = 180 / MathUtils.PI; + MathUtils.radDeg = MathUtils.radiansToDegrees; + MathUtils.degreesToRadians = MathUtils.PI / 180; + MathUtils.degRad = MathUtils.degreesToRadians; + return MathUtils; + }()); + spine.MathUtils = MathUtils; + var Utils = (function () { + function Utils() { + } + Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { + for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { + dest[j] = source[i]; + } + }; + Utils.setArraySize = function (array, size, value) { + if (value === void 0) { value = 0; } + var oldSize = array.length; + if (oldSize == size) + return array; + array.length = size; + if (oldSize < size) { + for (var i = oldSize; i < size; i++) + array[i] = value; + } + return array; + }; + Utils.ensureArrayCapacity = function (array, size, value) { + if (value === void 0) { value = 0; } + if (array.length >= size) + return array; + return Utils.setArraySize(array, size, value); + }; + Utils.newArray = function (size, defaultValue) { + var array = new Array(size); + for (var i = 0; i < size; i++) + array[i] = defaultValue; + return array; + }; + Utils.newFloatArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Float32Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.newShortArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Int16Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.toFloatArray = function (array) { + return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; + }; + Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; + return Utils; + }()); + spine.Utils = Utils; + var DebugUtils = (function () { + function DebugUtils() { + } + DebugUtils.logBones = function (skeleton) { + for (var i = 0; i < skeleton.bones.length; i++) { + var bone = skeleton.bones[i]; + console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); + } + }; + return DebugUtils; + }()); + spine.DebugUtils = DebugUtils; + var Pool = (function () { + function Pool(instantiator) { + this.items = new Array(); + this.instantiator = instantiator; + } + Pool.prototype.obtain = function () { + return this.items.length > 0 ? this.items.pop() : this.instantiator(); + }; + Pool.prototype.free = function (item) { + if (item.reset) + item.reset(); + this.items.push(item); + }; + Pool.prototype.freeAll = function (items) { + for (var i = 0; i < items.length; i++) { + if (items[i].reset) + items[i].reset(); + this.items[i] = items[i]; + } + }; + Pool.prototype.clear = function () { + this.items.length = 0; + }; + return Pool; + }()); + spine.Pool = Pool; + var Vector2 = (function () { + function Vector2(x, y) { + if (x === void 0) { x = 0; } + if (y === void 0) { y = 0; } + this.x = x; + this.y = y; + } + Vector2.prototype.set = function (x, y) { + this.x = x; + this.y = y; + return this; + }; + Vector2.prototype.length = function () { + var x = this.x; + var y = this.y; + return Math.sqrt(x * x + y * y); + }; + Vector2.prototype.normalize = function () { + var len = this.length(); + if (len != 0) { + this.x /= len; + this.y /= len; + } + return this; + }; + return Vector2; + }()); + spine.Vector2 = Vector2; + var TimeKeeper = (function () { + function TimeKeeper() { + this.maxDelta = 0.064; + this.framesPerSecond = 0; + this.delta = 0; + this.totalTime = 0; + this.lastTime = Date.now() / 1000; + this.frameCount = 0; + this.frameTime = 0; + } + TimeKeeper.prototype.update = function () { + var now = Date.now() / 1000; + this.delta = now - this.lastTime; + this.frameTime += this.delta; + this.totalTime += this.delta; + if (this.delta > this.maxDelta) + this.delta = this.maxDelta; + this.lastTime = now; + this.frameCount++; + if (this.frameTime > 1) { + this.framesPerSecond = this.frameCount / this.frameTime; + this.frameTime = 0; + this.frameCount = 0; + } + }; + return TimeKeeper; + }()); + spine.TimeKeeper = TimeKeeper; + var WindowedMean = (function () { + function WindowedMean(windowSize) { + if (windowSize === void 0) { windowSize = 32; } + this.addedValues = 0; + this.lastValue = 0; + this.mean = 0; + this.dirty = true; + this.values = new Array(windowSize); + } + WindowedMean.prototype.hasEnoughData = function () { + return this.addedValues >= this.values.length; + }; + WindowedMean.prototype.addValue = function (value) { + if (this.addedValues < this.values.length) + this.addedValues++; + this.values[this.lastValue++] = value; + if (this.lastValue > this.values.length - 1) + this.lastValue = 0; + this.dirty = true; + }; + WindowedMean.prototype.getMean = function () { + if (this.hasEnoughData()) { + if (this.dirty) { + var mean = 0; + for (var i = 0; i < this.values.length; i++) { + mean += this.values[i]; + } + this.mean = mean / this.values.length; + this.dirty = false; + } + return this.mean; + } + else { + return 0; + } + }; + return WindowedMean; + }()); + spine.WindowedMean = WindowedMean; })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var AssetManager = (function (_super) { - __extends(AssetManager, _super); - function AssetManager(context, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - return _super.call(this, function (image) { - return new spine.webgl.GLTexture(context, image); - }, pathPrefix) || this; - } - return AssetManager; - }(spine.AssetManager)); - webgl.AssetManager = AssetManager; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var AssetManager = (function (_super) { + __extends(AssetManager, _super); + function AssetManager(context, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + _super.call(this, function (image) { + return new spine.webgl.GLTexture(context, image); + }, pathPrefix); + } + return AssetManager; + }(spine.AssetManager)); + webgl.AssetManager = AssetManager; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var OrthoCamera = (function () { - function OrthoCamera(viewportWidth, viewportHeight) { - this.position = new webgl.Vector3(0, 0, 0); - this.direction = new webgl.Vector3(0, 0, -1); - this.up = new webgl.Vector3(0, 1, 0); - this.near = 0; - this.far = 100; - this.zoom = 1; - this.viewportWidth = 0; - this.viewportHeight = 0; - this.projectionView = new webgl.Matrix4(); - this.inverseProjectionView = new webgl.Matrix4(); - this.projection = new webgl.Matrix4(); - this.view = new webgl.Matrix4(); - this.tmp = new webgl.Vector3(); - this.viewportWidth = viewportWidth; - this.viewportHeight = viewportHeight; - this.update(); - } - OrthoCamera.prototype.update = function () { - var projection = this.projection; - var view = this.view; - var projectionView = this.projectionView; - var inverseProjectionView = this.inverseProjectionView; - var zoom = this.zoom, viewportWidth = this.viewportWidth, viewportHeight = this.viewportHeight; - projection.ortho(zoom * (-viewportWidth / 2), zoom * (viewportWidth / 2), zoom * (-viewportHeight / 2), zoom * (viewportHeight / 2), this.near, this.far); - view.lookAt(this.position, this.direction, this.up); - projectionView.set(projection.values); - projectionView.multiply(view); - inverseProjectionView.set(projectionView.values).invert(); - }; - OrthoCamera.prototype.screenToWorld = function (screenCoords, screenWidth, screenHeight) { - var x = screenCoords.x, y = screenHeight - screenCoords.y - 1; - var tmp = this.tmp; - tmp.x = (2 * x) / screenWidth - 1; - tmp.y = (2 * y) / screenHeight - 1; - tmp.z = (2 * screenCoords.z) - 1; - tmp.project(this.inverseProjectionView); - screenCoords.set(tmp.x, tmp.y, tmp.z); - return screenCoords; - }; - OrthoCamera.prototype.setViewport = function (viewportWidth, viewportHeight) { - this.viewportWidth = viewportWidth; - this.viewportHeight = viewportHeight; - }; - return OrthoCamera; - }()); - webgl.OrthoCamera = OrthoCamera; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var OrthoCamera = (function () { + function OrthoCamera(viewportWidth, viewportHeight) { + this.position = new webgl.Vector3(0, 0, 0); + this.direction = new webgl.Vector3(0, 0, -1); + this.up = new webgl.Vector3(0, 1, 0); + this.near = 0; + this.far = 100; + this.zoom = 1; + this.viewportWidth = 0; + this.viewportHeight = 0; + this.projectionView = new webgl.Matrix4(); + this.inverseProjectionView = new webgl.Matrix4(); + this.projection = new webgl.Matrix4(); + this.view = new webgl.Matrix4(); + this.tmp = new webgl.Vector3(); + this.viewportWidth = viewportWidth; + this.viewportHeight = viewportHeight; + this.update(); + } + OrthoCamera.prototype.update = function () { + var projection = this.projection; + var view = this.view; + var projectionView = this.projectionView; + var inverseProjectionView = this.inverseProjectionView; + var zoom = this.zoom, viewportWidth = this.viewportWidth, viewportHeight = this.viewportHeight; + projection.ortho(zoom * (-viewportWidth / 2), zoom * (viewportWidth / 2), zoom * (-viewportHeight / 2), zoom * (viewportHeight / 2), this.near, this.far); + view.lookAt(this.position, this.direction, this.up); + projectionView.set(projection.values); + projectionView.multiply(view); + inverseProjectionView.set(projectionView.values).invert(); + }; + OrthoCamera.prototype.screenToWorld = function (screenCoords, screenWidth, screenHeight) { + var x = screenCoords.x, y = screenHeight - screenCoords.y - 1; + var tmp = this.tmp; + tmp.x = (2 * x) / screenWidth - 1; + tmp.y = (2 * y) / screenHeight - 1; + tmp.z = (2 * screenCoords.z) - 1; + tmp.project(this.inverseProjectionView); + screenCoords.set(tmp.x, tmp.y, tmp.z); + return screenCoords; + }; + OrthoCamera.prototype.setViewport = function (viewportWidth, viewportHeight) { + this.viewportWidth = viewportWidth; + this.viewportHeight = viewportHeight; + }; + return OrthoCamera; + }()); + webgl.OrthoCamera = OrthoCamera; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var GLTexture = (function (_super) { - __extends(GLTexture, _super); - function GLTexture(context, image, useMipMaps) { - if (useMipMaps === void 0) { useMipMaps = false; } - var _this = _super.call(this, image) || this; - _this.texture = null; - _this.boundUnit = 0; - _this.useMipMaps = false; - _this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - _this.useMipMaps = useMipMaps; - _this.restore(); - _this.context.addRestorable(_this); - return _this; - } - GLTexture.prototype.setFilters = function (minFilter, magFilter) { - var gl = this.context.gl; - this.bind(); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, magFilter); - }; - GLTexture.prototype.setWraps = function (uWrap, vWrap) { - var gl = this.context.gl; - this.bind(); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, uWrap); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, vWrap); - }; - GLTexture.prototype.update = function (useMipMaps) { - var gl = this.context.gl; - if (!this.texture) { - this.texture = this.context.gl.createTexture(); - } - this.bind(); - gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this._image); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, useMipMaps ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); - if (useMipMaps) - gl.generateMipmap(gl.TEXTURE_2D); - }; - GLTexture.prototype.restore = function () { - this.texture = null; - this.update(this.useMipMaps); - }; - GLTexture.prototype.bind = function (unit) { - if (unit === void 0) { unit = 0; } - var gl = this.context.gl; - this.boundUnit = unit; - gl.activeTexture(gl.TEXTURE0 + unit); - gl.bindTexture(gl.TEXTURE_2D, this.texture); - }; - GLTexture.prototype.unbind = function () { - var gl = this.context.gl; - gl.activeTexture(gl.TEXTURE0 + this.boundUnit); - gl.bindTexture(gl.TEXTURE_2D, null); - }; - GLTexture.prototype.dispose = function () { - this.context.removeRestorable(this); - var gl = this.context.gl; - gl.deleteTexture(this.texture); - }; - return GLTexture; - }(spine.Texture)); - webgl.GLTexture = GLTexture; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var GLTexture = (function (_super) { + __extends(GLTexture, _super); + function GLTexture(context, image, useMipMaps) { + if (useMipMaps === void 0) { useMipMaps = false; } + _super.call(this, image); + this.texture = null; + this.boundUnit = 0; + this.useMipMaps = false; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.useMipMaps = useMipMaps; + this.restore(); + this.context.addRestorable(this); + } + GLTexture.prototype.setFilters = function (minFilter, magFilter) { + var gl = this.context.gl; + this.bind(); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, magFilter); + }; + GLTexture.prototype.setWraps = function (uWrap, vWrap) { + var gl = this.context.gl; + this.bind(); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, uWrap); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, vWrap); + }; + GLTexture.prototype.update = function (useMipMaps) { + var gl = this.context.gl; + if (!this.texture) { + this.texture = this.context.gl.createTexture(); + } + this.bind(); + gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this._image); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, useMipMaps ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); + if (useMipMaps) + gl.generateMipmap(gl.TEXTURE_2D); + }; + GLTexture.prototype.restore = function () { + this.texture = null; + this.update(this.useMipMaps); + }; + GLTexture.prototype.bind = function (unit) { + if (unit === void 0) { unit = 0; } + var gl = this.context.gl; + this.boundUnit = unit; + gl.activeTexture(gl.TEXTURE0 + unit); + gl.bindTexture(gl.TEXTURE_2D, this.texture); + }; + GLTexture.prototype.unbind = function () { + var gl = this.context.gl; + gl.activeTexture(gl.TEXTURE0 + this.boundUnit); + gl.bindTexture(gl.TEXTURE_2D, null); + }; + GLTexture.prototype.dispose = function () { + this.context.removeRestorable(this); + var gl = this.context.gl; + gl.deleteTexture(this.texture); + }; + return GLTexture; + }(spine.Texture)); + webgl.GLTexture = GLTexture; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Input = (function () { - function Input(element) { - this.lastX = 0; - this.lastY = 0; - this.buttonDown = false; - this.currTouch = null; - this.touchesPool = new spine.Pool(function () { - return new spine.webgl.Touch(0, 0, 0); - }); - this.listeners = new Array(); - this.element = element; - this.setupCallbacks(element); - } - Input.prototype.setupCallbacks = function (element) { - var _this = this; - element.addEventListener("mousedown", function (ev) { - if (ev instanceof MouseEvent) { - var rect = element.getBoundingClientRect(); - var x = ev.clientX - rect.left; - var y = ev.clientY - rect.top; - var listeners = _this.listeners; - for (var i = 0; i < listeners.length; i++) { - listeners[i].down(x, y); - } - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = true; - } - }, true); - element.addEventListener("mousemove", function (ev) { - if (ev instanceof MouseEvent) { - var rect = element.getBoundingClientRect(); - var x = ev.clientX - rect.left; - var y = ev.clientY - rect.top; - var listeners = _this.listeners; - for (var i = 0; i < listeners.length; i++) { - if (_this.buttonDown) { - listeners[i].dragged(x, y); - } - else { - listeners[i].moved(x, y); - } - } - _this.lastX = x; - _this.lastY = y; - } - }, true); - element.addEventListener("mouseup", function (ev) { - if (ev instanceof MouseEvent) { - var rect = element.getBoundingClientRect(); - var x = ev.clientX - rect.left; - var y = ev.clientY - rect.top; - var listeners = _this.listeners; - for (var i = 0; i < listeners.length; i++) { - listeners[i].up(x, y); - } - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = false; - } - }, true); - element.addEventListener("touchstart", function (ev) { - if (_this.currTouch != null) - return; - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - var rect = element.getBoundingClientRect(); - var x = touch.clientX - rect.left; - var y = touch.clientY - rect.top; - _this.currTouch = _this.touchesPool.obtain(); - _this.currTouch.identifier = touch.identifier; - _this.currTouch.x = x; - _this.currTouch.y = y; - break; - } - var listeners = _this.listeners; - for (var i_1 = 0; i_1 < listeners.length; i_1++) { - listeners[i_1].down(_this.currTouch.x, _this.currTouch.y); - } - console.log("Start " + _this.currTouch.x + ", " + _this.currTouch.y); - _this.lastX = _this.currTouch.x; - _this.lastY = _this.currTouch.y; - _this.buttonDown = true; - ev.preventDefault(); - }, false); - element.addEventListener("touchend", function (ev) { - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - if (_this.currTouch.identifier === touch.identifier) { - var rect = element.getBoundingClientRect(); - var x = _this.currTouch.x = touch.clientX - rect.left; - var y = _this.currTouch.y = touch.clientY - rect.top; - _this.touchesPool.free(_this.currTouch); - var listeners = _this.listeners; - for (var i_2 = 0; i_2 < listeners.length; i_2++) { - listeners[i_2].up(x, y); - } - console.log("End " + x + ", " + y); - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = false; - _this.currTouch = null; - break; - } - } - ev.preventDefault(); - }, false); - element.addEventListener("touchcancel", function (ev) { - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - if (_this.currTouch.identifier === touch.identifier) { - var rect = element.getBoundingClientRect(); - var x = _this.currTouch.x = touch.clientX - rect.left; - var y = _this.currTouch.y = touch.clientY - rect.top; - _this.touchesPool.free(_this.currTouch); - var listeners = _this.listeners; - for (var i_3 = 0; i_3 < listeners.length; i_3++) { - listeners[i_3].up(x, y); - } - console.log("End " + x + ", " + y); - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = false; - _this.currTouch = null; - break; - } - } - ev.preventDefault(); - }, false); - element.addEventListener("touchmove", function (ev) { - if (_this.currTouch == null) - return; - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - if (_this.currTouch.identifier === touch.identifier) { - var rect = element.getBoundingClientRect(); - var x = touch.clientX - rect.left; - var y = touch.clientY - rect.top; - var listeners = _this.listeners; - for (var i_4 = 0; i_4 < listeners.length; i_4++) { - listeners[i_4].dragged(x, y); - } - console.log("Drag " + x + ", " + y); - _this.lastX = _this.currTouch.x = x; - _this.lastY = _this.currTouch.y = y; - break; - } - } - ev.preventDefault(); - }, false); - }; - Input.prototype.addListener = function (listener) { - this.listeners.push(listener); - }; - Input.prototype.removeListener = function (listener) { - var idx = this.listeners.indexOf(listener); - if (idx > -1) { - this.listeners.splice(idx, 1); - } - }; - return Input; - }()); - webgl.Input = Input; - var Touch = (function () { - function Touch(identifier, x, y) { - this.identifier = identifier; - this.x = x; - this.y = y; - } - return Touch; - }()); - webgl.Touch = Touch; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Input = (function () { + function Input(element) { + this.lastX = 0; + this.lastY = 0; + this.buttonDown = false; + this.currTouch = null; + this.touchesPool = new spine.Pool(function () { + return new spine.webgl.Touch(0, 0, 0); + }); + this.listeners = new Array(); + this.element = element; + this.setupCallbacks(element); + } + Input.prototype.setupCallbacks = function (element) { + var _this = this; + element.addEventListener("mousedown", function (ev) { + if (ev instanceof MouseEvent) { + var rect = element.getBoundingClientRect(); + var x = ev.clientX - rect.left; + var y = ev.clientY - rect.top; + var listeners = _this.listeners; + for (var i = 0; i < listeners.length; i++) { + listeners[i].down(x, y); + } + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = true; + } + }, true); + element.addEventListener("mousemove", function (ev) { + if (ev instanceof MouseEvent) { + var rect = element.getBoundingClientRect(); + var x = ev.clientX - rect.left; + var y = ev.clientY - rect.top; + var listeners = _this.listeners; + for (var i = 0; i < listeners.length; i++) { + if (_this.buttonDown) { + listeners[i].dragged(x, y); + } + else { + listeners[i].moved(x, y); + } + } + _this.lastX = x; + _this.lastY = y; + } + }, true); + element.addEventListener("mouseup", function (ev) { + if (ev instanceof MouseEvent) { + var rect = element.getBoundingClientRect(); + var x = ev.clientX - rect.left; + var y = ev.clientY - rect.top; + var listeners = _this.listeners; + for (var i = 0; i < listeners.length; i++) { + listeners[i].up(x, y); + } + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = false; + } + }, true); + element.addEventListener("touchstart", function (ev) { + if (_this.currTouch != null) + return; + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + var rect = element.getBoundingClientRect(); + var x = touch.clientX - rect.left; + var y = touch.clientY - rect.top; + _this.currTouch = _this.touchesPool.obtain(); + _this.currTouch.identifier = touch.identifier; + _this.currTouch.x = x; + _this.currTouch.y = y; + break; + } + var listeners = _this.listeners; + for (var i_1 = 0; i_1 < listeners.length; i_1++) { + listeners[i_1].down(_this.currTouch.x, _this.currTouch.y); + } + console.log("Start " + _this.currTouch.x + ", " + _this.currTouch.y); + _this.lastX = _this.currTouch.x; + _this.lastY = _this.currTouch.y; + _this.buttonDown = true; + ev.preventDefault(); + }, false); + element.addEventListener("touchend", function (ev) { + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + if (_this.currTouch.identifier === touch.identifier) { + var rect = element.getBoundingClientRect(); + var x = _this.currTouch.x = touch.clientX - rect.left; + var y = _this.currTouch.y = touch.clientY - rect.top; + _this.touchesPool.free(_this.currTouch); + var listeners = _this.listeners; + for (var i_2 = 0; i_2 < listeners.length; i_2++) { + listeners[i_2].up(x, y); + } + console.log("End " + x + ", " + y); + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = false; + _this.currTouch = null; + break; + } + } + ev.preventDefault(); + }, false); + element.addEventListener("touchcancel", function (ev) { + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + if (_this.currTouch.identifier === touch.identifier) { + var rect = element.getBoundingClientRect(); + var x = _this.currTouch.x = touch.clientX - rect.left; + var y = _this.currTouch.y = touch.clientY - rect.top; + _this.touchesPool.free(_this.currTouch); + var listeners = _this.listeners; + for (var i_3 = 0; i_3 < listeners.length; i_3++) { + listeners[i_3].up(x, y); + } + console.log("End " + x + ", " + y); + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = false; + _this.currTouch = null; + break; + } + } + ev.preventDefault(); + }, false); + element.addEventListener("touchmove", function (ev) { + if (_this.currTouch == null) + return; + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + if (_this.currTouch.identifier === touch.identifier) { + var rect = element.getBoundingClientRect(); + var x = touch.clientX - rect.left; + var y = touch.clientY - rect.top; + var listeners = _this.listeners; + for (var i_4 = 0; i_4 < listeners.length; i_4++) { + listeners[i_4].dragged(x, y); + } + console.log("Drag " + x + ", " + y); + _this.lastX = _this.currTouch.x = x; + _this.lastY = _this.currTouch.y = y; + break; + } + } + ev.preventDefault(); + }, false); + }; + Input.prototype.addListener = function (listener) { + this.listeners.push(listener); + }; + Input.prototype.removeListener = function (listener) { + var idx = this.listeners.indexOf(listener); + if (idx > -1) { + this.listeners.splice(idx, 1); + } + }; + return Input; + }()); + webgl.Input = Input; + var Touch = (function () { + function Touch(identifier, x, y) { + this.identifier = identifier; + this.x = x; + this.y = y; + } + return Touch; + }()); + webgl.Touch = Touch; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var LoadingScreen = (function () { - function LoadingScreen(renderer) { - this.logo = null; - this.spinner = null; - this.angle = 0; - this.fadeOut = 0; - this.timeKeeper = new spine.TimeKeeper(); - this.backgroundColor = new spine.Color(0.135, 0.135, 0.135, 1); - this.tempColor = new spine.Color(); - this.firstDraw = 0; - this.renderer = renderer; - this.timeKeeper.maxDelta = 9; - if (LoadingScreen.logoImg === null) { - var isSafari = navigator.userAgent.indexOf("Safari") > -1; - LoadingScreen.logoImg = new Image(); - LoadingScreen.logoImg.src = LoadingScreen.SPINE_LOGO_DATA; - if (!isSafari) - LoadingScreen.logoImg.crossOrigin = "anonymous"; - LoadingScreen.logoImg.onload = function (ev) { - LoadingScreen.loaded++; - }; - LoadingScreen.spinnerImg = new Image(); - LoadingScreen.spinnerImg.src = LoadingScreen.SPINNER_DATA; - if (!isSafari) - LoadingScreen.spinnerImg.crossOrigin = "anonymous"; - LoadingScreen.spinnerImg.onload = function (ev) { - LoadingScreen.loaded++; - }; - } - } - LoadingScreen.prototype.draw = function (complete) { - if (complete === void 0) { complete = false; } - if (complete && this.fadeOut > LoadingScreen.FADE_SECONDS) - return; - this.timeKeeper.update(); - var a = Math.abs(Math.sin(this.timeKeeper.totalTime + 0.75)); - this.angle -= this.timeKeeper.delta * 360 * (1 + 1.5 * Math.pow(a, 5)); - var renderer = this.renderer; - var canvas = renderer.canvas; - var gl = renderer.context.gl; - var oldX = renderer.camera.position.x, oldY = renderer.camera.position.y; - renderer.camera.position.set(canvas.width / 2, canvas.height / 2, 0); - renderer.camera.viewportWidth = canvas.width; - renderer.camera.viewportHeight = canvas.height; - renderer.resize(webgl.ResizeMode.Stretch); - if (!complete) { - gl.clearColor(this.backgroundColor.r, this.backgroundColor.g, this.backgroundColor.b, this.backgroundColor.a); - gl.clear(gl.COLOR_BUFFER_BIT); - this.tempColor.a = 1; - } - else { - this.fadeOut += this.timeKeeper.delta * (this.timeKeeper.totalTime < 1 ? 2 : 1); - if (this.fadeOut > LoadingScreen.FADE_SECONDS) { - renderer.camera.position.set(oldX, oldY, 0); - return; - } - a = 1 - this.fadeOut / LoadingScreen.FADE_SECONDS; - this.tempColor.setFromColor(this.backgroundColor); - this.tempColor.a = 1 - (a - 1) * (a - 1); - renderer.begin(); - renderer.quad(true, 0, 0, canvas.width, 0, canvas.width, canvas.height, 0, canvas.height, this.tempColor, this.tempColor, this.tempColor, this.tempColor); - renderer.end(); - } - this.tempColor.set(1, 1, 1, this.tempColor.a); - if (LoadingScreen.loaded != 2) - return; - if (this.logo === null) { - this.logo = new webgl.GLTexture(renderer.context, LoadingScreen.logoImg); - this.spinner = new webgl.GLTexture(renderer.context, LoadingScreen.spinnerImg); - } - this.logo.update(false); - this.spinner.update(false); - var logoWidth = this.logo.getImage().width; - var logoHeight = this.logo.getImage().height; - var spinnerWidth = this.spinner.getImage().width; - var spinnerHeight = this.spinner.getImage().height; - renderer.batcher.setBlendMode(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA); - renderer.begin(); - renderer.drawTexture(this.logo, (canvas.width - logoWidth) / 2, (canvas.height - logoHeight) / 2, logoWidth, logoHeight, this.tempColor); - renderer.drawTextureRotated(this.spinner, (canvas.width - spinnerWidth) / 2, (canvas.height - spinnerHeight) / 2, spinnerWidth, spinnerHeight, spinnerWidth / 2, spinnerHeight / 2, this.angle, this.tempColor); - renderer.end(); - renderer.camera.position.set(oldX, oldY, 0); - }; - return LoadingScreen; - }()); - LoadingScreen.FADE_SECONDS = 1; - LoadingScreen.loaded = 0; - LoadingScreen.spinnerImg = null; - LoadingScreen.logoImg = null; - LoadingScreen.SPINNER_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAChCAMAAAB3TUS6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAYNQTFRFAAAA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AAkTDRyAAAAIB0Uk5TAAABAgMEBQYHCAkKCwwODxAREhMUFRYXGBkaHB0eICEiIyQlJicoKSorLC0uLzAxMjM0Nzg5Ojs8PT4/QEFDRUlKS0xNTk9QUlRWWFlbXF1eYWJjZmhscHF0d3h5e3x+f4CIiYuMj5GSlJWXm56io6arr7rAxcjO0dXe6Onr8fmb5sOOAAADuElEQVQYGe3B+3vTVBwH4M/3nCRt13br2Lozhug2q25gYQubcxqVKYoMCYoKjEsUdSpeiBc0Kl7yp9t2za39pely7PF5zvuiQKc+/e2f8K+f9g2oyQ77Ag4VGX+HketQ0XYYe0JQ0CdhogwF+WFiBgr6JkxUoKCDMMGgoP0w9gdUtB3GfoCKVsPYAVQ0H8YuQUWVMHYGKuJhrAklPQkjJpT0bdj3O9S0FfZ9ADXxP8MjVSiqFfa8B2VVV8+df14QtB4iwn+BpuZEgyM38WMQHDYhnbkgukrIh5ygZ48glyn6KshlL+jbhVRcxCzk0ApiC5CI5kVsgTAy9jiI/WxBGmqIFBMjqwYphwRZaiLNwsjqQdoVSFISGRwjM4OMFUjBRcYCYWT0XZD2SwUS0LzIKCGH2SDja0LxKiJjCrm0gowVFI6aIs1CTouPg5QvUTgSKXMMuVUeBSmEopFITBPGwO8HCYbCTYtImTAWejuI3CMUjmZFT5NjbM/9GvQcMkhADdFRIxxD7aug4wGDFGSVTcLx0MzutQ2CpmmapmmapmmapmmapmmaphWBmGFV6rNNcaLC0GUuv3LROftUo8wJk0a10207sVED6IIf+9673LIwQeW2PaCEJX/A+xYmhTbtQUu46g96SJgQZg9Zwxf+EAMTwuwhm3jkD7EwIdweBn+YhQlh9pA2HvpDTEwIs4es4GN/CMekNOxBJ9D2B10nTAyfW7fT1hjYgZ/xYIUwUcycaiwuv2h3tOcZADr7ud/12c0ru2cWSwQ1UAcixIgImqZpmqZpmqZpmqZpmqZp2v8HMSIcF186t8oghbnlOJt1wnHwl7yOGxwSlHacrjWG8dVuej03OApn7jhHtiyMiZa9yD6haLYTebWOsbDXvQRHwchJWSTkV/rQS+EoWttJaTHkJe56KXcJRZt20jY48nnBy9hE4WjLSbvAkIfwMm5zFG/KyWgRRke3vYwGZDjpZHCMruJltCAFrTtpVYxu1ktzCHKwbSdlGqOreynXGGQpOylljI5uebFbBuSZc2IbhBxmvcj9GiSiZ52+HQO5nPb6TkIqajs9L5eQk7jnddxZgGT0jNOxYSI36+Kdj9oG5OPV6QpB6yJuGAYnqIrecLveYlDUKffIOtREl90+BiWV3cgMlNR0I09DSS030oaSttzILpT0phu5BBWRmyAoiLkJgoIMN8GgoJKb4FBQzU0YUFDdTRhQUNVNcCjIdBMEBdE7buQ8lFRz+97lUFN5fe+qu//aMkeB/gU2ae9y2HgbngAAAABJRU5ErkJggg=="; - LoadingScreen.SPINE_LOGO_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAAAZCAYAAACis3k0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtNJREFUaN7tmT2I1EAUxwN+oWgRT0HFKo0WCkJ6ObmAWFwZbCxsXGysLNJaiCyIoDaSwk4ETzvhmnBaCRbBWoQ01ho4PwotjP8cE337mMy8TLK757mBH3fLTWbe/PbN53neNniqZW8FvAVvQAqugwvgDDgO9niLRyTyJagM/ACPF6bsIl9ZRDac/Cc6tLn5xQdRQ496QlKPLxD5QCDxO9jtGM8QfYoIgUlgCipGCRJL5VvlyOdCU09iEXkCfLSIfCrs7Fab6nOsiafu06iDwES9w/uU1QnDC+ekkVS9vEaDsgVeB0d+z1VDtOGxRaYPboP3Gokb4GgXkZp4chZPJKgvZ3U0XkriK/TIt9YUDllFgTAjGwoaoHqfBhMI58yD4BQ4V6/aHYdfxToftvw9F2SiVroawU2/Cv5C4Thv0KB9S5nxlOd4STxjwUjzSdYlgrYijw2BsEfgsaFcM09lhiys94xXQQwugcvgJrgFLjrEE7WUiTuWCQzt/ZXN7FfqGwuGClyVy2xZAFmfDQvNtwFFSspMDGsD+UTWqu1KoVmVooFEJgKRXw0if85RpISEzwsjzeqWzkjkC4PIJ3MUmQgITAHlQwTFhnZhELkEntfZRwR+AvfAgXmJHOqU02XligWT8ppg67NXbdCXeq7afUQ6L8C2DalEZNt2YyQ94Qy8/ekjMpBMbfyl5iTjG7YAI8cNecROAb4kJmTjaXAF3AGvwQewOiuRxEtlSaT4j2h2lMsUueQEoMlIKpTvAmKhxPMtC876jEX6rE8l8TNx/KVbn6xlWU9NWcSDUsO4NGWpQOTZFpHPOooMXcswmW2XFk3ixb2v0Nq+XVKP00QNaffBLyWwBI/AkTlfMYZDXMf12kc6yjwEjoFdO/5me5oi/6tnyhlZX6OtgmX1c2Uh0k3khmbB2b9TRfpd/jfTUeRDJvHdYg5wE7kPXAN3wQ1weDvH+xufEgpi5qIl3QAAAABJRU5ErkJggg=="; - webgl.LoadingScreen = LoadingScreen; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var LoadingScreen = (function () { + function LoadingScreen(renderer) { + this.logo = null; + this.spinner = null; + this.angle = 0; + this.fadeOut = 0; + this.timeKeeper = new spine.TimeKeeper(); + this.backgroundColor = new spine.Color(0.135, 0.135, 0.135, 1); + this.tempColor = new spine.Color(); + this.firstDraw = 0; + this.renderer = renderer; + this.timeKeeper.maxDelta = 9; + if (LoadingScreen.logoImg === null) { + var isSafari = navigator.userAgent.indexOf("Safari") > -1; + LoadingScreen.logoImg = new Image(); + LoadingScreen.logoImg.src = LoadingScreen.SPINE_LOGO_DATA; + if (!isSafari) + LoadingScreen.logoImg.crossOrigin = "anonymous"; + LoadingScreen.logoImg.onload = function (ev) { + LoadingScreen.loaded++; + }; + LoadingScreen.spinnerImg = new Image(); + LoadingScreen.spinnerImg.src = LoadingScreen.SPINNER_DATA; + if (!isSafari) + LoadingScreen.spinnerImg.crossOrigin = "anonymous"; + LoadingScreen.spinnerImg.onload = function (ev) { + LoadingScreen.loaded++; + }; + } + } + LoadingScreen.prototype.draw = function (complete) { + if (complete === void 0) { complete = false; } + if (complete && this.fadeOut > LoadingScreen.FADE_SECONDS) + return; + this.timeKeeper.update(); + var a = Math.abs(Math.sin(this.timeKeeper.totalTime + 0.75)); + this.angle -= this.timeKeeper.delta * 360 * (1 + 1.5 * Math.pow(a, 5)); + var renderer = this.renderer; + var canvas = renderer.canvas; + var gl = renderer.context.gl; + var oldX = renderer.camera.position.x, oldY = renderer.camera.position.y; + renderer.camera.position.set(canvas.width / 2, canvas.height / 2, 0); + renderer.camera.viewportWidth = canvas.width; + renderer.camera.viewportHeight = canvas.height; + renderer.resize(webgl.ResizeMode.Stretch); + if (!complete) { + gl.clearColor(this.backgroundColor.r, this.backgroundColor.g, this.backgroundColor.b, this.backgroundColor.a); + gl.clear(gl.COLOR_BUFFER_BIT); + this.tempColor.a = 1; + } + else { + this.fadeOut += this.timeKeeper.delta * (this.timeKeeper.totalTime < 1 ? 2 : 1); + if (this.fadeOut > LoadingScreen.FADE_SECONDS) { + renderer.camera.position.set(oldX, oldY, 0); + return; + } + a = 1 - this.fadeOut / LoadingScreen.FADE_SECONDS; + this.tempColor.setFromColor(this.backgroundColor); + this.tempColor.a = 1 - (a - 1) * (a - 1); + renderer.begin(); + renderer.quad(true, 0, 0, canvas.width, 0, canvas.width, canvas.height, 0, canvas.height, this.tempColor, this.tempColor, this.tempColor, this.tempColor); + renderer.end(); + } + this.tempColor.set(1, 1, 1, this.tempColor.a); + if (LoadingScreen.loaded != 2) + return; + if (this.logo === null) { + this.logo = new webgl.GLTexture(renderer.context, LoadingScreen.logoImg); + this.spinner = new webgl.GLTexture(renderer.context, LoadingScreen.spinnerImg); + } + this.logo.update(false); + this.spinner.update(false); + var logoWidth = this.logo.getImage().width; + var logoHeight = this.logo.getImage().height; + var spinnerWidth = this.spinner.getImage().width; + var spinnerHeight = this.spinner.getImage().height; + renderer.batcher.setBlendMode(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA); + renderer.begin(); + renderer.drawTexture(this.logo, (canvas.width - logoWidth) / 2, (canvas.height - logoHeight) / 2, logoWidth, logoHeight, this.tempColor); + renderer.drawTextureRotated(this.spinner, (canvas.width - spinnerWidth) / 2, (canvas.height - spinnerHeight) / 2, spinnerWidth, spinnerHeight, spinnerWidth / 2, spinnerHeight / 2, this.angle, this.tempColor); + renderer.end(); + renderer.camera.position.set(oldX, oldY, 0); + }; + LoadingScreen.FADE_SECONDS = 1; + LoadingScreen.loaded = 0; + LoadingScreen.spinnerImg = null; + LoadingScreen.logoImg = null; + LoadingScreen.SPINNER_DATA = "data:image/png;base64,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"; + LoadingScreen.SPINE_LOGO_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAAAZCAYAAACis3k0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtNJREFUaN7tmT2I1EAUxwN+oWgRT0HFKo0WCkJ6ObmAWFwZbCxsXGysLNJaiCyIoDaSwk4ETzvhmnBaCRbBWoQ01ho4PwotjP8cE337mMy8TLK757mBH3fLTWbe/PbN53neNniqZW8FvAVvQAqugwvgDDgO9niLRyTyJagM/ACPF6bsIl9ZRDac/Cc6tLn5xQdRQ496QlKPLxD5QCDxO9jtGM8QfYoIgUlgCipGCRJL5VvlyOdCU09iEXkCfLSIfCrs7Fab6nOsiafu06iDwES9w/uU1QnDC+ekkVS9vEaDsgVeB0d+z1VDtOGxRaYPboP3Gokb4GgXkZp4chZPJKgvZ3U0XkriK/TIt9YUDllFgTAjGwoaoHqfBhMI58yD4BQ4V6/aHYdfxToftvw9F2SiVroawU2/Cv5C4Thv0KB9S5nxlOd4STxjwUjzSdYlgrYijw2BsEfgsaFcM09lhiys94xXQQwugcvgJrgFLjrEE7WUiTuWCQzt/ZXN7FfqGwuGClyVy2xZAFmfDQvNtwFFSspMDGsD+UTWqu1KoVmVooFEJgKRXw0if85RpISEzwsjzeqWzkjkC4PIJ3MUmQgITAHlQwTFhnZhELkEntfZRwR+AvfAgXmJHOqU02XligWT8ppg67NXbdCXeq7afUQ6L8C2DalEZNt2YyQ94Qy8/ekjMpBMbfyl5iTjG7YAI8cNecROAb4kJmTjaXAF3AGvwQewOiuRxEtlSaT4j2h2lMsUueQEoMlIKpTvAmKhxPMtC876jEX6rE8l8TNx/KVbn6xlWU9NWcSDUsO4NGWpQOTZFpHPOooMXcswmW2XFk3ixb2v0Nq+XVKP00QNaffBLyWwBI/AkTlfMYZDXMf12kc6yjwEjoFdO/5me5oi/6tnyhlZX6OtgmX1c2Uh0k3khmbB2b9TRfpd/jfTUeRDJvHdYg5wE7kPXAN3wQ1weDvH+xufEgpi5qIl3QAAAABJRU5ErkJggg=="; + return LoadingScreen; + }()); + webgl.LoadingScreen = LoadingScreen; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - webgl.M00 = 0; - webgl.M01 = 4; - webgl.M02 = 8; - webgl.M03 = 12; - webgl.M10 = 1; - webgl.M11 = 5; - webgl.M12 = 9; - webgl.M13 = 13; - webgl.M20 = 2; - webgl.M21 = 6; - webgl.M22 = 10; - webgl.M23 = 14; - webgl.M30 = 3; - webgl.M31 = 7; - webgl.M32 = 11; - webgl.M33 = 15; - var Matrix4 = (function () { - function Matrix4() { - this.temp = new Float32Array(16); - this.values = new Float32Array(16); - var v = this.values; - v[webgl.M00] = 1; - v[webgl.M11] = 1; - v[webgl.M22] = 1; - v[webgl.M33] = 1; - } - Matrix4.prototype.set = function (values) { - this.values.set(values); - return this; - }; - Matrix4.prototype.transpose = function () { - var t = this.temp; - var v = this.values; - t[webgl.M00] = v[webgl.M00]; - t[webgl.M01] = v[webgl.M10]; - t[webgl.M02] = v[webgl.M20]; - t[webgl.M03] = v[webgl.M30]; - t[webgl.M10] = v[webgl.M01]; - t[webgl.M11] = v[webgl.M11]; - t[webgl.M12] = v[webgl.M21]; - t[webgl.M13] = v[webgl.M31]; - t[webgl.M20] = v[webgl.M02]; - t[webgl.M21] = v[webgl.M12]; - t[webgl.M22] = v[webgl.M22]; - t[webgl.M23] = v[webgl.M32]; - t[webgl.M30] = v[webgl.M03]; - t[webgl.M31] = v[webgl.M13]; - t[webgl.M32] = v[webgl.M23]; - t[webgl.M33] = v[webgl.M33]; - return this.set(t); - }; - Matrix4.prototype.identity = function () { - var v = this.values; - v[webgl.M00] = 1; - v[webgl.M01] = 0; - v[webgl.M02] = 0; - v[webgl.M03] = 0; - v[webgl.M10] = 0; - v[webgl.M11] = 1; - v[webgl.M12] = 0; - v[webgl.M13] = 0; - v[webgl.M20] = 0; - v[webgl.M21] = 0; - v[webgl.M22] = 1; - v[webgl.M23] = 0; - v[webgl.M30] = 0; - v[webgl.M31] = 0; - v[webgl.M32] = 0; - v[webgl.M33] = 1; - return this; - }; - Matrix4.prototype.invert = function () { - var v = this.values; - var t = this.temp; - var l_det = v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] - + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] - - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] - - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] - + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] - + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] - - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] - - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; - if (l_det == 0) - throw new Error("non-invertible matrix"); - var inv_det = 1.0 / l_det; - t[webgl.M00] = v[webgl.M12] * v[webgl.M23] * v[webgl.M31] - v[webgl.M13] * v[webgl.M22] * v[webgl.M31] + v[webgl.M13] * v[webgl.M21] * v[webgl.M32] - - v[webgl.M11] * v[webgl.M23] * v[webgl.M32] - v[webgl.M12] * v[webgl.M21] * v[webgl.M33] + v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M01] = v[webgl.M03] * v[webgl.M22] * v[webgl.M31] - v[webgl.M02] * v[webgl.M23] * v[webgl.M31] - v[webgl.M03] * v[webgl.M21] * v[webgl.M32] - + v[webgl.M01] * v[webgl.M23] * v[webgl.M32] + v[webgl.M02] * v[webgl.M21] * v[webgl.M33] - v[webgl.M01] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M02] = v[webgl.M02] * v[webgl.M13] * v[webgl.M31] - v[webgl.M03] * v[webgl.M12] * v[webgl.M31] + v[webgl.M03] * v[webgl.M11] * v[webgl.M32] - - v[webgl.M01] * v[webgl.M13] * v[webgl.M32] - v[webgl.M02] * v[webgl.M11] * v[webgl.M33] + v[webgl.M01] * v[webgl.M12] * v[webgl.M33]; - t[webgl.M03] = v[webgl.M03] * v[webgl.M12] * v[webgl.M21] - v[webgl.M02] * v[webgl.M13] * v[webgl.M21] - v[webgl.M03] * v[webgl.M11] * v[webgl.M22] - + v[webgl.M01] * v[webgl.M13] * v[webgl.M22] + v[webgl.M02] * v[webgl.M11] * v[webgl.M23] - v[webgl.M01] * v[webgl.M12] * v[webgl.M23]; - t[webgl.M10] = v[webgl.M13] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M20] * v[webgl.M32] - + v[webgl.M10] * v[webgl.M23] * v[webgl.M32] + v[webgl.M12] * v[webgl.M20] * v[webgl.M33] - v[webgl.M10] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M11] = v[webgl.M02] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M22] * v[webgl.M30] + v[webgl.M03] * v[webgl.M20] * v[webgl.M32] - - v[webgl.M00] * v[webgl.M23] * v[webgl.M32] - v[webgl.M02] * v[webgl.M20] * v[webgl.M33] + v[webgl.M00] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M12] = v[webgl.M03] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M10] * v[webgl.M32] - + v[webgl.M00] * v[webgl.M13] * v[webgl.M32] + v[webgl.M02] * v[webgl.M10] * v[webgl.M33] - v[webgl.M00] * v[webgl.M12] * v[webgl.M33]; - t[webgl.M13] = v[webgl.M02] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M12] * v[webgl.M20] + v[webgl.M03] * v[webgl.M10] * v[webgl.M22] - - v[webgl.M00] * v[webgl.M13] * v[webgl.M22] - v[webgl.M02] * v[webgl.M10] * v[webgl.M23] + v[webgl.M00] * v[webgl.M12] * v[webgl.M23]; - t[webgl.M20] = v[webgl.M11] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M21] * v[webgl.M30] + v[webgl.M13] * v[webgl.M20] * v[webgl.M31] - - v[webgl.M10] * v[webgl.M23] * v[webgl.M31] - v[webgl.M11] * v[webgl.M20] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M33]; - t[webgl.M21] = v[webgl.M03] * v[webgl.M21] * v[webgl.M30] - v[webgl.M01] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M20] * v[webgl.M31] - + v[webgl.M00] * v[webgl.M23] * v[webgl.M31] + v[webgl.M01] * v[webgl.M20] * v[webgl.M33] - v[webgl.M00] * v[webgl.M21] * v[webgl.M33]; - t[webgl.M22] = v[webgl.M01] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M11] * v[webgl.M30] + v[webgl.M03] * v[webgl.M10] * v[webgl.M31] - - v[webgl.M00] * v[webgl.M13] * v[webgl.M31] - v[webgl.M01] * v[webgl.M10] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M33]; - t[webgl.M23] = v[webgl.M03] * v[webgl.M11] * v[webgl.M20] - v[webgl.M01] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M10] * v[webgl.M21] - + v[webgl.M00] * v[webgl.M13] * v[webgl.M21] + v[webgl.M01] * v[webgl.M10] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M23]; - t[webgl.M30] = v[webgl.M12] * v[webgl.M21] * v[webgl.M30] - v[webgl.M11] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M20] * v[webgl.M31] - + v[webgl.M10] * v[webgl.M22] * v[webgl.M31] + v[webgl.M11] * v[webgl.M20] * v[webgl.M32] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32]; - t[webgl.M31] = v[webgl.M01] * v[webgl.M22] * v[webgl.M30] - v[webgl.M02] * v[webgl.M21] * v[webgl.M30] + v[webgl.M02] * v[webgl.M20] * v[webgl.M31] - - v[webgl.M00] * v[webgl.M22] * v[webgl.M31] - v[webgl.M01] * v[webgl.M20] * v[webgl.M32] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32]; - t[webgl.M32] = v[webgl.M02] * v[webgl.M11] * v[webgl.M30] - v[webgl.M01] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M10] * v[webgl.M31] - + v[webgl.M00] * v[webgl.M12] * v[webgl.M31] + v[webgl.M01] * v[webgl.M10] * v[webgl.M32] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32]; - t[webgl.M33] = v[webgl.M01] * v[webgl.M12] * v[webgl.M20] - v[webgl.M02] * v[webgl.M11] * v[webgl.M20] + v[webgl.M02] * v[webgl.M10] * v[webgl.M21] - - v[webgl.M00] * v[webgl.M12] * v[webgl.M21] - v[webgl.M01] * v[webgl.M10] * v[webgl.M22] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22]; - v[webgl.M00] = t[webgl.M00] * inv_det; - v[webgl.M01] = t[webgl.M01] * inv_det; - v[webgl.M02] = t[webgl.M02] * inv_det; - v[webgl.M03] = t[webgl.M03] * inv_det; - v[webgl.M10] = t[webgl.M10] * inv_det; - v[webgl.M11] = t[webgl.M11] * inv_det; - v[webgl.M12] = t[webgl.M12] * inv_det; - v[webgl.M13] = t[webgl.M13] * inv_det; - v[webgl.M20] = t[webgl.M20] * inv_det; - v[webgl.M21] = t[webgl.M21] * inv_det; - v[webgl.M22] = t[webgl.M22] * inv_det; - v[webgl.M23] = t[webgl.M23] * inv_det; - v[webgl.M30] = t[webgl.M30] * inv_det; - v[webgl.M31] = t[webgl.M31] * inv_det; - v[webgl.M32] = t[webgl.M32] * inv_det; - v[webgl.M33] = t[webgl.M33] * inv_det; - return this; - }; - Matrix4.prototype.determinant = function () { - var v = this.values; - return v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] - + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] - - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] - - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] - + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] - + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] - - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] - - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; - }; - Matrix4.prototype.translate = function (x, y, z) { - var v = this.values; - v[webgl.M03] += x; - v[webgl.M13] += y; - v[webgl.M23] += z; - return this; - }; - Matrix4.prototype.copy = function () { - return new Matrix4().set(this.values); - }; - Matrix4.prototype.projection = function (near, far, fovy, aspectRatio) { - this.identity(); - var l_fd = (1.0 / Math.tan((fovy * (Math.PI / 180)) / 2.0)); - var l_a1 = (far + near) / (near - far); - var l_a2 = (2 * far * near) / (near - far); - var v = this.values; - v[webgl.M00] = l_fd / aspectRatio; - v[webgl.M10] = 0; - v[webgl.M20] = 0; - v[webgl.M30] = 0; - v[webgl.M01] = 0; - v[webgl.M11] = l_fd; - v[webgl.M21] = 0; - v[webgl.M31] = 0; - v[webgl.M02] = 0; - v[webgl.M12] = 0; - v[webgl.M22] = l_a1; - v[webgl.M32] = -1; - v[webgl.M03] = 0; - v[webgl.M13] = 0; - v[webgl.M23] = l_a2; - v[webgl.M33] = 0; - return this; - }; - Matrix4.prototype.ortho2d = function (x, y, width, height) { - return this.ortho(x, x + width, y, y + height, 0, 1); - }; - Matrix4.prototype.ortho = function (left, right, bottom, top, near, far) { - this.identity(); - var x_orth = 2 / (right - left); - var y_orth = 2 / (top - bottom); - var z_orth = -2 / (far - near); - var tx = -(right + left) / (right - left); - var ty = -(top + bottom) / (top - bottom); - var tz = -(far + near) / (far - near); - var v = this.values; - v[webgl.M00] = x_orth; - v[webgl.M10] = 0; - v[webgl.M20] = 0; - v[webgl.M30] = 0; - v[webgl.M01] = 0; - v[webgl.M11] = y_orth; - v[webgl.M21] = 0; - v[webgl.M31] = 0; - v[webgl.M02] = 0; - v[webgl.M12] = 0; - v[webgl.M22] = z_orth; - v[webgl.M32] = 0; - v[webgl.M03] = tx; - v[webgl.M13] = ty; - v[webgl.M23] = tz; - v[webgl.M33] = 1; - return this; - }; - Matrix4.prototype.multiply = function (matrix) { - var t = this.temp; - var v = this.values; - var m = matrix.values; - t[webgl.M00] = v[webgl.M00] * m[webgl.M00] + v[webgl.M01] * m[webgl.M10] + v[webgl.M02] * m[webgl.M20] + v[webgl.M03] * m[webgl.M30]; - t[webgl.M01] = v[webgl.M00] * m[webgl.M01] + v[webgl.M01] * m[webgl.M11] + v[webgl.M02] * m[webgl.M21] + v[webgl.M03] * m[webgl.M31]; - t[webgl.M02] = v[webgl.M00] * m[webgl.M02] + v[webgl.M01] * m[webgl.M12] + v[webgl.M02] * m[webgl.M22] + v[webgl.M03] * m[webgl.M32]; - t[webgl.M03] = v[webgl.M00] * m[webgl.M03] + v[webgl.M01] * m[webgl.M13] + v[webgl.M02] * m[webgl.M23] + v[webgl.M03] * m[webgl.M33]; - t[webgl.M10] = v[webgl.M10] * m[webgl.M00] + v[webgl.M11] * m[webgl.M10] + v[webgl.M12] * m[webgl.M20] + v[webgl.M13] * m[webgl.M30]; - t[webgl.M11] = v[webgl.M10] * m[webgl.M01] + v[webgl.M11] * m[webgl.M11] + v[webgl.M12] * m[webgl.M21] + v[webgl.M13] * m[webgl.M31]; - t[webgl.M12] = v[webgl.M10] * m[webgl.M02] + v[webgl.M11] * m[webgl.M12] + v[webgl.M12] * m[webgl.M22] + v[webgl.M13] * m[webgl.M32]; - t[webgl.M13] = v[webgl.M10] * m[webgl.M03] + v[webgl.M11] * m[webgl.M13] + v[webgl.M12] * m[webgl.M23] + v[webgl.M13] * m[webgl.M33]; - t[webgl.M20] = v[webgl.M20] * m[webgl.M00] + v[webgl.M21] * m[webgl.M10] + v[webgl.M22] * m[webgl.M20] + v[webgl.M23] * m[webgl.M30]; - t[webgl.M21] = v[webgl.M20] * m[webgl.M01] + v[webgl.M21] * m[webgl.M11] + v[webgl.M22] * m[webgl.M21] + v[webgl.M23] * m[webgl.M31]; - t[webgl.M22] = v[webgl.M20] * m[webgl.M02] + v[webgl.M21] * m[webgl.M12] + v[webgl.M22] * m[webgl.M22] + v[webgl.M23] * m[webgl.M32]; - t[webgl.M23] = v[webgl.M20] * m[webgl.M03] + v[webgl.M21] * m[webgl.M13] + v[webgl.M22] * m[webgl.M23] + v[webgl.M23] * m[webgl.M33]; - t[webgl.M30] = v[webgl.M30] * m[webgl.M00] + v[webgl.M31] * m[webgl.M10] + v[webgl.M32] * m[webgl.M20] + v[webgl.M33] * m[webgl.M30]; - t[webgl.M31] = v[webgl.M30] * m[webgl.M01] + v[webgl.M31] * m[webgl.M11] + v[webgl.M32] * m[webgl.M21] + v[webgl.M33] * m[webgl.M31]; - t[webgl.M32] = v[webgl.M30] * m[webgl.M02] + v[webgl.M31] * m[webgl.M12] + v[webgl.M32] * m[webgl.M22] + v[webgl.M33] * m[webgl.M32]; - t[webgl.M33] = v[webgl.M30] * m[webgl.M03] + v[webgl.M31] * m[webgl.M13] + v[webgl.M32] * m[webgl.M23] + v[webgl.M33] * m[webgl.M33]; - return this.set(this.temp); - }; - Matrix4.prototype.multiplyLeft = function (matrix) { - var t = this.temp; - var v = this.values; - var m = matrix.values; - t[webgl.M00] = m[webgl.M00] * v[webgl.M00] + m[webgl.M01] * v[webgl.M10] + m[webgl.M02] * v[webgl.M20] + m[webgl.M03] * v[webgl.M30]; - t[webgl.M01] = m[webgl.M00] * v[webgl.M01] + m[webgl.M01] * v[webgl.M11] + m[webgl.M02] * v[webgl.M21] + m[webgl.M03] * v[webgl.M31]; - t[webgl.M02] = m[webgl.M00] * v[webgl.M02] + m[webgl.M01] * v[webgl.M12] + m[webgl.M02] * v[webgl.M22] + m[webgl.M03] * v[webgl.M32]; - t[webgl.M03] = m[webgl.M00] * v[webgl.M03] + m[webgl.M01] * v[webgl.M13] + m[webgl.M02] * v[webgl.M23] + m[webgl.M03] * v[webgl.M33]; - t[webgl.M10] = m[webgl.M10] * v[webgl.M00] + m[webgl.M11] * v[webgl.M10] + m[webgl.M12] * v[webgl.M20] + m[webgl.M13] * v[webgl.M30]; - t[webgl.M11] = m[webgl.M10] * v[webgl.M01] + m[webgl.M11] * v[webgl.M11] + m[webgl.M12] * v[webgl.M21] + m[webgl.M13] * v[webgl.M31]; - t[webgl.M12] = m[webgl.M10] * v[webgl.M02] + m[webgl.M11] * v[webgl.M12] + m[webgl.M12] * v[webgl.M22] + m[webgl.M13] * v[webgl.M32]; - t[webgl.M13] = m[webgl.M10] * v[webgl.M03] + m[webgl.M11] * v[webgl.M13] + m[webgl.M12] * v[webgl.M23] + m[webgl.M13] * v[webgl.M33]; - t[webgl.M20] = m[webgl.M20] * v[webgl.M00] + m[webgl.M21] * v[webgl.M10] + m[webgl.M22] * v[webgl.M20] + m[webgl.M23] * v[webgl.M30]; - t[webgl.M21] = m[webgl.M20] * v[webgl.M01] + m[webgl.M21] * v[webgl.M11] + m[webgl.M22] * v[webgl.M21] + m[webgl.M23] * v[webgl.M31]; - t[webgl.M22] = m[webgl.M20] * v[webgl.M02] + m[webgl.M21] * v[webgl.M12] + m[webgl.M22] * v[webgl.M22] + m[webgl.M23] * v[webgl.M32]; - t[webgl.M23] = m[webgl.M20] * v[webgl.M03] + m[webgl.M21] * v[webgl.M13] + m[webgl.M22] * v[webgl.M23] + m[webgl.M23] * v[webgl.M33]; - t[webgl.M30] = m[webgl.M30] * v[webgl.M00] + m[webgl.M31] * v[webgl.M10] + m[webgl.M32] * v[webgl.M20] + m[webgl.M33] * v[webgl.M30]; - t[webgl.M31] = m[webgl.M30] * v[webgl.M01] + m[webgl.M31] * v[webgl.M11] + m[webgl.M32] * v[webgl.M21] + m[webgl.M33] * v[webgl.M31]; - t[webgl.M32] = m[webgl.M30] * v[webgl.M02] + m[webgl.M31] * v[webgl.M12] + m[webgl.M32] * v[webgl.M22] + m[webgl.M33] * v[webgl.M32]; - t[webgl.M33] = m[webgl.M30] * v[webgl.M03] + m[webgl.M31] * v[webgl.M13] + m[webgl.M32] * v[webgl.M23] + m[webgl.M33] * v[webgl.M33]; - return this.set(this.temp); - }; - Matrix4.prototype.lookAt = function (position, direction, up) { - Matrix4.initTemps(); - var xAxis = Matrix4.xAxis, yAxis = Matrix4.yAxis, zAxis = Matrix4.zAxis; - zAxis.setFrom(direction).normalize(); - xAxis.setFrom(direction).normalize(); - xAxis.cross(up).normalize(); - yAxis.setFrom(xAxis).cross(zAxis).normalize(); - this.identity(); - var val = this.values; - val[webgl.M00] = xAxis.x; - val[webgl.M01] = xAxis.y; - val[webgl.M02] = xAxis.z; - val[webgl.M10] = yAxis.x; - val[webgl.M11] = yAxis.y; - val[webgl.M12] = yAxis.z; - val[webgl.M20] = -zAxis.x; - val[webgl.M21] = -zAxis.y; - val[webgl.M22] = -zAxis.z; - Matrix4.tmpMatrix.identity(); - Matrix4.tmpMatrix.values[webgl.M03] = -position.x; - Matrix4.tmpMatrix.values[webgl.M13] = -position.y; - Matrix4.tmpMatrix.values[webgl.M23] = -position.z; - this.multiply(Matrix4.tmpMatrix); - return this; - }; - Matrix4.initTemps = function () { - if (Matrix4.xAxis === null) - Matrix4.xAxis = new webgl.Vector3(); - if (Matrix4.yAxis === null) - Matrix4.yAxis = new webgl.Vector3(); - if (Matrix4.zAxis === null) - Matrix4.zAxis = new webgl.Vector3(); - }; - return Matrix4; - }()); - Matrix4.xAxis = null; - Matrix4.yAxis = null; - Matrix4.zAxis = null; - Matrix4.tmpMatrix = new Matrix4(); - webgl.Matrix4 = Matrix4; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + webgl.M00 = 0; + webgl.M01 = 4; + webgl.M02 = 8; + webgl.M03 = 12; + webgl.M10 = 1; + webgl.M11 = 5; + webgl.M12 = 9; + webgl.M13 = 13; + webgl.M20 = 2; + webgl.M21 = 6; + webgl.M22 = 10; + webgl.M23 = 14; + webgl.M30 = 3; + webgl.M31 = 7; + webgl.M32 = 11; + webgl.M33 = 15; + var Matrix4 = (function () { + function Matrix4() { + this.temp = new Float32Array(16); + this.values = new Float32Array(16); + var v = this.values; + v[webgl.M00] = 1; + v[webgl.M11] = 1; + v[webgl.M22] = 1; + v[webgl.M33] = 1; + } + Matrix4.prototype.set = function (values) { + this.values.set(values); + return this; + }; + Matrix4.prototype.transpose = function () { + var t = this.temp; + var v = this.values; + t[webgl.M00] = v[webgl.M00]; + t[webgl.M01] = v[webgl.M10]; + t[webgl.M02] = v[webgl.M20]; + t[webgl.M03] = v[webgl.M30]; + t[webgl.M10] = v[webgl.M01]; + t[webgl.M11] = v[webgl.M11]; + t[webgl.M12] = v[webgl.M21]; + t[webgl.M13] = v[webgl.M31]; + t[webgl.M20] = v[webgl.M02]; + t[webgl.M21] = v[webgl.M12]; + t[webgl.M22] = v[webgl.M22]; + t[webgl.M23] = v[webgl.M32]; + t[webgl.M30] = v[webgl.M03]; + t[webgl.M31] = v[webgl.M13]; + t[webgl.M32] = v[webgl.M23]; + t[webgl.M33] = v[webgl.M33]; + return this.set(t); + }; + Matrix4.prototype.identity = function () { + var v = this.values; + v[webgl.M00] = 1; + v[webgl.M01] = 0; + v[webgl.M02] = 0; + v[webgl.M03] = 0; + v[webgl.M10] = 0; + v[webgl.M11] = 1; + v[webgl.M12] = 0; + v[webgl.M13] = 0; + v[webgl.M20] = 0; + v[webgl.M21] = 0; + v[webgl.M22] = 1; + v[webgl.M23] = 0; + v[webgl.M30] = 0; + v[webgl.M31] = 0; + v[webgl.M32] = 0; + v[webgl.M33] = 1; + return this; + }; + Matrix4.prototype.invert = function () { + var v = this.values; + var t = this.temp; + var l_det = v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] + + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] + - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] + - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] + + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] + + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] + - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] + - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; + if (l_det == 0) + throw new Error("non-invertible matrix"); + var inv_det = 1.0 / l_det; + t[webgl.M00] = v[webgl.M12] * v[webgl.M23] * v[webgl.M31] - v[webgl.M13] * v[webgl.M22] * v[webgl.M31] + v[webgl.M13] * v[webgl.M21] * v[webgl.M32] + - v[webgl.M11] * v[webgl.M23] * v[webgl.M32] - v[webgl.M12] * v[webgl.M21] * v[webgl.M33] + v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M01] = v[webgl.M03] * v[webgl.M22] * v[webgl.M31] - v[webgl.M02] * v[webgl.M23] * v[webgl.M31] - v[webgl.M03] * v[webgl.M21] * v[webgl.M32] + + v[webgl.M01] * v[webgl.M23] * v[webgl.M32] + v[webgl.M02] * v[webgl.M21] * v[webgl.M33] - v[webgl.M01] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M02] = v[webgl.M02] * v[webgl.M13] * v[webgl.M31] - v[webgl.M03] * v[webgl.M12] * v[webgl.M31] + v[webgl.M03] * v[webgl.M11] * v[webgl.M32] + - v[webgl.M01] * v[webgl.M13] * v[webgl.M32] - v[webgl.M02] * v[webgl.M11] * v[webgl.M33] + v[webgl.M01] * v[webgl.M12] * v[webgl.M33]; + t[webgl.M03] = v[webgl.M03] * v[webgl.M12] * v[webgl.M21] - v[webgl.M02] * v[webgl.M13] * v[webgl.M21] - v[webgl.M03] * v[webgl.M11] * v[webgl.M22] + + v[webgl.M01] * v[webgl.M13] * v[webgl.M22] + v[webgl.M02] * v[webgl.M11] * v[webgl.M23] - v[webgl.M01] * v[webgl.M12] * v[webgl.M23]; + t[webgl.M10] = v[webgl.M13] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M20] * v[webgl.M32] + + v[webgl.M10] * v[webgl.M23] * v[webgl.M32] + v[webgl.M12] * v[webgl.M20] * v[webgl.M33] - v[webgl.M10] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M11] = v[webgl.M02] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M22] * v[webgl.M30] + v[webgl.M03] * v[webgl.M20] * v[webgl.M32] + - v[webgl.M00] * v[webgl.M23] * v[webgl.M32] - v[webgl.M02] * v[webgl.M20] * v[webgl.M33] + v[webgl.M00] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M12] = v[webgl.M03] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M10] * v[webgl.M32] + + v[webgl.M00] * v[webgl.M13] * v[webgl.M32] + v[webgl.M02] * v[webgl.M10] * v[webgl.M33] - v[webgl.M00] * v[webgl.M12] * v[webgl.M33]; + t[webgl.M13] = v[webgl.M02] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M12] * v[webgl.M20] + v[webgl.M03] * v[webgl.M10] * v[webgl.M22] + - v[webgl.M00] * v[webgl.M13] * v[webgl.M22] - v[webgl.M02] * v[webgl.M10] * v[webgl.M23] + v[webgl.M00] * v[webgl.M12] * v[webgl.M23]; + t[webgl.M20] = v[webgl.M11] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M21] * v[webgl.M30] + v[webgl.M13] * v[webgl.M20] * v[webgl.M31] + - v[webgl.M10] * v[webgl.M23] * v[webgl.M31] - v[webgl.M11] * v[webgl.M20] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M33]; + t[webgl.M21] = v[webgl.M03] * v[webgl.M21] * v[webgl.M30] - v[webgl.M01] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M20] * v[webgl.M31] + + v[webgl.M00] * v[webgl.M23] * v[webgl.M31] + v[webgl.M01] * v[webgl.M20] * v[webgl.M33] - v[webgl.M00] * v[webgl.M21] * v[webgl.M33]; + t[webgl.M22] = v[webgl.M01] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M11] * v[webgl.M30] + v[webgl.M03] * v[webgl.M10] * v[webgl.M31] + - v[webgl.M00] * v[webgl.M13] * v[webgl.M31] - v[webgl.M01] * v[webgl.M10] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M33]; + t[webgl.M23] = v[webgl.M03] * v[webgl.M11] * v[webgl.M20] - v[webgl.M01] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M10] * v[webgl.M21] + + v[webgl.M00] * v[webgl.M13] * v[webgl.M21] + v[webgl.M01] * v[webgl.M10] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M23]; + t[webgl.M30] = v[webgl.M12] * v[webgl.M21] * v[webgl.M30] - v[webgl.M11] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M20] * v[webgl.M31] + + v[webgl.M10] * v[webgl.M22] * v[webgl.M31] + v[webgl.M11] * v[webgl.M20] * v[webgl.M32] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32]; + t[webgl.M31] = v[webgl.M01] * v[webgl.M22] * v[webgl.M30] - v[webgl.M02] * v[webgl.M21] * v[webgl.M30] + v[webgl.M02] * v[webgl.M20] * v[webgl.M31] + - v[webgl.M00] * v[webgl.M22] * v[webgl.M31] - v[webgl.M01] * v[webgl.M20] * v[webgl.M32] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32]; + t[webgl.M32] = v[webgl.M02] * v[webgl.M11] * v[webgl.M30] - v[webgl.M01] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M10] * v[webgl.M31] + + v[webgl.M00] * v[webgl.M12] * v[webgl.M31] + v[webgl.M01] * v[webgl.M10] * v[webgl.M32] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32]; + t[webgl.M33] = v[webgl.M01] * v[webgl.M12] * v[webgl.M20] - v[webgl.M02] * v[webgl.M11] * v[webgl.M20] + v[webgl.M02] * v[webgl.M10] * v[webgl.M21] + - v[webgl.M00] * v[webgl.M12] * v[webgl.M21] - v[webgl.M01] * v[webgl.M10] * v[webgl.M22] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22]; + v[webgl.M00] = t[webgl.M00] * inv_det; + v[webgl.M01] = t[webgl.M01] * inv_det; + v[webgl.M02] = t[webgl.M02] * inv_det; + v[webgl.M03] = t[webgl.M03] * inv_det; + v[webgl.M10] = t[webgl.M10] * inv_det; + v[webgl.M11] = t[webgl.M11] * inv_det; + v[webgl.M12] = t[webgl.M12] * inv_det; + v[webgl.M13] = t[webgl.M13] * inv_det; + v[webgl.M20] = t[webgl.M20] * inv_det; + v[webgl.M21] = t[webgl.M21] * inv_det; + v[webgl.M22] = t[webgl.M22] * inv_det; + v[webgl.M23] = t[webgl.M23] * inv_det; + v[webgl.M30] = t[webgl.M30] * inv_det; + v[webgl.M31] = t[webgl.M31] * inv_det; + v[webgl.M32] = t[webgl.M32] * inv_det; + v[webgl.M33] = t[webgl.M33] * inv_det; + return this; + }; + Matrix4.prototype.determinant = function () { + var v = this.values; + return v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] + + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] + - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] + - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] + + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] + + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] + - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] + - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; + }; + Matrix4.prototype.translate = function (x, y, z) { + var v = this.values; + v[webgl.M03] += x; + v[webgl.M13] += y; + v[webgl.M23] += z; + return this; + }; + Matrix4.prototype.copy = function () { + return new Matrix4().set(this.values); + }; + Matrix4.prototype.projection = function (near, far, fovy, aspectRatio) { + this.identity(); + var l_fd = (1.0 / Math.tan((fovy * (Math.PI / 180)) / 2.0)); + var l_a1 = (far + near) / (near - far); + var l_a2 = (2 * far * near) / (near - far); + var v = this.values; + v[webgl.M00] = l_fd / aspectRatio; + v[webgl.M10] = 0; + v[webgl.M20] = 0; + v[webgl.M30] = 0; + v[webgl.M01] = 0; + v[webgl.M11] = l_fd; + v[webgl.M21] = 0; + v[webgl.M31] = 0; + v[webgl.M02] = 0; + v[webgl.M12] = 0; + v[webgl.M22] = l_a1; + v[webgl.M32] = -1; + v[webgl.M03] = 0; + v[webgl.M13] = 0; + v[webgl.M23] = l_a2; + v[webgl.M33] = 0; + return this; + }; + Matrix4.prototype.ortho2d = function (x, y, width, height) { + return this.ortho(x, x + width, y, y + height, 0, 1); + }; + Matrix4.prototype.ortho = function (left, right, bottom, top, near, far) { + this.identity(); + var x_orth = 2 / (right - left); + var y_orth = 2 / (top - bottom); + var z_orth = -2 / (far - near); + var tx = -(right + left) / (right - left); + var ty = -(top + bottom) / (top - bottom); + var tz = -(far + near) / (far - near); + var v = this.values; + v[webgl.M00] = x_orth; + v[webgl.M10] = 0; + v[webgl.M20] = 0; + v[webgl.M30] = 0; + v[webgl.M01] = 0; + v[webgl.M11] = y_orth; + v[webgl.M21] = 0; + v[webgl.M31] = 0; + v[webgl.M02] = 0; + v[webgl.M12] = 0; + v[webgl.M22] = z_orth; + v[webgl.M32] = 0; + v[webgl.M03] = tx; + v[webgl.M13] = ty; + v[webgl.M23] = tz; + v[webgl.M33] = 1; + return this; + }; + Matrix4.prototype.multiply = function (matrix) { + var t = this.temp; + var v = this.values; + var m = matrix.values; + t[webgl.M00] = v[webgl.M00] * m[webgl.M00] + v[webgl.M01] * m[webgl.M10] + v[webgl.M02] * m[webgl.M20] + v[webgl.M03] * m[webgl.M30]; + t[webgl.M01] = v[webgl.M00] * m[webgl.M01] + v[webgl.M01] * m[webgl.M11] + v[webgl.M02] * m[webgl.M21] + v[webgl.M03] * m[webgl.M31]; + t[webgl.M02] = v[webgl.M00] * m[webgl.M02] + v[webgl.M01] * m[webgl.M12] + v[webgl.M02] * m[webgl.M22] + v[webgl.M03] * m[webgl.M32]; + t[webgl.M03] = v[webgl.M00] * m[webgl.M03] + v[webgl.M01] * m[webgl.M13] + v[webgl.M02] * m[webgl.M23] + v[webgl.M03] * m[webgl.M33]; + t[webgl.M10] = v[webgl.M10] * m[webgl.M00] + v[webgl.M11] * m[webgl.M10] + v[webgl.M12] * m[webgl.M20] + v[webgl.M13] * m[webgl.M30]; + t[webgl.M11] = v[webgl.M10] * m[webgl.M01] + v[webgl.M11] * m[webgl.M11] + v[webgl.M12] * m[webgl.M21] + v[webgl.M13] * m[webgl.M31]; + t[webgl.M12] = v[webgl.M10] * m[webgl.M02] + v[webgl.M11] * m[webgl.M12] + v[webgl.M12] * m[webgl.M22] + v[webgl.M13] * m[webgl.M32]; + t[webgl.M13] = v[webgl.M10] * m[webgl.M03] + v[webgl.M11] * m[webgl.M13] + v[webgl.M12] * m[webgl.M23] + v[webgl.M13] * m[webgl.M33]; + t[webgl.M20] = v[webgl.M20] * m[webgl.M00] + v[webgl.M21] * m[webgl.M10] + v[webgl.M22] * m[webgl.M20] + v[webgl.M23] * m[webgl.M30]; + t[webgl.M21] = v[webgl.M20] * m[webgl.M01] + v[webgl.M21] * m[webgl.M11] + v[webgl.M22] * m[webgl.M21] + v[webgl.M23] * m[webgl.M31]; + t[webgl.M22] = v[webgl.M20] * m[webgl.M02] + v[webgl.M21] * m[webgl.M12] + v[webgl.M22] * m[webgl.M22] + v[webgl.M23] * m[webgl.M32]; + t[webgl.M23] = v[webgl.M20] * m[webgl.M03] + v[webgl.M21] * m[webgl.M13] + v[webgl.M22] * m[webgl.M23] + v[webgl.M23] * m[webgl.M33]; + t[webgl.M30] = v[webgl.M30] * m[webgl.M00] + v[webgl.M31] * m[webgl.M10] + v[webgl.M32] * m[webgl.M20] + v[webgl.M33] * m[webgl.M30]; + t[webgl.M31] = v[webgl.M30] * m[webgl.M01] + v[webgl.M31] * m[webgl.M11] + v[webgl.M32] * m[webgl.M21] + v[webgl.M33] * m[webgl.M31]; + t[webgl.M32] = v[webgl.M30] * m[webgl.M02] + v[webgl.M31] * m[webgl.M12] + v[webgl.M32] * m[webgl.M22] + v[webgl.M33] * m[webgl.M32]; + t[webgl.M33] = v[webgl.M30] * m[webgl.M03] + v[webgl.M31] * m[webgl.M13] + v[webgl.M32] * m[webgl.M23] + v[webgl.M33] * m[webgl.M33]; + return this.set(this.temp); + }; + Matrix4.prototype.multiplyLeft = function (matrix) { + var t = this.temp; + var v = this.values; + var m = matrix.values; + t[webgl.M00] = m[webgl.M00] * v[webgl.M00] + m[webgl.M01] * v[webgl.M10] + m[webgl.M02] * v[webgl.M20] + m[webgl.M03] * v[webgl.M30]; + t[webgl.M01] = m[webgl.M00] * v[webgl.M01] + m[webgl.M01] * v[webgl.M11] + m[webgl.M02] * v[webgl.M21] + m[webgl.M03] * v[webgl.M31]; + t[webgl.M02] = m[webgl.M00] * v[webgl.M02] + m[webgl.M01] * v[webgl.M12] + m[webgl.M02] * v[webgl.M22] + m[webgl.M03] * v[webgl.M32]; + t[webgl.M03] = m[webgl.M00] * v[webgl.M03] + m[webgl.M01] * v[webgl.M13] + m[webgl.M02] * v[webgl.M23] + m[webgl.M03] * v[webgl.M33]; + t[webgl.M10] = m[webgl.M10] * v[webgl.M00] + m[webgl.M11] * v[webgl.M10] + m[webgl.M12] * v[webgl.M20] + m[webgl.M13] * v[webgl.M30]; + t[webgl.M11] = m[webgl.M10] * v[webgl.M01] + m[webgl.M11] * v[webgl.M11] + m[webgl.M12] * v[webgl.M21] + m[webgl.M13] * v[webgl.M31]; + t[webgl.M12] = m[webgl.M10] * v[webgl.M02] + m[webgl.M11] * v[webgl.M12] + m[webgl.M12] * v[webgl.M22] + m[webgl.M13] * v[webgl.M32]; + t[webgl.M13] = m[webgl.M10] * v[webgl.M03] + m[webgl.M11] * v[webgl.M13] + m[webgl.M12] * v[webgl.M23] + m[webgl.M13] * v[webgl.M33]; + t[webgl.M20] = m[webgl.M20] * v[webgl.M00] + m[webgl.M21] * v[webgl.M10] + m[webgl.M22] * v[webgl.M20] + m[webgl.M23] * v[webgl.M30]; + t[webgl.M21] = m[webgl.M20] * v[webgl.M01] + m[webgl.M21] * v[webgl.M11] + m[webgl.M22] * v[webgl.M21] + m[webgl.M23] * v[webgl.M31]; + t[webgl.M22] = m[webgl.M20] * v[webgl.M02] + m[webgl.M21] * v[webgl.M12] + m[webgl.M22] * v[webgl.M22] + m[webgl.M23] * v[webgl.M32]; + t[webgl.M23] = m[webgl.M20] * v[webgl.M03] + m[webgl.M21] * v[webgl.M13] + m[webgl.M22] * v[webgl.M23] + m[webgl.M23] * v[webgl.M33]; + t[webgl.M30] = m[webgl.M30] * v[webgl.M00] + m[webgl.M31] * v[webgl.M10] + m[webgl.M32] * v[webgl.M20] + m[webgl.M33] * v[webgl.M30]; + t[webgl.M31] = m[webgl.M30] * v[webgl.M01] + m[webgl.M31] * v[webgl.M11] + m[webgl.M32] * v[webgl.M21] + m[webgl.M33] * v[webgl.M31]; + t[webgl.M32] = m[webgl.M30] * v[webgl.M02] + m[webgl.M31] * v[webgl.M12] + m[webgl.M32] * v[webgl.M22] + m[webgl.M33] * v[webgl.M32]; + t[webgl.M33] = m[webgl.M30] * v[webgl.M03] + m[webgl.M31] * v[webgl.M13] + m[webgl.M32] * v[webgl.M23] + m[webgl.M33] * v[webgl.M33]; + return this.set(this.temp); + }; + Matrix4.prototype.lookAt = function (position, direction, up) { + Matrix4.initTemps(); + var xAxis = Matrix4.xAxis, yAxis = Matrix4.yAxis, zAxis = Matrix4.zAxis; + zAxis.setFrom(direction).normalize(); + xAxis.setFrom(direction).normalize(); + xAxis.cross(up).normalize(); + yAxis.setFrom(xAxis).cross(zAxis).normalize(); + this.identity(); + var val = this.values; + val[webgl.M00] = xAxis.x; + val[webgl.M01] = xAxis.y; + val[webgl.M02] = xAxis.z; + val[webgl.M10] = yAxis.x; + val[webgl.M11] = yAxis.y; + val[webgl.M12] = yAxis.z; + val[webgl.M20] = -zAxis.x; + val[webgl.M21] = -zAxis.y; + val[webgl.M22] = -zAxis.z; + Matrix4.tmpMatrix.identity(); + Matrix4.tmpMatrix.values[webgl.M03] = -position.x; + Matrix4.tmpMatrix.values[webgl.M13] = -position.y; + Matrix4.tmpMatrix.values[webgl.M23] = -position.z; + this.multiply(Matrix4.tmpMatrix); + return this; + }; + Matrix4.initTemps = function () { + if (Matrix4.xAxis === null) + Matrix4.xAxis = new webgl.Vector3(); + if (Matrix4.yAxis === null) + Matrix4.yAxis = new webgl.Vector3(); + if (Matrix4.zAxis === null) + Matrix4.zAxis = new webgl.Vector3(); + }; + Matrix4.xAxis = null; + Matrix4.yAxis = null; + Matrix4.zAxis = null; + Matrix4.tmpMatrix = new Matrix4(); + return Matrix4; + }()); + webgl.Matrix4 = Matrix4; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Mesh = (function () { - function Mesh(context, attributes, maxVertices, maxIndices) { - this.attributes = attributes; - this.verticesLength = 0; - this.dirtyVertices = false; - this.indicesLength = 0; - this.dirtyIndices = false; - this.elementsPerVertex = 0; - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.elementsPerVertex = 0; - for (var i = 0; i < attributes.length; i++) { - this.elementsPerVertex += attributes[i].numElements; - } - this.vertices = new Float32Array(maxVertices * this.elementsPerVertex); - this.indices = new Uint16Array(maxIndices); - this.context.addRestorable(this); - } - Mesh.prototype.getAttributes = function () { return this.attributes; }; - Mesh.prototype.maxVertices = function () { return this.vertices.length / this.elementsPerVertex; }; - Mesh.prototype.numVertices = function () { return this.verticesLength / this.elementsPerVertex; }; - Mesh.prototype.setVerticesLength = function (length) { - this.dirtyVertices = true; - this.verticesLength = length; - }; - Mesh.prototype.getVertices = function () { return this.vertices; }; - Mesh.prototype.maxIndices = function () { return this.indices.length; }; - Mesh.prototype.numIndices = function () { return this.indicesLength; }; - Mesh.prototype.setIndicesLength = function (length) { - this.dirtyIndices = true; - this.indicesLength = length; - }; - Mesh.prototype.getIndices = function () { return this.indices; }; - ; - Mesh.prototype.getVertexSizeInFloats = function () { - var size = 0; - for (var i = 0; i < this.attributes.length; i++) { - var attribute = this.attributes[i]; - size += attribute.numElements; - } - return size; - }; - Mesh.prototype.setVertices = function (vertices) { - this.dirtyVertices = true; - if (vertices.length > this.vertices.length) - throw Error("Mesh can't store more than " + this.maxVertices() + " vertices"); - this.vertices.set(vertices, 0); - this.verticesLength = vertices.length; - }; - Mesh.prototype.setIndices = function (indices) { - this.dirtyIndices = true; - if (indices.length > this.indices.length) - throw Error("Mesh can't store more than " + this.maxIndices() + " indices"); - this.indices.set(indices, 0); - this.indicesLength = indices.length; - }; - Mesh.prototype.draw = function (shader, primitiveType) { - this.drawWithOffset(shader, primitiveType, 0, this.indicesLength > 0 ? this.indicesLength : this.verticesLength / this.elementsPerVertex); - }; - Mesh.prototype.drawWithOffset = function (shader, primitiveType, offset, count) { - var gl = this.context.gl; - if (this.dirtyVertices || this.dirtyIndices) - this.update(); - this.bind(shader); - if (this.indicesLength > 0) { - gl.drawElements(primitiveType, count, gl.UNSIGNED_SHORT, offset * 2); - } - else { - gl.drawArrays(primitiveType, offset, count); - } - this.unbind(shader); - }; - Mesh.prototype.bind = function (shader) { - var gl = this.context.gl; - gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); - var offset = 0; - for (var i = 0; i < this.attributes.length; i++) { - var attrib = this.attributes[i]; - var location_1 = shader.getAttributeLocation(attrib.name); - gl.enableVertexAttribArray(location_1); - gl.vertexAttribPointer(location_1, attrib.numElements, gl.FLOAT, false, this.elementsPerVertex * 4, offset * 4); - offset += attrib.numElements; - } - if (this.indicesLength > 0) - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); - }; - Mesh.prototype.unbind = function (shader) { - var gl = this.context.gl; - for (var i = 0; i < this.attributes.length; i++) { - var attrib = this.attributes[i]; - var location_2 = shader.getAttributeLocation(attrib.name); - gl.disableVertexAttribArray(location_2); - } - gl.bindBuffer(gl.ARRAY_BUFFER, null); - if (this.indicesLength > 0) - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); - }; - Mesh.prototype.update = function () { - var gl = this.context.gl; - if (this.dirtyVertices) { - if (!this.verticesBuffer) { - this.verticesBuffer = gl.createBuffer(); - } - gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.vertices.subarray(0, this.verticesLength), gl.DYNAMIC_DRAW); - this.dirtyVertices = false; - } - if (this.dirtyIndices) { - if (!this.indicesBuffer) { - this.indicesBuffer = gl.createBuffer(); - } - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); - gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices.subarray(0, this.indicesLength), gl.DYNAMIC_DRAW); - this.dirtyIndices = false; - } - }; - Mesh.prototype.restore = function () { - this.verticesBuffer = null; - this.indicesBuffer = null; - this.update(); - }; - Mesh.prototype.dispose = function () { - this.context.removeRestorable(this); - var gl = this.context.gl; - gl.deleteBuffer(this.verticesBuffer); - gl.deleteBuffer(this.indicesBuffer); - }; - return Mesh; - }()); - webgl.Mesh = Mesh; - var VertexAttribute = (function () { - function VertexAttribute(name, type, numElements) { - this.name = name; - this.type = type; - this.numElements = numElements; - } - return VertexAttribute; - }()); - webgl.VertexAttribute = VertexAttribute; - var Position2Attribute = (function (_super) { - __extends(Position2Attribute, _super); - function Position2Attribute() { - return _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 2) || this; - } - return Position2Attribute; - }(VertexAttribute)); - webgl.Position2Attribute = Position2Attribute; - var Position3Attribute = (function (_super) { - __extends(Position3Attribute, _super); - function Position3Attribute() { - return _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 3) || this; - } - return Position3Attribute; - }(VertexAttribute)); - webgl.Position3Attribute = Position3Attribute; - var TexCoordAttribute = (function (_super) { - __extends(TexCoordAttribute, _super); - function TexCoordAttribute(unit) { - if (unit === void 0) { unit = 0; } - return _super.call(this, webgl.Shader.TEXCOORDS + (unit == 0 ? "" : unit), VertexAttributeType.Float, 2) || this; - } - return TexCoordAttribute; - }(VertexAttribute)); - webgl.TexCoordAttribute = TexCoordAttribute; - var ColorAttribute = (function (_super) { - __extends(ColorAttribute, _super); - function ColorAttribute() { - return _super.call(this, webgl.Shader.COLOR, VertexAttributeType.Float, 4) || this; - } - return ColorAttribute; - }(VertexAttribute)); - webgl.ColorAttribute = ColorAttribute; - var Color2Attribute = (function (_super) { - __extends(Color2Attribute, _super); - function Color2Attribute() { - return _super.call(this, webgl.Shader.COLOR2, VertexAttributeType.Float, 4) || this; - } - return Color2Attribute; - }(VertexAttribute)); - webgl.Color2Attribute = Color2Attribute; - var VertexAttributeType; - (function (VertexAttributeType) { - VertexAttributeType[VertexAttributeType["Float"] = 0] = "Float"; - })(VertexAttributeType = webgl.VertexAttributeType || (webgl.VertexAttributeType = {})); - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Mesh = (function () { + function Mesh(context, attributes, maxVertices, maxIndices) { + this.attributes = attributes; + this.verticesLength = 0; + this.dirtyVertices = false; + this.indicesLength = 0; + this.dirtyIndices = false; + this.elementsPerVertex = 0; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.elementsPerVertex = 0; + for (var i = 0; i < attributes.length; i++) { + this.elementsPerVertex += attributes[i].numElements; + } + this.vertices = new Float32Array(maxVertices * this.elementsPerVertex); + this.indices = new Uint16Array(maxIndices); + this.context.addRestorable(this); + } + Mesh.prototype.getAttributes = function () { return this.attributes; }; + Mesh.prototype.maxVertices = function () { return this.vertices.length / this.elementsPerVertex; }; + Mesh.prototype.numVertices = function () { return this.verticesLength / this.elementsPerVertex; }; + Mesh.prototype.setVerticesLength = function (length) { + this.dirtyVertices = true; + this.verticesLength = length; + }; + Mesh.prototype.getVertices = function () { return this.vertices; }; + Mesh.prototype.maxIndices = function () { return this.indices.length; }; + Mesh.prototype.numIndices = function () { return this.indicesLength; }; + Mesh.prototype.setIndicesLength = function (length) { + this.dirtyIndices = true; + this.indicesLength = length; + }; + Mesh.prototype.getIndices = function () { return this.indices; }; + ; + Mesh.prototype.getVertexSizeInFloats = function () { + var size = 0; + for (var i = 0; i < this.attributes.length; i++) { + var attribute = this.attributes[i]; + size += attribute.numElements; + } + return size; + }; + Mesh.prototype.setVertices = function (vertices) { + this.dirtyVertices = true; + if (vertices.length > this.vertices.length) + throw Error("Mesh can't store more than " + this.maxVertices() + " vertices"); + this.vertices.set(vertices, 0); + this.verticesLength = vertices.length; + }; + Mesh.prototype.setIndices = function (indices) { + this.dirtyIndices = true; + if (indices.length > this.indices.length) + throw Error("Mesh can't store more than " + this.maxIndices() + " indices"); + this.indices.set(indices, 0); + this.indicesLength = indices.length; + }; + Mesh.prototype.draw = function (shader, primitiveType) { + this.drawWithOffset(shader, primitiveType, 0, this.indicesLength > 0 ? this.indicesLength : this.verticesLength / this.elementsPerVertex); + }; + Mesh.prototype.drawWithOffset = function (shader, primitiveType, offset, count) { + var gl = this.context.gl; + if (this.dirtyVertices || this.dirtyIndices) + this.update(); + this.bind(shader); + if (this.indicesLength > 0) { + gl.drawElements(primitiveType, count, gl.UNSIGNED_SHORT, offset * 2); + } + else { + gl.drawArrays(primitiveType, offset, count); + } + this.unbind(shader); + }; + Mesh.prototype.bind = function (shader) { + var gl = this.context.gl; + gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); + var offset = 0; + for (var i = 0; i < this.attributes.length; i++) { + var attrib = this.attributes[i]; + var location_1 = shader.getAttributeLocation(attrib.name); + gl.enableVertexAttribArray(location_1); + gl.vertexAttribPointer(location_1, attrib.numElements, gl.FLOAT, false, this.elementsPerVertex * 4, offset * 4); + offset += attrib.numElements; + } + if (this.indicesLength > 0) + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); + }; + Mesh.prototype.unbind = function (shader) { + var gl = this.context.gl; + for (var i = 0; i < this.attributes.length; i++) { + var attrib = this.attributes[i]; + var location_2 = shader.getAttributeLocation(attrib.name); + gl.disableVertexAttribArray(location_2); + } + gl.bindBuffer(gl.ARRAY_BUFFER, null); + if (this.indicesLength > 0) + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); + }; + Mesh.prototype.update = function () { + var gl = this.context.gl; + if (this.dirtyVertices) { + if (!this.verticesBuffer) { + this.verticesBuffer = gl.createBuffer(); + } + gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.vertices.subarray(0, this.verticesLength), gl.DYNAMIC_DRAW); + this.dirtyVertices = false; + } + if (this.dirtyIndices) { + if (!this.indicesBuffer) { + this.indicesBuffer = gl.createBuffer(); + } + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices.subarray(0, this.indicesLength), gl.DYNAMIC_DRAW); + this.dirtyIndices = false; + } + }; + Mesh.prototype.restore = function () { + this.verticesBuffer = null; + this.indicesBuffer = null; + this.update(); + }; + Mesh.prototype.dispose = function () { + this.context.removeRestorable(this); + var gl = this.context.gl; + gl.deleteBuffer(this.verticesBuffer); + gl.deleteBuffer(this.indicesBuffer); + }; + return Mesh; + }()); + webgl.Mesh = Mesh; + var VertexAttribute = (function () { + function VertexAttribute(name, type, numElements) { + this.name = name; + this.type = type; + this.numElements = numElements; + } + return VertexAttribute; + }()); + webgl.VertexAttribute = VertexAttribute; + var Position2Attribute = (function (_super) { + __extends(Position2Attribute, _super); + function Position2Attribute() { + _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 2); + } + return Position2Attribute; + }(VertexAttribute)); + webgl.Position2Attribute = Position2Attribute; + var Position3Attribute = (function (_super) { + __extends(Position3Attribute, _super); + function Position3Attribute() { + _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 3); + } + return Position3Attribute; + }(VertexAttribute)); + webgl.Position3Attribute = Position3Attribute; + var TexCoordAttribute = (function (_super) { + __extends(TexCoordAttribute, _super); + function TexCoordAttribute(unit) { + if (unit === void 0) { unit = 0; } + _super.call(this, webgl.Shader.TEXCOORDS + (unit == 0 ? "" : unit), VertexAttributeType.Float, 2); + } + return TexCoordAttribute; + }(VertexAttribute)); + webgl.TexCoordAttribute = TexCoordAttribute; + var ColorAttribute = (function (_super) { + __extends(ColorAttribute, _super); + function ColorAttribute() { + _super.call(this, webgl.Shader.COLOR, VertexAttributeType.Float, 4); + } + return ColorAttribute; + }(VertexAttribute)); + webgl.ColorAttribute = ColorAttribute; + var Color2Attribute = (function (_super) { + __extends(Color2Attribute, _super); + function Color2Attribute() { + _super.call(this, webgl.Shader.COLOR2, VertexAttributeType.Float, 4); + } + return Color2Attribute; + }(VertexAttribute)); + webgl.Color2Attribute = Color2Attribute; + (function (VertexAttributeType) { + VertexAttributeType[VertexAttributeType["Float"] = 0] = "Float"; + })(webgl.VertexAttributeType || (webgl.VertexAttributeType = {})); + var VertexAttributeType = webgl.VertexAttributeType; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var PolygonBatcher = (function () { - function PolygonBatcher(context, twoColorTint, maxVertices) { - if (twoColorTint === void 0) { twoColorTint = true; } - if (maxVertices === void 0) { maxVertices = 10920; } - this.isDrawing = false; - this.shader = null; - this.lastTexture = null; - this.verticesLength = 0; - this.indicesLength = 0; - if (maxVertices > 10920) - throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - var attributes = twoColorTint ? - [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute(), new webgl.Color2Attribute()] : - [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute()]; - this.mesh = new webgl.Mesh(context, attributes, maxVertices, maxVertices * 3); - this.srcBlend = this.context.gl.SRC_ALPHA; - this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; - } - PolygonBatcher.prototype.begin = function (shader) { - var gl = this.context.gl; - if (this.isDrawing) - throw new Error("PolygonBatch is already drawing. Call PolygonBatch.end() before calling PolygonBatch.begin()"); - this.drawCalls = 0; - this.shader = shader; - this.lastTexture = null; - this.isDrawing = true; - gl.enable(gl.BLEND); - gl.blendFunc(this.srcBlend, this.dstBlend); - }; - PolygonBatcher.prototype.setBlendMode = function (srcBlend, dstBlend) { - var gl = this.context.gl; - this.srcBlend = srcBlend; - this.dstBlend = dstBlend; - if (this.isDrawing) { - this.flush(); - gl.blendFunc(this.srcBlend, this.dstBlend); - } - }; - PolygonBatcher.prototype.draw = function (texture, vertices, indices) { - if (texture != this.lastTexture) { - this.flush(); - this.lastTexture = texture; - } - else if (this.verticesLength + vertices.length > this.mesh.getVertices().length || - this.indicesLength + indices.length > this.mesh.getIndices().length) { - this.flush(); - } - var indexStart = this.mesh.numVertices(); - this.mesh.getVertices().set(vertices, this.verticesLength); - this.verticesLength += vertices.length; - this.mesh.setVerticesLength(this.verticesLength); - var indicesArray = this.mesh.getIndices(); - for (var i = this.indicesLength, j = 0; j < indices.length; i++, j++) - indicesArray[i] = indices[j] + indexStart; - this.indicesLength += indices.length; - this.mesh.setIndicesLength(this.indicesLength); - }; - PolygonBatcher.prototype.flush = function () { - var gl = this.context.gl; - if (this.verticesLength == 0) - return; - this.lastTexture.bind(); - this.mesh.draw(this.shader, gl.TRIANGLES); - this.verticesLength = 0; - this.indicesLength = 0; - this.mesh.setVerticesLength(0); - this.mesh.setIndicesLength(0); - this.drawCalls++; - }; - PolygonBatcher.prototype.end = function () { - var gl = this.context.gl; - if (!this.isDrawing) - throw new Error("PolygonBatch is not drawing. Call PolygonBatch.begin() before calling PolygonBatch.end()"); - if (this.verticesLength > 0 || this.indicesLength > 0) - this.flush(); - this.shader = null; - this.lastTexture = null; - this.isDrawing = false; - gl.disable(gl.BLEND); - }; - PolygonBatcher.prototype.getDrawCalls = function () { return this.drawCalls; }; - PolygonBatcher.prototype.dispose = function () { - this.mesh.dispose(); - }; - return PolygonBatcher; - }()); - webgl.PolygonBatcher = PolygonBatcher; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var PolygonBatcher = (function () { + function PolygonBatcher(context, twoColorTint, maxVertices) { + if (twoColorTint === void 0) { twoColorTint = true; } + if (maxVertices === void 0) { maxVertices = 10920; } + this.isDrawing = false; + this.shader = null; + this.lastTexture = null; + this.verticesLength = 0; + this.indicesLength = 0; + if (maxVertices > 10920) + throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + var attributes = twoColorTint ? + [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute(), new webgl.Color2Attribute()] : + [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute()]; + this.mesh = new webgl.Mesh(context, attributes, maxVertices, maxVertices * 3); + this.srcBlend = this.context.gl.SRC_ALPHA; + this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; + } + PolygonBatcher.prototype.begin = function (shader) { + var gl = this.context.gl; + if (this.isDrawing) + throw new Error("PolygonBatch is already drawing. Call PolygonBatch.end() before calling PolygonBatch.begin()"); + this.drawCalls = 0; + this.shader = shader; + this.lastTexture = null; + this.isDrawing = true; + gl.enable(gl.BLEND); + gl.blendFunc(this.srcBlend, this.dstBlend); + }; + PolygonBatcher.prototype.setBlendMode = function (srcBlend, dstBlend) { + var gl = this.context.gl; + this.srcBlend = srcBlend; + this.dstBlend = dstBlend; + if (this.isDrawing) { + this.flush(); + gl.blendFunc(this.srcBlend, this.dstBlend); + } + }; + PolygonBatcher.prototype.draw = function (texture, vertices, indices) { + if (texture != this.lastTexture) { + this.flush(); + this.lastTexture = texture; + } + else if (this.verticesLength + vertices.length > this.mesh.getVertices().length || + this.indicesLength + indices.length > this.mesh.getIndices().length) { + this.flush(); + } + var indexStart = this.mesh.numVertices(); + this.mesh.getVertices().set(vertices, this.verticesLength); + this.verticesLength += vertices.length; + this.mesh.setVerticesLength(this.verticesLength); + var indicesArray = this.mesh.getIndices(); + for (var i = this.indicesLength, j = 0; j < indices.length; i++, j++) + indicesArray[i] = indices[j] + indexStart; + this.indicesLength += indices.length; + this.mesh.setIndicesLength(this.indicesLength); + }; + PolygonBatcher.prototype.flush = function () { + var gl = this.context.gl; + if (this.verticesLength == 0) + return; + this.lastTexture.bind(); + this.mesh.draw(this.shader, gl.TRIANGLES); + this.verticesLength = 0; + this.indicesLength = 0; + this.mesh.setVerticesLength(0); + this.mesh.setIndicesLength(0); + this.drawCalls++; + }; + PolygonBatcher.prototype.end = function () { + var gl = this.context.gl; + if (!this.isDrawing) + throw new Error("PolygonBatch is not drawing. Call PolygonBatch.begin() before calling PolygonBatch.end()"); + if (this.verticesLength > 0 || this.indicesLength > 0) + this.flush(); + this.shader = null; + this.lastTexture = null; + this.isDrawing = false; + gl.disable(gl.BLEND); + }; + PolygonBatcher.prototype.getDrawCalls = function () { return this.drawCalls; }; + PolygonBatcher.prototype.dispose = function () { + this.mesh.dispose(); + }; + return PolygonBatcher; + }()); + webgl.PolygonBatcher = PolygonBatcher; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var SceneRenderer = (function () { - function SceneRenderer(canvas, context, twoColorTint) { - if (twoColorTint === void 0) { twoColorTint = true; } - this.twoColorTint = false; - this.activeRenderer = null; - this.QUAD = [ - 0, 0, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 0, 0, - ]; - this.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - this.WHITE = new spine.Color(1, 1, 1, 1); - this.canvas = canvas; - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.twoColorTint = twoColorTint; - this.camera = new webgl.OrthoCamera(canvas.width, canvas.height); - this.batcherShader = twoColorTint ? webgl.Shader.newTwoColoredTextured(this.context) : webgl.Shader.newColoredTextured(this.context); - this.batcher = new webgl.PolygonBatcher(this.context, twoColorTint); - this.shapesShader = webgl.Shader.newColored(this.context); - this.shapes = new webgl.ShapeRenderer(this.context); - this.skeletonRenderer = new webgl.SkeletonRenderer(this.context, twoColorTint); - this.skeletonDebugRenderer = new webgl.SkeletonDebugRenderer(this.context); - } - SceneRenderer.prototype.begin = function () { - this.camera.update(); - this.enableRenderer(this.batcher); - }; - SceneRenderer.prototype.drawSkeleton = function (skeleton, premultipliedAlpha) { - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - this.enableRenderer(this.batcher); - this.skeletonRenderer.premultipliedAlpha = premultipliedAlpha; - this.skeletonRenderer.draw(this.batcher, skeleton); - }; - SceneRenderer.prototype.drawSkeletonDebug = function (skeleton, premultipliedAlpha, ignoredBones) { - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - if (ignoredBones === void 0) { ignoredBones = null; } - this.enableRenderer(this.shapes); - this.skeletonDebugRenderer.premultipliedAlpha = premultipliedAlpha; - this.skeletonDebugRenderer.draw(this.shapes, skeleton, ignoredBones); - }; - SceneRenderer.prototype.drawTexture = function (texture, x, y, width, height, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.batcher); - if (color === null) - color = this.WHITE; - var quad = this.QUAD; - var i = 0; - quad[i++] = x; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); - }; - SceneRenderer.prototype.drawTextureRotated = function (texture, x, y, width, height, pivotX, pivotY, angle, color, premultipliedAlpha) { - if (color === void 0) { color = null; } - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - this.enableRenderer(this.batcher); - if (color === null) - color = this.WHITE; - var quad = this.QUAD; - var worldOriginX = x + pivotX; - var worldOriginY = y + pivotY; - var fx = -pivotX; - var fy = -pivotY; - var fx2 = width - pivotX; - var fy2 = height - pivotY; - var p1x = fx; - var p1y = fy; - var p2x = fx; - var p2y = fy2; - var p3x = fx2; - var p3y = fy2; - var p4x = fx2; - var p4y = fy; - var x1 = 0; - var y1 = 0; - var x2 = 0; - var y2 = 0; - var x3 = 0; - var y3 = 0; - var x4 = 0; - var y4 = 0; - if (angle != 0) { - var cos = spine.MathUtils.cosDeg(angle); - var sin = spine.MathUtils.sinDeg(angle); - x1 = cos * p1x - sin * p1y; - y1 = sin * p1x + cos * p1y; - x4 = cos * p2x - sin * p2y; - y4 = sin * p2x + cos * p2y; - x3 = cos * p3x - sin * p3y; - y3 = sin * p3x + cos * p3y; - x2 = x3 + (x1 - x4); - y2 = y3 + (y1 - y4); - } - else { - x1 = p1x; - y1 = p1y; - x4 = p2x; - y4 = p2y; - x3 = p3x; - y3 = p3y; - x2 = p4x; - y2 = p4y; - } - x1 += worldOriginX; - y1 += worldOriginY; - x2 += worldOriginX; - y2 += worldOriginY; - x3 += worldOriginX; - y3 += worldOriginY; - x4 += worldOriginX; - y4 += worldOriginY; - var i = 0; - quad[i++] = x1; - quad[i++] = y1; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x2; - quad[i++] = y2; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x3; - quad[i++] = y3; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x4; - quad[i++] = y4; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); - }; - SceneRenderer.prototype.drawRegion = function (region, x, y, width, height, color, premultipliedAlpha) { - if (color === void 0) { color = null; } - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - this.enableRenderer(this.batcher); - if (color === null) - color = this.WHITE; - var quad = this.QUAD; - var i = 0; - quad[i++] = x; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u; - quad[i++] = region.v2; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u2; - quad[i++] = region.v2; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u2; - quad[i++] = region.v; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u; - quad[i++] = region.v; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - this.batcher.draw(region.texture, quad, this.QUAD_TRIANGLES); - }; - SceneRenderer.prototype.line = function (x, y, x2, y2, color, color2) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - this.enableRenderer(this.shapes); - this.shapes.line(x, y, x2, y2, color); - }; - SceneRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - this.enableRenderer(this.shapes); - this.shapes.triangle(filled, x, y, x2, y2, x3, y3, color, color2, color3); - }; - SceneRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - if (color4 === void 0) { color4 = null; } - this.enableRenderer(this.shapes); - this.shapes.quad(filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4); - }; - SceneRenderer.prototype.rect = function (filled, x, y, width, height, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.rect(filled, x, y, width, height, color); - }; - SceneRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.rectLine(filled, x1, y1, x2, y2, width, color); - }; - SceneRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.polygon(polygonVertices, offset, count, color); - }; - SceneRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { - if (color === void 0) { color = null; } - if (segments === void 0) { segments = 0; } - this.enableRenderer(this.shapes); - this.shapes.circle(filled, x, y, radius, color, segments); - }; - SceneRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color); - }; - SceneRenderer.prototype.end = function () { - if (this.activeRenderer === this.batcher) - this.batcher.end(); - else if (this.activeRenderer === this.shapes) - this.shapes.end(); - this.activeRenderer = null; - }; - SceneRenderer.prototype.resize = function (resizeMode) { - var canvas = this.canvas; - var w = canvas.clientWidth; - var h = canvas.clientHeight; - if (canvas.width != w || canvas.height != h) { - canvas.width = w; - canvas.height = h; - } - this.context.gl.viewport(0, 0, canvas.width, canvas.height); - if (resizeMode === ResizeMode.Stretch) { - } - else if (resizeMode === ResizeMode.Expand) { - this.camera.setViewport(w, h); - } - else if (resizeMode === ResizeMode.Fit) { - var sourceWidth = canvas.width, sourceHeight = canvas.height; - var targetWidth = this.camera.viewportWidth, targetHeight = this.camera.viewportHeight; - var targetRatio = targetHeight / targetWidth; - var sourceRatio = sourceHeight / sourceWidth; - var scale = targetRatio < sourceRatio ? targetWidth / sourceWidth : targetHeight / sourceHeight; - this.camera.viewportWidth = sourceWidth * scale; - this.camera.viewportHeight = sourceHeight * scale; - } - this.camera.update(); - }; - SceneRenderer.prototype.enableRenderer = function (renderer) { - if (this.activeRenderer === renderer) - return; - this.end(); - if (renderer instanceof webgl.PolygonBatcher) { - this.batcherShader.bind(); - this.batcherShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); - this.batcherShader.setUniformi("u_texture", 0); - this.batcher.begin(this.batcherShader); - this.activeRenderer = this.batcher; - } - else if (renderer instanceof webgl.ShapeRenderer) { - this.shapesShader.bind(); - this.shapesShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); - this.shapes.begin(this.shapesShader); - this.activeRenderer = this.shapes; - } - else { - this.activeRenderer = this.skeletonDebugRenderer; - } - }; - SceneRenderer.prototype.dispose = function () { - this.batcher.dispose(); - this.batcherShader.dispose(); - this.shapes.dispose(); - this.shapesShader.dispose(); - this.skeletonDebugRenderer.dispose(); - }; - return SceneRenderer; - }()); - webgl.SceneRenderer = SceneRenderer; - var ResizeMode; - (function (ResizeMode) { - ResizeMode[ResizeMode["Stretch"] = 0] = "Stretch"; - ResizeMode[ResizeMode["Expand"] = 1] = "Expand"; - ResizeMode[ResizeMode["Fit"] = 2] = "Fit"; - })(ResizeMode = webgl.ResizeMode || (webgl.ResizeMode = {})); - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var SceneRenderer = (function () { + function SceneRenderer(canvas, context, twoColorTint) { + if (twoColorTint === void 0) { twoColorTint = true; } + this.twoColorTint = false; + this.activeRenderer = null; + this.QUAD = [ + 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, + ]; + this.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + this.WHITE = new spine.Color(1, 1, 1, 1); + this.canvas = canvas; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.twoColorTint = twoColorTint; + this.camera = new webgl.OrthoCamera(canvas.width, canvas.height); + this.batcherShader = twoColorTint ? webgl.Shader.newTwoColoredTextured(this.context) : webgl.Shader.newColoredTextured(this.context); + this.batcher = new webgl.PolygonBatcher(this.context, twoColorTint); + this.shapesShader = webgl.Shader.newColored(this.context); + this.shapes = new webgl.ShapeRenderer(this.context); + this.skeletonRenderer = new webgl.SkeletonRenderer(this.context, twoColorTint); + this.skeletonDebugRenderer = new webgl.SkeletonDebugRenderer(this.context); + } + SceneRenderer.prototype.begin = function () { + this.camera.update(); + this.enableRenderer(this.batcher); + }; + SceneRenderer.prototype.drawSkeleton = function (skeleton, premultipliedAlpha) { + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + this.enableRenderer(this.batcher); + this.skeletonRenderer.premultipliedAlpha = premultipliedAlpha; + this.skeletonRenderer.draw(this.batcher, skeleton); + }; + SceneRenderer.prototype.drawSkeletonDebug = function (skeleton, premultipliedAlpha, ignoredBones) { + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + if (ignoredBones === void 0) { ignoredBones = null; } + this.enableRenderer(this.shapes); + this.skeletonDebugRenderer.premultipliedAlpha = premultipliedAlpha; + this.skeletonDebugRenderer.draw(this.shapes, skeleton, ignoredBones); + }; + SceneRenderer.prototype.drawTexture = function (texture, x, y, width, height, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.batcher); + if (color === null) + color = this.WHITE; + var quad = this.QUAD; + var i = 0; + quad[i++] = x; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); + }; + SceneRenderer.prototype.drawTextureRotated = function (texture, x, y, width, height, pivotX, pivotY, angle, color, premultipliedAlpha) { + if (color === void 0) { color = null; } + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + this.enableRenderer(this.batcher); + if (color === null) + color = this.WHITE; + var quad = this.QUAD; + var worldOriginX = x + pivotX; + var worldOriginY = y + pivotY; + var fx = -pivotX; + var fy = -pivotY; + var fx2 = width - pivotX; + var fy2 = height - pivotY; + var p1x = fx; + var p1y = fy; + var p2x = fx; + var p2y = fy2; + var p3x = fx2; + var p3y = fy2; + var p4x = fx2; + var p4y = fy; + var x1 = 0; + var y1 = 0; + var x2 = 0; + var y2 = 0; + var x3 = 0; + var y3 = 0; + var x4 = 0; + var y4 = 0; + if (angle != 0) { + var cos = spine.MathUtils.cosDeg(angle); + var sin = spine.MathUtils.sinDeg(angle); + x1 = cos * p1x - sin * p1y; + y1 = sin * p1x + cos * p1y; + x4 = cos * p2x - sin * p2y; + y4 = sin * p2x + cos * p2y; + x3 = cos * p3x - sin * p3y; + y3 = sin * p3x + cos * p3y; + x2 = x3 + (x1 - x4); + y2 = y3 + (y1 - y4); + } + else { + x1 = p1x; + y1 = p1y; + x4 = p2x; + y4 = p2y; + x3 = p3x; + y3 = p3y; + x2 = p4x; + y2 = p4y; + } + x1 += worldOriginX; + y1 += worldOriginY; + x2 += worldOriginX; + y2 += worldOriginY; + x3 += worldOriginX; + y3 += worldOriginY; + x4 += worldOriginX; + y4 += worldOriginY; + var i = 0; + quad[i++] = x1; + quad[i++] = y1; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x2; + quad[i++] = y2; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x3; + quad[i++] = y3; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x4; + quad[i++] = y4; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); + }; + SceneRenderer.prototype.drawRegion = function (region, x, y, width, height, color, premultipliedAlpha) { + if (color === void 0) { color = null; } + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + this.enableRenderer(this.batcher); + if (color === null) + color = this.WHITE; + var quad = this.QUAD; + var i = 0; + quad[i++] = x; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u; + quad[i++] = region.v2; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u2; + quad[i++] = region.v2; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u2; + quad[i++] = region.v; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u; + quad[i++] = region.v; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + this.batcher.draw(region.texture, quad, this.QUAD_TRIANGLES); + }; + SceneRenderer.prototype.line = function (x, y, x2, y2, color, color2) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + this.enableRenderer(this.shapes); + this.shapes.line(x, y, x2, y2, color); + }; + SceneRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + this.enableRenderer(this.shapes); + this.shapes.triangle(filled, x, y, x2, y2, x3, y3, color, color2, color3); + }; + SceneRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + if (color4 === void 0) { color4 = null; } + this.enableRenderer(this.shapes); + this.shapes.quad(filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4); + }; + SceneRenderer.prototype.rect = function (filled, x, y, width, height, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.rect(filled, x, y, width, height, color); + }; + SceneRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.rectLine(filled, x1, y1, x2, y2, width, color); + }; + SceneRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.polygon(polygonVertices, offset, count, color); + }; + SceneRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { + if (color === void 0) { color = null; } + if (segments === void 0) { segments = 0; } + this.enableRenderer(this.shapes); + this.shapes.circle(filled, x, y, radius, color, segments); + }; + SceneRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color); + }; + SceneRenderer.prototype.end = function () { + if (this.activeRenderer === this.batcher) + this.batcher.end(); + else if (this.activeRenderer === this.shapes) + this.shapes.end(); + this.activeRenderer = null; + }; + SceneRenderer.prototype.resize = function (resizeMode) { + var canvas = this.canvas; + var w = canvas.clientWidth; + var h = canvas.clientHeight; + if (canvas.width != w || canvas.height != h) { + canvas.width = w; + canvas.height = h; + } + this.context.gl.viewport(0, 0, canvas.width, canvas.height); + if (resizeMode === ResizeMode.Stretch) { + } + else if (resizeMode === ResizeMode.Expand) { + this.camera.setViewport(w, h); + } + else if (resizeMode === ResizeMode.Fit) { + var sourceWidth = canvas.width, sourceHeight = canvas.height; + var targetWidth = this.camera.viewportWidth, targetHeight = this.camera.viewportHeight; + var targetRatio = targetHeight / targetWidth; + var sourceRatio = sourceHeight / sourceWidth; + var scale = targetRatio < sourceRatio ? targetWidth / sourceWidth : targetHeight / sourceHeight; + this.camera.viewportWidth = sourceWidth * scale; + this.camera.viewportHeight = sourceHeight * scale; + } + this.camera.update(); + }; + SceneRenderer.prototype.enableRenderer = function (renderer) { + if (this.activeRenderer === renderer) + return; + this.end(); + if (renderer instanceof webgl.PolygonBatcher) { + this.batcherShader.bind(); + this.batcherShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); + this.batcherShader.setUniformi("u_texture", 0); + this.batcher.begin(this.batcherShader); + this.activeRenderer = this.batcher; + } + else if (renderer instanceof webgl.ShapeRenderer) { + this.shapesShader.bind(); + this.shapesShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); + this.shapes.begin(this.shapesShader); + this.activeRenderer = this.shapes; + } + else { + this.activeRenderer = this.skeletonDebugRenderer; + } + }; + SceneRenderer.prototype.dispose = function () { + this.batcher.dispose(); + this.batcherShader.dispose(); + this.shapes.dispose(); + this.shapesShader.dispose(); + this.skeletonDebugRenderer.dispose(); + }; + return SceneRenderer; + }()); + webgl.SceneRenderer = SceneRenderer; + (function (ResizeMode) { + ResizeMode[ResizeMode["Stretch"] = 0] = "Stretch"; + ResizeMode[ResizeMode["Expand"] = 1] = "Expand"; + ResizeMode[ResizeMode["Fit"] = 2] = "Fit"; + })(webgl.ResizeMode || (webgl.ResizeMode = {})); + var ResizeMode = webgl.ResizeMode; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Shader = (function () { - function Shader(context, vertexShader, fragmentShader) { - this.vertexShader = vertexShader; - this.fragmentShader = fragmentShader; - this.vs = null; - this.fs = null; - this.program = null; - this.tmp2x2 = new Float32Array(2 * 2); - this.tmp3x3 = new Float32Array(3 * 3); - this.tmp4x4 = new Float32Array(4 * 4); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.context.addRestorable(this); - this.compile(); - } - Shader.prototype.getProgram = function () { return this.program; }; - Shader.prototype.getVertexShader = function () { return this.vertexShader; }; - Shader.prototype.getFragmentShader = function () { return this.fragmentShader; }; - Shader.prototype.compile = function () { - var gl = this.context.gl; - try { - this.vs = this.compileShader(gl.VERTEX_SHADER, this.vertexShader); - this.fs = this.compileShader(gl.FRAGMENT_SHADER, this.fragmentShader); - this.program = this.compileProgram(this.vs, this.fs); - } - catch (e) { - this.dispose(); - throw e; - } - }; - Shader.prototype.compileShader = function (type, source) { - var gl = this.context.gl; - var shader = gl.createShader(type); - gl.shaderSource(shader, source); - gl.compileShader(shader); - if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { - var error = "Couldn't compile shader: " + gl.getShaderInfoLog(shader); - gl.deleteShader(shader); - if (!gl.isContextLost()) - throw new Error(error); - } - return shader; - }; - Shader.prototype.compileProgram = function (vs, fs) { - var gl = this.context.gl; - var program = gl.createProgram(); - gl.attachShader(program, vs); - gl.attachShader(program, fs); - gl.linkProgram(program); - if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { - var error = "Couldn't compile shader program: " + gl.getProgramInfoLog(program); - gl.deleteProgram(program); - if (!gl.isContextLost()) - throw new Error(error); - } - return program; - }; - Shader.prototype.restore = function () { - this.compile(); - }; - Shader.prototype.bind = function () { - this.context.gl.useProgram(this.program); - }; - Shader.prototype.unbind = function () { - this.context.gl.useProgram(null); - }; - Shader.prototype.setUniformi = function (uniform, value) { - this.context.gl.uniform1i(this.getUniformLocation(uniform), value); - }; - Shader.prototype.setUniformf = function (uniform, value) { - this.context.gl.uniform1f(this.getUniformLocation(uniform), value); - }; - Shader.prototype.setUniform2f = function (uniform, value, value2) { - this.context.gl.uniform2f(this.getUniformLocation(uniform), value, value2); - }; - Shader.prototype.setUniform3f = function (uniform, value, value2, value3) { - this.context.gl.uniform3f(this.getUniformLocation(uniform), value, value2, value3); - }; - Shader.prototype.setUniform4f = function (uniform, value, value2, value3, value4) { - this.context.gl.uniform4f(this.getUniformLocation(uniform), value, value2, value3, value4); - }; - Shader.prototype.setUniform2x2f = function (uniform, value) { - var gl = this.context.gl; - this.tmp2x2.set(value); - gl.uniformMatrix2fv(this.getUniformLocation(uniform), false, this.tmp2x2); - }; - Shader.prototype.setUniform3x3f = function (uniform, value) { - var gl = this.context.gl; - this.tmp3x3.set(value); - gl.uniformMatrix3fv(this.getUniformLocation(uniform), false, this.tmp3x3); - }; - Shader.prototype.setUniform4x4f = function (uniform, value) { - var gl = this.context.gl; - this.tmp4x4.set(value); - gl.uniformMatrix4fv(this.getUniformLocation(uniform), false, this.tmp4x4); - }; - Shader.prototype.getUniformLocation = function (uniform) { - var gl = this.context.gl; - var location = gl.getUniformLocation(this.program, uniform); - if (!location && !gl.isContextLost()) - throw new Error("Couldn't find location for uniform " + uniform); - return location; - }; - Shader.prototype.getAttributeLocation = function (attribute) { - var gl = this.context.gl; - var location = gl.getAttribLocation(this.program, attribute); - if (location == -1 && !gl.isContextLost()) - throw new Error("Couldn't find location for attribute " + attribute); - return location; - }; - Shader.prototype.dispose = function () { - this.context.removeRestorable(this); - var gl = this.context.gl; - if (this.vs) { - gl.deleteShader(this.vs); - this.vs = null; - } - if (this.fs) { - gl.deleteShader(this.fs); - this.fs = null; - } - if (this.program) { - gl.deleteProgram(this.program); - this.program = null; - } - }; - Shader.newColoredTextured = function (context) { - var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; - var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color * texture2D(u_texture, v_texCoords);\n\t\t\t\t}\n\t\t\t"; - return new Shader(context, vs, fs); - }; - Shader.newTwoColoredTextured = function (context) { - var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR2 + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_light;\n\t\t\t\tvarying vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_light = " + Shader.COLOR + ";\n\t\t\t\t\tv_dark = " + Shader.COLOR2 + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; - var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_light;\n\t\t\t\tvarying LOWP vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tvec4 texColor = texture2D(u_texture, v_texCoords);\n\t\t\t\t\tfloat alpha = texColor.a * v_light.a;\n\t\t\t\t\tgl_FragColor.a = alpha;\n\t\t\t\t\tgl_FragColor.rgb = (1.0 - texColor.rgb) * v_dark.rgb * alpha + texColor.rgb * v_light.rgb;\n\t\t\t\t}\n\t\t\t"; - return new Shader(context, vs, fs); - }; - Shader.newColored = function (context) { - var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; - var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color;\n\t\t\t\t}\n\t\t\t"; - return new Shader(context, vs, fs); - }; - return Shader; - }()); - Shader.MVP_MATRIX = "u_projTrans"; - Shader.POSITION = "a_position"; - Shader.COLOR = "a_color"; - Shader.COLOR2 = "a_color2"; - Shader.TEXCOORDS = "a_texCoords"; - Shader.SAMPLER = "u_texture"; - webgl.Shader = Shader; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Shader = (function () { + function Shader(context, vertexShader, fragmentShader) { + this.vertexShader = vertexShader; + this.fragmentShader = fragmentShader; + this.vs = null; + this.fs = null; + this.program = null; + this.tmp2x2 = new Float32Array(2 * 2); + this.tmp3x3 = new Float32Array(3 * 3); + this.tmp4x4 = new Float32Array(4 * 4); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.context.addRestorable(this); + this.compile(); + } + Shader.prototype.getProgram = function () { return this.program; }; + Shader.prototype.getVertexShader = function () { return this.vertexShader; }; + Shader.prototype.getFragmentShader = function () { return this.fragmentShader; }; + Shader.prototype.compile = function () { + var gl = this.context.gl; + try { + this.vs = this.compileShader(gl.VERTEX_SHADER, this.vertexShader); + this.fs = this.compileShader(gl.FRAGMENT_SHADER, this.fragmentShader); + this.program = this.compileProgram(this.vs, this.fs); + } + catch (e) { + this.dispose(); + throw e; + } + }; + Shader.prototype.compileShader = function (type, source) { + var gl = this.context.gl; + var shader = gl.createShader(type); + gl.shaderSource(shader, source); + gl.compileShader(shader); + if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { + var error = "Couldn't compile shader: " + gl.getShaderInfoLog(shader); + gl.deleteShader(shader); + if (!gl.isContextLost()) + throw new Error(error); + } + return shader; + }; + Shader.prototype.compileProgram = function (vs, fs) { + var gl = this.context.gl; + var program = gl.createProgram(); + gl.attachShader(program, vs); + gl.attachShader(program, fs); + gl.linkProgram(program); + if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { + var error = "Couldn't compile shader program: " + gl.getProgramInfoLog(program); + gl.deleteProgram(program); + if (!gl.isContextLost()) + throw new Error(error); + } + return program; + }; + Shader.prototype.restore = function () { + this.compile(); + }; + Shader.prototype.bind = function () { + this.context.gl.useProgram(this.program); + }; + Shader.prototype.unbind = function () { + this.context.gl.useProgram(null); + }; + Shader.prototype.setUniformi = function (uniform, value) { + this.context.gl.uniform1i(this.getUniformLocation(uniform), value); + }; + Shader.prototype.setUniformf = function (uniform, value) { + this.context.gl.uniform1f(this.getUniformLocation(uniform), value); + }; + Shader.prototype.setUniform2f = function (uniform, value, value2) { + this.context.gl.uniform2f(this.getUniformLocation(uniform), value, value2); + }; + Shader.prototype.setUniform3f = function (uniform, value, value2, value3) { + this.context.gl.uniform3f(this.getUniformLocation(uniform), value, value2, value3); + }; + Shader.prototype.setUniform4f = function (uniform, value, value2, value3, value4) { + this.context.gl.uniform4f(this.getUniformLocation(uniform), value, value2, value3, value4); + }; + Shader.prototype.setUniform2x2f = function (uniform, value) { + var gl = this.context.gl; + this.tmp2x2.set(value); + gl.uniformMatrix2fv(this.getUniformLocation(uniform), false, this.tmp2x2); + }; + Shader.prototype.setUniform3x3f = function (uniform, value) { + var gl = this.context.gl; + this.tmp3x3.set(value); + gl.uniformMatrix3fv(this.getUniformLocation(uniform), false, this.tmp3x3); + }; + Shader.prototype.setUniform4x4f = function (uniform, value) { + var gl = this.context.gl; + this.tmp4x4.set(value); + gl.uniformMatrix4fv(this.getUniformLocation(uniform), false, this.tmp4x4); + }; + Shader.prototype.getUniformLocation = function (uniform) { + var gl = this.context.gl; + var location = gl.getUniformLocation(this.program, uniform); + if (!location && !gl.isContextLost()) + throw new Error("Couldn't find location for uniform " + uniform); + return location; + }; + Shader.prototype.getAttributeLocation = function (attribute) { + var gl = this.context.gl; + var location = gl.getAttribLocation(this.program, attribute); + if (location == -1 && !gl.isContextLost()) + throw new Error("Couldn't find location for attribute " + attribute); + return location; + }; + Shader.prototype.dispose = function () { + this.context.removeRestorable(this); + var gl = this.context.gl; + if (this.vs) { + gl.deleteShader(this.vs); + this.vs = null; + } + if (this.fs) { + gl.deleteShader(this.fs); + this.fs = null; + } + if (this.program) { + gl.deleteProgram(this.program); + this.program = null; + } + }; + Shader.newColoredTextured = function (context) { + var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; + var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color * texture2D(u_texture, v_texCoords);\n\t\t\t\t}\n\t\t\t"; + return new Shader(context, vs, fs); + }; + Shader.newTwoColoredTextured = function (context) { + var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR2 + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_light;\n\t\t\t\tvarying vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_light = " + Shader.COLOR + ";\n\t\t\t\t\tv_dark = " + Shader.COLOR2 + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; + var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_light;\n\t\t\t\tvarying LOWP vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tvec4 texColor = texture2D(u_texture, v_texCoords);\n\t\t\t\t\tfloat alpha = texColor.a * v_light.a;\n\t\t\t\t\tgl_FragColor.a = alpha;\n\t\t\t\t\tgl_FragColor.rgb = (1.0 - texColor.rgb) * v_dark.rgb * alpha + texColor.rgb * v_light.rgb;\n\t\t\t\t}\n\t\t\t"; + return new Shader(context, vs, fs); + }; + Shader.newColored = function (context) { + var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; + var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color;\n\t\t\t\t}\n\t\t\t"; + return new Shader(context, vs, fs); + }; + Shader.MVP_MATRIX = "u_projTrans"; + Shader.POSITION = "a_position"; + Shader.COLOR = "a_color"; + Shader.COLOR2 = "a_color2"; + Shader.TEXCOORDS = "a_texCoords"; + Shader.SAMPLER = "u_texture"; + return Shader; + }()); + webgl.Shader = Shader; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var ShapeRenderer = (function () { - function ShapeRenderer(context, maxVertices) { - if (maxVertices === void 0) { maxVertices = 10920; } - this.isDrawing = false; - this.shapeType = ShapeType.Filled; - this.color = new spine.Color(1, 1, 1, 1); - this.vertexIndex = 0; - this.tmp = new spine.Vector2(); - if (maxVertices > 10920) - throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.mesh = new webgl.Mesh(context, [new webgl.Position2Attribute(), new webgl.ColorAttribute()], maxVertices, 0); - this.srcBlend = this.context.gl.SRC_ALPHA; - this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; - } - ShapeRenderer.prototype.begin = function (shader) { - if (this.isDrawing) - throw new Error("ShapeRenderer.begin() has already been called"); - this.shader = shader; - this.vertexIndex = 0; - this.isDrawing = true; - var gl = this.context.gl; - gl.enable(gl.BLEND); - gl.blendFunc(this.srcBlend, this.dstBlend); - }; - ShapeRenderer.prototype.setBlendMode = function (srcBlend, dstBlend) { - var gl = this.context.gl; - this.srcBlend = srcBlend; - this.dstBlend = dstBlend; - if (this.isDrawing) { - this.flush(); - gl.blendFunc(this.srcBlend, this.dstBlend); - } - }; - ShapeRenderer.prototype.setColor = function (color) { - this.color.setFromColor(color); - }; - ShapeRenderer.prototype.setColorWith = function (r, g, b, a) { - this.color.set(r, g, b, a); - }; - ShapeRenderer.prototype.point = function (x, y, color) { - if (color === void 0) { color = null; } - this.check(ShapeType.Point, 1); - if (color === null) - color = this.color; - this.vertex(x, y, color); - }; - ShapeRenderer.prototype.line = function (x, y, x2, y2, color) { - if (color === void 0) { color = null; } - this.check(ShapeType.Line, 2); - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - if (color === null) - color = this.color; - this.vertex(x, y, color); - this.vertex(x2, y2, color); - }; - ShapeRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - if (color === null) - color = this.color; - if (color2 === null) - color2 = this.color; - if (color3 === null) - color3 = this.color; - if (filled) { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x3, y3, color3); - } - else { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x2, y2, color); - this.vertex(x3, y3, color2); - this.vertex(x3, y3, color); - this.vertex(x, y, color2); - } - }; - ShapeRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - if (color4 === void 0) { color4 = null; } - this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - if (color === null) - color = this.color; - if (color2 === null) - color2 = this.color; - if (color3 === null) - color3 = this.color; - if (color4 === null) - color4 = this.color; - if (filled) { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x3, y3, color3); - this.vertex(x3, y3, color3); - this.vertex(x4, y4, color4); - this.vertex(x, y, color); - } - else { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x2, y2, color2); - this.vertex(x3, y3, color3); - this.vertex(x3, y3, color3); - this.vertex(x4, y4, color4); - this.vertex(x4, y4, color4); - this.vertex(x, y, color); - } - }; - ShapeRenderer.prototype.rect = function (filled, x, y, width, height, color) { - if (color === void 0) { color = null; } - this.quad(filled, x, y, x + width, y, x + width, y + height, x, y + height, color, color, color, color); - }; - ShapeRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { - if (color === void 0) { color = null; } - this.check(filled ? ShapeType.Filled : ShapeType.Line, 8); - if (color === null) - color = this.color; - var t = this.tmp.set(y2 - y1, x1 - x2); - t.normalize(); - width *= 0.5; - var tx = t.x * width; - var ty = t.y * width; - if (!filled) { - this.vertex(x1 + tx, y1 + ty, color); - this.vertex(x1 - tx, y1 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x2 - tx, y2 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x1 + tx, y1 + ty, color); - this.vertex(x2 - tx, y2 - ty, color); - this.vertex(x1 - tx, y1 - ty, color); - } - else { - this.vertex(x1 + tx, y1 + ty, color); - this.vertex(x1 - tx, y1 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x2 - tx, y2 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x1 - tx, y1 - ty, color); - } - }; - ShapeRenderer.prototype.x = function (x, y, size) { - this.line(x - size, y - size, x + size, y + size); - this.line(x - size, y + size, x + size, y - size); - }; - ShapeRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { - if (color === void 0) { color = null; } - if (count < 3) - throw new Error("Polygon must contain at least 3 vertices"); - this.check(ShapeType.Line, count * 2); - if (color === null) - color = this.color; - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - offset <<= 1; - count <<= 1; - var firstX = polygonVertices[offset]; - var firstY = polygonVertices[offset + 1]; - var last = offset + count; - for (var i = offset, n = offset + count - 2; i < n; i += 2) { - var x1 = polygonVertices[i]; - var y1 = polygonVertices[i + 1]; - var x2 = 0; - var y2 = 0; - if (i + 2 >= last) { - x2 = firstX; - y2 = firstY; - } - else { - x2 = polygonVertices[i + 2]; - y2 = polygonVertices[i + 3]; - } - this.vertex(x1, y1, color); - this.vertex(x2, y2, color); - } - }; - ShapeRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { - if (color === void 0) { color = null; } - if (segments === void 0) { segments = 0; } - if (segments === 0) - segments = Math.max(1, (6 * spine.MathUtils.cbrt(radius)) | 0); - if (segments <= 0) - throw new Error("segments must be > 0."); - if (color === null) - color = this.color; - var angle = 2 * spine.MathUtils.PI / segments; - var cos = Math.cos(angle); - var sin = Math.sin(angle); - var cx = radius, cy = 0; - if (!filled) { - this.check(ShapeType.Line, segments * 2 + 2); - for (var i = 0; i < segments; i++) { - this.vertex(x + cx, y + cy, color); - var temp_1 = cx; - cx = cos * cx - sin * cy; - cy = sin * temp_1 + cos * cy; - this.vertex(x + cx, y + cy, color); - } - this.vertex(x + cx, y + cy, color); - } - else { - this.check(ShapeType.Filled, segments * 3 + 3); - segments--; - for (var i = 0; i < segments; i++) { - this.vertex(x, y, color); - this.vertex(x + cx, y + cy, color); - var temp_2 = cx; - cx = cos * cx - sin * cy; - cy = sin * temp_2 + cos * cy; - this.vertex(x + cx, y + cy, color); - } - this.vertex(x, y, color); - this.vertex(x + cx, y + cy, color); - } - var temp = cx; - cx = radius; - cy = 0; - this.vertex(x + cx, y + cy, color); - }; - ShapeRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { - if (color === void 0) { color = null; } - this.check(ShapeType.Line, segments * 2 + 2); - if (color === null) - color = this.color; - var subdiv_step = 1 / segments; - var subdiv_step2 = subdiv_step * subdiv_step; - var subdiv_step3 = subdiv_step * subdiv_step * subdiv_step; - var pre1 = 3 * subdiv_step; - var pre2 = 3 * subdiv_step2; - var pre4 = 6 * subdiv_step2; - var pre5 = 6 * subdiv_step3; - var tmp1x = x1 - cx1 * 2 + cx2; - var tmp1y = y1 - cy1 * 2 + cy2; - var tmp2x = (cx1 - cx2) * 3 - x1 + x2; - var tmp2y = (cy1 - cy2) * 3 - y1 + y2; - var fx = x1; - var fy = y1; - var dfx = (cx1 - x1) * pre1 + tmp1x * pre2 + tmp2x * subdiv_step3; - var dfy = (cy1 - y1) * pre1 + tmp1y * pre2 + tmp2y * subdiv_step3; - var ddfx = tmp1x * pre4 + tmp2x * pre5; - var ddfy = tmp1y * pre4 + tmp2y * pre5; - var dddfx = tmp2x * pre5; - var dddfy = tmp2y * pre5; - while (segments-- > 0) { - this.vertex(fx, fy, color); - fx += dfx; - fy += dfy; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - this.vertex(fx, fy, color); - } - this.vertex(fx, fy, color); - this.vertex(x2, y2, color); - }; - ShapeRenderer.prototype.vertex = function (x, y, color) { - var idx = this.vertexIndex; - var vertices = this.mesh.getVertices(); - vertices[idx++] = x; - vertices[idx++] = y; - vertices[idx++] = color.r; - vertices[idx++] = color.g; - vertices[idx++] = color.b; - vertices[idx++] = color.a; - this.vertexIndex = idx; - }; - ShapeRenderer.prototype.end = function () { - if (!this.isDrawing) - throw new Error("ShapeRenderer.begin() has not been called"); - this.flush(); - this.context.gl.disable(this.context.gl.BLEND); - this.isDrawing = false; - }; - ShapeRenderer.prototype.flush = function () { - if (this.vertexIndex == 0) - return; - this.mesh.setVerticesLength(this.vertexIndex); - this.mesh.draw(this.shader, this.shapeType); - this.vertexIndex = 0; - }; - ShapeRenderer.prototype.check = function (shapeType, numVertices) { - if (!this.isDrawing) - throw new Error("ShapeRenderer.begin() has not been called"); - if (this.shapeType == shapeType) { - if (this.mesh.maxVertices() - this.mesh.numVertices() < numVertices) - this.flush(); - else - return; - } - else { - this.flush(); - this.shapeType = shapeType; - } - }; - ShapeRenderer.prototype.dispose = function () { - this.mesh.dispose(); - }; - return ShapeRenderer; - }()); - webgl.ShapeRenderer = ShapeRenderer; - var ShapeType; - (function (ShapeType) { - ShapeType[ShapeType["Point"] = 0] = "Point"; - ShapeType[ShapeType["Line"] = 1] = "Line"; - ShapeType[ShapeType["Filled"] = 4] = "Filled"; - })(ShapeType = webgl.ShapeType || (webgl.ShapeType = {})); - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var ShapeRenderer = (function () { + function ShapeRenderer(context, maxVertices) { + if (maxVertices === void 0) { maxVertices = 10920; } + this.isDrawing = false; + this.shapeType = ShapeType.Filled; + this.color = new spine.Color(1, 1, 1, 1); + this.vertexIndex = 0; + this.tmp = new spine.Vector2(); + if (maxVertices > 10920) + throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.mesh = new webgl.Mesh(context, [new webgl.Position2Attribute(), new webgl.ColorAttribute()], maxVertices, 0); + this.srcBlend = this.context.gl.SRC_ALPHA; + this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; + } + ShapeRenderer.prototype.begin = function (shader) { + if (this.isDrawing) + throw new Error("ShapeRenderer.begin() has already been called"); + this.shader = shader; + this.vertexIndex = 0; + this.isDrawing = true; + var gl = this.context.gl; + gl.enable(gl.BLEND); + gl.blendFunc(this.srcBlend, this.dstBlend); + }; + ShapeRenderer.prototype.setBlendMode = function (srcBlend, dstBlend) { + var gl = this.context.gl; + this.srcBlend = srcBlend; + this.dstBlend = dstBlend; + if (this.isDrawing) { + this.flush(); + gl.blendFunc(this.srcBlend, this.dstBlend); + } + }; + ShapeRenderer.prototype.setColor = function (color) { + this.color.setFromColor(color); + }; + ShapeRenderer.prototype.setColorWith = function (r, g, b, a) { + this.color.set(r, g, b, a); + }; + ShapeRenderer.prototype.point = function (x, y, color) { + if (color === void 0) { color = null; } + this.check(ShapeType.Point, 1); + if (color === null) + color = this.color; + this.vertex(x, y, color); + }; + ShapeRenderer.prototype.line = function (x, y, x2, y2, color) { + if (color === void 0) { color = null; } + this.check(ShapeType.Line, 2); + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + if (color === null) + color = this.color; + this.vertex(x, y, color); + this.vertex(x2, y2, color); + }; + ShapeRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + if (color === null) + color = this.color; + if (color2 === null) + color2 = this.color; + if (color3 === null) + color3 = this.color; + if (filled) { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x3, y3, color3); + } + else { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x2, y2, color); + this.vertex(x3, y3, color2); + this.vertex(x3, y3, color); + this.vertex(x, y, color2); + } + }; + ShapeRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + if (color4 === void 0) { color4 = null; } + this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + if (color === null) + color = this.color; + if (color2 === null) + color2 = this.color; + if (color3 === null) + color3 = this.color; + if (color4 === null) + color4 = this.color; + if (filled) { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x3, y3, color3); + this.vertex(x3, y3, color3); + this.vertex(x4, y4, color4); + this.vertex(x, y, color); + } + else { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x2, y2, color2); + this.vertex(x3, y3, color3); + this.vertex(x3, y3, color3); + this.vertex(x4, y4, color4); + this.vertex(x4, y4, color4); + this.vertex(x, y, color); + } + }; + ShapeRenderer.prototype.rect = function (filled, x, y, width, height, color) { + if (color === void 0) { color = null; } + this.quad(filled, x, y, x + width, y, x + width, y + height, x, y + height, color, color, color, color); + }; + ShapeRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { + if (color === void 0) { color = null; } + this.check(filled ? ShapeType.Filled : ShapeType.Line, 8); + if (color === null) + color = this.color; + var t = this.tmp.set(y2 - y1, x1 - x2); + t.normalize(); + width *= 0.5; + var tx = t.x * width; + var ty = t.y * width; + if (!filled) { + this.vertex(x1 + tx, y1 + ty, color); + this.vertex(x1 - tx, y1 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x2 - tx, y2 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x1 + tx, y1 + ty, color); + this.vertex(x2 - tx, y2 - ty, color); + this.vertex(x1 - tx, y1 - ty, color); + } + else { + this.vertex(x1 + tx, y1 + ty, color); + this.vertex(x1 - tx, y1 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x2 - tx, y2 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x1 - tx, y1 - ty, color); + } + }; + ShapeRenderer.prototype.x = function (x, y, size) { + this.line(x - size, y - size, x + size, y + size); + this.line(x - size, y + size, x + size, y - size); + }; + ShapeRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { + if (color === void 0) { color = null; } + if (count < 3) + throw new Error("Polygon must contain at least 3 vertices"); + this.check(ShapeType.Line, count * 2); + if (color === null) + color = this.color; + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + offset <<= 1; + count <<= 1; + var firstX = polygonVertices[offset]; + var firstY = polygonVertices[offset + 1]; + var last = offset + count; + for (var i = offset, n = offset + count - 2; i < n; i += 2) { + var x1 = polygonVertices[i]; + var y1 = polygonVertices[i + 1]; + var x2 = 0; + var y2 = 0; + if (i + 2 >= last) { + x2 = firstX; + y2 = firstY; + } + else { + x2 = polygonVertices[i + 2]; + y2 = polygonVertices[i + 3]; + } + this.vertex(x1, y1, color); + this.vertex(x2, y2, color); + } + }; + ShapeRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { + if (color === void 0) { color = null; } + if (segments === void 0) { segments = 0; } + if (segments === 0) + segments = Math.max(1, (6 * spine.MathUtils.cbrt(radius)) | 0); + if (segments <= 0) + throw new Error("segments must be > 0."); + if (color === null) + color = this.color; + var angle = 2 * spine.MathUtils.PI / segments; + var cos = Math.cos(angle); + var sin = Math.sin(angle); + var cx = radius, cy = 0; + if (!filled) { + this.check(ShapeType.Line, segments * 2 + 2); + for (var i = 0; i < segments; i++) { + this.vertex(x + cx, y + cy, color); + var temp_1 = cx; + cx = cos * cx - sin * cy; + cy = sin * temp_1 + cos * cy; + this.vertex(x + cx, y + cy, color); + } + this.vertex(x + cx, y + cy, color); + } + else { + this.check(ShapeType.Filled, segments * 3 + 3); + segments--; + for (var i = 0; i < segments; i++) { + this.vertex(x, y, color); + this.vertex(x + cx, y + cy, color); + var temp_2 = cx; + cx = cos * cx - sin * cy; + cy = sin * temp_2 + cos * cy; + this.vertex(x + cx, y + cy, color); + } + this.vertex(x, y, color); + this.vertex(x + cx, y + cy, color); + } + var temp = cx; + cx = radius; + cy = 0; + this.vertex(x + cx, y + cy, color); + }; + ShapeRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { + if (color === void 0) { color = null; } + this.check(ShapeType.Line, segments * 2 + 2); + if (color === null) + color = this.color; + var subdiv_step = 1 / segments; + var subdiv_step2 = subdiv_step * subdiv_step; + var subdiv_step3 = subdiv_step * subdiv_step * subdiv_step; + var pre1 = 3 * subdiv_step; + var pre2 = 3 * subdiv_step2; + var pre4 = 6 * subdiv_step2; + var pre5 = 6 * subdiv_step3; + var tmp1x = x1 - cx1 * 2 + cx2; + var tmp1y = y1 - cy1 * 2 + cy2; + var tmp2x = (cx1 - cx2) * 3 - x1 + x2; + var tmp2y = (cy1 - cy2) * 3 - y1 + y2; + var fx = x1; + var fy = y1; + var dfx = (cx1 - x1) * pre1 + tmp1x * pre2 + tmp2x * subdiv_step3; + var dfy = (cy1 - y1) * pre1 + tmp1y * pre2 + tmp2y * subdiv_step3; + var ddfx = tmp1x * pre4 + tmp2x * pre5; + var ddfy = tmp1y * pre4 + tmp2y * pre5; + var dddfx = tmp2x * pre5; + var dddfy = tmp2y * pre5; + while (segments-- > 0) { + this.vertex(fx, fy, color); + fx += dfx; + fy += dfy; + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + this.vertex(fx, fy, color); + } + this.vertex(fx, fy, color); + this.vertex(x2, y2, color); + }; + ShapeRenderer.prototype.vertex = function (x, y, color) { + var idx = this.vertexIndex; + var vertices = this.mesh.getVertices(); + vertices[idx++] = x; + vertices[idx++] = y; + vertices[idx++] = color.r; + vertices[idx++] = color.g; + vertices[idx++] = color.b; + vertices[idx++] = color.a; + this.vertexIndex = idx; + }; + ShapeRenderer.prototype.end = function () { + if (!this.isDrawing) + throw new Error("ShapeRenderer.begin() has not been called"); + this.flush(); + this.context.gl.disable(this.context.gl.BLEND); + this.isDrawing = false; + }; + ShapeRenderer.prototype.flush = function () { + if (this.vertexIndex == 0) + return; + this.mesh.setVerticesLength(this.vertexIndex); + this.mesh.draw(this.shader, this.shapeType); + this.vertexIndex = 0; + }; + ShapeRenderer.prototype.check = function (shapeType, numVertices) { + if (!this.isDrawing) + throw new Error("ShapeRenderer.begin() has not been called"); + if (this.shapeType == shapeType) { + if (this.mesh.maxVertices() - this.mesh.numVertices() < numVertices) + this.flush(); + else + return; + } + else { + this.flush(); + this.shapeType = shapeType; + } + }; + ShapeRenderer.prototype.dispose = function () { + this.mesh.dispose(); + }; + return ShapeRenderer; + }()); + webgl.ShapeRenderer = ShapeRenderer; + (function (ShapeType) { + ShapeType[ShapeType["Point"] = 0] = "Point"; + ShapeType[ShapeType["Line"] = 1] = "Line"; + ShapeType[ShapeType["Filled"] = 4] = "Filled"; + })(webgl.ShapeType || (webgl.ShapeType = {})); + var ShapeType = webgl.ShapeType; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var SkeletonDebugRenderer = (function () { - function SkeletonDebugRenderer(context) { - this.boneLineColor = new spine.Color(1, 0, 0, 1); - this.boneOriginColor = new spine.Color(0, 1, 0, 1); - this.attachmentLineColor = new spine.Color(0, 0, 1, 0.5); - this.triangleLineColor = new spine.Color(1, 0.64, 0, 0.5); - this.pathColor = new spine.Color().setFromString("FF7F00"); - this.clipColor = new spine.Color(0.8, 0, 0, 2); - this.aabbColor = new spine.Color(0, 1, 0, 0.5); - this.drawBones = true; - this.drawRegionAttachments = true; - this.drawBoundingBoxes = true; - this.drawMeshHull = true; - this.drawMeshTriangles = true; - this.drawPaths = true; - this.drawSkeletonXY = false; - this.drawClipping = true; - this.premultipliedAlpha = false; - this.scale = 1; - this.boneWidth = 2; - this.bounds = new spine.SkeletonBounds(); - this.temp = new Array(); - this.vertices = spine.Utils.newFloatArray(2 * 1024); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - } - SkeletonDebugRenderer.prototype.draw = function (shapes, skeleton, ignoredBones) { - if (ignoredBones === void 0) { ignoredBones = null; } - var skeletonX = skeleton.x; - var skeletonY = skeleton.y; - var gl = this.context.gl; - var srcFunc = this.premultipliedAlpha ? gl.ONE : gl.SRC_ALPHA; - shapes.setBlendMode(srcFunc, gl.ONE_MINUS_SRC_ALPHA); - var bones = skeleton.bones; - if (this.drawBones) { - shapes.setColor(this.boneLineColor); - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) - continue; - if (bone.parent == null) - continue; - var x = skeletonX + bone.data.length * bone.a + bone.worldX; - var y = skeletonY + bone.data.length * bone.c + bone.worldY; - shapes.rectLine(true, skeletonX + bone.worldX, skeletonY + bone.worldY, x, y, this.boneWidth * this.scale); - } - if (this.drawSkeletonXY) - shapes.x(skeletonX, skeletonY, 4 * this.scale); - } - if (this.drawRegionAttachments) { - shapes.setColor(this.attachmentLineColor); - var slots = skeleton.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.RegionAttachment) { - var regionAttachment = attachment; - var vertices = this.vertices; - regionAttachment.computeWorldVertices(slot.bone, vertices, 0, 2); - shapes.line(vertices[0], vertices[1], vertices[2], vertices[3]); - shapes.line(vertices[2], vertices[3], vertices[4], vertices[5]); - shapes.line(vertices[4], vertices[5], vertices[6], vertices[7]); - shapes.line(vertices[6], vertices[7], vertices[0], vertices[1]); - } - } - } - if (this.drawMeshHull || this.drawMeshTriangles) { - var slots = skeleton.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (!(attachment instanceof spine.MeshAttachment)) - continue; - var mesh = attachment; - var vertices = this.vertices; - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, 2); - var triangles = mesh.triangles; - var hullLength = mesh.hullLength; - if (this.drawMeshTriangles) { - shapes.setColor(this.triangleLineColor); - for (var ii = 0, nn = triangles.length; ii < nn; ii += 3) { - var v1 = triangles[ii] * 2, v2 = triangles[ii + 1] * 2, v3 = triangles[ii + 2] * 2; - shapes.triangle(false, vertices[v1], vertices[v1 + 1], vertices[v2], vertices[v2 + 1], vertices[v3], vertices[v3 + 1]); - } - } - if (this.drawMeshHull && hullLength > 0) { - shapes.setColor(this.attachmentLineColor); - hullLength = (hullLength >> 1) * 2; - var lastX = vertices[hullLength - 2], lastY = vertices[hullLength - 1]; - for (var ii = 0, nn = hullLength; ii < nn; ii += 2) { - var x = vertices[ii], y = vertices[ii + 1]; - shapes.line(x, y, lastX, lastY); - lastX = x; - lastY = y; - } - } - } - } - if (this.drawBoundingBoxes) { - var bounds = this.bounds; - bounds.update(skeleton, true); - shapes.setColor(this.aabbColor); - shapes.rect(false, bounds.minX, bounds.minY, bounds.getWidth(), bounds.getHeight()); - var polygons = bounds.polygons; - var boxes = bounds.boundingBoxes; - for (var i = 0, n = polygons.length; i < n; i++) { - var polygon = polygons[i]; - shapes.setColor(boxes[i].color); - shapes.polygon(polygon, 0, polygon.length); - } - } - if (this.drawPaths) { - var slots = skeleton.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (!(attachment instanceof spine.PathAttachment)) - continue; - var path = attachment; - var nn = path.worldVerticesLength; - var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); - path.computeWorldVertices(slot, 0, nn, world, 0, 2); - var color = this.pathColor; - var x1 = world[2], y1 = world[3], x2 = 0, y2 = 0; - if (path.closed) { - shapes.setColor(color); - var cx1 = world[0], cy1 = world[1], cx2 = world[nn - 2], cy2 = world[nn - 1]; - x2 = world[nn - 4]; - y2 = world[nn - 3]; - shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); - shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); - shapes.line(x1, y1, cx1, cy1); - shapes.line(x2, y2, cx2, cy2); - } - nn -= 4; - for (var ii = 4; ii < nn; ii += 6) { - var cx1 = world[ii], cy1 = world[ii + 1], cx2 = world[ii + 2], cy2 = world[ii + 3]; - x2 = world[ii + 4]; - y2 = world[ii + 5]; - shapes.setColor(color); - shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); - shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); - shapes.line(x1, y1, cx1, cy1); - shapes.line(x2, y2, cx2, cy2); - x1 = x2; - y1 = y2; - } - } - } - if (this.drawBones) { - shapes.setColor(this.boneOriginColor); - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) - continue; - shapes.circle(true, skeletonX + bone.worldX, skeletonY + bone.worldY, 3 * this.scale, SkeletonDebugRenderer.GREEN, 8); - } - } - if (this.drawClipping) { - var slots = skeleton.slots; - shapes.setColor(this.clipColor); - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (!(attachment instanceof spine.ClippingAttachment)) - continue; - var clip = attachment; - var nn = clip.worldVerticesLength; - var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); - clip.computeWorldVertices(slot, 0, nn, world, 0, 2); - for (var i_5 = 0, n_2 = world.length; i_5 < n_2; i_5 += 2) { - var x = world[i_5]; - var y = world[i_5 + 1]; - var x2 = world[(i_5 + 2) % world.length]; - var y2 = world[(i_5 + 3) % world.length]; - shapes.line(x, y, x2, y2); - } - } - } - }; - SkeletonDebugRenderer.prototype.dispose = function () { - }; - return SkeletonDebugRenderer; - }()); - SkeletonDebugRenderer.LIGHT_GRAY = new spine.Color(192 / 255, 192 / 255, 192 / 255, 1); - SkeletonDebugRenderer.GREEN = new spine.Color(0, 1, 0, 1); - webgl.SkeletonDebugRenderer = SkeletonDebugRenderer; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var SkeletonDebugRenderer = (function () { + function SkeletonDebugRenderer(context) { + this.boneLineColor = new spine.Color(1, 0, 0, 1); + this.boneOriginColor = new spine.Color(0, 1, 0, 1); + this.attachmentLineColor = new spine.Color(0, 0, 1, 0.5); + this.triangleLineColor = new spine.Color(1, 0.64, 0, 0.5); + this.pathColor = new spine.Color().setFromString("FF7F00"); + this.clipColor = new spine.Color(0.8, 0, 0, 2); + this.aabbColor = new spine.Color(0, 1, 0, 0.5); + this.drawBones = true; + this.drawRegionAttachments = true; + this.drawBoundingBoxes = true; + this.drawMeshHull = true; + this.drawMeshTriangles = true; + this.drawPaths = true; + this.drawSkeletonXY = false; + this.drawClipping = true; + this.premultipliedAlpha = false; + this.scale = 1; + this.boneWidth = 2; + this.bounds = new spine.SkeletonBounds(); + this.temp = new Array(); + this.vertices = spine.Utils.newFloatArray(2 * 1024); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + } + SkeletonDebugRenderer.prototype.draw = function (shapes, skeleton, ignoredBones) { + if (ignoredBones === void 0) { ignoredBones = null; } + var skeletonX = skeleton.x; + var skeletonY = skeleton.y; + var gl = this.context.gl; + var srcFunc = this.premultipliedAlpha ? gl.ONE : gl.SRC_ALPHA; + shapes.setBlendMode(srcFunc, gl.ONE_MINUS_SRC_ALPHA); + var bones = skeleton.bones; + if (this.drawBones) { + shapes.setColor(this.boneLineColor); + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) + continue; + if (bone.parent == null) + continue; + var x = skeletonX + bone.data.length * bone.a + bone.worldX; + var y = skeletonY + bone.data.length * bone.c + bone.worldY; + shapes.rectLine(true, skeletonX + bone.worldX, skeletonY + bone.worldY, x, y, this.boneWidth * this.scale); + } + if (this.drawSkeletonXY) + shapes.x(skeletonX, skeletonY, 4 * this.scale); + } + if (this.drawRegionAttachments) { + shapes.setColor(this.attachmentLineColor); + var slots = skeleton.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.RegionAttachment) { + var regionAttachment = attachment; + var vertices = this.vertices; + regionAttachment.computeWorldVertices(slot.bone, vertices, 0, 2); + shapes.line(vertices[0], vertices[1], vertices[2], vertices[3]); + shapes.line(vertices[2], vertices[3], vertices[4], vertices[5]); + shapes.line(vertices[4], vertices[5], vertices[6], vertices[7]); + shapes.line(vertices[6], vertices[7], vertices[0], vertices[1]); + } + } + } + if (this.drawMeshHull || this.drawMeshTriangles) { + var slots = skeleton.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (!(attachment instanceof spine.MeshAttachment)) + continue; + var mesh = attachment; + var vertices = this.vertices; + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, 2); + var triangles = mesh.triangles; + var hullLength = mesh.hullLength; + if (this.drawMeshTriangles) { + shapes.setColor(this.triangleLineColor); + for (var ii = 0, nn = triangles.length; ii < nn; ii += 3) { + var v1 = triangles[ii] * 2, v2 = triangles[ii + 1] * 2, v3 = triangles[ii + 2] * 2; + shapes.triangle(false, vertices[v1], vertices[v1 + 1], vertices[v2], vertices[v2 + 1], vertices[v3], vertices[v3 + 1]); + } + } + if (this.drawMeshHull && hullLength > 0) { + shapes.setColor(this.attachmentLineColor); + hullLength = (hullLength >> 1) * 2; + var lastX = vertices[hullLength - 2], lastY = vertices[hullLength - 1]; + for (var ii = 0, nn = hullLength; ii < nn; ii += 2) { + var x = vertices[ii], y = vertices[ii + 1]; + shapes.line(x, y, lastX, lastY); + lastX = x; + lastY = y; + } + } + } + } + if (this.drawBoundingBoxes) { + var bounds = this.bounds; + bounds.update(skeleton, true); + shapes.setColor(this.aabbColor); + shapes.rect(false, bounds.minX, bounds.minY, bounds.getWidth(), bounds.getHeight()); + var polygons = bounds.polygons; + var boxes = bounds.boundingBoxes; + for (var i = 0, n = polygons.length; i < n; i++) { + var polygon = polygons[i]; + shapes.setColor(boxes[i].color); + shapes.polygon(polygon, 0, polygon.length); + } + } + if (this.drawPaths) { + var slots = skeleton.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (!(attachment instanceof spine.PathAttachment)) + continue; + var path = attachment; + var nn = path.worldVerticesLength; + var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); + path.computeWorldVertices(slot, 0, nn, world, 0, 2); + var color = this.pathColor; + var x1 = world[2], y1 = world[3], x2 = 0, y2 = 0; + if (path.closed) { + shapes.setColor(color); + var cx1 = world[0], cy1 = world[1], cx2 = world[nn - 2], cy2 = world[nn - 1]; + x2 = world[nn - 4]; + y2 = world[nn - 3]; + shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); + shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); + shapes.line(x1, y1, cx1, cy1); + shapes.line(x2, y2, cx2, cy2); + } + nn -= 4; + for (var ii = 4; ii < nn; ii += 6) { + var cx1 = world[ii], cy1 = world[ii + 1], cx2 = world[ii + 2], cy2 = world[ii + 3]; + x2 = world[ii + 4]; + y2 = world[ii + 5]; + shapes.setColor(color); + shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); + shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); + shapes.line(x1, y1, cx1, cy1); + shapes.line(x2, y2, cx2, cy2); + x1 = x2; + y1 = y2; + } + } + } + if (this.drawBones) { + shapes.setColor(this.boneOriginColor); + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) + continue; + shapes.circle(true, skeletonX + bone.worldX, skeletonY + bone.worldY, 3 * this.scale, SkeletonDebugRenderer.GREEN, 8); + } + } + if (this.drawClipping) { + var slots = skeleton.slots; + shapes.setColor(this.clipColor); + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (!(attachment instanceof spine.ClippingAttachment)) + continue; + var clip = attachment; + var nn = clip.worldVerticesLength; + var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); + clip.computeWorldVertices(slot, 0, nn, world, 0, 2); + for (var i_5 = 0, n_2 = world.length; i_5 < n_2; i_5 += 2) { + var x = world[i_5]; + var y = world[i_5 + 1]; + var x2 = world[(i_5 + 2) % world.length]; + var y2 = world[(i_5 + 3) % world.length]; + shapes.line(x, y, x2, y2); + } + } + } + }; + SkeletonDebugRenderer.prototype.dispose = function () { + }; + SkeletonDebugRenderer.LIGHT_GRAY = new spine.Color(192 / 255, 192 / 255, 192 / 255, 1); + SkeletonDebugRenderer.GREEN = new spine.Color(0, 1, 0, 1); + return SkeletonDebugRenderer; + }()); + webgl.SkeletonDebugRenderer = SkeletonDebugRenderer; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Renderable = (function () { - function Renderable(vertices, numVertices, numFloats) { - this.vertices = vertices; - this.numVertices = numVertices; - this.numFloats = numFloats; - } - return Renderable; - }()); - ; - var SkeletonRenderer = (function () { - function SkeletonRenderer(context, twoColorTint) { - if (twoColorTint === void 0) { twoColorTint = true; } - this.premultipliedAlpha = false; - this.tempColor = new spine.Color(); - this.tempColor2 = new spine.Color(); - this.vertexSize = 2 + 2 + 4; - this.twoColorTint = false; - this.renderable = new Renderable(null, 0, 0); - this.clipper = new spine.SkeletonClipping(); - this.twoColorTint = twoColorTint; - if (twoColorTint) - this.vertexSize += 4; - this.vertices = spine.Utils.newFloatArray(this.vertexSize * 1024); - } - SkeletonRenderer.prototype.draw = function (batcher, skeleton) { - var clipper = this.clipper; - var premultipliedAlpha = this.premultipliedAlpha; - var twoColorTint = this.twoColorTint; - var blendMode = null; - var renderable = this.renderable; - var uvs = null; - var triangles = null; - var drawOrder = skeleton.drawOrder; - var attachmentColor = null; - var skeletonColor = skeleton.color; - var vertexSize = twoColorTint ? 12 : 8; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var clippedVertexSize = clipper.isClipping() ? 2 : vertexSize; - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var texture = null; - if (attachment instanceof spine.RegionAttachment) { - var region = attachment; - renderable.vertices = this.vertices; - renderable.numVertices = 4; - renderable.numFloats = clippedVertexSize << 2; - region.computeWorldVertices(slot.bone, renderable.vertices, 0, clippedVertexSize); - triangles = SkeletonRenderer.QUAD_TRIANGLES; - uvs = region.uvs; - texture = region.region.renderObject.texture; - attachmentColor = region.color; - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - renderable.vertices = this.vertices; - renderable.numVertices = (mesh.worldVerticesLength >> 1); - renderable.numFloats = renderable.numVertices * clippedVertexSize; - if (renderable.numFloats > renderable.vertices.length) { - renderable.vertices = this.vertices = spine.Utils.newFloatArray(renderable.numFloats); - } - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, renderable.vertices, 0, clippedVertexSize); - triangles = mesh.triangles; - texture = mesh.region.renderObject.texture; - uvs = mesh.uvs; - attachmentColor = mesh.color; - } - else if (attachment instanceof spine.ClippingAttachment) { - var clip = (attachment); - clipper.clipStart(slot, clip); - continue; - } - else - continue; - if (texture != null) { - var slotColor = slot.color; - var finalColor = this.tempColor; - finalColor.r = skeletonColor.r * slotColor.r * attachmentColor.r; - finalColor.g = skeletonColor.g * slotColor.g * attachmentColor.g; - finalColor.b = skeletonColor.b * slotColor.b * attachmentColor.b; - finalColor.a = skeletonColor.a * slotColor.a * attachmentColor.a; - if (premultipliedAlpha) { - finalColor.r *= finalColor.a; - finalColor.g *= finalColor.a; - finalColor.b *= finalColor.a; - } - var darkColor = this.tempColor2; - if (slot.darkColor == null) - darkColor.set(0, 0, 0, 1); - else - darkColor.setFromColor(slot.darkColor); - var slotBlendMode = slot.data.blendMode; - if (slotBlendMode != blendMode) { - blendMode = slotBlendMode; - batcher.setBlendMode(webgl.WebGLBlendModeConverter.getSourceGLBlendMode(blendMode, premultipliedAlpha), webgl.WebGLBlendModeConverter.getDestGLBlendMode(blendMode)); - } - if (clipper.isClipping()) { - clipper.clipTriangles(renderable.vertices, renderable.numFloats, triangles, triangles.length, uvs, finalColor, darkColor, twoColorTint); - var clippedVertices = new Float32Array(clipper.clippedVertices); - var clippedTriangles = clipper.clippedTriangles; - batcher.draw(texture, clippedVertices, clippedTriangles); - } - else { - var verts = renderable.vertices; - if (!twoColorTint) { - for (var v = 2, u = 0, n_3 = renderable.numFloats; v < n_3; v += vertexSize, u += 2) { - verts[v] = finalColor.r; - verts[v + 1] = finalColor.g; - verts[v + 2] = finalColor.b; - verts[v + 3] = finalColor.a; - verts[v + 4] = uvs[u]; - verts[v + 5] = uvs[u + 1]; - } - } - else { - for (var v = 2, u = 0, n_4 = renderable.numFloats; v < n_4; v += vertexSize, u += 2) { - verts[v] = finalColor.r; - verts[v + 1] = finalColor.g; - verts[v + 2] = finalColor.b; - verts[v + 3] = finalColor.a; - verts[v + 4] = uvs[u]; - verts[v + 5] = uvs[u + 1]; - verts[v + 6] = darkColor.r; - verts[v + 7] = darkColor.g; - verts[v + 8] = darkColor.b; - verts[v + 9] = darkColor.a; - } - } - var view = renderable.vertices.subarray(0, renderable.numFloats); - batcher.draw(texture, view, triangles); - } - } - clipper.clipEndWithSlot(slot); - } - clipper.clipEnd(); - }; - return SkeletonRenderer; - }()); - SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - webgl.SkeletonRenderer = SkeletonRenderer; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Renderable = (function () { + function Renderable(vertices, numVertices, numFloats) { + this.vertices = vertices; + this.numVertices = numVertices; + this.numFloats = numFloats; + } + return Renderable; + }()); + ; + var SkeletonRenderer = (function () { + function SkeletonRenderer(context, twoColorTint) { + if (twoColorTint === void 0) { twoColorTint = true; } + this.premultipliedAlpha = false; + this.tempColor = new spine.Color(); + this.tempColor2 = new spine.Color(); + this.vertexSize = 2 + 2 + 4; + this.twoColorTint = false; + this.renderable = new Renderable(null, 0, 0); + this.clipper = new spine.SkeletonClipping(); + this.twoColorTint = twoColorTint; + if (twoColorTint) + this.vertexSize += 4; + this.vertices = spine.Utils.newFloatArray(this.vertexSize * 1024); + } + SkeletonRenderer.prototype.draw = function (batcher, skeleton) { + var clipper = this.clipper; + var premultipliedAlpha = this.premultipliedAlpha; + var twoColorTint = this.twoColorTint; + var blendMode = null; + var renderable = this.renderable; + var uvs = null; + var triangles = null; + var drawOrder = skeleton.drawOrder; + var attachmentColor = null; + var skeletonColor = skeleton.color; + var vertexSize = twoColorTint ? 12 : 8; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var clippedVertexSize = clipper.isClipping() ? 2 : vertexSize; + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var texture = null; + if (attachment instanceof spine.RegionAttachment) { + var region = attachment; + renderable.vertices = this.vertices; + renderable.numVertices = 4; + renderable.numFloats = clippedVertexSize << 2; + region.computeWorldVertices(slot.bone, renderable.vertices, 0, clippedVertexSize); + triangles = SkeletonRenderer.QUAD_TRIANGLES; + uvs = region.uvs; + texture = region.region.renderObject.texture; + attachmentColor = region.color; + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + renderable.vertices = this.vertices; + renderable.numVertices = (mesh.worldVerticesLength >> 1); + renderable.numFloats = renderable.numVertices * clippedVertexSize; + if (renderable.numFloats > renderable.vertices.length) { + renderable.vertices = this.vertices = spine.Utils.newFloatArray(renderable.numFloats); + } + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, renderable.vertices, 0, clippedVertexSize); + triangles = mesh.triangles; + texture = mesh.region.renderObject.texture; + uvs = mesh.uvs; + attachmentColor = mesh.color; + } + else if (attachment instanceof spine.ClippingAttachment) { + var clip = (attachment); + clipper.clipStart(slot, clip); + continue; + } + else + continue; + if (texture != null) { + var slotColor = slot.color; + var finalColor = this.tempColor; + finalColor.r = skeletonColor.r * slotColor.r * attachmentColor.r; + finalColor.g = skeletonColor.g * slotColor.g * attachmentColor.g; + finalColor.b = skeletonColor.b * slotColor.b * attachmentColor.b; + finalColor.a = skeletonColor.a * slotColor.a * attachmentColor.a; + if (premultipliedAlpha) { + finalColor.r *= finalColor.a; + finalColor.g *= finalColor.a; + finalColor.b *= finalColor.a; + } + var darkColor = this.tempColor2; + if (slot.darkColor == null) + darkColor.set(0, 0, 0, 1); + else + darkColor.setFromColor(slot.darkColor); + var slotBlendMode = slot.data.blendMode; + if (slotBlendMode != blendMode) { + blendMode = slotBlendMode; + batcher.setBlendMode(webgl.WebGLBlendModeConverter.getSourceGLBlendMode(blendMode, premultipliedAlpha), webgl.WebGLBlendModeConverter.getDestGLBlendMode(blendMode)); + } + if (clipper.isClipping()) { + clipper.clipTriangles(renderable.vertices, renderable.numFloats, triangles, triangles.length, uvs, finalColor, darkColor, twoColorTint); + var clippedVertices = new Float32Array(clipper.clippedVertices); + var clippedTriangles = clipper.clippedTriangles; + batcher.draw(texture, clippedVertices, clippedTriangles); + } + else { + var verts = renderable.vertices; + if (!twoColorTint) { + for (var v = 2, u = 0, n_3 = renderable.numFloats; v < n_3; v += vertexSize, u += 2) { + verts[v] = finalColor.r; + verts[v + 1] = finalColor.g; + verts[v + 2] = finalColor.b; + verts[v + 3] = finalColor.a; + verts[v + 4] = uvs[u]; + verts[v + 5] = uvs[u + 1]; + } + } + else { + for (var v = 2, u = 0, n_4 = renderable.numFloats; v < n_4; v += vertexSize, u += 2) { + verts[v] = finalColor.r; + verts[v + 1] = finalColor.g; + verts[v + 2] = finalColor.b; + verts[v + 3] = finalColor.a; + verts[v + 4] = uvs[u]; + verts[v + 5] = uvs[u + 1]; + verts[v + 6] = darkColor.r; + verts[v + 7] = darkColor.g; + verts[v + 8] = darkColor.b; + verts[v + 9] = darkColor.a; + } + } + var view = renderable.vertices.subarray(0, renderable.numFloats); + batcher.draw(texture, view, triangles); + } + } + clipper.clipEndWithSlot(slot); + } + clipper.clipEnd(); + }; + SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + return SkeletonRenderer; + }()); + webgl.SkeletonRenderer = SkeletonRenderer; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Vector3 = (function () { - function Vector3(x, y, z) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - if (z === void 0) { z = 0; } - this.x = 0; - this.y = 0; - this.z = 0; - this.x = x; - this.y = y; - this.z = z; - } - Vector3.prototype.setFrom = function (v) { - this.x = v.x; - this.y = v.y; - this.z = v.z; - return this; - }; - Vector3.prototype.set = function (x, y, z) { - this.x = x; - this.y = y; - this.z = z; - return this; - }; - Vector3.prototype.add = function (v) { - this.x += v.x; - this.y += v.y; - this.z += v.z; - return this; - }; - Vector3.prototype.sub = function (v) { - this.x -= v.x; - this.y -= v.y; - this.z -= v.z; - return this; - }; - Vector3.prototype.scale = function (s) { - this.x *= s; - this.y *= s; - this.z *= s; - return this; - }; - Vector3.prototype.normalize = function () { - var len = this.length(); - if (len == 0) - return this; - len = 1 / len; - this.x *= len; - this.y *= len; - this.z *= len; - return this; - }; - Vector3.prototype.cross = function (v) { - return this.set(this.y * v.z - this.z * v.y, this.z * v.x - this.x * v.z, this.x * v.y - this.y * v.x); - }; - Vector3.prototype.multiply = function (matrix) { - var l_mat = matrix.values; - return this.set(this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03], this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13], this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]); - }; - Vector3.prototype.project = function (matrix) { - var l_mat = matrix.values; - var l_w = 1 / (this.x * l_mat[webgl.M30] + this.y * l_mat[webgl.M31] + this.z * l_mat[webgl.M32] + l_mat[webgl.M33]); - return this.set((this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03]) * l_w, (this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13]) * l_w, (this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]) * l_w); - }; - Vector3.prototype.dot = function (v) { - return this.x * v.x + this.y * v.y + this.z * v.z; - }; - Vector3.prototype.length = function () { - return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); - }; - Vector3.prototype.distance = function (v) { - var a = v.x - this.x; - var b = v.y - this.y; - var c = v.z - this.z; - return Math.sqrt(a * a + b * b + c * c); - }; - return Vector3; - }()); - webgl.Vector3 = Vector3; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Vector3 = (function () { + function Vector3(x, y, z) { + if (x === void 0) { x = 0; } + if (y === void 0) { y = 0; } + if (z === void 0) { z = 0; } + this.x = 0; + this.y = 0; + this.z = 0; + this.x = x; + this.y = y; + this.z = z; + } + Vector3.prototype.setFrom = function (v) { + this.x = v.x; + this.y = v.y; + this.z = v.z; + return this; + }; + Vector3.prototype.set = function (x, y, z) { + this.x = x; + this.y = y; + this.z = z; + return this; + }; + Vector3.prototype.add = function (v) { + this.x += v.x; + this.y += v.y; + this.z += v.z; + return this; + }; + Vector3.prototype.sub = function (v) { + this.x -= v.x; + this.y -= v.y; + this.z -= v.z; + return this; + }; + Vector3.prototype.scale = function (s) { + this.x *= s; + this.y *= s; + this.z *= s; + return this; + }; + Vector3.prototype.normalize = function () { + var len = this.length(); + if (len == 0) + return this; + len = 1 / len; + this.x *= len; + this.y *= len; + this.z *= len; + return this; + }; + Vector3.prototype.cross = function (v) { + return this.set(this.y * v.z - this.z * v.y, this.z * v.x - this.x * v.z, this.x * v.y - this.y * v.x); + }; + Vector3.prototype.multiply = function (matrix) { + var l_mat = matrix.values; + return this.set(this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03], this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13], this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]); + }; + Vector3.prototype.project = function (matrix) { + var l_mat = matrix.values; + var l_w = 1 / (this.x * l_mat[webgl.M30] + this.y * l_mat[webgl.M31] + this.z * l_mat[webgl.M32] + l_mat[webgl.M33]); + return this.set((this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03]) * l_w, (this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13]) * l_w, (this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]) * l_w); + }; + Vector3.prototype.dot = function (v) { + return this.x * v.x + this.y * v.y + this.z * v.z; + }; + Vector3.prototype.length = function () { + return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); + }; + Vector3.prototype.distance = function (v) { + var a = v.x - this.x; + var b = v.y - this.y; + var c = v.z - this.z; + return Math.sqrt(a * a + b * b + c * c); + }; + return Vector3; + }()); + webgl.Vector3 = Vector3; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var ManagedWebGLRenderingContext = (function () { - function ManagedWebGLRenderingContext(canvasOrContext, contextConfig) { - if (contextConfig === void 0) { contextConfig = { alpha: "true" }; } - var _this = this; - this.restorables = new Array(); - if (canvasOrContext instanceof HTMLCanvasElement) { - var canvas = canvasOrContext; - this.gl = (canvas.getContext("webgl", contextConfig) || canvas.getContext("experimental-webgl", contextConfig)); - this.canvas = canvas; - canvas.addEventListener("webglcontextlost", function (e) { - var event = e; - if (e) { - e.preventDefault(); - } - }); - canvas.addEventListener("webglcontextrestored", function (e) { - for (var i = 0, n = _this.restorables.length; i < n; i++) { - _this.restorables[i].restore(); - } - }); - } - else { - this.gl = canvasOrContext; - this.canvas = this.gl.canvas; - } - } - ManagedWebGLRenderingContext.prototype.addRestorable = function (restorable) { - this.restorables.push(restorable); - }; - ManagedWebGLRenderingContext.prototype.removeRestorable = function (restorable) { - var index = this.restorables.indexOf(restorable); - if (index > -1) - this.restorables.splice(index, 1); - }; - return ManagedWebGLRenderingContext; - }()); - webgl.ManagedWebGLRenderingContext = ManagedWebGLRenderingContext; - var WebGLBlendModeConverter = (function () { - function WebGLBlendModeConverter() { - } - WebGLBlendModeConverter.getDestGLBlendMode = function (blendMode) { - switch (blendMode) { - case spine.BlendMode.Normal: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; - case spine.BlendMode.Additive: return WebGLBlendModeConverter.ONE; - case spine.BlendMode.Multiply: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; - case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; - default: throw new Error("Unknown blend mode: " + blendMode); - } - }; - WebGLBlendModeConverter.getSourceGLBlendMode = function (blendMode, premultipliedAlpha) { - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - switch (blendMode) { - case spine.BlendMode.Normal: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; - case spine.BlendMode.Additive: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; - case spine.BlendMode.Multiply: return WebGLBlendModeConverter.DST_COLOR; - case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE; - default: throw new Error("Unknown blend mode: " + blendMode); - } - }; - return WebGLBlendModeConverter; - }()); - WebGLBlendModeConverter.ZERO = 0; - WebGLBlendModeConverter.ONE = 1; - WebGLBlendModeConverter.SRC_COLOR = 0x0300; - WebGLBlendModeConverter.ONE_MINUS_SRC_COLOR = 0x0301; - WebGLBlendModeConverter.SRC_ALPHA = 0x0302; - WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA = 0x0303; - WebGLBlendModeConverter.DST_ALPHA = 0x0304; - WebGLBlendModeConverter.ONE_MINUS_DST_ALPHA = 0x0305; - WebGLBlendModeConverter.DST_COLOR = 0x0306; - webgl.WebGLBlendModeConverter = WebGLBlendModeConverter; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var ManagedWebGLRenderingContext = (function () { + function ManagedWebGLRenderingContext(canvasOrContext, contextConfig) { + var _this = this; + if (contextConfig === void 0) { contextConfig = { alpha: "true" }; } + this.restorables = new Array(); + if (canvasOrContext instanceof HTMLCanvasElement) { + var canvas = canvasOrContext; + this.gl = (canvas.getContext("webgl", contextConfig) || canvas.getContext("experimental-webgl", contextConfig)); + this.canvas = canvas; + canvas.addEventListener("webglcontextlost", function (e) { + var event = e; + if (e) { + e.preventDefault(); + } + }); + canvas.addEventListener("webglcontextrestored", function (e) { + for (var i = 0, n = _this.restorables.length; i < n; i++) { + _this.restorables[i].restore(); + } + }); + } + else { + this.gl = canvasOrContext; + this.canvas = this.gl.canvas; + } + } + ManagedWebGLRenderingContext.prototype.addRestorable = function (restorable) { + this.restorables.push(restorable); + }; + ManagedWebGLRenderingContext.prototype.removeRestorable = function (restorable) { + var index = this.restorables.indexOf(restorable); + if (index > -1) + this.restorables.splice(index, 1); + }; + return ManagedWebGLRenderingContext; + }()); + webgl.ManagedWebGLRenderingContext = ManagedWebGLRenderingContext; + var WebGLBlendModeConverter = (function () { + function WebGLBlendModeConverter() { + } + WebGLBlendModeConverter.getDestGLBlendMode = function (blendMode) { + switch (blendMode) { + case spine.BlendMode.Normal: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; + case spine.BlendMode.Additive: return WebGLBlendModeConverter.ONE; + case spine.BlendMode.Multiply: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; + case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; + default: throw new Error("Unknown blend mode: " + blendMode); + } + }; + WebGLBlendModeConverter.getSourceGLBlendMode = function (blendMode, premultipliedAlpha) { + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + switch (blendMode) { + case spine.BlendMode.Normal: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; + case spine.BlendMode.Additive: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; + case spine.BlendMode.Multiply: return WebGLBlendModeConverter.DST_COLOR; + case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE; + default: throw new Error("Unknown blend mode: " + blendMode); + } + }; + WebGLBlendModeConverter.ZERO = 0; + WebGLBlendModeConverter.ONE = 1; + WebGLBlendModeConverter.SRC_COLOR = 0x0300; + WebGLBlendModeConverter.ONE_MINUS_SRC_COLOR = 0x0301; + WebGLBlendModeConverter.SRC_ALPHA = 0x0302; + WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA = 0x0303; + WebGLBlendModeConverter.DST_ALPHA = 0x0304; + WebGLBlendModeConverter.ONE_MINUS_DST_ALPHA = 0x0305; + WebGLBlendModeConverter.DST_COLOR = 0x0306; + return WebGLBlendModeConverter; + }()); + webgl.WebGLBlendModeConverter = WebGLBlendModeConverter; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); //# sourceMappingURL=spine-webgl.js.map \ No newline at end of file diff --git a/spine-ts/build/spine-webgl.js.map b/spine-ts/build/spine-webgl.js.map index 57a6a4a91..dc091101f 100644 --- a/spine-ts/build/spine-webgl.js.map +++ b/spine-ts/build/spine-webgl.js.map @@ -1 +1 @@ -{"version":3,"file":"spine-webgl.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts"],"names":[],"mappings":"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AC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC/G,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAChH,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC3G,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA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/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG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"} \ No newline at end of file +{"version":3,"file":"spine-webgl.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts"],"names":[],"mappings":"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AAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChH,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC3G,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG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CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,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"} \ No newline at end of file diff --git a/spine-ts/build/spine-widget.d.ts b/spine-ts/build/spine-widget.d.ts index 45bda512a..5a80fdd2c 100644 --- a/spine-ts/build/spine-widget.d.ts +++ b/spine-ts/build/spine-widget.d.ts @@ -245,7 +245,7 @@ declare module spine { constructor(data: AnimationStateData); update(delta: number): void; updateMixingFrom(to: TrackEntry, delta: number): boolean; - apply(skeleton: Skeleton): void; + apply(skeleton: Skeleton): boolean; applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; queueEvents(entry: TrackEntry, animationTime: number): void; @@ -390,6 +390,154 @@ declare module spine { newClippingAttachment(skin: Skin, name: string): ClippingAttachment; } } +declare module spine { + abstract class Attachment { + name: string; + constructor(name: string); + } + abstract class VertexAttachment extends Attachment { + bones: Array; + vertices: ArrayLike; + worldVerticesLength: number; + constructor(name: string); + computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + } +} +declare module spine { + interface AttachmentLoader { + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } +} +declare module spine { + enum AttachmentType { + Region = 0, + BoundingBox = 1, + Mesh = 2, + LinkedMesh = 3, + Path = 4, + Point = 5, + } +} +declare module spine { + class BoundingBoxAttachment extends VertexAttachment { + color: Color; + constructor(name: string); + } +} +declare module spine { + class ClippingAttachment extends VertexAttachment { + endSlot: SlotData; + color: Color; + constructor(name: string); + } +} +declare module spine { + class MeshAttachment extends VertexAttachment { + region: TextureRegion; + path: string; + regionUVs: ArrayLike; + uvs: ArrayLike; + triangles: Array; + color: Color; + hullLength: number; + private parentMesh; + inheritDeform: boolean; + tempColor: Color; + constructor(name: string); + updateUVs(): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + getParentMesh(): MeshAttachment; + setParentMesh(parentMesh: MeshAttachment): void; + } +} +declare module spine { + class PathAttachment extends VertexAttachment { + lengths: Array; + closed: boolean; + constantSpeed: boolean; + color: Color; + constructor(name: string); + } +} +declare module spine { + class PointAttachment extends VertexAttachment { + x: number; + y: number; + rotation: number; + color: Color; + constructor(name: string); + computeWorldPosition(bone: Bone, point: Vector2): Vector2; + computeWorldRotation(bone: Bone): number; + } +} +declare module spine { + class RegionAttachment extends Attachment { + static OX1: number; + static OY1: number; + static OX2: number; + static OY2: number; + static OX3: number; + static OY3: number; + static OX4: number; + static OY4: number; + static X1: number; + static Y1: number; + static C1R: number; + static C1G: number; + static C1B: number; + static C1A: number; + static U1: number; + static V1: number; + static X2: number; + static Y2: number; + static C2R: number; + static C2G: number; + static C2B: number; + static C2A: number; + static U2: number; + static V2: number; + static X3: number; + static Y3: number; + static C3R: number; + static C3G: number; + static C3B: number; + static C3A: number; + static U3: number; + static V3: number; + static X4: number; + static Y4: number; + static C4R: number; + static C4G: number; + static C4B: number; + static C4A: number; + static U4: number; + static V4: number; + x: number; + y: number; + scaleX: number; + scaleY: number; + rotation: number; + width: number; + height: number; + color: Color; + path: string; + rendererObject: any; + region: TextureRegion; + offset: ArrayLike; + uvs: ArrayLike; + tempColor: Color; + constructor(name: string); + updateOffset(): void; + setRegion(region: TextureRegion): void; + computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; + } +} declare module spine { enum BlendMode { Normal = 0, @@ -1010,154 +1158,6 @@ declare module spine { getMean(): number; } } -declare module spine { - abstract class Attachment { - name: string; - constructor(name: string); - } - abstract class VertexAttachment extends Attachment { - bones: Array; - vertices: ArrayLike; - worldVerticesLength: number; - constructor(name: string); - computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - } -} -declare module spine { - interface AttachmentLoader { - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } -} -declare module spine { - enum AttachmentType { - Region = 0, - BoundingBox = 1, - Mesh = 2, - LinkedMesh = 3, - Path = 4, - Point = 5, - } -} -declare module spine { - class BoundingBoxAttachment extends VertexAttachment { - color: Color; - constructor(name: string); - } -} -declare module spine { - class ClippingAttachment extends VertexAttachment { - endSlot: SlotData; - color: Color; - constructor(name: string); - } -} -declare module spine { - class MeshAttachment extends VertexAttachment { - region: TextureRegion; - path: string; - regionUVs: ArrayLike; - uvs: ArrayLike; - triangles: Array; - color: Color; - hullLength: number; - private parentMesh; - inheritDeform: boolean; - tempColor: Color; - constructor(name: string); - updateUVs(): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - getParentMesh(): MeshAttachment; - setParentMesh(parentMesh: MeshAttachment): void; - } -} -declare module spine { - class PathAttachment extends VertexAttachment { - lengths: Array; - closed: boolean; - constantSpeed: boolean; - color: Color; - constructor(name: string); - } -} -declare module spine { - class PointAttachment extends VertexAttachment { - x: number; - y: number; - rotation: number; - color: Color; - constructor(name: string); - computeWorldPosition(bone: Bone, point: Vector2): Vector2; - computeWorldRotation(bone: Bone): number; - } -} -declare module spine { - class RegionAttachment extends Attachment { - static OX1: number; - static OY1: number; - static OX2: number; - static OY2: number; - static OX3: number; - static OY3: number; - static OX4: number; - static OY4: number; - static X1: number; - static Y1: number; - static C1R: number; - static C1G: number; - static C1B: number; - static C1A: number; - static U1: number; - static V1: number; - static X2: number; - static Y2: number; - static C2R: number; - static C2G: number; - static C2B: number; - static C2A: number; - static U2: number; - static V2: number; - static X3: number; - static Y3: number; - static C3R: number; - static C3G: number; - static C3B: number; - static C3A: number; - static U3: number; - static V3: number; - static X4: number; - static Y4: number; - static C4R: number; - static C4G: number; - static C4B: number; - static C4A: number; - static U4: number; - static V4: number; - x: number; - y: number; - scaleX: number; - scaleY: number; - rotation: number; - width: number; - height: number; - color: Color; - path: string; - rendererObject: any; - region: TextureRegion; - offset: ArrayLike; - uvs: ArrayLike; - tempColor: Color; - constructor(name: string); - updateOffset(): void; - setRegion(region: TextureRegion): void; - computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; - } -} declare module spine.webgl { class AssetManager extends spine.AssetManager { constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, pathPrefix?: string); @@ -1249,22 +1249,22 @@ declare module spine.webgl { } } declare module spine.webgl { - const M00 = 0; - const M01 = 4; - const M02 = 8; - const M03 = 12; - const M10 = 1; - const M11 = 5; - const M12 = 9; - const M13 = 13; - const M20 = 2; - const M21 = 6; - const M22 = 10; - const M23 = 14; - const M30 = 3; - const M31 = 7; - const M32 = 11; - const M33 = 15; + const M00: number; + const M01: number; + const M02: number; + const M03: number; + const M10: number; + const M11: number; + const M12: number; + const M13: number; + const M20: number; + const M21: number; + const M22: number; + const M23: number; + const M30: number; + const M31: number; + const M32: number; + const M33: number; class Matrix4 { temp: Float32Array; values: Float32Array; diff --git a/spine-ts/build/spine-widget.js b/spine-ts/build/spine-widget.js index 9a4ac2674..9560df0aa 100644 --- a/spine-ts/build/spine-widget.js +++ b/spine-ts/build/spine-widget.js @@ -1,13 +1,8 @@ -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; var spine; (function (spine) { var Animation = (function () { @@ -58,7 +53,6 @@ var spine; return Animation; }()); spine.Animation = Animation; - var TimelineType; (function (TimelineType) { TimelineType[TimelineType["rotate"] = 0] = "rotate"; TimelineType[TimelineType["translate"] = 1] = "translate"; @@ -75,7 +69,8 @@ var spine; TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; - })(TimelineType = spine.TimelineType || (spine.TimelineType = {})); + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; var CurveTimeline = (function () { function CurveTimeline(frameCount) { if (frameCount <= 0) @@ -151,19 +146,18 @@ var spine; var y = curves[i - 1]; return y + (1 - y) * (percent - x) / (1 - x); }; + CurveTimeline.LINEAR = 0; + CurveTimeline.STEPPED = 1; + CurveTimeline.BEZIER = 2; + CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; return CurveTimeline; }()); - CurveTimeline.LINEAR = 0; - CurveTimeline.STEPPED = 1; - CurveTimeline.BEZIER = 2; - CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; spine.CurveTimeline = CurveTimeline; var RotateTimeline = (function (_super) { __extends(RotateTimeline, _super); function RotateTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount << 1); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount << 1); } RotateTimeline.prototype.getPropertyId = function () { return (TimelineType.rotate << 24) + this.boneIndex; @@ -208,19 +202,18 @@ var spine; bone.rotation += r * alpha; } }; + RotateTimeline.ENTRIES = 2; + RotateTimeline.PREV_TIME = -2; + RotateTimeline.PREV_ROTATION = -1; + RotateTimeline.ROTATION = 1; return RotateTimeline; }(CurveTimeline)); - RotateTimeline.ENTRIES = 2; - RotateTimeline.PREV_TIME = -2; - RotateTimeline.PREV_ROTATION = -1; - RotateTimeline.ROTATION = 1; spine.RotateTimeline = RotateTimeline; var TranslateTimeline = (function (_super) { __extends(TranslateTimeline, _super); function TranslateTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); } TranslateTimeline.prototype.getPropertyId = function () { return (TimelineType.translate << 24) + this.boneIndex; @@ -264,19 +257,19 @@ var spine; bone.y += (bone.data.y + y - bone.y) * alpha; } }; + TranslateTimeline.ENTRIES = 3; + TranslateTimeline.PREV_TIME = -3; + TranslateTimeline.PREV_X = -2; + TranslateTimeline.PREV_Y = -1; + TranslateTimeline.X = 1; + TranslateTimeline.Y = 2; return TranslateTimeline; }(CurveTimeline)); - TranslateTimeline.ENTRIES = 3; - TranslateTimeline.PREV_TIME = -3; - TranslateTimeline.PREV_X = -2; - TranslateTimeline.PREV_Y = -1; - TranslateTimeline.X = 1; - TranslateTimeline.Y = 2; spine.TranslateTimeline = TranslateTimeline; var ScaleTimeline = (function (_super) { __extends(ScaleTimeline, _super); function ScaleTimeline(frameCount) { - return _super.call(this, frameCount) || this; + _super.call(this, frameCount); } ScaleTimeline.prototype.getPropertyId = function () { return (TimelineType.scale << 24) + this.boneIndex; @@ -337,7 +330,7 @@ var spine; var ShearTimeline = (function (_super) { __extends(ShearTimeline, _super); function ShearTimeline(frameCount) { - return _super.call(this, frameCount) || this; + _super.call(this, frameCount); } ShearTimeline.prototype.getPropertyId = function () { return (TimelineType.shear << 24) + this.boneIndex; @@ -381,9 +374,8 @@ var spine; var ColorTimeline = (function (_super) { __extends(ColorTimeline, _super); function ColorTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); } ColorTimeline.prototype.getPropertyId = function () { return (TimelineType.color << 24) + this.slotIndex; @@ -434,25 +426,24 @@ var spine; color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); } }; + ColorTimeline.ENTRIES = 5; + ColorTimeline.PREV_TIME = -5; + ColorTimeline.PREV_R = -4; + ColorTimeline.PREV_G = -3; + ColorTimeline.PREV_B = -2; + ColorTimeline.PREV_A = -1; + ColorTimeline.R = 1; + ColorTimeline.G = 2; + ColorTimeline.B = 3; + ColorTimeline.A = 4; return ColorTimeline; }(CurveTimeline)); - ColorTimeline.ENTRIES = 5; - ColorTimeline.PREV_TIME = -5; - ColorTimeline.PREV_R = -4; - ColorTimeline.PREV_G = -3; - ColorTimeline.PREV_B = -2; - ColorTimeline.PREV_A = -1; - ColorTimeline.R = 1; - ColorTimeline.G = 2; - ColorTimeline.B = 3; - ColorTimeline.A = 4; spine.ColorTimeline = ColorTimeline; var TwoColorTimeline = (function (_super) { __extends(TwoColorTimeline, _super); function TwoColorTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); } TwoColorTimeline.prototype.getPropertyId = function () { return (TimelineType.twoColor << 24) + this.slotIndex; @@ -523,24 +514,24 @@ var spine; dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); } }; + TwoColorTimeline.ENTRIES = 8; + TwoColorTimeline.PREV_TIME = -8; + TwoColorTimeline.PREV_R = -7; + TwoColorTimeline.PREV_G = -6; + TwoColorTimeline.PREV_B = -5; + TwoColorTimeline.PREV_A = -4; + TwoColorTimeline.PREV_R2 = -3; + TwoColorTimeline.PREV_G2 = -2; + TwoColorTimeline.PREV_B2 = -1; + TwoColorTimeline.R = 1; + TwoColorTimeline.G = 2; + TwoColorTimeline.B = 3; + TwoColorTimeline.A = 4; + TwoColorTimeline.R2 = 5; + TwoColorTimeline.G2 = 6; + TwoColorTimeline.B2 = 7; return TwoColorTimeline; }(CurveTimeline)); - TwoColorTimeline.ENTRIES = 8; - TwoColorTimeline.PREV_TIME = -8; - TwoColorTimeline.PREV_R = -7; - TwoColorTimeline.PREV_G = -6; - TwoColorTimeline.PREV_B = -5; - TwoColorTimeline.PREV_A = -4; - TwoColorTimeline.PREV_R2 = -3; - TwoColorTimeline.PREV_G2 = -2; - TwoColorTimeline.PREV_B2 = -1; - TwoColorTimeline.R = 1; - TwoColorTimeline.G = 2; - TwoColorTimeline.B = 3; - TwoColorTimeline.A = 4; - TwoColorTimeline.R2 = 5; - TwoColorTimeline.G2 = 6; - TwoColorTimeline.B2 = 7; spine.TwoColorTimeline = TwoColorTimeline; var AttachmentTimeline = (function () { function AttachmentTimeline(frameCount) { @@ -587,10 +578,9 @@ var spine; var DeformTimeline = (function (_super) { __extends(DeformTimeline, _super); function DeformTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount); - _this.frameVertices = new Array(frameCount); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount); + this.frameVertices = new Array(frameCount); } DeformTimeline.prototype.getPropertyId = function () { return (TimelineType.deform << 24) + this.slotIndex; @@ -771,9 +761,8 @@ var spine; var IkConstraintTimeline = (function (_super) { __extends(IkConstraintTimeline, _super); function IkConstraintTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); } IkConstraintTimeline.prototype.getPropertyId = function () { return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; @@ -821,21 +810,20 @@ var spine; constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; } }; + IkConstraintTimeline.ENTRIES = 3; + IkConstraintTimeline.PREV_TIME = -3; + IkConstraintTimeline.PREV_MIX = -2; + IkConstraintTimeline.PREV_BEND_DIRECTION = -1; + IkConstraintTimeline.MIX = 1; + IkConstraintTimeline.BEND_DIRECTION = 2; return IkConstraintTimeline; }(CurveTimeline)); - IkConstraintTimeline.ENTRIES = 3; - IkConstraintTimeline.PREV_TIME = -3; - IkConstraintTimeline.PREV_MIX = -2; - IkConstraintTimeline.PREV_BEND_DIRECTION = -1; - IkConstraintTimeline.MIX = 1; - IkConstraintTimeline.BEND_DIRECTION = 2; spine.IkConstraintTimeline = IkConstraintTimeline; var TransformConstraintTimeline = (function (_super) { __extends(TransformConstraintTimeline, _super); function TransformConstraintTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); } TransformConstraintTimeline.prototype.getPropertyId = function () { return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; @@ -896,25 +884,24 @@ var spine; constraint.shearMix += (shear - constraint.shearMix) * alpha; } }; + TransformConstraintTimeline.ENTRIES = 5; + TransformConstraintTimeline.PREV_TIME = -5; + TransformConstraintTimeline.PREV_ROTATE = -4; + TransformConstraintTimeline.PREV_TRANSLATE = -3; + TransformConstraintTimeline.PREV_SCALE = -2; + TransformConstraintTimeline.PREV_SHEAR = -1; + TransformConstraintTimeline.ROTATE = 1; + TransformConstraintTimeline.TRANSLATE = 2; + TransformConstraintTimeline.SCALE = 3; + TransformConstraintTimeline.SHEAR = 4; return TransformConstraintTimeline; }(CurveTimeline)); - TransformConstraintTimeline.ENTRIES = 5; - TransformConstraintTimeline.PREV_TIME = -5; - TransformConstraintTimeline.PREV_ROTATE = -4; - TransformConstraintTimeline.PREV_TRANSLATE = -3; - TransformConstraintTimeline.PREV_SCALE = -2; - TransformConstraintTimeline.PREV_SHEAR = -1; - TransformConstraintTimeline.ROTATE = 1; - TransformConstraintTimeline.TRANSLATE = 2; - TransformConstraintTimeline.SCALE = 3; - TransformConstraintTimeline.SHEAR = 4; spine.TransformConstraintTimeline = TransformConstraintTimeline; var PathConstraintPositionTimeline = (function (_super) { __extends(PathConstraintPositionTimeline, _super); function PathConstraintPositionTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); } PathConstraintPositionTimeline.prototype.getPropertyId = function () { return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; @@ -947,17 +934,17 @@ var spine; else constraint.position += (position - constraint.position) * alpha; }; + PathConstraintPositionTimeline.ENTRIES = 2; + PathConstraintPositionTimeline.PREV_TIME = -2; + PathConstraintPositionTimeline.PREV_VALUE = -1; + PathConstraintPositionTimeline.VALUE = 1; return PathConstraintPositionTimeline; }(CurveTimeline)); - PathConstraintPositionTimeline.ENTRIES = 2; - PathConstraintPositionTimeline.PREV_TIME = -2; - PathConstraintPositionTimeline.PREV_VALUE = -1; - PathConstraintPositionTimeline.VALUE = 1; spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; var PathConstraintSpacingTimeline = (function (_super) { __extends(PathConstraintSpacingTimeline, _super); function PathConstraintSpacingTimeline(frameCount) { - return _super.call(this, frameCount) || this; + _super.call(this, frameCount); } PathConstraintSpacingTimeline.prototype.getPropertyId = function () { return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; @@ -991,9 +978,8 @@ var spine; var PathConstraintMixTimeline = (function (_super) { __extends(PathConstraintMixTimeline, _super); function PathConstraintMixTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); - return _this; + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); } PathConstraintMixTimeline.prototype.getPropertyId = function () { return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; @@ -1037,14 +1023,14 @@ var spine; constraint.translateMix += (translate - constraint.translateMix) * alpha; } }; + PathConstraintMixTimeline.ENTRIES = 3; + PathConstraintMixTimeline.PREV_TIME = -3; + PathConstraintMixTimeline.PREV_ROTATE = -2; + PathConstraintMixTimeline.PREV_TRANSLATE = -1; + PathConstraintMixTimeline.ROTATE = 1; + PathConstraintMixTimeline.TRANSLATE = 2; return PathConstraintMixTimeline; }(CurveTimeline)); - PathConstraintMixTimeline.ENTRIES = 3; - PathConstraintMixTimeline.PREV_TIME = -3; - PathConstraintMixTimeline.PREV_ROTATE = -2; - PathConstraintMixTimeline.PREV_TRANSLATE = -1; - PathConstraintMixTimeline.ROTATE = 1; - PathConstraintMixTimeline.TRANSLATE = 2; spine.PathConstraintMixTimeline = PathConstraintMixTimeline; })(spine || (spine = {})); var spine; @@ -1138,10 +1124,12 @@ var spine; this._animationsChanged(); var events = this.events; var tracks = this.tracks; + var applied = false; for (var i = 0, n = tracks.length; i < n; i++) { var current = tracks[i]; if (current == null || current.delay > 0) continue; + applied = true; var mix = current.alpha; if (current.mixingFrom != null) mix *= this.applyMixingFrom(current, skeleton); @@ -1175,6 +1163,7 @@ var spine; current.nextTrackLast = current.trackTime; } this.queue.drain(); + return applied; }; AnimationState.prototype.applyMixingFrom = function (to, skeleton) { var from = to.mixingFrom; @@ -1200,7 +1189,7 @@ var spine; spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); var timelinesRotation = from.timelinesRotation; var first = false; - var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha; + var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; from.totalAlpha = 0; for (var i = 0; i < timelineCount; i++) { var timeline = timelines[i]; @@ -1530,13 +1519,13 @@ var spine; AnimationState.prototype.clearListenerNotifications = function () { this.queue.clear(); }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); + AnimationState.SUBSEQUENT = 0; + AnimationState.FIRST = 1; + AnimationState.DIP = 2; + AnimationState.DIP_MIX = 3; return AnimationState; }()); - AnimationState.emptyAnimation = new spine.Animation("", [], 0); - AnimationState.SUBSEQUENT = 0; - AnimationState.FIRST = 1; - AnimationState.DIP = 2; - AnimationState.DIP_MIX = 3; spine.AnimationState = AnimationState; var TrackEntry = (function () { function TrackEntry() { @@ -1714,7 +1703,6 @@ var spine; return EventQueue; }()); spine.EventQueue = EventQueue; - var EventType; (function (EventType) { EventType[EventType["start"] = 0] = "start"; EventType[EventType["interrupt"] = 1] = "interrupt"; @@ -1722,7 +1710,8 @@ var spine; EventType[EventType["dispose"] = 3] = "dispose"; EventType[EventType["complete"] = 4] = "complete"; EventType[EventType["event"] = 5] = "event"; - })(EventType = spine.EventType || (spine.EventType = {})); + })(spine.EventType || (spine.EventType = {})); + var EventType = spine.EventType; var AnimationStateAdapter2 = (function () { function AnimationStateAdapter2() { } @@ -1948,13 +1937,369 @@ var spine; })(spine || (spine = {})); var spine; (function (spine) { - var BlendMode; + var Attachment = (function () { + function Attachment(name) { + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return Attachment; + }()); + spine.Attachment = Attachment; + var VertexAttachment = (function (_super) { + __extends(VertexAttachment, _super); + function VertexAttachment(name) { + _super.call(this, name); + this.worldVerticesLength = 0; + } + VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { + count = offset + (count >> 1) * stride; + var skeleton = slot.bone.skeleton; + var deformArray = slot.attachmentVertices; + var vertices = this.vertices; + var bones = this.bones; + if (bones == null) { + if (deformArray.length > 0) + vertices = deformArray; + var bone = slot.bone; + var x = bone.worldX; + var y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { + var vx = vertices[v_1], vy = vertices[v_1 + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + } + return; + } + var v = 0, skip = 0; + for (var i = 0; i < start; i += 2) { + var n = bones[v]; + v += n + 1; + skip += n; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = offset, b = skip * 3; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + else { + var deform = deformArray; + for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3, f += 2) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + }; + VertexAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment; + }; + return VertexAttachment; + }(Attachment)); + spine.VertexAttachment = VertexAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + (function (AttachmentType) { + AttachmentType[AttachmentType["Region"] = 0] = "Region"; + AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; + AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; + AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; + AttachmentType[AttachmentType["Path"] = 4] = "Path"; + AttachmentType[AttachmentType["Point"] = 5] = "Point"; + })(spine.AttachmentType || (spine.AttachmentType = {})); + var AttachmentType = spine.AttachmentType; +})(spine || (spine = {})); +var spine; +(function (spine) { + var BoundingBoxAttachment = (function (_super) { + __extends(BoundingBoxAttachment, _super); + function BoundingBoxAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + } + return BoundingBoxAttachment; + }(spine.VertexAttachment)); + spine.BoundingBoxAttachment = BoundingBoxAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var ClippingAttachment = (function (_super) { + __extends(ClippingAttachment, _super); + function ClippingAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); + } + return ClippingAttachment; + }(spine.VertexAttachment)); + spine.ClippingAttachment = ClippingAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var MeshAttachment = (function (_super) { + __extends(MeshAttachment, _super); + function MeshAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + this.inheritDeform = false; + this.tempColor = new spine.Color(0, 0, 0, 0); + } + MeshAttachment.prototype.updateUVs = function () { + var u = 0, v = 0, width = 0, height = 0; + if (this.region == null) { + u = v = 0; + width = height = 1; + } + else { + u = this.region.u; + v = this.region.v; + width = this.region.u2 - u; + height = this.region.v2 - v; + } + var regionUVs = this.regionUVs; + if (this.uvs == null || this.uvs.length != regionUVs.length) + this.uvs = spine.Utils.newFloatArray(regionUVs.length); + var uvs = this.uvs; + if (this.region.rotate) { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); + }; + MeshAttachment.prototype.getParentMesh = function () { + return this.parentMesh; + }; + MeshAttachment.prototype.setParentMesh = function (parentMesh) { + this.parentMesh = parentMesh; + if (parentMesh != null) { + this.bones = parentMesh.bones; + this.vertices = parentMesh.vertices; + this.worldVerticesLength = parentMesh.worldVerticesLength; + this.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + this.worldVerticesLength = parentMesh.worldVerticesLength; + } + }; + return MeshAttachment; + }(spine.VertexAttachment)); + spine.MeshAttachment = MeshAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var PathAttachment = (function (_super) { + __extends(PathAttachment, _super); + function PathAttachment(name) { + _super.call(this, name); + this.closed = false; + this.constantSpeed = false; + this.color = new spine.Color(1, 1, 1, 1); + } + return PathAttachment; + }(spine.VertexAttachment)); + spine.PathAttachment = PathAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var PointAttachment = (function (_super) { + __extends(PointAttachment, _super); + function PointAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.38, 0.94, 0, 1); + } + PointAttachment.prototype.computeWorldPosition = function (bone, point) { + point.x = this.x * bone.a + this.y * bone.b + bone.worldX; + point.y = this.x * bone.c + this.y * bone.d + bone.worldY; + return point; + }; + PointAttachment.prototype.computeWorldRotation = function (bone) { + var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); + var x = cos * bone.a + sin * bone.b; + var y = cos * bone.c + sin * bone.d; + return Math.atan2(y, x) * spine.MathUtils.radDeg; + }; + return PointAttachment; + }(spine.VertexAttachment)); + spine.PointAttachment = PointAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { + var RegionAttachment = (function (_super) { + __extends(RegionAttachment, _super); + function RegionAttachment(name) { + _super.call(this, name); + this.x = 0; + this.y = 0; + this.scaleX = 1; + this.scaleY = 1; + this.rotation = 0; + this.width = 0; + this.height = 0; + this.color = new spine.Color(1, 1, 1, 1); + this.offset = spine.Utils.newFloatArray(8); + this.uvs = spine.Utils.newFloatArray(8); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.updateOffset = function () { + var regionScaleX = this.width / this.region.originalWidth * this.scaleX; + var regionScaleY = this.height / this.region.originalHeight * this.scaleY; + var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; + var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; + var localX2 = localX + this.region.width * regionScaleX; + var localY2 = localY + this.region.height * regionScaleY; + var radians = this.rotation * Math.PI / 180; + var cos = Math.cos(radians); + var sin = Math.sin(radians); + var localXCos = localX * cos + this.x; + var localXSin = localX * sin; + var localYCos = localY * cos + this.y; + var localYSin = localY * sin; + var localX2Cos = localX2 * cos + this.x; + var localX2Sin = localX2 * sin; + var localY2Cos = localY2 * cos + this.y; + var localY2Sin = localY2 * sin; + var offset = this.offset; + offset[RegionAttachment.OX1] = localXCos - localYSin; + offset[RegionAttachment.OY1] = localYCos + localXSin; + offset[RegionAttachment.OX2] = localXCos - localY2Sin; + offset[RegionAttachment.OY2] = localY2Cos + localXSin; + offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; + offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; + offset[RegionAttachment.OX4] = localX2Cos - localYSin; + offset[RegionAttachment.OY4] = localYCos + localX2Sin; + }; + RegionAttachment.prototype.setRegion = function (region) { + this.region = region; + var uvs = this.uvs; + if (region.rotate) { + uvs[2] = region.u; + uvs[3] = region.v2; + uvs[4] = region.u; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v; + uvs[0] = region.u2; + uvs[1] = region.v2; + } + else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; + } + }; + RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { + var vertexOffset = this.offset; + var x = bone.worldX, y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var offsetX = 0, offsetY = 0; + offsetX = vertexOffset[RegionAttachment.OX1]; + offsetY = vertexOffset[RegionAttachment.OY1]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX2]; + offsetY = vertexOffset[RegionAttachment.OY2]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX3]; + offsetY = vertexOffset[RegionAttachment.OY3]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX4]; + offsetY = vertexOffset[RegionAttachment.OY4]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + }; + RegionAttachment.OX1 = 0; + RegionAttachment.OY1 = 1; + RegionAttachment.OX2 = 2; + RegionAttachment.OY2 = 3; + RegionAttachment.OX3 = 4; + RegionAttachment.OY3 = 5; + RegionAttachment.OX4 = 6; + RegionAttachment.OY4 = 7; + RegionAttachment.X1 = 0; + RegionAttachment.Y1 = 1; + RegionAttachment.C1R = 2; + RegionAttachment.C1G = 3; + RegionAttachment.C1B = 4; + RegionAttachment.C1A = 5; + RegionAttachment.U1 = 6; + RegionAttachment.V1 = 7; + RegionAttachment.X2 = 8; + RegionAttachment.Y2 = 9; + RegionAttachment.C2R = 10; + RegionAttachment.C2G = 11; + RegionAttachment.C2B = 12; + RegionAttachment.C2A = 13; + RegionAttachment.U2 = 14; + RegionAttachment.V2 = 15; + RegionAttachment.X3 = 16; + RegionAttachment.Y3 = 17; + RegionAttachment.C3R = 18; + RegionAttachment.C3G = 19; + RegionAttachment.C3B = 20; + RegionAttachment.C3A = 21; + RegionAttachment.U3 = 22; + RegionAttachment.V3 = 23; + RegionAttachment.X4 = 24; + RegionAttachment.Y4 = 25; + RegionAttachment.C4R = 26; + RegionAttachment.C4G = 27; + RegionAttachment.C4B = 28; + RegionAttachment.C4A = 29; + RegionAttachment.U4 = 30; + RegionAttachment.V4 = 31; + return RegionAttachment; + }(spine.Attachment)); + spine.RegionAttachment = RegionAttachment; +})(spine || (spine = {})); +var spine; +(function (spine) { (function (BlendMode) { BlendMode[BlendMode["Normal"] = 0] = "Normal"; BlendMode[BlendMode["Additive"] = 1] = "Additive"; BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; BlendMode[BlendMode["Screen"] = 3] = "Screen"; - })(BlendMode = spine.BlendMode || (spine.BlendMode = {})); + })(spine.BlendMode || (spine.BlendMode = {})); + var BlendMode = spine.BlendMode; })(spine || (spine = {})); var spine; (function (spine) { @@ -2243,14 +2588,14 @@ var spine; return BoneData; }()); spine.BoneData = BoneData; - var TransformMode; (function (TransformMode) { TransformMode[TransformMode["Normal"] = 0] = "Normal"; TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; - })(TransformMode = spine.TransformMode || (spine.TransformMode = {})); + })(spine.TransformMode || (spine.TransformMode = {})); + var TransformMode = spine.TransformMode; })(spine || (spine = {})); var spine; (function (spine) { @@ -2415,21 +2760,24 @@ var spine; } var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; - var angle = Math.acos(-a * l1 / (aa - bb)); - x = a * Math.cos(angle) + l1; - y = b * Math.sin(angle); - d = x * x + y * y; - if (d < minDist) { - minAngle = angle; - minDist = d; - minX = x; - minY = y; - } - if (d > maxDist) { - maxAngle = angle; - maxDist = d; - maxX = x; - maxY = y; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } } if (dd <= (minDist + maxDist) / 2) { a1 = ta - Math.atan2(minY * bendDir, minX); @@ -2834,11 +3182,11 @@ var spine; PathConstraint.prototype.getOrder = function () { return this.data.order; }; + PathConstraint.NONE = -1; + PathConstraint.BEFORE = -2; + PathConstraint.AFTER = -3; return PathConstraint; }()); - PathConstraint.NONE = -1; - PathConstraint.BEFORE = -2; - PathConstraint.AFTER = -3; spine.PathConstraint = PathConstraint; })(spine || (spine = {})); var spine; @@ -2852,23 +3200,23 @@ var spine; return PathConstraintData; }()); spine.PathConstraintData = PathConstraintData; - var PositionMode; (function (PositionMode) { PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; PositionMode[PositionMode["Percent"] = 1] = "Percent"; - })(PositionMode = spine.PositionMode || (spine.PositionMode = {})); - var SpacingMode; + })(spine.PositionMode || (spine.PositionMode = {})); + var PositionMode = spine.PositionMode; (function (SpacingMode) { SpacingMode[SpacingMode["Length"] = 0] = "Length"; SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; - })(SpacingMode = spine.SpacingMode || (spine.SpacingMode = {})); - var RotateMode; + })(spine.SpacingMode || (spine.SpacingMode = {})); + var SpacingMode = spine.SpacingMode; (function (RotateMode) { RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; RotateMode[RotateMode["Chain"] = 1] = "Chain"; RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; - })(RotateMode = spine.RotateMode || (spine.RotateMode = {})); + })(spine.RotateMode || (spine.RotateMode = {})); + var RotateMode = spine.RotateMode; })(spine || (spine = {})); var spine; (function (spine) { @@ -4879,7 +5227,6 @@ var spine; return Texture; }()); spine.Texture = Texture; - var TextureFilter; (function (TextureFilter) { TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; @@ -4888,13 +5235,14 @@ var spine; TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; - })(TextureFilter = spine.TextureFilter || (spine.TextureFilter = {})); - var TextureWrap; + })(spine.TextureFilter || (spine.TextureFilter = {})); + var TextureFilter = spine.TextureFilter; (function (TextureWrap) { TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; - })(TextureWrap = spine.TextureWrap || (spine.TextureWrap = {})); + })(spine.TextureWrap || (spine.TextureWrap = {})); + var TextureWrap = spine.TextureWrap; var TextureRegion = (function () { function TextureRegion() { this.u = 0; @@ -5062,7 +5410,7 @@ var spine; var TextureAtlasRegion = (function (_super) { __extends(TextureAtlasRegion, _super); function TextureAtlasRegion() { - return _super !== null && _super.apply(this, arguments) || this; + _super.apply(this, arguments); } return TextureAtlasRegion; }(spine.TextureRegion)); @@ -5629,13 +5977,13 @@ var spine; this.a = 1; return this; }; + Color.WHITE = new Color(1, 1, 1, 1); + Color.RED = new Color(1, 0, 0, 1); + Color.GREEN = new Color(0, 1, 0, 1); + Color.BLUE = new Color(0, 0, 1, 1); + Color.MAGENTA = new Color(1, 0, 1, 1); return Color; }()); - Color.WHITE = new Color(1, 1, 1, 1); - Color.RED = new Color(1, 0, 0, 1); - Color.GREEN = new Color(0, 1, 0, 1); - Color.BLUE = new Color(0, 0, 1, 1); - Color.MAGENTA = new Color(1, 0, 1, 1); spine.Color = Color; var MathUtils = (function () { function MathUtils() { @@ -5663,14 +6011,14 @@ var spine; var y = Math.pow(Math.abs(x), 1 / 3); return x < 0 ? -y : y; }; + MathUtils.PI = 3.1415927; + MathUtils.PI2 = MathUtils.PI * 2; + MathUtils.radiansToDegrees = 180 / MathUtils.PI; + MathUtils.radDeg = MathUtils.radiansToDegrees; + MathUtils.degreesToRadians = MathUtils.PI / 180; + MathUtils.degRad = MathUtils.degreesToRadians; return MathUtils; }()); - MathUtils.PI = 3.1415927; - MathUtils.PI2 = MathUtils.PI * 2; - MathUtils.radiansToDegrees = 180 / MathUtils.PI; - MathUtils.radDeg = MathUtils.radiansToDegrees; - MathUtils.degreesToRadians = MathUtils.PI / 180; - MathUtils.degRad = MathUtils.degreesToRadians; spine.MathUtils = MathUtils; var Utils = (function () { function Utils() { @@ -5729,9 +6077,9 @@ var spine; Utils.toFloatArray = function (array) { return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; }; + Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; return Utils; }()); - Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; spine.Utils = Utils; var DebugUtils = (function () { function DebugUtils() { @@ -5868,369 +6216,6 @@ var spine; spine.WindowedMean = WindowedMean; })(spine || (spine = {})); var spine; -(function (spine) { - var Attachment = (function () { - function Attachment(name) { - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return Attachment; - }()); - spine.Attachment = Attachment; - var VertexAttachment = (function (_super) { - __extends(VertexAttachment, _super); - function VertexAttachment(name) { - var _this = _super.call(this, name) || this; - _this.worldVerticesLength = 0; - return _this; - } - VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { - count = offset + (count >> 1) * stride; - var skeleton = slot.bone.skeleton; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices; - var bones = this.bones; - if (bones == null) { - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - var x = bone.worldX; - var y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { - var vx = vertices[v_1], vy = vertices[v_1 + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - } - return; - } - var v = 0, skip = 0; - for (var i = 0; i < start; i += 2) { - var n = bones[v]; - v += n + 1; - skip += n; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = offset, b = skip * 3; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - else { - var deform = deformArray; - for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3, f += 2) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - }; - VertexAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment; - }; - return VertexAttachment; - }(Attachment)); - spine.VertexAttachment = VertexAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var AttachmentType; - (function (AttachmentType) { - AttachmentType[AttachmentType["Region"] = 0] = "Region"; - AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; - AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; - AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; - AttachmentType[AttachmentType["Path"] = 4] = "Path"; - AttachmentType[AttachmentType["Point"] = 5] = "Point"; - })(AttachmentType = spine.AttachmentType || (spine.AttachmentType = {})); -})(spine || (spine = {})); -var spine; -(function (spine) { - var BoundingBoxAttachment = (function (_super) { - __extends(BoundingBoxAttachment, _super); - function BoundingBoxAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(1, 1, 1, 1); - return _this; - } - return BoundingBoxAttachment; - }(spine.VertexAttachment)); - spine.BoundingBoxAttachment = BoundingBoxAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var ClippingAttachment = (function (_super) { - __extends(ClippingAttachment, _super); - function ClippingAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); - return _this; - } - return ClippingAttachment; - }(spine.VertexAttachment)); - spine.ClippingAttachment = ClippingAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var MeshAttachment = (function (_super) { - __extends(MeshAttachment, _super); - function MeshAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(1, 1, 1, 1); - _this.inheritDeform = false; - _this.tempColor = new spine.Color(0, 0, 0, 0); - return _this; - } - MeshAttachment.prototype.updateUVs = function () { - var u = 0, v = 0, width = 0, height = 0; - if (this.region == null) { - u = v = 0; - width = height = 1; - } - else { - u = this.region.u; - v = this.region.v; - width = this.region.u2 - u; - height = this.region.v2 - v; - } - var regionUVs = this.regionUVs; - if (this.uvs == null || this.uvs.length != regionUVs.length) - this.uvs = spine.Utils.newFloatArray(regionUVs.length); - var uvs = this.uvs; - if (this.region.rotate) { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i + 1] * width; - uvs[i + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i] * width; - uvs[i + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); - }; - MeshAttachment.prototype.getParentMesh = function () { - return this.parentMesh; - }; - MeshAttachment.prototype.setParentMesh = function (parentMesh) { - this.parentMesh = parentMesh; - if (parentMesh != null) { - this.bones = parentMesh.bones; - this.vertices = parentMesh.vertices; - this.worldVerticesLength = parentMesh.worldVerticesLength; - this.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - this.worldVerticesLength = parentMesh.worldVerticesLength; - } - }; - return MeshAttachment; - }(spine.VertexAttachment)); - spine.MeshAttachment = MeshAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var PathAttachment = (function (_super) { - __extends(PathAttachment, _super); - function PathAttachment(name) { - var _this = _super.call(this, name) || this; - _this.closed = false; - _this.constantSpeed = false; - _this.color = new spine.Color(1, 1, 1, 1); - return _this; - } - return PathAttachment; - }(spine.VertexAttachment)); - spine.PathAttachment = PathAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var PointAttachment = (function (_super) { - __extends(PointAttachment, _super); - function PointAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(0.38, 0.94, 0, 1); - return _this; - } - PointAttachment.prototype.computeWorldPosition = function (bone, point) { - point.x = this.x * bone.a + this.y * bone.b + bone.worldX; - point.y = this.x * bone.c + this.y * bone.d + bone.worldY; - return point; - }; - PointAttachment.prototype.computeWorldRotation = function (bone) { - var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); - var x = cos * bone.a + sin * bone.b; - var y = cos * bone.c + sin * bone.d; - return Math.atan2(y, x) * spine.MathUtils.radDeg; - }; - return PointAttachment; - }(spine.VertexAttachment)); - spine.PointAttachment = PointAttachment; -})(spine || (spine = {})); -var spine; -(function (spine) { - var RegionAttachment = (function (_super) { - __extends(RegionAttachment, _super); - function RegionAttachment(name) { - var _this = _super.call(this, name) || this; - _this.x = 0; - _this.y = 0; - _this.scaleX = 1; - _this.scaleY = 1; - _this.rotation = 0; - _this.width = 0; - _this.height = 0; - _this.color = new spine.Color(1, 1, 1, 1); - _this.offset = spine.Utils.newFloatArray(8); - _this.uvs = spine.Utils.newFloatArray(8); - _this.tempColor = new spine.Color(1, 1, 1, 1); - return _this; - } - RegionAttachment.prototype.updateOffset = function () { - var regionScaleX = this.width / this.region.originalWidth * this.scaleX; - var regionScaleY = this.height / this.region.originalHeight * this.scaleY; - var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; - var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; - var localX2 = localX + this.region.width * regionScaleX; - var localY2 = localY + this.region.height * regionScaleY; - var radians = this.rotation * Math.PI / 180; - var cos = Math.cos(radians); - var sin = Math.sin(radians); - var localXCos = localX * cos + this.x; - var localXSin = localX * sin; - var localYCos = localY * cos + this.y; - var localYSin = localY * sin; - var localX2Cos = localX2 * cos + this.x; - var localX2Sin = localX2 * sin; - var localY2Cos = localY2 * cos + this.y; - var localY2Sin = localY2 * sin; - var offset = this.offset; - offset[RegionAttachment.OX1] = localXCos - localYSin; - offset[RegionAttachment.OY1] = localYCos + localXSin; - offset[RegionAttachment.OX2] = localXCos - localY2Sin; - offset[RegionAttachment.OY2] = localY2Cos + localXSin; - offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; - offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; - offset[RegionAttachment.OX4] = localX2Cos - localYSin; - offset[RegionAttachment.OY4] = localYCos + localX2Sin; - }; - RegionAttachment.prototype.setRegion = function (region) { - this.region = region; - var uvs = this.uvs; - if (region.rotate) { - uvs[2] = region.u; - uvs[3] = region.v2; - uvs[4] = region.u; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v; - uvs[0] = region.u2; - uvs[1] = region.v2; - } - else { - uvs[0] = region.u; - uvs[1] = region.v2; - uvs[2] = region.u; - uvs[3] = region.v; - uvs[4] = region.u2; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v2; - } - }; - RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { - var vertexOffset = this.offset; - var x = bone.worldX, y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = vertexOffset[RegionAttachment.OX1]; - offsetY = vertexOffset[RegionAttachment.OY1]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX2]; - offsetY = vertexOffset[RegionAttachment.OY2]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX3]; - offsetY = vertexOffset[RegionAttachment.OY3]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX4]; - offsetY = vertexOffset[RegionAttachment.OY4]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - }; - return RegionAttachment; - }(spine.Attachment)); - RegionAttachment.OX1 = 0; - RegionAttachment.OY1 = 1; - RegionAttachment.OX2 = 2; - RegionAttachment.OY2 = 3; - RegionAttachment.OX3 = 4; - RegionAttachment.OY3 = 5; - RegionAttachment.OX4 = 6; - RegionAttachment.OY4 = 7; - RegionAttachment.X1 = 0; - RegionAttachment.Y1 = 1; - RegionAttachment.C1R = 2; - RegionAttachment.C1G = 3; - RegionAttachment.C1B = 4; - RegionAttachment.C1A = 5; - RegionAttachment.U1 = 6; - RegionAttachment.V1 = 7; - RegionAttachment.X2 = 8; - RegionAttachment.Y2 = 9; - RegionAttachment.C2R = 10; - RegionAttachment.C2G = 11; - RegionAttachment.C2B = 12; - RegionAttachment.C2A = 13; - RegionAttachment.U2 = 14; - RegionAttachment.V2 = 15; - RegionAttachment.X3 = 16; - RegionAttachment.Y3 = 17; - RegionAttachment.C3R = 18; - RegionAttachment.C3G = 19; - RegionAttachment.C3B = 20; - RegionAttachment.C3A = 21; - RegionAttachment.U3 = 22; - RegionAttachment.V3 = 23; - RegionAttachment.X4 = 24; - RegionAttachment.Y4 = 25; - RegionAttachment.C4R = 26; - RegionAttachment.C4G = 27; - RegionAttachment.C4B = 28; - RegionAttachment.C4A = 29; - RegionAttachment.U4 = 30; - RegionAttachment.V4 = 31; - spine.RegionAttachment = RegionAttachment; -})(spine || (spine = {})); -var spine; (function (spine) { var webgl; (function (webgl) { @@ -6238,9 +6223,9 @@ var spine; __extends(AssetManager, _super); function AssetManager(context, pathPrefix) { if (pathPrefix === void 0) { pathPrefix = ""; } - return _super.call(this, function (image) { + _super.call(this, function (image) { return new spine.webgl.GLTexture(context, image); - }, pathPrefix) || this; + }, pathPrefix); } return AssetManager; }(spine.AssetManager)); @@ -6309,15 +6294,14 @@ var spine; __extends(GLTexture, _super); function GLTexture(context, image, useMipMaps) { if (useMipMaps === void 0) { useMipMaps = false; } - var _this = _super.call(this, image) || this; - _this.texture = null; - _this.boundUnit = 0; - _this.useMipMaps = false; - _this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - _this.useMipMaps = useMipMaps; - _this.restore(); - _this.context.addRestorable(_this); - return _this; + _super.call(this, image); + this.texture = null; + this.boundUnit = 0; + this.useMipMaps = false; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.useMipMaps = useMipMaps; + this.restore(); + this.context.addRestorable(this); } GLTexture.prototype.setFilters = function (minFilter, magFilter) { var gl = this.context.gl; @@ -6640,14 +6624,14 @@ var spine; renderer.end(); renderer.camera.position.set(oldX, oldY, 0); }; + LoadingScreen.FADE_SECONDS = 1; + LoadingScreen.loaded = 0; + LoadingScreen.spinnerImg = null; + LoadingScreen.logoImg = null; + LoadingScreen.SPINNER_DATA = "data:image/png;base64,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"; + LoadingScreen.SPINE_LOGO_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAAAZCAYAAACis3k0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtNJREFUaN7tmT2I1EAUxwN+oWgRT0HFKo0WCkJ6ObmAWFwZbCxsXGysLNJaiCyIoDaSwk4ETzvhmnBaCRbBWoQ01ho4PwotjP8cE337mMy8TLK757mBH3fLTWbe/PbN53neNniqZW8FvAVvQAqugwvgDDgO9niLRyTyJagM/ACPF6bsIl9ZRDac/Cc6tLn5xQdRQ496QlKPLxD5QCDxO9jtGM8QfYoIgUlgCipGCRJL5VvlyOdCU09iEXkCfLSIfCrs7Fab6nOsiafu06iDwES9w/uU1QnDC+ekkVS9vEaDsgVeB0d+z1VDtOGxRaYPboP3Gokb4GgXkZp4chZPJKgvZ3U0XkriK/TIt9YUDllFgTAjGwoaoHqfBhMI58yD4BQ4V6/aHYdfxToftvw9F2SiVroawU2/Cv5C4Thv0KB9S5nxlOd4STxjwUjzSdYlgrYijw2BsEfgsaFcM09lhiys94xXQQwugcvgJrgFLjrEE7WUiTuWCQzt/ZXN7FfqGwuGClyVy2xZAFmfDQvNtwFFSspMDGsD+UTWqu1KoVmVooFEJgKRXw0if85RpISEzwsjzeqWzkjkC4PIJ3MUmQgITAHlQwTFhnZhELkEntfZRwR+AvfAgXmJHOqU02XligWT8ppg67NXbdCXeq7afUQ6L8C2DalEZNt2YyQ94Qy8/ekjMpBMbfyl5iTjG7YAI8cNecROAb4kJmTjaXAF3AGvwQewOiuRxEtlSaT4j2h2lMsUueQEoMlIKpTvAmKhxPMtC876jEX6rE8l8TNx/KVbn6xlWU9NWcSDUsO4NGWpQOTZFpHPOooMXcswmW2XFk3ixb2v0Nq+XVKP00QNaffBLyWwBI/AkTlfMYZDXMf12kc6yjwEjoFdO/5me5oi/6tnyhlZX6OtgmX1c2Uh0k3khmbB2b9TRfpd/jfTUeRDJvHdYg5wE7kPXAN3wQ1weDvH+xufEgpi5qIl3QAAAABJRU5ErkJggg=="; return LoadingScreen; }()); - LoadingScreen.FADE_SECONDS = 1; - LoadingScreen.loaded = 0; - LoadingScreen.spinnerImg = null; - LoadingScreen.logoImg = null; - LoadingScreen.SPINNER_DATA = "data:image/png;base64,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"; - LoadingScreen.SPINE_LOGO_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAAAZCAYAAACis3k0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtNJREFUaN7tmT2I1EAUxwN+oWgRT0HFKo0WCkJ6ObmAWFwZbCxsXGysLNJaiCyIoDaSwk4ETzvhmnBaCRbBWoQ01ho4PwotjP8cE337mMy8TLK757mBH3fLTWbe/PbN53neNniqZW8FvAVvQAqugwvgDDgO9niLRyTyJagM/ACPF6bsIl9ZRDac/Cc6tLn5xQdRQ496QlKPLxD5QCDxO9jtGM8QfYoIgUlgCipGCRJL5VvlyOdCU09iEXkCfLSIfCrs7Fab6nOsiafu06iDwES9w/uU1QnDC+ekkVS9vEaDsgVeB0d+z1VDtOGxRaYPboP3Gokb4GgXkZp4chZPJKgvZ3U0XkriK/TIt9YUDllFgTAjGwoaoHqfBhMI58yD4BQ4V6/aHYdfxToftvw9F2SiVroawU2/Cv5C4Thv0KB9S5nxlOd4STxjwUjzSdYlgrYijw2BsEfgsaFcM09lhiys94xXQQwugcvgJrgFLjrEE7WUiTuWCQzt/ZXN7FfqGwuGClyVy2xZAFmfDQvNtwFFSspMDGsD+UTWqu1KoVmVooFEJgKRXw0if85RpISEzwsjzeqWzkjkC4PIJ3MUmQgITAHlQwTFhnZhELkEntfZRwR+AvfAgXmJHOqU02XligWT8ppg67NXbdCXeq7afUQ6L8C2DalEZNt2YyQ94Qy8/ekjMpBMbfyl5iTjG7YAI8cNecROAb4kJmTjaXAF3AGvwQewOiuRxEtlSaT4j2h2lMsUueQEoMlIKpTvAmKhxPMtC876jEX6rE8l8TNx/KVbn6xlWU9NWcSDUsO4NGWpQOTZFpHPOooMXcswmW2XFk3ixb2v0Nq+XVKP00QNaffBLyWwBI/AkTlfMYZDXMf12kc6yjwEjoFdO/5me5oi/6tnyhlZX6OtgmX1c2Uh0k3khmbB2b9TRfpd/jfTUeRDJvHdYg5wE7kPXAN3wQ1weDvH+xufEgpi5qIl3QAAAABJRU5ErkJggg=="; webgl.LoadingScreen = LoadingScreen; })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); @@ -6942,12 +6926,12 @@ var spine; if (Matrix4.zAxis === null) Matrix4.zAxis = new webgl.Vector3(); }; + Matrix4.xAxis = null; + Matrix4.yAxis = null; + Matrix4.zAxis = null; + Matrix4.tmpMatrix = new Matrix4(); return Matrix4; }()); - Matrix4.xAxis = null; - Matrix4.yAxis = null; - Matrix4.zAxis = null; - Matrix4.tmpMatrix = new Matrix4(); webgl.Matrix4 = Matrix4; })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); @@ -7096,7 +7080,7 @@ var spine; var Position2Attribute = (function (_super) { __extends(Position2Attribute, _super); function Position2Attribute() { - return _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 2) || this; + _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 2); } return Position2Attribute; }(VertexAttribute)); @@ -7104,7 +7088,7 @@ var spine; var Position3Attribute = (function (_super) { __extends(Position3Attribute, _super); function Position3Attribute() { - return _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 3) || this; + _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 3); } return Position3Attribute; }(VertexAttribute)); @@ -7113,7 +7097,7 @@ var spine; __extends(TexCoordAttribute, _super); function TexCoordAttribute(unit) { if (unit === void 0) { unit = 0; } - return _super.call(this, webgl.Shader.TEXCOORDS + (unit == 0 ? "" : unit), VertexAttributeType.Float, 2) || this; + _super.call(this, webgl.Shader.TEXCOORDS + (unit == 0 ? "" : unit), VertexAttributeType.Float, 2); } return TexCoordAttribute; }(VertexAttribute)); @@ -7121,7 +7105,7 @@ var spine; var ColorAttribute = (function (_super) { __extends(ColorAttribute, _super); function ColorAttribute() { - return _super.call(this, webgl.Shader.COLOR, VertexAttributeType.Float, 4) || this; + _super.call(this, webgl.Shader.COLOR, VertexAttributeType.Float, 4); } return ColorAttribute; }(VertexAttribute)); @@ -7129,15 +7113,15 @@ var spine; var Color2Attribute = (function (_super) { __extends(Color2Attribute, _super); function Color2Attribute() { - return _super.call(this, webgl.Shader.COLOR2, VertexAttributeType.Float, 4) || this; + _super.call(this, webgl.Shader.COLOR2, VertexAttributeType.Float, 4); } return Color2Attribute; }(VertexAttribute)); webgl.Color2Attribute = Color2Attribute; - var VertexAttributeType; (function (VertexAttributeType) { VertexAttributeType[VertexAttributeType["Float"] = 0] = "Float"; - })(VertexAttributeType = webgl.VertexAttributeType || (webgl.VertexAttributeType = {})); + })(webgl.VertexAttributeType || (webgl.VertexAttributeType = {})); + var VertexAttributeType = webgl.VertexAttributeType; })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; @@ -7638,12 +7622,12 @@ var spine; return SceneRenderer; }()); webgl.SceneRenderer = SceneRenderer; - var ResizeMode; (function (ResizeMode) { ResizeMode[ResizeMode["Stretch"] = 0] = "Stretch"; ResizeMode[ResizeMode["Expand"] = 1] = "Expand"; ResizeMode[ResizeMode["Fit"] = 2] = "Fit"; - })(ResizeMode = webgl.ResizeMode || (webgl.ResizeMode = {})); + })(webgl.ResizeMode || (webgl.ResizeMode = {})); + var ResizeMode = webgl.ResizeMode; })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; @@ -7790,14 +7774,14 @@ var spine; var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color;\n\t\t\t\t}\n\t\t\t"; return new Shader(context, vs, fs); }; + Shader.MVP_MATRIX = "u_projTrans"; + Shader.POSITION = "a_position"; + Shader.COLOR = "a_color"; + Shader.COLOR2 = "a_color2"; + Shader.TEXCOORDS = "a_texCoords"; + Shader.SAMPLER = "u_texture"; return Shader; }()); - Shader.MVP_MATRIX = "u_projTrans"; - Shader.POSITION = "a_position"; - Shader.COLOR = "a_color"; - Shader.COLOR2 = "a_color2"; - Shader.TEXCOORDS = "a_texCoords"; - Shader.SAMPLER = "u_texture"; webgl.Shader = Shader; })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); @@ -8117,12 +8101,12 @@ var spine; return ShapeRenderer; }()); webgl.ShapeRenderer = ShapeRenderer; - var ShapeType; (function (ShapeType) { ShapeType[ShapeType["Point"] = 0] = "Point"; ShapeType[ShapeType["Line"] = 1] = "Line"; ShapeType[ShapeType["Filled"] = 4] = "Filled"; - })(ShapeType = webgl.ShapeType || (webgl.ShapeType = {})); + })(webgl.ShapeType || (webgl.ShapeType = {})); + var ShapeType = webgl.ShapeType; })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; @@ -8310,10 +8294,10 @@ var spine; }; SkeletonDebugRenderer.prototype.dispose = function () { }; + SkeletonDebugRenderer.LIGHT_GRAY = new spine.Color(192 / 255, 192 / 255, 192 / 255, 1); + SkeletonDebugRenderer.GREEN = new spine.Color(0, 1, 0, 1); return SkeletonDebugRenderer; }()); - SkeletonDebugRenderer.LIGHT_GRAY = new spine.Color(192 / 255, 192 / 255, 192 / 255, 1); - SkeletonDebugRenderer.GREEN = new spine.Color(0, 1, 0, 1); webgl.SkeletonDebugRenderer = SkeletonDebugRenderer; })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); @@ -8456,9 +8440,9 @@ var spine; } clipper.clipEnd(); }; + SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; return SkeletonRenderer; }()); - SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; webgl.SkeletonRenderer = SkeletonRenderer; })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); @@ -8553,8 +8537,8 @@ var spine; (function (webgl) { var ManagedWebGLRenderingContext = (function () { function ManagedWebGLRenderingContext(canvasOrContext, contextConfig) { - if (contextConfig === void 0) { contextConfig = { alpha: "true" }; } var _this = this; + if (contextConfig === void 0) { contextConfig = { alpha: "true" }; } this.restorables = new Array(); if (canvasOrContext instanceof HTMLCanvasElement) { var canvas = canvasOrContext; @@ -8610,17 +8594,17 @@ var spine; default: throw new Error("Unknown blend mode: " + blendMode); } }; + WebGLBlendModeConverter.ZERO = 0; + WebGLBlendModeConverter.ONE = 1; + WebGLBlendModeConverter.SRC_COLOR = 0x0300; + WebGLBlendModeConverter.ONE_MINUS_SRC_COLOR = 0x0301; + WebGLBlendModeConverter.SRC_ALPHA = 0x0302; + WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA = 0x0303; + WebGLBlendModeConverter.DST_ALPHA = 0x0304; + WebGLBlendModeConverter.ONE_MINUS_DST_ALPHA = 0x0305; + WebGLBlendModeConverter.DST_COLOR = 0x0306; return WebGLBlendModeConverter; }()); - WebGLBlendModeConverter.ZERO = 0; - WebGLBlendModeConverter.ONE = 1; - WebGLBlendModeConverter.SRC_COLOR = 0x0300; - WebGLBlendModeConverter.ONE_MINUS_SRC_COLOR = 0x0301; - WebGLBlendModeConverter.SRC_ALPHA = 0x0302; - WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA = 0x0303; - WebGLBlendModeConverter.DST_ALPHA = 0x0304; - WebGLBlendModeConverter.ONE_MINUS_DST_ALPHA = 0x0305; - WebGLBlendModeConverter.DST_COLOR = 0x0306; webgl.WebGLBlendModeConverter = WebGLBlendModeConverter; })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); @@ -8934,9 +8918,9 @@ var spine; window.attachEvent("onload", SpineWidget.ready); } }; + SpineWidget.pageLoaded = false; return SpineWidget; }()); - SpineWidget.pageLoaded = false; spine.SpineWidget = SpineWidget; var SpineWidgetConfig = (function () { function SpineWidgetConfig() { diff --git a/spine-ts/build/spine-widget.js.map b/spine-ts/build/spine-widget.js.map index 4446f6914..7f55ed63c 100644 --- a/spine-ts/build/spine-widget.js.map +++ b/spine-ts/build/spine-widget.js.map @@ -1 +1 @@ -{"version":3,"file":"spine-widget.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts","../widget/src/Widget.ts"],"names":[],"mappings":"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CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC/G,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAChH,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC9E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC3G,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CA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GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CA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"} \ No newline at end of file +{"version":3,"file":"spine-widget.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts","../widget/src/Widget.ts"],"names":[],"mappings":"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AAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChH,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC3G,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG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CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,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"} \ No newline at end of file diff --git a/spine-ts/core/src/AnimationState.ts b/spine-ts/core/src/AnimationState.ts index 8b4a45f41..97cac75e4 100644 --- a/spine-ts/core/src/AnimationState.ts +++ b/spine-ts/core/src/AnimationState.ts @@ -131,16 +131,18 @@ module spine { return false; } - apply (skeleton: Skeleton) { + apply (skeleton: Skeleton) : boolean { if (skeleton == null) throw new Error("skeleton cannot be null."); if (this.animationsChanged) this._animationsChanged(); let events = this.events; let tracks = this.tracks; + let applied = false; for (let i = 0, n = tracks.length; i < n; i++) { let current = tracks[i]; if (current == null || current.delay > 0) continue; + applied = true; // Apply mixing from entries first. let mix = current.alpha; @@ -179,6 +181,7 @@ module spine { } this.queue.drain(); + return applied; } applyMixingFrom (to: TrackEntry, skeleton: Skeleton) { @@ -206,7 +209,7 @@ module spine { let timelinesRotation = from.timelinesRotation; let first = false; - let alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha; + let alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; from.totalAlpha = 0; for (var i = 0; i < timelineCount; i++) { let timeline = timelines[i]; From 0eaf8fcfa067df4268bdf790ff556837e736acb0 Mon Sep 17 00:00:00 2001 From: badlogic Date: Sun, 4 Jun 2017 10:55:35 +0200 Subject: [PATCH 04/17] [as3] AnimationState#apply returns boolean indicating if any timeline was applied. #919 --- spine-as3/spine-as3-example/lib/spine-as3.swc | Bin 99757 -> 99786 bytes .../src/spine/animation/AnimationState.as | 5 ++++- .../spine-starling-example/lib/spine-as3.swc | Bin 99757 -> 99786 bytes .../spine-starling/lib/spine-as3.swc | Bin 99757 -> 99786 bytes 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/spine-as3/spine-as3-example/lib/spine-as3.swc b/spine-as3/spine-as3-example/lib/spine-as3.swc index b58dc9f719e511c448a91d2ade3a137e71870c8d..ec7e3fb3cbcc3b6f101f5f2d050e483d95d8ab06 100644 GIT binary patch delta 99388 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 AD*ylh delta 99265 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 diff --git a/spine-as3/spine-as3/src/spine/animation/AnimationState.as b/spine-as3/spine-as3/src/spine/animation/AnimationState.as index be7d96f94..39ea40c4f 100644 --- a/spine-as3/spine-as3/src/spine/animation/AnimationState.as +++ b/spine-as3/spine-as3/src/spine/animation/AnimationState.as @@ -147,15 +147,17 @@ package spine.animation { return false; } - public function apply(skeleton : Skeleton) : void { + public function apply(skeleton : Skeleton) : Boolean { if (skeleton == null) throw new ArgumentError("skeleton cannot be null."); if (animationsChanged) _animationsChanged(); var events : Vector. = this.events; + var applied : Boolean = false; for (var i : int = 0, n : int = tracks.length; i < n; i++) { var current : TrackEntry = tracks[i]; if (current == null || current.delay > 0) continue; + applied = true; // Apply mixing from entries first. var mix : Number = current.alpha; @@ -194,6 +196,7 @@ package spine.animation { } queue.drain(); + return applied; } private function applyMixingFrom(to : TrackEntry, skeleton : Skeleton) : Number { diff --git a/spine-starling/spine-starling-example/lib/spine-as3.swc b/spine-starling/spine-starling-example/lib/spine-as3.swc index b58dc9f719e511c448a91d2ade3a137e71870c8d..ec7e3fb3cbcc3b6f101f5f2d050e483d95d8ab06 100644 GIT binary patch delta 99388 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 AD*ylh delta 99265 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 diff --git a/spine-starling/spine-starling/lib/spine-as3.swc b/spine-starling/spine-starling/lib/spine-as3.swc index b58dc9f719e511c448a91d2ade3a137e71870c8d..ec7e3fb3cbcc3b6f101f5f2d050e483d95d8ab06 100644 GIT binary patch delta 99388 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 AD*ylh delta 99265 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 From b14b5d805df6ef4dc653536de8740aae590ed756 Mon Sep 17 00:00:00 2001 From: badlogic Date: Sun, 4 Jun 2017 10:56:01 +0200 Subject: [PATCH 05/17] Updated CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d2656360a..629c8d637 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ * Added two color tinting support, including `TwoColorTimeline` and additional fields on `Slot` and `SlotData`. * Added `PointAttachment`, additional method `newPointAttachment` in `AttachmentLoader` interface. * Added `ClippingAttachment`, additional method `newClippingAttachment` in `AttachmentLoader` interface. + * `AnimationState#apply` returns boolean indicating if any timeline was applied or not. ### Starling * Fixed renderer to work with 3.6 changes. From 061d0d26b281f880ff49047f4d0eeeb2d857d33c Mon Sep 17 00:00:00 2001 From: badlogic Date: Sun, 4 Jun 2017 10:59:02 +0200 Subject: [PATCH 06/17] [c] AnimationState#apply returns boolean indicating if any timeline was applied. #919 --- spine-c/spine-c/include/spine/AnimationState.h | 2 +- spine-c/spine-c/src/spine/AnimationState.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/spine-c/spine-c/include/spine/AnimationState.h b/spine-c/spine-c/include/spine/AnimationState.h index 2cdcc6ebf..6df64edb1 100644 --- a/spine-c/spine-c/include/spine/AnimationState.h +++ b/spine-c/spine-c/include/spine/AnimationState.h @@ -120,7 +120,7 @@ spAnimationState* spAnimationState_create (spAnimationStateData* data); void spAnimationState_dispose (spAnimationState* self); void spAnimationState_update (spAnimationState* self, float delta); -void spAnimationState_apply (spAnimationState* self, struct spSkeleton* skeleton); +int /**bool**/ spAnimationState_apply (spAnimationState* self, struct spSkeleton* skeleton); void spAnimationState_clearTracks (spAnimationState* self); void spAnimationState_clearTrack (spAnimationState* self, int trackIndex); diff --git a/spine-c/spine-c/src/spine/AnimationState.c b/spine-c/spine-c/src/spine/AnimationState.c index 503337637..0e1f8a481 100644 --- a/spine-c/spine-c/src/spine/AnimationState.c +++ b/spine-c/spine-c/src/spine/AnimationState.c @@ -327,7 +327,7 @@ int /*boolean*/ _spAnimationState_updateMixingFrom (spAnimationState* self, spTr return 0; } -void spAnimationState_apply (spAnimationState* self, spSkeleton* skeleton) { +int spAnimationState_apply (spAnimationState* self, spSkeleton* skeleton) { _spAnimationState* internal = SUB_CAST(_spAnimationState, self); spTrackEntry* current; int i, ii, n; @@ -337,6 +337,7 @@ void spAnimationState_apply (spAnimationState* self, spSkeleton* skeleton) { int /*boolean*/ firstFrame; float* timelinesRotation; spTimeline* timeline; + int applied = 0; if (internal->animationsChanged) _spAnimationState_animationsChanged(self); @@ -344,6 +345,7 @@ void spAnimationState_apply (spAnimationState* self, spSkeleton* skeleton) { float mix; current = self->tracks[i]; if (!current || current->delay > 0) continue; + applied = -1; /* Apply mixing from entries first. */ mix = current->alpha; @@ -381,6 +383,7 @@ void spAnimationState_apply (spAnimationState* self, spSkeleton* skeleton) { } _spEventQueue_drain(internal->queue); + return applied; } float _spAnimationState_applyMixingFrom (spAnimationState* self, spTrackEntry* to, spSkeleton* skeleton) { From 3e8f3be0e43c07cbbc88cbfb7ce307cd2fe28259 Mon Sep 17 00:00:00 2001 From: badlogic Date: Sun, 4 Jun 2017 11:01:04 +0200 Subject: [PATCH 07/17] [lua] AnimationState#apply returns boolean indicating if any timeline was applied. #919 --- spine-lua/AnimationState.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spine-lua/AnimationState.lua b/spine-lua/AnimationState.lua index dd18d2e68..2deaf751c 100644 --- a/spine-lua/AnimationState.lua +++ b/spine-lua/AnimationState.lua @@ -366,9 +366,11 @@ function AnimationState:apply (skeleton) local events = self.events local tracks = self.tracks local queue = self.queue + local applied = false for i,current in pairs(tracks) do if not (current == nil or current.delay > 0) then + applied = true -- Apply mixing from entries first. local mix = current.alpha if current.mixingFrom then @@ -407,6 +409,7 @@ function AnimationState:apply (skeleton) end queue:drain() + return applied end function AnimationState:applyMixingFrom (to, skeleton) From 2b5058f0200663a04ed96e3ca59c65a1b32c1c6f Mon Sep 17 00:00:00 2001 From: badlogic Date: Sun, 4 Jun 2017 11:03:13 +0200 Subject: [PATCH 08/17] [ts] Fixed deform timelines not mixing from/to setup pose. #920 --- spine-ts/build/spine-all.d.ts | 3190 ++--- spine-ts/build/spine-all.js | 18554 +++++++++++++------------- spine-ts/build/spine-all.js.map | 2 +- spine-ts/build/spine-canvas.d.ts | 2210 +-- spine-ts/build/spine-canvas.js | 12698 +++++++++--------- spine-ts/build/spine-canvas.js.map | 2 +- spine-ts/build/spine-core.d.ts | 2160 +-- spine-ts/build/spine-core.js | 12208 ++++++++--------- spine-ts/build/spine-core.js.map | 2 +- spine-ts/build/spine-threejs.d.ts | 2238 ++-- spine-ts/build/spine-threejs.js | 12712 +++++++++--------- spine-ts/build/spine-threejs.js.map | 2 +- spine-ts/build/spine-webgl.d.ts | 2950 ++-- spine-ts/build/spine-webgl.js | 16904 +++++++++++------------ spine-ts/build/spine-webgl.js.map | 2 +- spine-ts/core/src/Animation.ts | 2 +- 16 files changed, 42918 insertions(+), 42918 deletions(-) diff --git a/spine-ts/build/spine-all.d.ts b/spine-ts/build/spine-all.d.ts index c94261fab..649e9882c 100644 --- a/spine-ts/build/spine-all.d.ts +++ b/spine-ts/build/spine-all.d.ts @@ -1,1721 +1,1721 @@ declare module spine { - class AssetManager implements Disposable { - private pathPrefix; - private textureLoader; - private assets; - private errors; - private toLoad; - private loaded; - constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); - loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; - loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - get(path: string): any; - remove(path: string): void; - removeAll(): void; - isLoadingComplete(): boolean; - getToLoad(): number; - getLoaded(): number; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class AssetManager implements Disposable { + private pathPrefix; + private textureLoader; + private assets; + private errors; + private toLoad; + private loaded; + constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); + loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; + loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + get(path: string): any; + remove(path: string): void; + removeAll(): void; + isLoadingComplete(): boolean; + getToLoad(): number; + getLoaded(): number; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine.canvas { - class AssetManager extends spine.AssetManager { - constructor(pathPrefix?: string); - } + class AssetManager extends spine.AssetManager { + constructor(pathPrefix?: string); + } } declare module spine { - abstract class Texture { - protected _image: HTMLImageElement; - constructor(image: HTMLImageElement); - getImage(): HTMLImageElement; - abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - abstract dispose(): void; - static filterFromString(text: string): TextureFilter; - static wrapFromString(text: string): TextureWrap; - } - enum TextureFilter { - Nearest = 9728, - Linear = 9729, - MipMap = 9987, - MipMapNearestNearest = 9984, - MipMapLinearNearest = 9985, - MipMapNearestLinear = 9986, - MipMapLinearLinear = 9987, - } - enum TextureWrap { - MirroredRepeat = 33648, - ClampToEdge = 33071, - Repeat = 10497, - } - class TextureRegion { - renderObject: any; - u: number; - v: number; - u2: number; - v2: number; - width: number; - height: number; - rotate: boolean; - offsetX: number; - offsetY: number; - originalWidth: number; - originalHeight: number; - } + abstract class Texture { + protected _image: HTMLImageElement; + constructor(image: HTMLImageElement); + getImage(): HTMLImageElement; + abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + abstract dispose(): void; + static filterFromString(text: string): TextureFilter; + static wrapFromString(text: string): TextureWrap; + } + enum TextureFilter { + Nearest = 9728, + Linear = 9729, + MipMap = 9987, + MipMapNearestNearest = 9984, + MipMapLinearNearest = 9985, + MipMapNearestLinear = 9986, + MipMapLinearLinear = 9987, + } + enum TextureWrap { + MirroredRepeat = 33648, + ClampToEdge = 33071, + Repeat = 10497, + } + class TextureRegion { + renderObject: any; + u: number; + v: number; + u2: number; + v2: number; + width: number; + height: number; + rotate: boolean; + offsetX: number; + offsetY: number; + originalWidth: number; + originalHeight: number; + } } declare module spine.canvas { - class CanvasTexture extends Texture { - constructor(image: HTMLImageElement); - setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - dispose(): void; - } + class CanvasTexture extends Texture { + constructor(image: HTMLImageElement); + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + dispose(): void; + } } declare module spine.canvas { - class SkeletonRenderer { - static QUAD_TRIANGLES: number[]; - static VERTEX_SIZE: number; - private ctx; - triangleRendering: boolean; - debugRendering: boolean; - private vertices; - private tempColor; - constructor(context: CanvasRenderingContext2D); - draw(skeleton: Skeleton): void; - private drawImages(skeleton); - private drawTriangles(skeleton); - private drawTriangle(img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); - private computeRegionVertices(slot, region, pma); - private computeMeshVertices(slot, mesh, pma); - } + class SkeletonRenderer { + static QUAD_TRIANGLES: number[]; + static VERTEX_SIZE: number; + private ctx; + triangleRendering: boolean; + debugRendering: boolean; + private vertices; + private tempColor; + constructor(context: CanvasRenderingContext2D); + draw(skeleton: Skeleton): void; + private drawImages(skeleton); + private drawTriangles(skeleton); + private drawTriangle(img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); + private computeRegionVertices(slot, region, pma); + private computeMeshVertices(slot, mesh, pma); + } } declare module spine { - class Animation { - name: string; - timelines: Array; - duration: number; - constructor(name: string, timelines: Array, duration: number); - apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - static binarySearch(values: ArrayLike, target: number, step?: number): number; - static linearSearch(values: ArrayLike, target: number, step: number): number; - } - interface Timeline { - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - getPropertyId(): number; - } - enum TimelineType { - rotate = 0, - translate = 1, - scale = 2, - shear = 3, - attachment = 4, - color = 5, - deform = 6, - event = 7, - drawOrder = 8, - ikConstraint = 9, - transformConstraint = 10, - pathConstraintPosition = 11, - pathConstraintSpacing = 12, - pathConstraintMix = 13, - twoColor = 14, - } - abstract class CurveTimeline implements Timeline { - static LINEAR: number; - static STEPPED: number; - static BEZIER: number; - static BEZIER_SIZE: number; - private curves; - abstract getPropertyId(): number; - constructor(frameCount: number); - getFrameCount(): number; - setLinear(frameIndex: number): void; - setStepped(frameIndex: number): void; - getCurveType(frameIndex: number): number; - setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; - getCurvePercent(frameIndex: number, percent: number): number; - abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class RotateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATION: number; - static ROTATION: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, degrees: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TranslateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_X: number; - static PREV_Y: number; - static X: number; - static Y: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, x: number, y: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ScaleTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ShearTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static R: number; - static G: number; - static B: number; - static A: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TwoColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static PREV_R2: number; - static PREV_G2: number; - static PREV_B2: number; - static R: number; - static G: number; - static B: number; - static A: number; - static R2: number; - static G2: number; - static B2: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class AttachmentTimeline implements Timeline { - slotIndex: number; - frames: ArrayLike; - attachmentNames: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, attachmentName: string): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DeformTimeline extends CurveTimeline { - slotIndex: number; - attachment: VertexAttachment; - frames: ArrayLike; - frameVertices: Array>; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class EventTimeline implements Timeline { - frames: ArrayLike; - events: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, event: Event): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DrawOrderTimeline implements Timeline { - frames: ArrayLike; - drawOrders: Array>; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, drawOrder: Array): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class IkConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_MIX: number; - static PREV_BEND_DIRECTION: number; - static MIX: number; - static BEND_DIRECTION: number; - ikConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TransformConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static PREV_SCALE: number; - static PREV_SHEAR: number; - static ROTATE: number; - static TRANSLATE: number; - static SCALE: number; - static SHEAR: number; - transformConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintPositionTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_VALUE: number; - static VALUE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, value: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintMixTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static ROTATE: number; - static TRANSLATE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } + class Animation { + name: string; + timelines: Array; + duration: number; + constructor(name: string, timelines: Array, duration: number); + apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + static binarySearch(values: ArrayLike, target: number, step?: number): number; + static linearSearch(values: ArrayLike, target: number, step: number): number; + } + interface Timeline { + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + getPropertyId(): number; + } + enum TimelineType { + rotate = 0, + translate = 1, + scale = 2, + shear = 3, + attachment = 4, + color = 5, + deform = 6, + event = 7, + drawOrder = 8, + ikConstraint = 9, + transformConstraint = 10, + pathConstraintPosition = 11, + pathConstraintSpacing = 12, + pathConstraintMix = 13, + twoColor = 14, + } + abstract class CurveTimeline implements Timeline { + static LINEAR: number; + static STEPPED: number; + static BEZIER: number; + static BEZIER_SIZE: number; + private curves; + abstract getPropertyId(): number; + constructor(frameCount: number); + getFrameCount(): number; + setLinear(frameIndex: number): void; + setStepped(frameIndex: number): void; + getCurveType(frameIndex: number): number; + setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; + getCurvePercent(frameIndex: number, percent: number): number; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class RotateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATION: number; + static ROTATION: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, degrees: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TranslateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_X: number; + static PREV_Y: number; + static X: number; + static Y: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, x: number, y: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ScaleTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ShearTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static R: number; + static G: number; + static B: number; + static A: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TwoColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static PREV_R2: number; + static PREV_G2: number; + static PREV_B2: number; + static R: number; + static G: number; + static B: number; + static A: number; + static R2: number; + static G2: number; + static B2: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class AttachmentTimeline implements Timeline { + slotIndex: number; + frames: ArrayLike; + attachmentNames: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, attachmentName: string): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DeformTimeline extends CurveTimeline { + slotIndex: number; + attachment: VertexAttachment; + frames: ArrayLike; + frameVertices: Array>; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class EventTimeline implements Timeline { + frames: ArrayLike; + events: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, event: Event): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DrawOrderTimeline implements Timeline { + frames: ArrayLike; + drawOrders: Array>; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, drawOrder: Array): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class IkConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_MIX: number; + static PREV_BEND_DIRECTION: number; + static MIX: number; + static BEND_DIRECTION: number; + ikConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TransformConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static PREV_SCALE: number; + static PREV_SHEAR: number; + static ROTATE: number; + static TRANSLATE: number; + static SCALE: number; + static SHEAR: number; + transformConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintPositionTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_VALUE: number; + static VALUE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, value: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintMixTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static ROTATE: number; + static TRANSLATE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } } declare module spine { - class AnimationState { - static emptyAnimation: Animation; - static SUBSEQUENT: number; - static FIRST: number; - static DIP: number; - static DIP_MIX: number; - data: AnimationStateData; - tracks: TrackEntry[]; - events: Event[]; - listeners: AnimationStateListener2[]; - queue: EventQueue; - propertyIDs: IntSet; - mixingTo: TrackEntry[]; - animationsChanged: boolean; - timeScale: number; - trackEntryPool: Pool; - constructor(data: AnimationStateData); - update(delta: number): void; - updateMixingFrom(to: TrackEntry, delta: number): boolean; - apply(skeleton: Skeleton): boolean; - applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; - applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; - queueEvents(entry: TrackEntry, animationTime: number): void; - clearTracks(): void; - clearTrack(trackIndex: number): void; - setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; - setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; - setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; - addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; - addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; - setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; - addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; - setEmptyAnimations(mixDuration: number): void; - expandToIndex(index: number): TrackEntry; - trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; - disposeNext(entry: TrackEntry): void; - _animationsChanged(): void; - getCurrent(trackIndex: number): TrackEntry; - addListener(listener: AnimationStateListener2): void; - removeListener(listener: AnimationStateListener2): void; - clearListeners(): void; - clearListenerNotifications(): void; - } - class TrackEntry { - animation: Animation; - next: TrackEntry; - mixingFrom: TrackEntry; - listener: AnimationStateListener2; - trackIndex: number; - loop: boolean; - eventThreshold: number; - attachmentThreshold: number; - drawOrderThreshold: number; - animationStart: number; - animationEnd: number; - animationLast: number; - nextAnimationLast: number; - delay: number; - trackTime: number; - trackLast: number; - nextTrackLast: number; - trackEnd: number; - timeScale: number; - alpha: number; - mixTime: number; - mixDuration: number; - interruptAlpha: number; - totalAlpha: number; - timelineData: number[]; - timelineDipMix: TrackEntry[]; - timelinesRotation: number[]; - reset(): void; - setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; - hasTimeline(id: number): boolean; - getAnimationTime(): number; - setAnimationLast(animationLast: number): void; - isComplete(): boolean; - resetRotationDirections(): void; - } - class EventQueue { - objects: Array; - drainDisabled: boolean; - animState: AnimationState; - constructor(animState: AnimationState); - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - drain(): void; - clear(): void; - } - enum EventType { - start = 0, - interrupt = 1, - end = 2, - dispose = 3, - complete = 4, - event = 5, - } - interface AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } - abstract class AnimationStateAdapter2 implements AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } + class AnimationState { + static emptyAnimation: Animation; + static SUBSEQUENT: number; + static FIRST: number; + static DIP: number; + static DIP_MIX: number; + data: AnimationStateData; + tracks: TrackEntry[]; + events: Event[]; + listeners: AnimationStateListener2[]; + queue: EventQueue; + propertyIDs: IntSet; + mixingTo: TrackEntry[]; + animationsChanged: boolean; + timeScale: number; + trackEntryPool: Pool; + constructor(data: AnimationStateData); + update(delta: number): void; + updateMixingFrom(to: TrackEntry, delta: number): boolean; + apply(skeleton: Skeleton): boolean; + applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; + applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; + queueEvents(entry: TrackEntry, animationTime: number): void; + clearTracks(): void; + clearTrack(trackIndex: number): void; + setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; + setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; + setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; + addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; + addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; + setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; + addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; + setEmptyAnimations(mixDuration: number): void; + expandToIndex(index: number): TrackEntry; + trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; + disposeNext(entry: TrackEntry): void; + _animationsChanged(): void; + getCurrent(trackIndex: number): TrackEntry; + addListener(listener: AnimationStateListener2): void; + removeListener(listener: AnimationStateListener2): void; + clearListeners(): void; + clearListenerNotifications(): void; + } + class TrackEntry { + animation: Animation; + next: TrackEntry; + mixingFrom: TrackEntry; + listener: AnimationStateListener2; + trackIndex: number; + loop: boolean; + eventThreshold: number; + attachmentThreshold: number; + drawOrderThreshold: number; + animationStart: number; + animationEnd: number; + animationLast: number; + nextAnimationLast: number; + delay: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; + timeScale: number; + alpha: number; + mixTime: number; + mixDuration: number; + interruptAlpha: number; + totalAlpha: number; + timelineData: number[]; + timelineDipMix: TrackEntry[]; + timelinesRotation: number[]; + reset(): void; + setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; + hasTimeline(id: number): boolean; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; + isComplete(): boolean; + resetRotationDirections(): void; + } + class EventQueue { + objects: Array; + drainDisabled: boolean; + animState: AnimationState; + constructor(animState: AnimationState); + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + drain(): void; + clear(): void; + } + enum EventType { + start = 0, + interrupt = 1, + end = 2, + dispose = 3, + complete = 4, + event = 5, + } + interface AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } + abstract class AnimationStateAdapter2 implements AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } } declare module spine { - class AnimationStateData { - skeletonData: SkeletonData; - animationToMixTime: Map; - defaultMix: number; - constructor(skeletonData: SkeletonData); - setMix(fromName: string, toName: string, duration: number): void; - setMixWith(from: Animation, to: Animation, duration: number): void; - getMix(from: Animation, to: Animation): number; - } + class AnimationStateData { + skeletonData: SkeletonData; + animationToMixTime: Map; + defaultMix: number; + constructor(skeletonData: SkeletonData); + setMix(fromName: string, toName: string, duration: number): void; + setMixWith(from: Animation, to: Animation, duration: number): void; + getMix(from: Animation, to: Animation): number; + } } declare module spine { - class AtlasAttachmentLoader implements AttachmentLoader { - atlas: TextureAtlas; - constructor(atlas: TextureAtlas); - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + class AtlasAttachmentLoader implements AttachmentLoader { + atlas: TextureAtlas; + constructor(atlas: TextureAtlas); + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - abstract class Attachment { - name: string; - constructor(name: string); - } - abstract class VertexAttachment extends Attachment { - bones: Array; - vertices: ArrayLike; - worldVerticesLength: number; - constructor(name: string); - computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - } + abstract class Attachment { + name: string; + constructor(name: string); + } + abstract class VertexAttachment extends Attachment { + bones: Array; + vertices: ArrayLike; + worldVerticesLength: number; + constructor(name: string); + computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + } } declare module spine { - interface AttachmentLoader { - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + interface AttachmentLoader { + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - enum AttachmentType { - Region = 0, - BoundingBox = 1, - Mesh = 2, - LinkedMesh = 3, - Path = 4, - Point = 5, - } + enum AttachmentType { + Region = 0, + BoundingBox = 1, + Mesh = 2, + LinkedMesh = 3, + Path = 4, + Point = 5, + } } declare module spine { - class BoundingBoxAttachment extends VertexAttachment { - color: Color; - constructor(name: string); - } + class BoundingBoxAttachment extends VertexAttachment { + color: Color; + constructor(name: string); + } } declare module spine { - class ClippingAttachment extends VertexAttachment { - endSlot: SlotData; - color: Color; - constructor(name: string); - } + class ClippingAttachment extends VertexAttachment { + endSlot: SlotData; + color: Color; + constructor(name: string); + } } declare module spine { - class MeshAttachment extends VertexAttachment { - region: TextureRegion; - path: string; - regionUVs: ArrayLike; - uvs: ArrayLike; - triangles: Array; - color: Color; - hullLength: number; - private parentMesh; - inheritDeform: boolean; - tempColor: Color; - constructor(name: string); - updateUVs(): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - getParentMesh(): MeshAttachment; - setParentMesh(parentMesh: MeshAttachment): void; - } + class MeshAttachment extends VertexAttachment { + region: TextureRegion; + path: string; + regionUVs: ArrayLike; + uvs: ArrayLike; + triangles: Array; + color: Color; + hullLength: number; + private parentMesh; + inheritDeform: boolean; + tempColor: Color; + constructor(name: string); + updateUVs(): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + getParentMesh(): MeshAttachment; + setParentMesh(parentMesh: MeshAttachment): void; + } } declare module spine { - class PathAttachment extends VertexAttachment { - lengths: Array; - closed: boolean; - constantSpeed: boolean; - color: Color; - constructor(name: string); - } + class PathAttachment extends VertexAttachment { + lengths: Array; + closed: boolean; + constantSpeed: boolean; + color: Color; + constructor(name: string); + } } declare module spine { - class PointAttachment extends VertexAttachment { - x: number; - y: number; - rotation: number; - color: Color; - constructor(name: string); - computeWorldPosition(bone: Bone, point: Vector2): Vector2; - computeWorldRotation(bone: Bone): number; - } + class PointAttachment extends VertexAttachment { + x: number; + y: number; + rotation: number; + color: Color; + constructor(name: string); + computeWorldPosition(bone: Bone, point: Vector2): Vector2; + computeWorldRotation(bone: Bone): number; + } } declare module spine { - class RegionAttachment extends Attachment { - static OX1: number; - static OY1: number; - static OX2: number; - static OY2: number; - static OX3: number; - static OY3: number; - static OX4: number; - static OY4: number; - static X1: number; - static Y1: number; - static C1R: number; - static C1G: number; - static C1B: number; - static C1A: number; - static U1: number; - static V1: number; - static X2: number; - static Y2: number; - static C2R: number; - static C2G: number; - static C2B: number; - static C2A: number; - static U2: number; - static V2: number; - static X3: number; - static Y3: number; - static C3R: number; - static C3G: number; - static C3B: number; - static C3A: number; - static U3: number; - static V3: number; - static X4: number; - static Y4: number; - static C4R: number; - static C4G: number; - static C4B: number; - static C4A: number; - static U4: number; - static V4: number; - x: number; - y: number; - scaleX: number; - scaleY: number; - rotation: number; - width: number; - height: number; - color: Color; - path: string; - rendererObject: any; - region: TextureRegion; - offset: ArrayLike; - uvs: ArrayLike; - tempColor: Color; - constructor(name: string); - updateOffset(): void; - setRegion(region: TextureRegion): void; - computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; - } + class RegionAttachment extends Attachment { + static OX1: number; + static OY1: number; + static OX2: number; + static OY2: number; + static OX3: number; + static OY3: number; + static OX4: number; + static OY4: number; + static X1: number; + static Y1: number; + static C1R: number; + static C1G: number; + static C1B: number; + static C1A: number; + static U1: number; + static V1: number; + static X2: number; + static Y2: number; + static C2R: number; + static C2G: number; + static C2B: number; + static C2A: number; + static U2: number; + static V2: number; + static X3: number; + static Y3: number; + static C3R: number; + static C3G: number; + static C3B: number; + static C3A: number; + static U3: number; + static V3: number; + static X4: number; + static Y4: number; + static C4R: number; + static C4G: number; + static C4B: number; + static C4A: number; + static U4: number; + static V4: number; + x: number; + y: number; + scaleX: number; + scaleY: number; + rotation: number; + width: number; + height: number; + color: Color; + path: string; + rendererObject: any; + region: TextureRegion; + offset: ArrayLike; + uvs: ArrayLike; + tempColor: Color; + constructor(name: string); + updateOffset(): void; + setRegion(region: TextureRegion): void; + computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; + } } declare module spine { - enum BlendMode { - Normal = 0, - Additive = 1, - Multiply = 2, - Screen = 3, - } + enum BlendMode { + Normal = 0, + Additive = 1, + Multiply = 2, + Screen = 3, + } } declare module spine { - class Bone implements Updatable { - data: BoneData; - skeleton: Skeleton; - parent: Bone; - children: Bone[]; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - ax: number; - ay: number; - arotation: number; - ascaleX: number; - ascaleY: number; - ashearX: number; - ashearY: number; - appliedValid: boolean; - a: number; - b: number; - worldX: number; - c: number; - d: number; - worldY: number; - sorted: boolean; - constructor(data: BoneData, skeleton: Skeleton, parent: Bone); - update(): void; - updateWorldTransform(): void; - updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; - setToSetupPose(): void; - getWorldRotationX(): number; - getWorldRotationY(): number; - getWorldScaleX(): number; - getWorldScaleY(): number; - updateAppliedTransform(): void; - worldToLocal(world: Vector2): Vector2; - localToWorld(local: Vector2): Vector2; - worldToLocalRotation(worldRotation: number): number; - localToWorldRotation(localRotation: number): number; - rotateWorld(degrees: number): void; - } + class Bone implements Updatable { + data: BoneData; + skeleton: Skeleton; + parent: Bone; + children: Bone[]; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + ax: number; + ay: number; + arotation: number; + ascaleX: number; + ascaleY: number; + ashearX: number; + ashearY: number; + appliedValid: boolean; + a: number; + b: number; + worldX: number; + c: number; + d: number; + worldY: number; + sorted: boolean; + constructor(data: BoneData, skeleton: Skeleton, parent: Bone); + update(): void; + updateWorldTransform(): void; + updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; + setToSetupPose(): void; + getWorldRotationX(): number; + getWorldRotationY(): number; + getWorldScaleX(): number; + getWorldScaleY(): number; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + worldToLocalRotation(worldRotation: number): number; + localToWorldRotation(localRotation: number): number; + rotateWorld(degrees: number): void; + } } declare module spine { - class BoneData { - index: number; - name: string; - parent: BoneData; - length: number; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - transformMode: TransformMode; - constructor(index: number, name: string, parent: BoneData); - } - enum TransformMode { - Normal = 0, - OnlyTranslation = 1, - NoRotationOrReflection = 2, - NoScale = 3, - NoScaleOrReflection = 4, - } + class BoneData { + index: number; + name: string; + parent: BoneData; + length: number; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + transformMode: TransformMode; + constructor(index: number, name: string, parent: BoneData); + } + enum TransformMode { + Normal = 0, + OnlyTranslation = 1, + NoRotationOrReflection = 2, + NoScale = 3, + NoScaleOrReflection = 4, + } } declare module spine { - interface Constraint extends Updatable { - getOrder(): number; - } + interface Constraint extends Updatable { + getOrder(): number; + } } declare module spine { - class Event { - data: EventData; - intValue: number; - floatValue: number; - stringValue: string; - time: number; - constructor(time: number, data: EventData); - } + class Event { + data: EventData; + intValue: number; + floatValue: number; + stringValue: string; + time: number; + constructor(time: number, data: EventData); + } } declare module spine { - class EventData { - name: string; - intValue: number; - floatValue: number; - stringValue: string; - constructor(name: string); - } + class EventData { + name: string; + intValue: number; + floatValue: number; + stringValue: string; + constructor(name: string); + } } declare module spine { - class IkConstraint implements Constraint { - data: IkConstraintData; - bones: Array; - target: Bone; - mix: number; - bendDirection: number; - constructor(data: IkConstraintData, skeleton: Skeleton); - getOrder(): number; - apply(): void; - update(): void; - apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; - apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; - } + class IkConstraint implements Constraint { + data: IkConstraintData; + bones: Array; + target: Bone; + mix: number; + bendDirection: number; + constructor(data: IkConstraintData, skeleton: Skeleton); + getOrder(): number; + apply(): void; + update(): void; + apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; + apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; + } } declare module spine { - class IkConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - bendDirection: number; - mix: number; - constructor(name: string); - } + class IkConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + bendDirection: number; + mix: number; + constructor(name: string); + } } declare module spine { - class PathConstraint implements Constraint { - static NONE: number; - static BEFORE: number; - static AFTER: number; - data: PathConstraintData; - bones: Array; - target: Slot; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - spaces: number[]; - positions: number[]; - world: number[]; - curves: number[]; - lengths: number[]; - segments: number[]; - constructor(data: PathConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; - addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; - getOrder(): number; - } + class PathConstraint implements Constraint { + static NONE: number; + static BEFORE: number; + static AFTER: number; + data: PathConstraintData; + bones: Array; + target: Slot; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + spaces: number[]; + positions: number[]; + world: number[]; + curves: number[]; + lengths: number[]; + segments: number[]; + constructor(data: PathConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; + addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; + getOrder(): number; + } } declare module spine { - class PathConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: SlotData; - positionMode: PositionMode; - spacingMode: SpacingMode; - rotateMode: RotateMode; - offsetRotation: number; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - constructor(name: string); - } - enum PositionMode { - Fixed = 0, - Percent = 1, - } - enum SpacingMode { - Length = 0, - Fixed = 1, - Percent = 2, - } - enum RotateMode { - Tangent = 0, - Chain = 1, - ChainScale = 2, - } + class PathConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: SlotData; + positionMode: PositionMode; + spacingMode: SpacingMode; + rotateMode: RotateMode; + offsetRotation: number; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + constructor(name: string); + } + enum PositionMode { + Fixed = 0, + Percent = 1, + } + enum SpacingMode { + Length = 0, + Fixed = 1, + Percent = 2, + } + enum RotateMode { + Tangent = 0, + Chain = 1, + ChainScale = 2, + } } declare module spine { - class SharedAssetManager implements Disposable { - private pathPrefix; - private clientAssets; - private queuedAssets; - private rawAssets; - private errors; - constructor(pathPrefix?: string); - private queueAsset(clientId, textureLoader, path); - loadText(clientId: string, path: string): void; - loadJson(clientId: string, path: string): void; - loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; - get(clientId: string, path: string): any; - private updateClientAssets(clientAssets); - isLoadingComplete(clientId: string): boolean; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class SharedAssetManager implements Disposable { + private pathPrefix; + private clientAssets; + private queuedAssets; + private rawAssets; + private errors; + constructor(pathPrefix?: string); + private queueAsset(clientId, textureLoader, path); + loadText(clientId: string, path: string): void; + loadJson(clientId: string, path: string): void; + loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; + get(clientId: string, path: string): any; + private updateClientAssets(clientAssets); + isLoadingComplete(clientId: string): boolean; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class Skeleton { - data: SkeletonData; - bones: Array; - slots: Array; - drawOrder: Array; - ikConstraints: Array; - transformConstraints: Array; - pathConstraints: Array; - _updateCache: Updatable[]; - updateCacheReset: Updatable[]; - skin: Skin; - color: Color; - time: number; - flipX: boolean; - flipY: boolean; - x: number; - y: number; - constructor(data: SkeletonData); - updateCache(): void; - sortIkConstraint(constraint: IkConstraint): void; - sortPathConstraint(constraint: PathConstraint): void; - sortTransformConstraint(constraint: TransformConstraint): void; - sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; - sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; - sortBone(bone: Bone): void; - sortReset(bones: Array): void; - updateWorldTransform(): void; - setToSetupPose(): void; - setBonesToSetupPose(): void; - setSlotsToSetupPose(): void; - getRootBone(): Bone; - findBone(boneName: string): Bone; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): Slot; - findSlotIndex(slotName: string): number; - setSkinByName(skinName: string): void; - setSkin(newSkin: Skin): void; - getAttachmentByName(slotName: string, attachmentName: string): Attachment; - getAttachment(slotIndex: number, attachmentName: string): Attachment; - setAttachment(slotName: string, attachmentName: string): void; - findIkConstraint(constraintName: string): IkConstraint; - findTransformConstraint(constraintName: string): TransformConstraint; - findPathConstraint(constraintName: string): PathConstraint; - getBounds(offset: Vector2, size: Vector2, temp: Array): void; - update(delta: number): void; - } + class Skeleton { + data: SkeletonData; + bones: Array; + slots: Array; + drawOrder: Array; + ikConstraints: Array; + transformConstraints: Array; + pathConstraints: Array; + _updateCache: Updatable[]; + updateCacheReset: Updatable[]; + skin: Skin; + color: Color; + time: number; + flipX: boolean; + flipY: boolean; + x: number; + y: number; + constructor(data: SkeletonData); + updateCache(): void; + sortIkConstraint(constraint: IkConstraint): void; + sortPathConstraint(constraint: PathConstraint): void; + sortTransformConstraint(constraint: TransformConstraint): void; + sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; + sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; + sortBone(bone: Bone): void; + sortReset(bones: Array): void; + updateWorldTransform(): void; + setToSetupPose(): void; + setBonesToSetupPose(): void; + setSlotsToSetupPose(): void; + getRootBone(): Bone; + findBone(boneName: string): Bone; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): Slot; + findSlotIndex(slotName: string): number; + setSkinByName(skinName: string): void; + setSkin(newSkin: Skin): void; + getAttachmentByName(slotName: string, attachmentName: string): Attachment; + getAttachment(slotIndex: number, attachmentName: string): Attachment; + setAttachment(slotName: string, attachmentName: string): void; + findIkConstraint(constraintName: string): IkConstraint; + findTransformConstraint(constraintName: string): TransformConstraint; + findPathConstraint(constraintName: string): PathConstraint; + getBounds(offset: Vector2, size: Vector2, temp: Array): void; + update(delta: number): void; + } } declare module spine { - class SkeletonBounds { - minX: number; - minY: number; - maxX: number; - maxY: number; - boundingBoxes: BoundingBoxAttachment[]; - polygons: ArrayLike[]; - private polygonPool; - update(skeleton: Skeleton, updateAabb: boolean): void; - aabbCompute(): void; - aabbContainsPoint(x: number, y: number): boolean; - aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; - aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; - containsPoint(x: number, y: number): BoundingBoxAttachment; - containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; - intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; - intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; - getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; - getWidth(): number; - getHeight(): number; - } + class SkeletonBounds { + minX: number; + minY: number; + maxX: number; + maxY: number; + boundingBoxes: BoundingBoxAttachment[]; + polygons: ArrayLike[]; + private polygonPool; + update(skeleton: Skeleton, updateAabb: boolean): void; + aabbCompute(): void; + aabbContainsPoint(x: number, y: number): boolean; + aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; + aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; + containsPoint(x: number, y: number): BoundingBoxAttachment; + containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; + intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; + intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; + getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; + getWidth(): number; + getHeight(): number; + } } declare module spine { - class SkeletonClipping { - private triangulator; - private clippingPolygon; - private clipOutput; - clippedVertices: number[]; - clippedTriangles: number[]; - private scratch; - private clipAttachment; - private clippingPolygons; - clipStart(slot: Slot, clip: ClippingAttachment): number; - clipEndWithSlot(slot: Slot): void; - clipEnd(): void; - isClipping(): boolean; - clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; - clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; - static makeClockwise(polygon: ArrayLike): void; - } + class SkeletonClipping { + private triangulator; + private clippingPolygon; + private clipOutput; + clippedVertices: number[]; + clippedTriangles: number[]; + private scratch; + private clipAttachment; + private clippingPolygons; + clipStart(slot: Slot, clip: ClippingAttachment): number; + clipEndWithSlot(slot: Slot): void; + clipEnd(): void; + isClipping(): boolean; + clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; + clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; + static makeClockwise(polygon: ArrayLike): void; + } } declare module spine { - class SkeletonData { - name: string; - bones: BoneData[]; - slots: SlotData[]; - skins: Skin[]; - defaultSkin: Skin; - events: EventData[]; - animations: Animation[]; - ikConstraints: IkConstraintData[]; - transformConstraints: TransformConstraintData[]; - pathConstraints: PathConstraintData[]; - width: number; - height: number; - version: string; - hash: string; - fps: number; - imagesPath: string; - findBone(boneName: string): BoneData; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): SlotData; - findSlotIndex(slotName: string): number; - findSkin(skinName: string): Skin; - findEvent(eventDataName: string): EventData; - findAnimation(animationName: string): Animation; - findIkConstraint(constraintName: string): IkConstraintData; - findTransformConstraint(constraintName: string): TransformConstraintData; - findPathConstraint(constraintName: string): PathConstraintData; - findPathConstraintIndex(pathConstraintName: string): number; - } + class SkeletonData { + name: string; + bones: BoneData[]; + slots: SlotData[]; + skins: Skin[]; + defaultSkin: Skin; + events: EventData[]; + animations: Animation[]; + ikConstraints: IkConstraintData[]; + transformConstraints: TransformConstraintData[]; + pathConstraints: PathConstraintData[]; + width: number; + height: number; + version: string; + hash: string; + fps: number; + imagesPath: string; + findBone(boneName: string): BoneData; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): SlotData; + findSlotIndex(slotName: string): number; + findSkin(skinName: string): Skin; + findEvent(eventDataName: string): EventData; + findAnimation(animationName: string): Animation; + findIkConstraint(constraintName: string): IkConstraintData; + findTransformConstraint(constraintName: string): TransformConstraintData; + findPathConstraint(constraintName: string): PathConstraintData; + findPathConstraintIndex(pathConstraintName: string): number; + } } declare module spine { - class SkeletonJson { - attachmentLoader: AttachmentLoader; - scale: number; - private linkedMeshes; - constructor(attachmentLoader: AttachmentLoader); - readSkeletonData(json: string | any): SkeletonData; - readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; - readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; - readAnimation(map: any, name: string, skeletonData: SkeletonData): void; - readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; - getValue(map: any, prop: string, defaultValue: any): any; - static blendModeFromString(str: string): BlendMode; - static positionModeFromString(str: string): PositionMode; - static spacingModeFromString(str: string): SpacingMode; - static rotateModeFromString(str: string): RotateMode; - static transformModeFromString(str: string): TransformMode; - } + class SkeletonJson { + attachmentLoader: AttachmentLoader; + scale: number; + private linkedMeshes; + constructor(attachmentLoader: AttachmentLoader); + readSkeletonData(json: string | any): SkeletonData; + readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; + readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; + readAnimation(map: any, name: string, skeletonData: SkeletonData): void; + readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; + getValue(map: any, prop: string, defaultValue: any): any; + static blendModeFromString(str: string): BlendMode; + static positionModeFromString(str: string): PositionMode; + static spacingModeFromString(str: string): SpacingMode; + static rotateModeFromString(str: string): RotateMode; + static transformModeFromString(str: string): TransformMode; + } } declare module spine { - class Skin { - name: string; - attachments: Map[]; - constructor(name: string); - addAttachment(slotIndex: number, name: string, attachment: Attachment): void; - getAttachment(slotIndex: number, name: string): Attachment; - attachAll(skeleton: Skeleton, oldSkin: Skin): void; - } + class Skin { + name: string; + attachments: Map[]; + constructor(name: string); + addAttachment(slotIndex: number, name: string, attachment: Attachment): void; + getAttachment(slotIndex: number, name: string): Attachment; + attachAll(skeleton: Skeleton, oldSkin: Skin): void; + } } declare module spine { - class Slot { - data: SlotData; - bone: Bone; - color: Color; - darkColor: Color; - private attachment; - private attachmentTime; - attachmentVertices: number[]; - constructor(data: SlotData, bone: Bone); - getAttachment(): Attachment; - setAttachment(attachment: Attachment): void; - setAttachmentTime(time: number): void; - getAttachmentTime(): number; - setToSetupPose(): void; - } + class Slot { + data: SlotData; + bone: Bone; + color: Color; + darkColor: Color; + private attachment; + private attachmentTime; + attachmentVertices: number[]; + constructor(data: SlotData, bone: Bone); + getAttachment(): Attachment; + setAttachment(attachment: Attachment): void; + setAttachmentTime(time: number): void; + getAttachmentTime(): number; + setToSetupPose(): void; + } } declare module spine { - class SlotData { - index: number; - name: string; - boneData: BoneData; - color: Color; - darkColor: Color; - attachmentName: string; - blendMode: BlendMode; - constructor(index: number, name: string, boneData: BoneData); - } + class SlotData { + index: number; + name: string; + boneData: BoneData; + color: Color; + darkColor: Color; + attachmentName: string; + blendMode: BlendMode; + constructor(index: number, name: string, boneData: BoneData); + } } declare module spine { - class TextureAtlas implements Disposable { - pages: TextureAtlasPage[]; - regions: TextureAtlasRegion[]; - constructor(atlasText: string, textureLoader: (path: string) => any); - private load(atlasText, textureLoader); - findRegion(name: string): TextureAtlasRegion; - dispose(): void; - } - class TextureAtlasPage { - name: string; - minFilter: TextureFilter; - magFilter: TextureFilter; - uWrap: TextureWrap; - vWrap: TextureWrap; - texture: Texture; - width: number; - height: number; - } - class TextureAtlasRegion extends TextureRegion { - page: TextureAtlasPage; - name: string; - x: number; - y: number; - index: number; - rotate: boolean; - texture: Texture; - } + class TextureAtlas implements Disposable { + pages: TextureAtlasPage[]; + regions: TextureAtlasRegion[]; + constructor(atlasText: string, textureLoader: (path: string) => any); + private load(atlasText, textureLoader); + findRegion(name: string): TextureAtlasRegion; + dispose(): void; + } + class TextureAtlasPage { + name: string; + minFilter: TextureFilter; + magFilter: TextureFilter; + uWrap: TextureWrap; + vWrap: TextureWrap; + texture: Texture; + width: number; + height: number; + } + class TextureAtlasRegion extends TextureRegion { + page: TextureAtlasPage; + name: string; + x: number; + y: number; + index: number; + rotate: boolean; + texture: Texture; + } } declare module spine { - class TransformConstraint implements Constraint { - data: TransformConstraintData; - bones: Array; - target: Bone; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - temp: Vector2; - constructor(data: TransformConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - applyAbsoluteWorld(): void; - applyRelativeWorld(): void; - applyAbsoluteLocal(): void; - applyRelativeLocal(): void; - getOrder(): number; - } + class TransformConstraint implements Constraint { + data: TransformConstraintData; + bones: Array; + target: Bone; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + temp: Vector2; + constructor(data: TransformConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + applyAbsoluteWorld(): void; + applyRelativeWorld(): void; + applyAbsoluteLocal(): void; + applyRelativeLocal(): void; + getOrder(): number; + } } declare module spine { - class TransformConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - offsetRotation: number; - offsetX: number; - offsetY: number; - offsetScaleX: number; - offsetScaleY: number; - offsetShearY: number; - relative: boolean; - local: boolean; - constructor(name: string); - } + class TransformConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + offsetRotation: number; + offsetX: number; + offsetY: number; + offsetScaleX: number; + offsetScaleY: number; + offsetShearY: number; + relative: boolean; + local: boolean; + constructor(name: string); + } } declare module spine { - class Triangulator { - private convexPolygons; - private convexPolygonsIndices; - private indicesArray; - private isConcaveArray; - private triangles; - private polygonPool; - private polygonIndicesPool; - triangulate(verticesArray: ArrayLike): Array; - decompose(verticesArray: Array, triangles: Array): Array>; - private static isConcave(index, vertexCount, vertices, indices); - private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); - private static winding(p1x, p1y, p2x, p2y, p3x, p3y); - } + class Triangulator { + private convexPolygons; + private convexPolygonsIndices; + private indicesArray; + private isConcaveArray; + private triangles; + private polygonPool; + private polygonIndicesPool; + triangulate(verticesArray: ArrayLike): Array; + decompose(verticesArray: Array, triangles: Array): Array>; + private static isConcave(index, vertexCount, vertices, indices); + private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); + private static winding(p1x, p1y, p2x, p2y, p3x, p3y); + } } declare module spine { - interface Updatable { - update(): void; - } + interface Updatable { + update(): void; + } } declare module spine { - interface Map { - [key: string]: T; - } - class IntSet { - array: number[]; - add(value: number): boolean; - contains(value: number): boolean; - remove(value: number): void; - clear(): void; - } - interface Disposable { - dispose(): void; - } - interface Restorable { - restore(): void; - } - class Color { - r: number; - g: number; - b: number; - a: number; - static WHITE: Color; - static RED: Color; - static GREEN: Color; - static BLUE: Color; - static MAGENTA: Color; - constructor(r?: number, g?: number, b?: number, a?: number); - set(r: number, g: number, b: number, a: number): this; - setFromColor(c: Color): this; - setFromString(hex: string): this; - add(r: number, g: number, b: number, a: number): this; - clamp(): this; - } - class MathUtils { - static PI: number; - static PI2: number; - static radiansToDegrees: number; - static radDeg: number; - static degreesToRadians: number; - static degRad: number; - static clamp(value: number, min: number, max: number): number; - static cosDeg(degrees: number): number; - static sinDeg(degrees: number): number; - static signum(value: number): number; - static toInt(x: number): number; - static cbrt(x: number): number; - } - class Utils { - static SUPPORTS_TYPED_ARRAYS: boolean; - static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; - static setArraySize(array: Array, size: number, value?: any): Array; - static ensureArrayCapacity(array: Array, size: number, value?: any): Array; - static newArray(size: number, defaultValue: T): Array; - static newFloatArray(size: number): ArrayLike; - static newShortArray(size: number): ArrayLike; - static toFloatArray(array: Array): number[] | Float32Array; - } - class DebugUtils { - static logBones(skeleton: Skeleton): void; - } - class Pool { - private items; - private instantiator; - constructor(instantiator: () => T); - obtain(): T; - free(item: T): void; - freeAll(items: ArrayLike): void; - clear(): void; - } - class Vector2 { - x: number; - y: number; - constructor(x?: number, y?: number); - set(x: number, y: number): Vector2; - length(): number; - normalize(): this; - } - class TimeKeeper { - maxDelta: number; - framesPerSecond: number; - delta: number; - totalTime: number; - private lastTime; - private frameCount; - private frameTime; - update(): void; - } - interface ArrayLike { - length: number; - [n: number]: T; - } - class WindowedMean { - values: Array; - addedValues: number; - lastValue: number; - mean: number; - dirty: boolean; - constructor(windowSize?: number); - hasEnoughData(): boolean; - addValue(value: number): void; - getMean(): number; - } + interface Map { + [key: string]: T; + } + class IntSet { + array: number[]; + add(value: number): boolean; + contains(value: number): boolean; + remove(value: number): void; + clear(): void; + } + interface Disposable { + dispose(): void; + } + interface Restorable { + restore(): void; + } + class Color { + r: number; + g: number; + b: number; + a: number; + static WHITE: Color; + static RED: Color; + static GREEN: Color; + static BLUE: Color; + static MAGENTA: Color; + constructor(r?: number, g?: number, b?: number, a?: number); + set(r: number, g: number, b: number, a: number): this; + setFromColor(c: Color): this; + setFromString(hex: string): this; + add(r: number, g: number, b: number, a: number): this; + clamp(): this; + } + class MathUtils { + static PI: number; + static PI2: number; + static radiansToDegrees: number; + static radDeg: number; + static degreesToRadians: number; + static degRad: number; + static clamp(value: number, min: number, max: number): number; + static cosDeg(degrees: number): number; + static sinDeg(degrees: number): number; + static signum(value: number): number; + static toInt(x: number): number; + static cbrt(x: number): number; + } + class Utils { + static SUPPORTS_TYPED_ARRAYS: boolean; + static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; + static setArraySize(array: Array, size: number, value?: any): Array; + static ensureArrayCapacity(array: Array, size: number, value?: any): Array; + static newArray(size: number, defaultValue: T): Array; + static newFloatArray(size: number): ArrayLike; + static newShortArray(size: number): ArrayLike; + static toFloatArray(array: Array): number[] | Float32Array; + } + class DebugUtils { + static logBones(skeleton: Skeleton): void; + } + class Pool { + private items; + private instantiator; + constructor(instantiator: () => T); + obtain(): T; + free(item: T): void; + freeAll(items: ArrayLike): void; + clear(): void; + } + class Vector2 { + x: number; + y: number; + constructor(x?: number, y?: number); + set(x: number, y: number): Vector2; + length(): number; + normalize(): this; + } + class TimeKeeper { + maxDelta: number; + framesPerSecond: number; + delta: number; + totalTime: number; + private lastTime; + private frameCount; + private frameTime; + update(): void; + } + interface ArrayLike { + length: number; + [n: number]: T; + } + class WindowedMean { + values: Array; + addedValues: number; + lastValue: number; + mean: number; + dirty: boolean; + constructor(windowSize?: number); + hasEnoughData(): boolean; + addValue(value: number): void; + getMean(): number; + } } declare module spine.threejs { - class AssetManager extends spine.AssetManager { - constructor(pathPrefix?: string); - } + class AssetManager extends spine.AssetManager { + constructor(pathPrefix?: string); + } } declare module spine.threejs { - class MeshBatcher { - mesh: THREE.Mesh; - private static VERTEX_SIZE; - private vertexBuffer; - private vertices; - private verticesLength; - private indices; - private indicesLength; - constructor(mesh: THREE.Mesh, maxVertices?: number); - begin(): void; - batch(vertices: ArrayLike, verticesLength: number, indices: ArrayLike, indicesLength: number, z?: number): void; - end(): void; - } + class MeshBatcher { + mesh: THREE.Mesh; + private static VERTEX_SIZE; + private vertexBuffer; + private vertices; + private verticesLength; + private indices; + private indicesLength; + constructor(mesh: THREE.Mesh, maxVertices?: number); + begin(): void; + batch(vertices: ArrayLike, verticesLength: number, indices: ArrayLike, indicesLength: number, z?: number): void; + end(): void; + } } declare module spine.threejs { - class SkeletonMesh extends THREE.Mesh { - skeleton: Skeleton; - state: AnimationState; - zOffset: number; - private batcher; - private clipper; - static QUAD_TRIANGLES: number[]; - static VERTEX_SIZE: number; - private vertices; - private tempColor; - constructor(skeletonData: SkeletonData); - update(deltaTime: number): void; - private updateGeometry(); - } + class SkeletonMesh extends THREE.Mesh { + skeleton: Skeleton; + state: AnimationState; + zOffset: number; + private batcher; + private clipper; + static QUAD_TRIANGLES: number[]; + static VERTEX_SIZE: number; + private vertices; + private tempColor; + constructor(skeletonData: SkeletonData); + update(deltaTime: number): void; + private updateGeometry(); + } } declare module spine.threejs { - class ThreeJsTexture extends Texture { - texture: THREE.Texture; - constructor(image: HTMLImageElement); - setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - dispose(): void; - static toThreeJsTextureFilter(filter: TextureFilter): THREE.TextureFilter; - static toThreeJsTextureWrap(wrap: TextureWrap): THREE.Wrapping; - } + class ThreeJsTexture extends Texture { + texture: THREE.Texture; + constructor(image: HTMLImageElement); + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + dispose(): void; + static toThreeJsTextureFilter(filter: TextureFilter): THREE.TextureFilter; + static toThreeJsTextureWrap(wrap: TextureWrap): THREE.Wrapping; + } } declare module spine.webgl { - class AssetManager extends spine.AssetManager { - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, pathPrefix?: string); - } + class AssetManager extends spine.AssetManager { + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, pathPrefix?: string); + } } declare module spine.webgl { - class OrthoCamera { - position: Vector3; - direction: Vector3; - up: Vector3; - near: number; - far: number; - zoom: number; - viewportWidth: number; - viewportHeight: number; - projectionView: Matrix4; - inverseProjectionView: Matrix4; - projection: Matrix4; - view: Matrix4; - private tmp; - constructor(viewportWidth: number, viewportHeight: number); - update(): void; - screenToWorld(screenCoords: Vector3, screenWidth: number, screenHeight: number): Vector3; - setViewport(viewportWidth: number, viewportHeight: number): void; - } + class OrthoCamera { + position: Vector3; + direction: Vector3; + up: Vector3; + near: number; + far: number; + zoom: number; + viewportWidth: number; + viewportHeight: number; + projectionView: Matrix4; + inverseProjectionView: Matrix4; + projection: Matrix4; + view: Matrix4; + private tmp; + constructor(viewportWidth: number, viewportHeight: number); + update(): void; + screenToWorld(screenCoords: Vector3, screenWidth: number, screenHeight: number): Vector3; + setViewport(viewportWidth: number, viewportHeight: number): void; + } } declare module spine.webgl { - class GLTexture extends Texture implements Disposable, Restorable { - private context; - private texture; - private boundUnit; - private useMipMaps; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, image: HTMLImageElement, useMipMaps?: boolean); - setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - update(useMipMaps: boolean): void; - restore(): void; - bind(unit?: number): void; - unbind(): void; - dispose(): void; - } + class GLTexture extends Texture implements Disposable, Restorable { + private context; + private texture; + private boundUnit; + private useMipMaps; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, image: HTMLImageElement, useMipMaps?: boolean); + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + update(useMipMaps: boolean): void; + restore(): void; + bind(unit?: number): void; + unbind(): void; + dispose(): void; + } } declare module spine.webgl { - class Input { - element: HTMLElement; - lastX: number; - lastY: number; - buttonDown: boolean; - currTouch: Touch; - touchesPool: Pool; - private listeners; - constructor(element: HTMLElement); - private setupCallbacks(element); - addListener(listener: InputListener): void; - removeListener(listener: InputListener): void; - } - class Touch { - identifier: number; - x: number; - y: number; - constructor(identifier: number, x: number, y: number); - } - interface InputListener { - down(x: number, y: number): void; - up(x: number, y: number): void; - moved(x: number, y: number): void; - dragged(x: number, y: number): void; - } + class Input { + element: HTMLElement; + lastX: number; + lastY: number; + buttonDown: boolean; + currTouch: Touch; + touchesPool: Pool; + private listeners; + constructor(element: HTMLElement); + private setupCallbacks(element); + addListener(listener: InputListener): void; + removeListener(listener: InputListener): void; + } + class Touch { + identifier: number; + x: number; + y: number; + constructor(identifier: number, x: number, y: number); + } + interface InputListener { + down(x: number, y: number): void; + up(x: number, y: number): void; + moved(x: number, y: number): void; + dragged(x: number, y: number): void; + } } declare module spine.webgl { - class LoadingScreen { - static FADE_SECONDS: number; - private static loaded; - private static spinnerImg; - private static logoImg; - private renderer; - private logo; - private spinner; - private angle; - private fadeOut; - private timeKeeper; - backgroundColor: Color; - private tempColor; - private firstDraw; - private static SPINNER_DATA; - private static SPINE_LOGO_DATA; - constructor(renderer: SceneRenderer); - draw(complete?: boolean): void; - } + class LoadingScreen { + static FADE_SECONDS: number; + private static loaded; + private static spinnerImg; + private static logoImg; + private renderer; + private logo; + private spinner; + private angle; + private fadeOut; + private timeKeeper; + backgroundColor: Color; + private tempColor; + private firstDraw; + private static SPINNER_DATA; + private static SPINE_LOGO_DATA; + constructor(renderer: SceneRenderer); + draw(complete?: boolean): void; + } } declare module spine.webgl { - const M00: number; - const M01: number; - const M02: number; - const M03: number; - const M10: number; - const M11: number; - const M12: number; - const M13: number; - const M20: number; - const M21: number; - const M22: number; - const M23: number; - const M30: number; - const M31: number; - const M32: number; - const M33: number; - class Matrix4 { - temp: Float32Array; - values: Float32Array; - private static xAxis; - private static yAxis; - private static zAxis; - private static tmpMatrix; - constructor(); - set(values: ArrayLike): Matrix4; - transpose(): Matrix4; - identity(): Matrix4; - invert(): Matrix4; - determinant(): number; - translate(x: number, y: number, z: number): Matrix4; - copy(): Matrix4; - projection(near: number, far: number, fovy: number, aspectRatio: number): Matrix4; - ortho2d(x: number, y: number, width: number, height: number): Matrix4; - ortho(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4; - multiply(matrix: Matrix4): Matrix4; - multiplyLeft(matrix: Matrix4): Matrix4; - lookAt(position: Vector3, direction: Vector3, up: Vector3): this; - static initTemps(): void; - } + const M00: number; + const M01: number; + const M02: number; + const M03: number; + const M10: number; + const M11: number; + const M12: number; + const M13: number; + const M20: number; + const M21: number; + const M22: number; + const M23: number; + const M30: number; + const M31: number; + const M32: number; + const M33: number; + class Matrix4 { + temp: Float32Array; + values: Float32Array; + private static xAxis; + private static yAxis; + private static zAxis; + private static tmpMatrix; + constructor(); + set(values: ArrayLike): Matrix4; + transpose(): Matrix4; + identity(): Matrix4; + invert(): Matrix4; + determinant(): number; + translate(x: number, y: number, z: number): Matrix4; + copy(): Matrix4; + projection(near: number, far: number, fovy: number, aspectRatio: number): Matrix4; + ortho2d(x: number, y: number, width: number, height: number): Matrix4; + ortho(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4; + multiply(matrix: Matrix4): Matrix4; + multiplyLeft(matrix: Matrix4): Matrix4; + lookAt(position: Vector3, direction: Vector3, up: Vector3): this; + static initTemps(): void; + } } declare module spine.webgl { - class Mesh implements Disposable, Restorable { - private attributes; - private context; - private vertices; - private verticesBuffer; - private verticesLength; - private dirtyVertices; - private indices; - private indicesBuffer; - private indicesLength; - private dirtyIndices; - private elementsPerVertex; - getAttributes(): VertexAttribute[]; - maxVertices(): number; - numVertices(): number; - setVerticesLength(length: number): void; - getVertices(): Float32Array; - maxIndices(): number; - numIndices(): number; - setIndicesLength(length: number): void; - getIndices(): Uint16Array; - getVertexSizeInFloats(): number; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, attributes: VertexAttribute[], maxVertices: number, maxIndices: number); - setVertices(vertices: Array): void; - setIndices(indices: Array): void; - draw(shader: Shader, primitiveType: number): void; - drawWithOffset(shader: Shader, primitiveType: number, offset: number, count: number): void; - bind(shader: Shader): void; - unbind(shader: Shader): void; - private update(); - restore(): void; - dispose(): void; - } - class VertexAttribute { - name: string; - type: VertexAttributeType; - numElements: number; - constructor(name: string, type: VertexAttributeType, numElements: number); - } - class Position2Attribute extends VertexAttribute { - constructor(); - } - class Position3Attribute extends VertexAttribute { - constructor(); - } - class TexCoordAttribute extends VertexAttribute { - constructor(unit?: number); - } - class ColorAttribute extends VertexAttribute { - constructor(); - } - class Color2Attribute extends VertexAttribute { - constructor(); - } - enum VertexAttributeType { - Float = 0, - } + class Mesh implements Disposable, Restorable { + private attributes; + private context; + private vertices; + private verticesBuffer; + private verticesLength; + private dirtyVertices; + private indices; + private indicesBuffer; + private indicesLength; + private dirtyIndices; + private elementsPerVertex; + getAttributes(): VertexAttribute[]; + maxVertices(): number; + numVertices(): number; + setVerticesLength(length: number): void; + getVertices(): Float32Array; + maxIndices(): number; + numIndices(): number; + setIndicesLength(length: number): void; + getIndices(): Uint16Array; + getVertexSizeInFloats(): number; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, attributes: VertexAttribute[], maxVertices: number, maxIndices: number); + setVertices(vertices: Array): void; + setIndices(indices: Array): void; + draw(shader: Shader, primitiveType: number): void; + drawWithOffset(shader: Shader, primitiveType: number, offset: number, count: number): void; + bind(shader: Shader): void; + unbind(shader: Shader): void; + private update(); + restore(): void; + dispose(): void; + } + class VertexAttribute { + name: string; + type: VertexAttributeType; + numElements: number; + constructor(name: string, type: VertexAttributeType, numElements: number); + } + class Position2Attribute extends VertexAttribute { + constructor(); + } + class Position3Attribute extends VertexAttribute { + constructor(); + } + class TexCoordAttribute extends VertexAttribute { + constructor(unit?: number); + } + class ColorAttribute extends VertexAttribute { + constructor(); + } + class Color2Attribute extends VertexAttribute { + constructor(); + } + enum VertexAttributeType { + Float = 0, + } } declare module spine.webgl { - class PolygonBatcher implements Disposable { - private context; - private drawCalls; - private isDrawing; - private mesh; - private shader; - private lastTexture; - private verticesLength; - private indicesLength; - private srcBlend; - private dstBlend; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean, maxVertices?: number); - begin(shader: Shader): void; - setBlendMode(srcBlend: number, dstBlend: number): void; - draw(texture: GLTexture, vertices: ArrayLike, indices: Array): void; - private flush(); - end(): void; - getDrawCalls(): number; - dispose(): void; - } + class PolygonBatcher implements Disposable { + private context; + private drawCalls; + private isDrawing; + private mesh; + private shader; + private lastTexture; + private verticesLength; + private indicesLength; + private srcBlend; + private dstBlend; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean, maxVertices?: number); + begin(shader: Shader): void; + setBlendMode(srcBlend: number, dstBlend: number): void; + draw(texture: GLTexture, vertices: ArrayLike, indices: Array): void; + private flush(); + end(): void; + getDrawCalls(): number; + dispose(): void; + } } declare module spine.webgl { - class SceneRenderer implements Disposable { - context: ManagedWebGLRenderingContext; - canvas: HTMLCanvasElement; - camera: OrthoCamera; - batcher: PolygonBatcher; - private twoColorTint; - private batcherShader; - private shapes; - private shapesShader; - private activeRenderer; - private skeletonRenderer; - private skeletonDebugRenderer; - private QUAD; - private QUAD_TRIANGLES; - private WHITE; - constructor(canvas: HTMLCanvasElement, context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean); - begin(): void; - drawSkeleton(skeleton: Skeleton, premultipliedAlpha?: boolean): void; - drawSkeletonDebug(skeleton: Skeleton, premultipliedAlpha?: boolean, ignoredBones?: Array): void; - drawTexture(texture: GLTexture, x: number, y: number, width: number, height: number, color?: Color): void; - drawTextureRotated(texture: GLTexture, x: number, y: number, width: number, height: number, pivotX: number, pivotY: number, angle: number, color?: Color, premultipliedAlpha?: boolean): void; - drawRegion(region: TextureAtlasRegion, x: number, y: number, width: number, height: number, color?: Color, premultipliedAlpha?: boolean): void; - line(x: number, y: number, x2: number, y2: number, color?: Color, color2?: Color): void; - triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; - quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; - rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; - rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; - polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; - circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; - curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; - end(): void; - resize(resizeMode: ResizeMode): void; - private enableRenderer(renderer); - dispose(): void; - } - enum ResizeMode { - Stretch = 0, - Expand = 1, - Fit = 2, - } + class SceneRenderer implements Disposable { + context: ManagedWebGLRenderingContext; + canvas: HTMLCanvasElement; + camera: OrthoCamera; + batcher: PolygonBatcher; + private twoColorTint; + private batcherShader; + private shapes; + private shapesShader; + private activeRenderer; + private skeletonRenderer; + private skeletonDebugRenderer; + private QUAD; + private QUAD_TRIANGLES; + private WHITE; + constructor(canvas: HTMLCanvasElement, context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean); + begin(): void; + drawSkeleton(skeleton: Skeleton, premultipliedAlpha?: boolean): void; + drawSkeletonDebug(skeleton: Skeleton, premultipliedAlpha?: boolean, ignoredBones?: Array): void; + drawTexture(texture: GLTexture, x: number, y: number, width: number, height: number, color?: Color): void; + drawTextureRotated(texture: GLTexture, x: number, y: number, width: number, height: number, pivotX: number, pivotY: number, angle: number, color?: Color, premultipliedAlpha?: boolean): void; + drawRegion(region: TextureAtlasRegion, x: number, y: number, width: number, height: number, color?: Color, premultipliedAlpha?: boolean): void; + line(x: number, y: number, x2: number, y2: number, color?: Color, color2?: Color): void; + triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; + quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; + rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; + rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; + polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; + circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; + curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; + end(): void; + resize(resizeMode: ResizeMode): void; + private enableRenderer(renderer); + dispose(): void; + } + enum ResizeMode { + Stretch = 0, + Expand = 1, + Fit = 2, + } } declare module spine.webgl { - class Shader implements Disposable, Restorable { - private vertexShader; - private fragmentShader; - static MVP_MATRIX: string; - static POSITION: string; - static COLOR: string; - static COLOR2: string; - static TEXCOORDS: string; - static SAMPLER: string; - private context; - private vs; - private fs; - private program; - private tmp2x2; - private tmp3x3; - private tmp4x4; - getProgram(): WebGLProgram; - getVertexShader(): string; - getFragmentShader(): string; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, vertexShader: string, fragmentShader: string); - private compile(); - private compileShader(type, source); - private compileProgram(vs, fs); - restore(): void; - bind(): void; - unbind(): void; - setUniformi(uniform: string, value: number): void; - setUniformf(uniform: string, value: number): void; - setUniform2f(uniform: string, value: number, value2: number): void; - setUniform3f(uniform: string, value: number, value2: number, value3: number): void; - setUniform4f(uniform: string, value: number, value2: number, value3: number, value4: number): void; - setUniform2x2f(uniform: string, value: ArrayLike): void; - setUniform3x3f(uniform: string, value: ArrayLike): void; - setUniform4x4f(uniform: string, value: ArrayLike): void; - getUniformLocation(uniform: string): WebGLUniformLocation; - getAttributeLocation(attribute: string): number; - dispose(): void; - static newColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; - static newTwoColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; - static newColored(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; - } + class Shader implements Disposable, Restorable { + private vertexShader; + private fragmentShader; + static MVP_MATRIX: string; + static POSITION: string; + static COLOR: string; + static COLOR2: string; + static TEXCOORDS: string; + static SAMPLER: string; + private context; + private vs; + private fs; + private program; + private tmp2x2; + private tmp3x3; + private tmp4x4; + getProgram(): WebGLProgram; + getVertexShader(): string; + getFragmentShader(): string; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, vertexShader: string, fragmentShader: string); + private compile(); + private compileShader(type, source); + private compileProgram(vs, fs); + restore(): void; + bind(): void; + unbind(): void; + setUniformi(uniform: string, value: number): void; + setUniformf(uniform: string, value: number): void; + setUniform2f(uniform: string, value: number, value2: number): void; + setUniform3f(uniform: string, value: number, value2: number, value3: number): void; + setUniform4f(uniform: string, value: number, value2: number, value3: number, value4: number): void; + setUniform2x2f(uniform: string, value: ArrayLike): void; + setUniform3x3f(uniform: string, value: ArrayLike): void; + setUniform4x4f(uniform: string, value: ArrayLike): void; + getUniformLocation(uniform: string): WebGLUniformLocation; + getAttributeLocation(attribute: string): number; + dispose(): void; + static newColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; + static newTwoColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; + static newColored(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; + } } declare module spine.webgl { - class ShapeRenderer implements Disposable { - private context; - private isDrawing; - private mesh; - private shapeType; - private color; - private shader; - private vertexIndex; - private tmp; - private srcBlend; - private dstBlend; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, maxVertices?: number); - begin(shader: Shader): void; - setBlendMode(srcBlend: number, dstBlend: number): void; - setColor(color: Color): void; - setColorWith(r: number, g: number, b: number, a: number): void; - point(x: number, y: number, color?: Color): void; - line(x: number, y: number, x2: number, y2: number, color?: Color): void; - triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; - quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; - rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; - rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; - x(x: number, y: number, size: number): void; - polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; - circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; - curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; - private vertex(x, y, color); - end(): void; - private flush(); - private check(shapeType, numVertices); - dispose(): void; - } - enum ShapeType { - Point = 0, - Line = 1, - Filled = 4, - } + class ShapeRenderer implements Disposable { + private context; + private isDrawing; + private mesh; + private shapeType; + private color; + private shader; + private vertexIndex; + private tmp; + private srcBlend; + private dstBlend; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, maxVertices?: number); + begin(shader: Shader): void; + setBlendMode(srcBlend: number, dstBlend: number): void; + setColor(color: Color): void; + setColorWith(r: number, g: number, b: number, a: number): void; + point(x: number, y: number, color?: Color): void; + line(x: number, y: number, x2: number, y2: number, color?: Color): void; + triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; + quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; + rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; + rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; + x(x: number, y: number, size: number): void; + polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; + circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; + curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; + private vertex(x, y, color); + end(): void; + private flush(); + private check(shapeType, numVertices); + dispose(): void; + } + enum ShapeType { + Point = 0, + Line = 1, + Filled = 4, + } } declare module spine.webgl { - class SkeletonDebugRenderer implements Disposable { - boneLineColor: Color; - boneOriginColor: Color; - attachmentLineColor: Color; - triangleLineColor: Color; - pathColor: Color; - clipColor: Color; - aabbColor: Color; - drawBones: boolean; - drawRegionAttachments: boolean; - drawBoundingBoxes: boolean; - drawMeshHull: boolean; - drawMeshTriangles: boolean; - drawPaths: boolean; - drawSkeletonXY: boolean; - drawClipping: boolean; - premultipliedAlpha: boolean; - scale: number; - boneWidth: number; - private context; - private bounds; - private temp; - private vertices; - private static LIGHT_GRAY; - private static GREEN; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext); - draw(shapes: ShapeRenderer, skeleton: Skeleton, ignoredBones?: Array): void; - dispose(): void; - } + class SkeletonDebugRenderer implements Disposable { + boneLineColor: Color; + boneOriginColor: Color; + attachmentLineColor: Color; + triangleLineColor: Color; + pathColor: Color; + clipColor: Color; + aabbColor: Color; + drawBones: boolean; + drawRegionAttachments: boolean; + drawBoundingBoxes: boolean; + drawMeshHull: boolean; + drawMeshTriangles: boolean; + drawPaths: boolean; + drawSkeletonXY: boolean; + drawClipping: boolean; + premultipliedAlpha: boolean; + scale: number; + boneWidth: number; + private context; + private bounds; + private temp; + private vertices; + private static LIGHT_GRAY; + private static GREEN; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext); + draw(shapes: ShapeRenderer, skeleton: Skeleton, ignoredBones?: Array): void; + dispose(): void; + } } declare module spine.webgl { - class SkeletonRenderer { - static QUAD_TRIANGLES: number[]; - premultipliedAlpha: boolean; - private tempColor; - private tempColor2; - private vertices; - private vertexSize; - private twoColorTint; - private renderable; - private clipper; - constructor(context: ManagedWebGLRenderingContext, twoColorTint?: boolean); - draw(batcher: PolygonBatcher, skeleton: Skeleton): void; - } + class SkeletonRenderer { + static QUAD_TRIANGLES: number[]; + premultipliedAlpha: boolean; + private tempColor; + private tempColor2; + private vertices; + private vertexSize; + private twoColorTint; + private renderable; + private clipper; + constructor(context: ManagedWebGLRenderingContext, twoColorTint?: boolean); + draw(batcher: PolygonBatcher, skeleton: Skeleton): void; + } } declare module spine.webgl { - class Vector3 { - x: number; - y: number; - z: number; - constructor(x?: number, y?: number, z?: number); - setFrom(v: Vector3): Vector3; - set(x: number, y: number, z: number): Vector3; - add(v: Vector3): Vector3; - sub(v: Vector3): Vector3; - scale(s: number): Vector3; - normalize(): Vector3; - cross(v: Vector3): Vector3; - multiply(matrix: Matrix4): Vector3; - project(matrix: Matrix4): Vector3; - dot(v: Vector3): number; - length(): number; - distance(v: Vector3): number; - } + class Vector3 { + x: number; + y: number; + z: number; + constructor(x?: number, y?: number, z?: number); + setFrom(v: Vector3): Vector3; + set(x: number, y: number, z: number): Vector3; + add(v: Vector3): Vector3; + sub(v: Vector3): Vector3; + scale(s: number): Vector3; + normalize(): Vector3; + cross(v: Vector3): Vector3; + multiply(matrix: Matrix4): Vector3; + project(matrix: Matrix4): Vector3; + dot(v: Vector3): number; + length(): number; + distance(v: Vector3): number; + } } declare module spine.webgl { - class ManagedWebGLRenderingContext { - canvas: HTMLCanvasElement; - gl: WebGLRenderingContext; - private restorables; - constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext, contextConfig?: any); - addRestorable(restorable: Restorable): void; - removeRestorable(restorable: Restorable): void; - } - class WebGLBlendModeConverter { - static ZERO: number; - static ONE: number; - static SRC_COLOR: number; - static ONE_MINUS_SRC_COLOR: number; - static SRC_ALPHA: number; - static ONE_MINUS_SRC_ALPHA: number; - static DST_ALPHA: number; - static ONE_MINUS_DST_ALPHA: number; - static DST_COLOR: number; - static getDestGLBlendMode(blendMode: BlendMode): number; - static getSourceGLBlendMode(blendMode: BlendMode, premultipliedAlpha?: boolean): number; - } + class ManagedWebGLRenderingContext { + canvas: HTMLCanvasElement; + gl: WebGLRenderingContext; + private restorables; + constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext, contextConfig?: any); + addRestorable(restorable: Restorable): void; + removeRestorable(restorable: Restorable): void; + } + class WebGLBlendModeConverter { + static ZERO: number; + static ONE: number; + static SRC_COLOR: number; + static ONE_MINUS_SRC_COLOR: number; + static SRC_ALPHA: number; + static ONE_MINUS_SRC_ALPHA: number; + static DST_ALPHA: number; + static ONE_MINUS_DST_ALPHA: number; + static DST_COLOR: number; + static getDestGLBlendMode(blendMode: BlendMode): number; + static getSourceGLBlendMode(blendMode: BlendMode, premultipliedAlpha?: boolean): number; + } } declare module spine { - class SpineWidget { - skeleton: Skeleton; - state: AnimationState; - context: spine.webgl.ManagedWebGLRenderingContext; - canvas: HTMLCanvasElement; - debugRenderer: spine.webgl.SkeletonDebugRenderer; - private config; - private assetManager; - private shader; - private batcher; - private shapes; - private debugShader; - private mvp; - private skeletonRenderer; - private paused; - private lastFrameTime; - private backgroundColor; - private loaded; - private bounds; - constructor(element: HTMLElement | string, config: SpineWidgetConfig); - private validateConfig(config); - private load(); - private render(); - private resize(); - pause(): void; - play(): void; - isPlaying(): boolean; - setAnimation(animationName: string, animationStateListener?: AnimationStateListener2): void; - static loadWidgets(): void; - static loadWidget(widget: HTMLElement): void; - static pageLoaded: boolean; - private static ready(); - static setupDOMListener(): void; - } - class SpineWidgetConfig { - json: string; - jsonContent: any; - atlas: string; - atlasContent: string; - animation: string; - imagesPath: string; - atlasPages: string[]; - atlasPagesContent: string[]; - skin: string; - loop: boolean; - scale: number; - x: number; - y: number; - alpha: boolean; - fitToCanvas: boolean; - backgroundColor: string; - premultipliedAlpha: boolean; - debug: boolean; - success: (widget: SpineWidget) => void; - error: (widget: SpineWidget, msg: string) => void; - } + class SpineWidget { + skeleton: Skeleton; + state: AnimationState; + context: spine.webgl.ManagedWebGLRenderingContext; + canvas: HTMLCanvasElement; + debugRenderer: spine.webgl.SkeletonDebugRenderer; + private config; + private assetManager; + private shader; + private batcher; + private shapes; + private debugShader; + private mvp; + private skeletonRenderer; + private paused; + private lastFrameTime; + private backgroundColor; + private loaded; + private bounds; + constructor(element: HTMLElement | string, config: SpineWidgetConfig); + private validateConfig(config); + private load(); + private render(); + private resize(); + pause(): void; + play(): void; + isPlaying(): boolean; + setAnimation(animationName: string, animationStateListener?: AnimationStateListener2): void; + static loadWidgets(): void; + static loadWidget(widget: HTMLElement): void; + static pageLoaded: boolean; + private static ready(); + static setupDOMListener(): void; + } + class SpineWidgetConfig { + json: string; + jsonContent: any; + atlas: string; + atlasContent: string; + animation: string; + imagesPath: string; + atlasPages: string[]; + atlasPagesContent: string[]; + skin: string; + loop: boolean; + scale: number; + x: number; + y: number; + alpha: boolean; + fitToCanvas: boolean; + backgroundColor: string; + premultipliedAlpha: boolean; + debug: boolean; + success: (widget: SpineWidget) => void; + error: (widget: SpineWidget, msg: string) => void; + } } diff --git a/spine-ts/build/spine-all.js b/spine-ts/build/spine-all.js index c91e20298..2b6bbe7a5 100644 --- a/spine-ts/build/spine-all.js +++ b/spine-ts/build/spine-all.js @@ -1,9461 +1,9461 @@ var spine; (function (spine) { - var AssetManager = (function () { - function AssetManager(textureLoader, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.assets = {}; - this.errors = {}; - this.toLoad = 0; - this.loaded = 0; - this.textureLoader = textureLoader; - this.pathPrefix = pathPrefix; - } - AssetManager.prototype.loadText = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.assets[path] = request.responseText; - if (success) - success(path, request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - if (error) - error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); - } - _this.toLoad--; - _this.loaded++; - } - }; - request.open("GET", path, true); - request.send(); - }; - AssetManager.prototype.loadTexture = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = path; - }; - AssetManager.prototype.loadTextureData = function (path, data, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = data; - }; - AssetManager.prototype.get = function (path) { - path = this.pathPrefix + path; - return this.assets[path]; - }; - AssetManager.prototype.remove = function (path) { - path = this.pathPrefix + path; - var asset = this.assets[path]; - if (asset.dispose) - asset.dispose(); - this.assets[path] = null; - }; - AssetManager.prototype.removeAll = function () { - for (var key in this.assets) { - var asset = this.assets[key]; - if (asset.dispose) - asset.dispose(); - } - this.assets = {}; - }; - AssetManager.prototype.isLoadingComplete = function () { - return this.toLoad == 0; - }; - AssetManager.prototype.getToLoad = function () { - return this.toLoad; - }; - AssetManager.prototype.getLoaded = function () { - return this.loaded; - }; - AssetManager.prototype.dispose = function () { - this.removeAll(); - }; - AssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - AssetManager.prototype.getErrors = function () { - return this.errors; - }; - return AssetManager; - }()); - spine.AssetManager = AssetManager; + var AssetManager = (function () { + function AssetManager(textureLoader, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.assets = {}; + this.errors = {}; + this.toLoad = 0; + this.loaded = 0; + this.textureLoader = textureLoader; + this.pathPrefix = pathPrefix; + } + AssetManager.prototype.loadText = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.assets[path] = request.responseText; + if (success) + success(path, request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + if (error) + error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); + } + _this.toLoad--; + _this.loaded++; + } + }; + request.open("GET", path, true); + request.send(); + }; + AssetManager.prototype.loadTexture = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = path; + }; + AssetManager.prototype.loadTextureData = function (path, data, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = data; + }; + AssetManager.prototype.get = function (path) { + path = this.pathPrefix + path; + return this.assets[path]; + }; + AssetManager.prototype.remove = function (path) { + path = this.pathPrefix + path; + var asset = this.assets[path]; + if (asset.dispose) + asset.dispose(); + this.assets[path] = null; + }; + AssetManager.prototype.removeAll = function () { + for (var key in this.assets) { + var asset = this.assets[key]; + if (asset.dispose) + asset.dispose(); + } + this.assets = {}; + }; + AssetManager.prototype.isLoadingComplete = function () { + return this.toLoad == 0; + }; + AssetManager.prototype.getToLoad = function () { + return this.toLoad; + }; + AssetManager.prototype.getLoaded = function () { + return this.loaded; + }; + AssetManager.prototype.dispose = function () { + this.removeAll(); + }; + AssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + AssetManager.prototype.getErrors = function () { + return this.errors; + }; + return AssetManager; + }()); + spine.AssetManager = AssetManager; })(spine || (spine = {})); var __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var spine; (function (spine) { - var canvas; - (function (canvas) { - var AssetManager = (function (_super) { - __extends(AssetManager, _super); - function AssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - _super.call(this, function (image) { return new spine.canvas.CanvasTexture(image); }, pathPrefix); - } - return AssetManager; - }(spine.AssetManager)); - canvas.AssetManager = AssetManager; - })(canvas = spine.canvas || (spine.canvas = {})); + var canvas; + (function (canvas) { + var AssetManager = (function (_super) { + __extends(AssetManager, _super); + function AssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + _super.call(this, function (image) { return new spine.canvas.CanvasTexture(image); }, pathPrefix); + } + return AssetManager; + }(spine.AssetManager)); + canvas.AssetManager = AssetManager; + })(canvas = spine.canvas || (spine.canvas = {})); })(spine || (spine = {})); var spine; (function (spine) { - var Texture = (function () { - function Texture(image) { - this._image = image; - } - Texture.prototype.getImage = function () { - return this._image; - }; - Texture.filterFromString = function (text) { - switch (text.toLowerCase()) { - case "nearest": return TextureFilter.Nearest; - case "linear": return TextureFilter.Linear; - case "mipmap": return TextureFilter.MipMap; - case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; - case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; - case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; - case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; - default: throw new Error("Unknown texture filter " + text); - } - }; - Texture.wrapFromString = function (text) { - switch (text.toLowerCase()) { - case "mirroredtepeat": return TextureWrap.MirroredRepeat; - case "clamptoedge": return TextureWrap.ClampToEdge; - case "repeat": return TextureWrap.Repeat; - default: throw new Error("Unknown texture wrap " + text); - } - }; - return Texture; - }()); - spine.Texture = Texture; - (function (TextureFilter) { - TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; - TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; - TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; - TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; - TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; - TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; - TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; - })(spine.TextureFilter || (spine.TextureFilter = {})); - var TextureFilter = spine.TextureFilter; - (function (TextureWrap) { - TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; - TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; - TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; - })(spine.TextureWrap || (spine.TextureWrap = {})); - var TextureWrap = spine.TextureWrap; - var TextureRegion = (function () { - function TextureRegion() { - this.u = 0; - this.v = 0; - this.u2 = 0; - this.v2 = 0; - this.width = 0; - this.height = 0; - this.rotate = false; - this.offsetX = 0; - this.offsetY = 0; - this.originalWidth = 0; - this.originalHeight = 0; - } - return TextureRegion; - }()); - spine.TextureRegion = TextureRegion; + var Texture = (function () { + function Texture(image) { + this._image = image; + } + Texture.prototype.getImage = function () { + return this._image; + }; + Texture.filterFromString = function (text) { + switch (text.toLowerCase()) { + case "nearest": return TextureFilter.Nearest; + case "linear": return TextureFilter.Linear; + case "mipmap": return TextureFilter.MipMap; + case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; + case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; + case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; + case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; + default: throw new Error("Unknown texture filter " + text); + } + }; + Texture.wrapFromString = function (text) { + switch (text.toLowerCase()) { + case "mirroredtepeat": return TextureWrap.MirroredRepeat; + case "clamptoedge": return TextureWrap.ClampToEdge; + case "repeat": return TextureWrap.Repeat; + default: throw new Error("Unknown texture wrap " + text); + } + }; + return Texture; + }()); + spine.Texture = Texture; + (function (TextureFilter) { + TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; + TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; + TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; + TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; + TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; + TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; + TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; + })(spine.TextureFilter || (spine.TextureFilter = {})); + var TextureFilter = spine.TextureFilter; + (function (TextureWrap) { + TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; + TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; + TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; + })(spine.TextureWrap || (spine.TextureWrap = {})); + var TextureWrap = spine.TextureWrap; + var TextureRegion = (function () { + function TextureRegion() { + this.u = 0; + this.v = 0; + this.u2 = 0; + this.v2 = 0; + this.width = 0; + this.height = 0; + this.rotate = false; + this.offsetX = 0; + this.offsetY = 0; + this.originalWidth = 0; + this.originalHeight = 0; + } + return TextureRegion; + }()); + spine.TextureRegion = TextureRegion; })(spine || (spine = {})); var spine; (function (spine) { - var canvas; - (function (canvas) { - var CanvasTexture = (function (_super) { - __extends(CanvasTexture, _super); - function CanvasTexture(image) { - _super.call(this, image); - } - CanvasTexture.prototype.setFilters = function (minFilter, magFilter) { }; - CanvasTexture.prototype.setWraps = function (uWrap, vWrap) { }; - CanvasTexture.prototype.dispose = function () { }; - return CanvasTexture; - }(spine.Texture)); - canvas.CanvasTexture = CanvasTexture; - })(canvas = spine.canvas || (spine.canvas = {})); + var canvas; + (function (canvas) { + var CanvasTexture = (function (_super) { + __extends(CanvasTexture, _super); + function CanvasTexture(image) { + _super.call(this, image); + } + CanvasTexture.prototype.setFilters = function (minFilter, magFilter) { }; + CanvasTexture.prototype.setWraps = function (uWrap, vWrap) { }; + CanvasTexture.prototype.dispose = function () { }; + return CanvasTexture; + }(spine.Texture)); + canvas.CanvasTexture = CanvasTexture; + })(canvas = spine.canvas || (spine.canvas = {})); })(spine || (spine = {})); var spine; (function (spine) { - var canvas; - (function (canvas) { - var SkeletonRenderer = (function () { - function SkeletonRenderer(context) { - this.triangleRendering = false; - this.debugRendering = false; - this.vertices = spine.Utils.newFloatArray(8 * 1024); - this.tempColor = new spine.Color(); - this.ctx = context; - } - SkeletonRenderer.prototype.draw = function (skeleton) { - if (this.triangleRendering) - this.drawTriangles(skeleton); - else - this.drawImages(skeleton); - }; - SkeletonRenderer.prototype.drawImages = function (skeleton) { - var ctx = this.ctx; - var drawOrder = skeleton.drawOrder; - if (this.debugRendering) - ctx.strokeStyle = "green"; - ctx.save(); - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var regionAttachment = null; - var region = null; - var image = null; - if (attachment instanceof spine.RegionAttachment) { - regionAttachment = attachment; - region = regionAttachment.region; - image = region.texture.getImage(); - } - else - continue; - var skeleton_1 = slot.bone.skeleton; - var skeletonColor = skeleton_1.color; - var slotColor = slot.color; - var regionColor = regionAttachment.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * regionColor.r, skeletonColor.g * slotColor.g * regionColor.g, skeletonColor.b * slotColor.b * regionColor.b, alpha); - var att = attachment; - var bone = slot.bone; - var w = region.width; - var h = region.height; - ctx.save(); - ctx.transform(bone.a, bone.c, bone.b, bone.d, bone.worldX, bone.worldY); - ctx.translate(attachment.offset[0], attachment.offset[1]); - ctx.rotate(attachment.rotation * Math.PI / 180); - ctx.scale(attachment.scaleX, attachment.scaleY); - ctx.translate(w / 2, h / 2); - if (attachment.region.rotate) { - var t = w; - w = h; - h = t; - ctx.rotate(-Math.PI / 2); - } - ctx.scale(1, -1); - ctx.translate(-w / 2, -h / 2); - if (color.r != 1 || color.g != 1 || color.b != 1 || color.a != 1) { - ctx.globalAlpha = color.a; - } - ctx.drawImage(image, region.x, region.y, w, h, 0, 0, w, h); - if (this.debugRendering) - ctx.strokeRect(0, 0, w, h); - ctx.restore(); - } - ctx.restore(); - }; - SkeletonRenderer.prototype.drawTriangles = function (skeleton) { - var blendMode = null; - var vertices = this.vertices; - var triangles = null; - var drawOrder = skeleton.drawOrder; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var texture = null; - var region = null; - if (attachment instanceof spine.RegionAttachment) { - var regionAttachment = attachment; - vertices = this.computeRegionVertices(slot, regionAttachment, false); - triangles = SkeletonRenderer.QUAD_TRIANGLES; - region = regionAttachment.region; - texture = region.texture.getImage(); - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - vertices = this.computeMeshVertices(slot, mesh, false); - triangles = mesh.triangles; - texture = mesh.region.renderObject.texture.getImage(); - } - else - continue; - if (texture != null) { - var slotBlendMode = slot.data.blendMode; - if (slotBlendMode != blendMode) { - blendMode = slotBlendMode; - } - var ctx = this.ctx; - for (var j = 0; j < triangles.length; j += 3) { - var t1 = triangles[j] * 8, t2 = triangles[j + 1] * 8, t3 = triangles[j + 2] * 8; - var x0 = vertices[t1], y0 = vertices[t1 + 1], u0 = vertices[t1 + 6], v0 = vertices[t1 + 7]; - var x1 = vertices[t2], y1 = vertices[t2 + 1], u1 = vertices[t2 + 6], v1 = vertices[t2 + 7]; - var x2 = vertices[t3], y2 = vertices[t3 + 1], u2 = vertices[t3 + 6], v2 = vertices[t3 + 7]; - this.drawTriangle(texture, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); - if (this.debugRendering) { - ctx.strokeStyle = "green"; - ctx.beginPath(); - ctx.moveTo(x0, y0); - ctx.lineTo(x1, y1); - ctx.lineTo(x2, y2); - ctx.lineTo(x0, y0); - ctx.stroke(); - } - } - } - } - }; - SkeletonRenderer.prototype.drawTriangle = function (img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2) { - var ctx = this.ctx; - u0 *= img.width; - v0 *= img.height; - u1 *= img.width; - v1 *= img.height; - u2 *= img.width; - v2 *= img.height; - ctx.beginPath(); - ctx.moveTo(x0, y0); - ctx.lineTo(x1, y1); - ctx.lineTo(x2, y2); - ctx.closePath(); - x1 -= x0; - y1 -= y0; - x2 -= x0; - y2 -= y0; - u1 -= u0; - v1 -= v0; - u2 -= u0; - v2 -= v0; - var det = 1 / (u1 * v2 - u2 * v1), a = (v2 * x1 - v1 * x2) * det, b = (v2 * y1 - v1 * y2) * det, c = (u1 * x2 - u2 * x1) * det, d = (u1 * y2 - u2 * y1) * det, e = x0 - a * u0 - c * v0, f = y0 - b * u0 - d * v0; - ctx.save(); - ctx.transform(a, b, c, d, e, f); - ctx.clip(); - ctx.drawImage(img, 0, 0); - ctx.restore(); - }; - SkeletonRenderer.prototype.computeRegionVertices = function (slot, region, pma) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var regionColor = region.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var multiplier = pma ? alpha : 1; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); - region.computeWorldVertices(slot.bone, this.vertices, 0, SkeletonRenderer.VERTEX_SIZE); - var vertices = this.vertices; - var uvs = region.uvs; - vertices[spine.RegionAttachment.C1R] = color.r; - vertices[spine.RegionAttachment.C1G] = color.g; - vertices[spine.RegionAttachment.C1B] = color.b; - vertices[spine.RegionAttachment.C1A] = color.a; - vertices[spine.RegionAttachment.U1] = uvs[0]; - vertices[spine.RegionAttachment.V1] = uvs[1]; - vertices[spine.RegionAttachment.C2R] = color.r; - vertices[spine.RegionAttachment.C2G] = color.g; - vertices[spine.RegionAttachment.C2B] = color.b; - vertices[spine.RegionAttachment.C2A] = color.a; - vertices[spine.RegionAttachment.U2] = uvs[2]; - vertices[spine.RegionAttachment.V2] = uvs[3]; - vertices[spine.RegionAttachment.C3R] = color.r; - vertices[spine.RegionAttachment.C3G] = color.g; - vertices[spine.RegionAttachment.C3B] = color.b; - vertices[spine.RegionAttachment.C3A] = color.a; - vertices[spine.RegionAttachment.U3] = uvs[4]; - vertices[spine.RegionAttachment.V3] = uvs[5]; - vertices[spine.RegionAttachment.C4R] = color.r; - vertices[spine.RegionAttachment.C4G] = color.g; - vertices[spine.RegionAttachment.C4B] = color.b; - vertices[spine.RegionAttachment.C4A] = color.a; - vertices[spine.RegionAttachment.U4] = uvs[6]; - vertices[spine.RegionAttachment.V4] = uvs[7]; - return vertices; - }; - SkeletonRenderer.prototype.computeMeshVertices = function (slot, mesh, pma) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var regionColor = mesh.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var multiplier = pma ? alpha : 1; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); - var numVertices = mesh.worldVerticesLength / 2; - if (this.vertices.length < mesh.worldVerticesLength) { - this.vertices = spine.Utils.newFloatArray(mesh.worldVerticesLength); - } - var vertices = this.vertices; - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, SkeletonRenderer.VERTEX_SIZE); - var uvs = mesh.uvs; - for (var i = 0, n = numVertices, u = 0, v = 2; i < n; i++) { - vertices[v++] = color.r; - vertices[v++] = color.g; - vertices[v++] = color.b; - vertices[v++] = color.a; - vertices[v++] = uvs[u++]; - vertices[v++] = uvs[u++]; - v += 2; - } - return vertices; - }; - SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - SkeletonRenderer.VERTEX_SIZE = 2 + 2 + 4; - return SkeletonRenderer; - }()); - canvas.SkeletonRenderer = SkeletonRenderer; - })(canvas = spine.canvas || (spine.canvas = {})); + var canvas; + (function (canvas) { + var SkeletonRenderer = (function () { + function SkeletonRenderer(context) { + this.triangleRendering = false; + this.debugRendering = false; + this.vertices = spine.Utils.newFloatArray(8 * 1024); + this.tempColor = new spine.Color(); + this.ctx = context; + } + SkeletonRenderer.prototype.draw = function (skeleton) { + if (this.triangleRendering) + this.drawTriangles(skeleton); + else + this.drawImages(skeleton); + }; + SkeletonRenderer.prototype.drawImages = function (skeleton) { + var ctx = this.ctx; + var drawOrder = skeleton.drawOrder; + if (this.debugRendering) + ctx.strokeStyle = "green"; + ctx.save(); + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var regionAttachment = null; + var region = null; + var image = null; + if (attachment instanceof spine.RegionAttachment) { + regionAttachment = attachment; + region = regionAttachment.region; + image = region.texture.getImage(); + } + else + continue; + var skeleton_1 = slot.bone.skeleton; + var skeletonColor = skeleton_1.color; + var slotColor = slot.color; + var regionColor = regionAttachment.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * regionColor.r, skeletonColor.g * slotColor.g * regionColor.g, skeletonColor.b * slotColor.b * regionColor.b, alpha); + var att = attachment; + var bone = slot.bone; + var w = region.width; + var h = region.height; + ctx.save(); + ctx.transform(bone.a, bone.c, bone.b, bone.d, bone.worldX, bone.worldY); + ctx.translate(attachment.offset[0], attachment.offset[1]); + ctx.rotate(attachment.rotation * Math.PI / 180); + ctx.scale(attachment.scaleX, attachment.scaleY); + ctx.translate(w / 2, h / 2); + if (attachment.region.rotate) { + var t = w; + w = h; + h = t; + ctx.rotate(-Math.PI / 2); + } + ctx.scale(1, -1); + ctx.translate(-w / 2, -h / 2); + if (color.r != 1 || color.g != 1 || color.b != 1 || color.a != 1) { + ctx.globalAlpha = color.a; + } + ctx.drawImage(image, region.x, region.y, w, h, 0, 0, w, h); + if (this.debugRendering) + ctx.strokeRect(0, 0, w, h); + ctx.restore(); + } + ctx.restore(); + }; + SkeletonRenderer.prototype.drawTriangles = function (skeleton) { + var blendMode = null; + var vertices = this.vertices; + var triangles = null; + var drawOrder = skeleton.drawOrder; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var texture = null; + var region = null; + if (attachment instanceof spine.RegionAttachment) { + var regionAttachment = attachment; + vertices = this.computeRegionVertices(slot, regionAttachment, false); + triangles = SkeletonRenderer.QUAD_TRIANGLES; + region = regionAttachment.region; + texture = region.texture.getImage(); + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + vertices = this.computeMeshVertices(slot, mesh, false); + triangles = mesh.triangles; + texture = mesh.region.renderObject.texture.getImage(); + } + else + continue; + if (texture != null) { + var slotBlendMode = slot.data.blendMode; + if (slotBlendMode != blendMode) { + blendMode = slotBlendMode; + } + var ctx = this.ctx; + for (var j = 0; j < triangles.length; j += 3) { + var t1 = triangles[j] * 8, t2 = triangles[j + 1] * 8, t3 = triangles[j + 2] * 8; + var x0 = vertices[t1], y0 = vertices[t1 + 1], u0 = vertices[t1 + 6], v0 = vertices[t1 + 7]; + var x1 = vertices[t2], y1 = vertices[t2 + 1], u1 = vertices[t2 + 6], v1 = vertices[t2 + 7]; + var x2 = vertices[t3], y2 = vertices[t3 + 1], u2 = vertices[t3 + 6], v2 = vertices[t3 + 7]; + this.drawTriangle(texture, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); + if (this.debugRendering) { + ctx.strokeStyle = "green"; + ctx.beginPath(); + ctx.moveTo(x0, y0); + ctx.lineTo(x1, y1); + ctx.lineTo(x2, y2); + ctx.lineTo(x0, y0); + ctx.stroke(); + } + } + } + } + }; + SkeletonRenderer.prototype.drawTriangle = function (img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2) { + var ctx = this.ctx; + u0 *= img.width; + v0 *= img.height; + u1 *= img.width; + v1 *= img.height; + u2 *= img.width; + v2 *= img.height; + ctx.beginPath(); + ctx.moveTo(x0, y0); + ctx.lineTo(x1, y1); + ctx.lineTo(x2, y2); + ctx.closePath(); + x1 -= x0; + y1 -= y0; + x2 -= x0; + y2 -= y0; + u1 -= u0; + v1 -= v0; + u2 -= u0; + v2 -= v0; + var det = 1 / (u1 * v2 - u2 * v1), a = (v2 * x1 - v1 * x2) * det, b = (v2 * y1 - v1 * y2) * det, c = (u1 * x2 - u2 * x1) * det, d = (u1 * y2 - u2 * y1) * det, e = x0 - a * u0 - c * v0, f = y0 - b * u0 - d * v0; + ctx.save(); + ctx.transform(a, b, c, d, e, f); + ctx.clip(); + ctx.drawImage(img, 0, 0); + ctx.restore(); + }; + SkeletonRenderer.prototype.computeRegionVertices = function (slot, region, pma) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var regionColor = region.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var multiplier = pma ? alpha : 1; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); + region.computeWorldVertices(slot.bone, this.vertices, 0, SkeletonRenderer.VERTEX_SIZE); + var vertices = this.vertices; + var uvs = region.uvs; + vertices[spine.RegionAttachment.C1R] = color.r; + vertices[spine.RegionAttachment.C1G] = color.g; + vertices[spine.RegionAttachment.C1B] = color.b; + vertices[spine.RegionAttachment.C1A] = color.a; + vertices[spine.RegionAttachment.U1] = uvs[0]; + vertices[spine.RegionAttachment.V1] = uvs[1]; + vertices[spine.RegionAttachment.C2R] = color.r; + vertices[spine.RegionAttachment.C2G] = color.g; + vertices[spine.RegionAttachment.C2B] = color.b; + vertices[spine.RegionAttachment.C2A] = color.a; + vertices[spine.RegionAttachment.U2] = uvs[2]; + vertices[spine.RegionAttachment.V2] = uvs[3]; + vertices[spine.RegionAttachment.C3R] = color.r; + vertices[spine.RegionAttachment.C3G] = color.g; + vertices[spine.RegionAttachment.C3B] = color.b; + vertices[spine.RegionAttachment.C3A] = color.a; + vertices[spine.RegionAttachment.U3] = uvs[4]; + vertices[spine.RegionAttachment.V3] = uvs[5]; + vertices[spine.RegionAttachment.C4R] = color.r; + vertices[spine.RegionAttachment.C4G] = color.g; + vertices[spine.RegionAttachment.C4B] = color.b; + vertices[spine.RegionAttachment.C4A] = color.a; + vertices[spine.RegionAttachment.U4] = uvs[6]; + vertices[spine.RegionAttachment.V4] = uvs[7]; + return vertices; + }; + SkeletonRenderer.prototype.computeMeshVertices = function (slot, mesh, pma) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var regionColor = mesh.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var multiplier = pma ? alpha : 1; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); + var numVertices = mesh.worldVerticesLength / 2; + if (this.vertices.length < mesh.worldVerticesLength) { + this.vertices = spine.Utils.newFloatArray(mesh.worldVerticesLength); + } + var vertices = this.vertices; + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, SkeletonRenderer.VERTEX_SIZE); + var uvs = mesh.uvs; + for (var i = 0, n = numVertices, u = 0, v = 2; i < n; i++) { + vertices[v++] = color.r; + vertices[v++] = color.g; + vertices[v++] = color.b; + vertices[v++] = color.a; + vertices[v++] = uvs[u++]; + vertices[v++] = uvs[u++]; + v += 2; + } + return vertices; + }; + SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + SkeletonRenderer.VERTEX_SIZE = 2 + 2 + 4; + return SkeletonRenderer; + }()); + canvas.SkeletonRenderer = SkeletonRenderer; + })(canvas = spine.canvas || (spine.canvas = {})); })(spine || (spine = {})); var spine; (function (spine) { - var Animation = (function () { - function Animation(name, timelines, duration) { - if (name == null) - throw new Error("name cannot be null."); - if (timelines == null) - throw new Error("timelines cannot be null."); - this.name = name; - this.timelines = timelines; - this.duration = duration; - } - Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (loop && this.duration != 0) { - time %= this.duration; - if (lastTime > 0) - lastTime %= this.duration; - } - var timelines = this.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); - }; - Animation.binarySearch = function (values, target, step) { - if (step === void 0) { step = 1; } - var low = 0; - var high = values.length / step - 2; - if (high == 0) - return step; - var current = high >>> 1; - while (true) { - if (values[(current + 1) * step] <= target) - low = current + 1; - else - high = current; - if (low == high) - return (low + 1) * step; - current = (low + high) >>> 1; - } - }; - Animation.linearSearch = function (values, target, step) { - for (var i = 0, last = values.length - step; i <= last; i += step) - if (values[i] > target) - return i; - return -1; - }; - return Animation; - }()); - spine.Animation = Animation; - (function (TimelineType) { - TimelineType[TimelineType["rotate"] = 0] = "rotate"; - TimelineType[TimelineType["translate"] = 1] = "translate"; - TimelineType[TimelineType["scale"] = 2] = "scale"; - TimelineType[TimelineType["shear"] = 3] = "shear"; - TimelineType[TimelineType["attachment"] = 4] = "attachment"; - TimelineType[TimelineType["color"] = 5] = "color"; - TimelineType[TimelineType["deform"] = 6] = "deform"; - TimelineType[TimelineType["event"] = 7] = "event"; - TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; - TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; - TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; - TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; - TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; - TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; - TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; - })(spine.TimelineType || (spine.TimelineType = {})); - var TimelineType = spine.TimelineType; - var CurveTimeline = (function () { - function CurveTimeline(frameCount) { - if (frameCount <= 0) - throw new Error("frameCount must be > 0: " + frameCount); - this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); - } - CurveTimeline.prototype.getFrameCount = function () { - return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; - }; - CurveTimeline.prototype.setLinear = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; - }; - CurveTimeline.prototype.setStepped = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; - }; - CurveTimeline.prototype.getCurveType = function (frameIndex) { - var index = frameIndex * CurveTimeline.BEZIER_SIZE; - if (index == this.curves.length) - return CurveTimeline.LINEAR; - var type = this.curves[index]; - if (type == CurveTimeline.LINEAR) - return CurveTimeline.LINEAR; - if (type == CurveTimeline.STEPPED) - return CurveTimeline.STEPPED; - return CurveTimeline.BEZIER; - }; - CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { - var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; - var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; - var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; - var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var curves = this.curves; - curves[i++] = CurveTimeline.BEZIER; - var x = dfx, y = dfy; - for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - curves[i] = x; - curves[i + 1] = y; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - x += dfx; - y += dfy; - } - }; - CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { - percent = spine.MathUtils.clamp(percent, 0, 1); - var curves = this.curves; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var type = curves[i]; - if (type == CurveTimeline.LINEAR) - return percent; - if (type == CurveTimeline.STEPPED) - return 0; - i++; - var x = 0; - for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - x = curves[i]; - if (x >= percent) { - var prevX = void 0, prevY = void 0; - if (i == start) { - prevX = 0; - prevY = 0; - } - else { - prevX = curves[i - 2]; - prevY = curves[i - 1]; - } - return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); - } - } - var y = curves[i - 1]; - return y + (1 - y) * (percent - x) / (1 - x); - }; - CurveTimeline.LINEAR = 0; - CurveTimeline.STEPPED = 1; - CurveTimeline.BEZIER = 2; - CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; - return CurveTimeline; - }()); - spine.CurveTimeline = CurveTimeline; - var RotateTimeline = (function (_super) { - __extends(RotateTimeline, _super); - function RotateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount << 1); - } - RotateTimeline.prototype.getPropertyId = function () { - return (TimelineType.rotate << 24) + this.boneIndex; - }; - RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { - frameIndex <<= 1; - this.frames[frameIndex] = time; - this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; - }; - RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { - if (setupPose) - bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; - else { - var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; - r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; - bone.rotation += r_1 * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); - var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); - var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - r = prevRotation + r * percent; - if (setupPose) { - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation = bone.data.rotation + r * alpha; - } - else { - r = bone.data.rotation + r - bone.rotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation += r * alpha; - } - }; - RotateTimeline.ENTRIES = 2; - RotateTimeline.PREV_TIME = -2; - RotateTimeline.PREV_ROTATION = -1; - RotateTimeline.ROTATION = 1; - return RotateTimeline; - }(CurveTimeline)); - spine.RotateTimeline = RotateTimeline; - var TranslateTimeline = (function (_super) { - __extends(TranslateTimeline, _super); - function TranslateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); - } - TranslateTimeline.prototype.getPropertyId = function () { - return (TimelineType.translate << 24) + this.boneIndex; - }; - TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { - frameIndex *= TranslateTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TranslateTimeline.X] = x; - this.frames[frameIndex + TranslateTimeline.Y] = y; - }; - TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.x = bone.data.x; - bone.y = bone.data.y; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { - x = frames[frames.length + TranslateTimeline.PREV_X]; - y = frames[frames.length + TranslateTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - x = frames[frame + TranslateTimeline.PREV_X]; - y = frames[frame + TranslateTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); - x += (frames[frame + TranslateTimeline.X] - x) * percent; - y += (frames[frame + TranslateTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.x = bone.data.x + x * alpha; - bone.y = bone.data.y + y * alpha; - } - else { - bone.x += (bone.data.x + x - bone.x) * alpha; - bone.y += (bone.data.y + y - bone.y) * alpha; - } - }; - TranslateTimeline.ENTRIES = 3; - TranslateTimeline.PREV_TIME = -3; - TranslateTimeline.PREV_X = -2; - TranslateTimeline.PREV_Y = -1; - TranslateTimeline.X = 1; - TranslateTimeline.Y = 2; - return TranslateTimeline; - }(CurveTimeline)); - spine.TranslateTimeline = TranslateTimeline; - var ScaleTimeline = (function (_super) { - __extends(ScaleTimeline, _super); - function ScaleTimeline(frameCount) { - _super.call(this, frameCount); - } - ScaleTimeline.prototype.getPropertyId = function () { - return (TimelineType.scale << 24) + this.boneIndex; - }; - ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.scaleX = bone.data.scaleX; - bone.scaleY = bone.data.scaleY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { - x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; - y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; - } - else { - var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - x = frames[frame + ScaleTimeline.PREV_X]; - y = frames[frame + ScaleTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); - x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; - y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; - } - if (alpha == 1) { - bone.scaleX = x; - bone.scaleY = y; - } - else { - var bx = 0, by = 0; - if (setupPose) { - bx = bone.data.scaleX; - by = bone.data.scaleY; - } - else { - bx = bone.scaleX; - by = bone.scaleY; - } - if (mixingOut) { - x = Math.abs(x) * spine.MathUtils.signum(bx); - y = Math.abs(y) * spine.MathUtils.signum(by); - } - else { - bx = Math.abs(bx) * spine.MathUtils.signum(x); - by = Math.abs(by) * spine.MathUtils.signum(y); - } - bone.scaleX = bx + (x - bx) * alpha; - bone.scaleY = by + (y - by) * alpha; - } - }; - return ScaleTimeline; - }(TranslateTimeline)); - spine.ScaleTimeline = ScaleTimeline; - var ShearTimeline = (function (_super) { - __extends(ShearTimeline, _super); - function ShearTimeline(frameCount) { - _super.call(this, frameCount); - } - ShearTimeline.prototype.getPropertyId = function () { - return (TimelineType.shear << 24) + this.boneIndex; - }; - ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.shearX = bone.data.shearX; - bone.shearY = bone.data.shearY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { - x = frames[frames.length + ShearTimeline.PREV_X]; - y = frames[frames.length + ShearTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - x = frames[frame + ShearTimeline.PREV_X]; - y = frames[frame + ShearTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); - x = x + (frames[frame + ShearTimeline.X] - x) * percent; - y = y + (frames[frame + ShearTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.shearX = bone.data.shearX + x * alpha; - bone.shearY = bone.data.shearY + y * alpha; - } - else { - bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; - } - }; - return ShearTimeline; - }(TranslateTimeline)); - spine.ShearTimeline = ShearTimeline; - var ColorTimeline = (function (_super) { - __extends(ColorTimeline, _super); - function ColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); - } - ColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.color << 24) + this.slotIndex; - }; - ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { - frameIndex *= ColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + ColorTimeline.R] = r; - this.frames[frameIndex + ColorTimeline.G] = g; - this.frames[frameIndex + ColorTimeline.B] = b; - this.frames[frameIndex + ColorTimeline.A] = a; - }; - ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - slot.color.setFromColor(slot.data.color); - return; - } - var r = 0, g = 0, b = 0, a = 0; - if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + ColorTimeline.PREV_R]; - g = frames[i + ColorTimeline.PREV_G]; - b = frames[i + ColorTimeline.PREV_B]; - a = frames[i + ColorTimeline.PREV_A]; - } - else { - var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); - r = frames[frame + ColorTimeline.PREV_R]; - g = frames[frame + ColorTimeline.PREV_G]; - b = frames[frame + ColorTimeline.PREV_B]; - a = frames[frame + ColorTimeline.PREV_A]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + ColorTimeline.R] - r) * percent; - g += (frames[frame + ColorTimeline.G] - g) * percent; - b += (frames[frame + ColorTimeline.B] - b) * percent; - a += (frames[frame + ColorTimeline.A] - a) * percent; - } - if (alpha == 1) - slot.color.set(r, g, b, a); - else { - var color = slot.color; - if (setupPose) - color.setFromColor(slot.data.color); - color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); - } - }; - ColorTimeline.ENTRIES = 5; - ColorTimeline.PREV_TIME = -5; - ColorTimeline.PREV_R = -4; - ColorTimeline.PREV_G = -3; - ColorTimeline.PREV_B = -2; - ColorTimeline.PREV_A = -1; - ColorTimeline.R = 1; - ColorTimeline.G = 2; - ColorTimeline.B = 3; - ColorTimeline.A = 4; - return ColorTimeline; - }(CurveTimeline)); - spine.ColorTimeline = ColorTimeline; - var TwoColorTimeline = (function (_super) { - __extends(TwoColorTimeline, _super); - function TwoColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); - } - TwoColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.twoColor << 24) + this.slotIndex; - }; - TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { - frameIndex *= TwoColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TwoColorTimeline.R] = r; - this.frames[frameIndex + TwoColorTimeline.G] = g; - this.frames[frameIndex + TwoColorTimeline.B] = b; - this.frames[frameIndex + TwoColorTimeline.A] = a; - this.frames[frameIndex + TwoColorTimeline.R2] = r2; - this.frames[frameIndex + TwoColorTimeline.G2] = g2; - this.frames[frameIndex + TwoColorTimeline.B2] = b2; - }; - TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - slot.color.setFromColor(slot.data.color); - slot.darkColor.setFromColor(slot.data.darkColor); - } - return; - } - var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; - if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + TwoColorTimeline.PREV_R]; - g = frames[i + TwoColorTimeline.PREV_G]; - b = frames[i + TwoColorTimeline.PREV_B]; - a = frames[i + TwoColorTimeline.PREV_A]; - r2 = frames[i + TwoColorTimeline.PREV_R2]; - g2 = frames[i + TwoColorTimeline.PREV_G2]; - b2 = frames[i + TwoColorTimeline.PREV_B2]; - } - else { - var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); - r = frames[frame + TwoColorTimeline.PREV_R]; - g = frames[frame + TwoColorTimeline.PREV_G]; - b = frames[frame + TwoColorTimeline.PREV_B]; - a = frames[frame + TwoColorTimeline.PREV_A]; - r2 = frames[frame + TwoColorTimeline.PREV_R2]; - g2 = frames[frame + TwoColorTimeline.PREV_G2]; - b2 = frames[frame + TwoColorTimeline.PREV_B2]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + TwoColorTimeline.R] - r) * percent; - g += (frames[frame + TwoColorTimeline.G] - g) * percent; - b += (frames[frame + TwoColorTimeline.B] - b) * percent; - a += (frames[frame + TwoColorTimeline.A] - a) * percent; - r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; - g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; - b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; - } - if (alpha == 1) { - slot.color.set(r, g, b, a); - slot.darkColor.set(r2, g2, b2, 1); - } - else { - var light = slot.color; - var dark = slot.darkColor; - if (setupPose) { - light.setFromColor(slot.data.color); - dark.setFromColor(slot.data.darkColor); - } - light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); - dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); - } - }; - TwoColorTimeline.ENTRIES = 8; - TwoColorTimeline.PREV_TIME = -8; - TwoColorTimeline.PREV_R = -7; - TwoColorTimeline.PREV_G = -6; - TwoColorTimeline.PREV_B = -5; - TwoColorTimeline.PREV_A = -4; - TwoColorTimeline.PREV_R2 = -3; - TwoColorTimeline.PREV_G2 = -2; - TwoColorTimeline.PREV_B2 = -1; - TwoColorTimeline.R = 1; - TwoColorTimeline.G = 2; - TwoColorTimeline.B = 3; - TwoColorTimeline.A = 4; - TwoColorTimeline.R2 = 5; - TwoColorTimeline.G2 = 6; - TwoColorTimeline.B2 = 7; - return TwoColorTimeline; - }(CurveTimeline)); - spine.TwoColorTimeline = TwoColorTimeline; - var AttachmentTimeline = (function () { - function AttachmentTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.attachmentNames = new Array(frameCount); - } - AttachmentTimeline.prototype.getPropertyId = function () { - return (TimelineType.attachment << 24) + this.slotIndex; - }; - AttachmentTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { - this.frames[frameIndex] = time; - this.attachmentNames[frameIndex] = attachmentName; - }; - AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - if (mixingOut && setupPose) { - var attachmentName_1 = slot.data.attachmentName; - slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - var attachmentName_2 = slot.data.attachmentName; - slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); - } - return; - } - var frameIndex = 0; - if (time >= frames[frames.length - 1]) - frameIndex = frames.length - 1; - else - frameIndex = Animation.binarySearch(frames, time, 1) - 1; - var attachmentName = this.attachmentNames[frameIndex]; - skeleton.slots[this.slotIndex] - .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); - }; - return AttachmentTimeline; - }()); - spine.AttachmentTimeline = AttachmentTimeline; - var DeformTimeline = (function (_super) { - __extends(DeformTimeline, _super); - function DeformTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount); - this.frameVertices = new Array(frameCount); - } - DeformTimeline.prototype.getPropertyId = function () { - return (TimelineType.deform << 24) + this.slotIndex; - }; - DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { - this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; - }; - DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var slotAttachment = slot.getAttachment(); - if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) - return; - var frames = this.frames; - var verticesArray = slot.attachmentVertices; - if (time < frames[0]) { - if (setupPose) - spine.Utils.setArraySize(verticesArray, 0); - return; - } - var frameVertices = this.frameVertices; - var vertexCount = frameVertices[0].length; - if (verticesArray.length != vertexCount) - alpha = 1; - var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); - if (time >= frames[frames.length - 1]) { - var lastVertices = frameVertices[frames.length - 1]; - if (alpha == 1) { - spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var setup = setupVertices[i]; - vertices[i] = setup + (lastVertices[i] - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] = lastVertices[i] * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time); - var prevVertices = frameVertices[frame - 1]; - var nextVertices = frameVertices[frame]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); - if (alpha == 1) { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i], setup = setupVertices[i]; - vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; - } - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; - } - } - }; - return DeformTimeline; - }(CurveTimeline)); - spine.DeformTimeline = DeformTimeline; - var EventTimeline = (function () { - function EventTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.events = new Array(frameCount); - } - EventTimeline.prototype.getPropertyId = function () { - return TimelineType.event << 24; - }; - EventTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - EventTimeline.prototype.setFrame = function (frameIndex, event) { - this.frames[frameIndex] = event.time; - this.events[frameIndex] = event; - }; - EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - if (firedEvents == null) - return; - var frames = this.frames; - var frameCount = this.frames.length; - if (lastTime > time) { - this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); - lastTime = -1; - } - else if (lastTime >= frames[frameCount - 1]) - return; - if (time < frames[0]) - return; - var frame = 0; - if (lastTime < frames[0]) - frame = 0; - else { - frame = Animation.binarySearch(frames, lastTime); - var frameTime = frames[frame]; - while (frame > 0) { - if (frames[frame - 1] != frameTime) - break; - frame--; - } - } - for (; frame < frameCount && time >= frames[frame]; frame++) - firedEvents.push(this.events[frame]); - }; - return EventTimeline; - }()); - spine.EventTimeline = EventTimeline; - var DrawOrderTimeline = (function () { - function DrawOrderTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.drawOrders = new Array(frameCount); - } - DrawOrderTimeline.prototype.getPropertyId = function () { - return TimelineType.drawOrder << 24; - }; - DrawOrderTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { - this.frames[frameIndex] = time; - this.drawOrders[frameIndex] = drawOrder; - }; - DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var drawOrder = skeleton.drawOrder; - var slots = skeleton.slots; - if (mixingOut && setupPose) { - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frame = 0; - if (time >= frames[frames.length - 1]) - frame = frames.length - 1; - else - frame = Animation.binarySearch(frames, time) - 1; - var drawOrderToSetupIndex = this.drawOrders[frame]; - if (drawOrderToSetupIndex == null) - spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); - else { - for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) - drawOrder[i] = slots[drawOrderToSetupIndex[i]]; - } - }; - return DrawOrderTimeline; - }()); - spine.DrawOrderTimeline = DrawOrderTimeline; - var IkConstraintTimeline = (function (_super) { - __extends(IkConstraintTimeline, _super); - function IkConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); - } - IkConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; - }; - IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { - frameIndex *= IkConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; - this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; - }; - IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.mix = constraint.data.mix; - constraint.bendDirection = constraint.data.bendDirection; - } - return; - } - if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { - if (setupPose) { - constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection - : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - return; - } - var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); - var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); - if (setupPose) { - constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - }; - IkConstraintTimeline.ENTRIES = 3; - IkConstraintTimeline.PREV_TIME = -3; - IkConstraintTimeline.PREV_MIX = -2; - IkConstraintTimeline.PREV_BEND_DIRECTION = -1; - IkConstraintTimeline.MIX = 1; - IkConstraintTimeline.BEND_DIRECTION = 2; - return IkConstraintTimeline; - }(CurveTimeline)); - spine.IkConstraintTimeline = IkConstraintTimeline; - var TransformConstraintTimeline = (function (_super) { - __extends(TransformConstraintTimeline, _super); - function TransformConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); - } - TransformConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; - }; - TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { - frameIndex *= TransformConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; - this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; - this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; - }; - TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.rotateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - return; - } - var rotate = 0, translate = 0, scale = 0, shear = 0; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { - var i = frames.length; - rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; - } - else { - var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; - scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; - shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; - } - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; - constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; - constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; - constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - constraint.scaleMix += (scale - constraint.scaleMix) * alpha; - constraint.shearMix += (shear - constraint.shearMix) * alpha; - } - }; - TransformConstraintTimeline.ENTRIES = 5; - TransformConstraintTimeline.PREV_TIME = -5; - TransformConstraintTimeline.PREV_ROTATE = -4; - TransformConstraintTimeline.PREV_TRANSLATE = -3; - TransformConstraintTimeline.PREV_SCALE = -2; - TransformConstraintTimeline.PREV_SHEAR = -1; - TransformConstraintTimeline.ROTATE = 1; - TransformConstraintTimeline.TRANSLATE = 2; - TransformConstraintTimeline.SCALE = 3; - TransformConstraintTimeline.SHEAR = 4; - return TransformConstraintTimeline; - }(CurveTimeline)); - spine.TransformConstraintTimeline = TransformConstraintTimeline; - var PathConstraintPositionTimeline = (function (_super) { - __extends(PathConstraintPositionTimeline, _super); - function PathConstraintPositionTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); - } - PathConstraintPositionTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; - }; - PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { - frameIndex *= PathConstraintPositionTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; - }; - PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.position = constraint.data.position; - return; - } - var position = 0; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) - position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); - position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; - } - if (setupPose) - constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; - else - constraint.position += (position - constraint.position) * alpha; - }; - PathConstraintPositionTimeline.ENTRIES = 2; - PathConstraintPositionTimeline.PREV_TIME = -2; - PathConstraintPositionTimeline.PREV_VALUE = -1; - PathConstraintPositionTimeline.VALUE = 1; - return PathConstraintPositionTimeline; - }(CurveTimeline)); - spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; - var PathConstraintSpacingTimeline = (function (_super) { - __extends(PathConstraintSpacingTimeline, _super); - function PathConstraintSpacingTimeline(frameCount) { - _super.call(this, frameCount); - } - PathConstraintSpacingTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; - }; - PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.spacing = constraint.data.spacing; - return; - } - var spacing = 0; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) - spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); - spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; - } - if (setupPose) - constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; - else - constraint.spacing += (spacing - constraint.spacing) * alpha; - }; - return PathConstraintSpacingTimeline; - }(PathConstraintPositionTimeline)); - spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; - var PathConstraintMixTimeline = (function (_super) { - __extends(PathConstraintMixTimeline, _super); - function PathConstraintMixTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); - } - PathConstraintMixTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; - }; - PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { - frameIndex *= PathConstraintMixTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; - }; - PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix; - constraint.translateMix = constraint.data.translateMix; - } - return; - } - var rotate = 0, translate = 0; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { - rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; - } - else { - var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; - } - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; - constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - } - }; - PathConstraintMixTimeline.ENTRIES = 3; - PathConstraintMixTimeline.PREV_TIME = -3; - PathConstraintMixTimeline.PREV_ROTATE = -2; - PathConstraintMixTimeline.PREV_TRANSLATE = -1; - PathConstraintMixTimeline.ROTATE = 1; - PathConstraintMixTimeline.TRANSLATE = 2; - return PathConstraintMixTimeline; - }(CurveTimeline)); - spine.PathConstraintMixTimeline = PathConstraintMixTimeline; + var Animation = (function () { + function Animation(name, timelines, duration) { + if (name == null) + throw new Error("name cannot be null."); + if (timelines == null) + throw new Error("timelines cannot be null."); + this.name = name; + this.timelines = timelines; + this.duration = duration; + } + Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (loop && this.duration != 0) { + time %= this.duration; + if (lastTime > 0) + lastTime %= this.duration; + } + var timelines = this.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); + }; + Animation.binarySearch = function (values, target, step) { + if (step === void 0) { step = 1; } + var low = 0; + var high = values.length / step - 2; + if (high == 0) + return step; + var current = high >>> 1; + while (true) { + if (values[(current + 1) * step] <= target) + low = current + 1; + else + high = current; + if (low == high) + return (low + 1) * step; + current = (low + high) >>> 1; + } + }; + Animation.linearSearch = function (values, target, step) { + for (var i = 0, last = values.length - step; i <= last; i += step) + if (values[i] > target) + return i; + return -1; + }; + return Animation; + }()); + spine.Animation = Animation; + (function (TimelineType) { + TimelineType[TimelineType["rotate"] = 0] = "rotate"; + TimelineType[TimelineType["translate"] = 1] = "translate"; + TimelineType[TimelineType["scale"] = 2] = "scale"; + TimelineType[TimelineType["shear"] = 3] = "shear"; + TimelineType[TimelineType["attachment"] = 4] = "attachment"; + TimelineType[TimelineType["color"] = 5] = "color"; + TimelineType[TimelineType["deform"] = 6] = "deform"; + TimelineType[TimelineType["event"] = 7] = "event"; + TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; + TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; + TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; + TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; + TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; + TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; + TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; + var CurveTimeline = (function () { + function CurveTimeline(frameCount) { + if (frameCount <= 0) + throw new Error("frameCount must be > 0: " + frameCount); + this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); + } + CurveTimeline.prototype.getFrameCount = function () { + return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; + }; + CurveTimeline.prototype.setLinear = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; + }; + CurveTimeline.prototype.setStepped = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; + }; + CurveTimeline.prototype.getCurveType = function (frameIndex) { + var index = frameIndex * CurveTimeline.BEZIER_SIZE; + if (index == this.curves.length) + return CurveTimeline.LINEAR; + var type = this.curves[index]; + if (type == CurveTimeline.LINEAR) + return CurveTimeline.LINEAR; + if (type == CurveTimeline.STEPPED) + return CurveTimeline.STEPPED; + return CurveTimeline.BEZIER; + }; + CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { + var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; + var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; + var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; + var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var curves = this.curves; + curves[i++] = CurveTimeline.BEZIER; + var x = dfx, y = dfy; + for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + curves[i] = x; + curves[i + 1] = y; + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + x += dfx; + y += dfy; + } + }; + CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { + percent = spine.MathUtils.clamp(percent, 0, 1); + var curves = this.curves; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var type = curves[i]; + if (type == CurveTimeline.LINEAR) + return percent; + if (type == CurveTimeline.STEPPED) + return 0; + i++; + var x = 0; + for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + x = curves[i]; + if (x >= percent) { + var prevX = void 0, prevY = void 0; + if (i == start) { + prevX = 0; + prevY = 0; + } + else { + prevX = curves[i - 2]; + prevY = curves[i - 1]; + } + return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); + } + } + var y = curves[i - 1]; + return y + (1 - y) * (percent - x) / (1 - x); + }; + CurveTimeline.LINEAR = 0; + CurveTimeline.STEPPED = 1; + CurveTimeline.BEZIER = 2; + CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; + return CurveTimeline; + }()); + spine.CurveTimeline = CurveTimeline; + var RotateTimeline = (function (_super) { + __extends(RotateTimeline, _super); + function RotateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount << 1); + } + RotateTimeline.prototype.getPropertyId = function () { + return (TimelineType.rotate << 24) + this.boneIndex; + }; + RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { + frameIndex <<= 1; + this.frames[frameIndex] = time; + this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; + }; + RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { + if (setupPose) + bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; + else { + var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; + r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; + bone.rotation += r_1 * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); + var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); + var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + r = prevRotation + r * percent; + if (setupPose) { + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation = bone.data.rotation + r * alpha; + } + else { + r = bone.data.rotation + r - bone.rotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation += r * alpha; + } + }; + RotateTimeline.ENTRIES = 2; + RotateTimeline.PREV_TIME = -2; + RotateTimeline.PREV_ROTATION = -1; + RotateTimeline.ROTATION = 1; + return RotateTimeline; + }(CurveTimeline)); + spine.RotateTimeline = RotateTimeline; + var TranslateTimeline = (function (_super) { + __extends(TranslateTimeline, _super); + function TranslateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); + } + TranslateTimeline.prototype.getPropertyId = function () { + return (TimelineType.translate << 24) + this.boneIndex; + }; + TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { + frameIndex *= TranslateTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TranslateTimeline.X] = x; + this.frames[frameIndex + TranslateTimeline.Y] = y; + }; + TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { + x = frames[frames.length + TranslateTimeline.PREV_X]; + y = frames[frames.length + TranslateTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); + x = frames[frame + TranslateTimeline.PREV_X]; + y = frames[frame + TranslateTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); + x += (frames[frame + TranslateTimeline.X] - x) * percent; + y += (frames[frame + TranslateTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.x = bone.data.x + x * alpha; + bone.y = bone.data.y + y * alpha; + } + else { + bone.x += (bone.data.x + x - bone.x) * alpha; + bone.y += (bone.data.y + y - bone.y) * alpha; + } + }; + TranslateTimeline.ENTRIES = 3; + TranslateTimeline.PREV_TIME = -3; + TranslateTimeline.PREV_X = -2; + TranslateTimeline.PREV_Y = -1; + TranslateTimeline.X = 1; + TranslateTimeline.Y = 2; + return TranslateTimeline; + }(CurveTimeline)); + spine.TranslateTimeline = TranslateTimeline; + var ScaleTimeline = (function (_super) { + __extends(ScaleTimeline, _super); + function ScaleTimeline(frameCount) { + _super.call(this, frameCount); + } + ScaleTimeline.prototype.getPropertyId = function () { + return (TimelineType.scale << 24) + this.boneIndex; + }; + ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { + x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; + y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; + } + else { + var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); + x = frames[frame + ScaleTimeline.PREV_X]; + y = frames[frame + ScaleTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); + x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; + y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; + } + if (alpha == 1) { + bone.scaleX = x; + bone.scaleY = y; + } + else { + var bx = 0, by = 0; + if (setupPose) { + bx = bone.data.scaleX; + by = bone.data.scaleY; + } + else { + bx = bone.scaleX; + by = bone.scaleY; + } + if (mixingOut) { + x = Math.abs(x) * spine.MathUtils.signum(bx); + y = Math.abs(y) * spine.MathUtils.signum(by); + } + else { + bx = Math.abs(bx) * spine.MathUtils.signum(x); + by = Math.abs(by) * spine.MathUtils.signum(y); + } + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + } + }; + return ScaleTimeline; + }(TranslateTimeline)); + spine.ScaleTimeline = ScaleTimeline; + var ShearTimeline = (function (_super) { + __extends(ShearTimeline, _super); + function ShearTimeline(frameCount) { + _super.call(this, frameCount); + } + ShearTimeline.prototype.getPropertyId = function () { + return (TimelineType.shear << 24) + this.boneIndex; + }; + ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { + x = frames[frames.length + ShearTimeline.PREV_X]; + y = frames[frames.length + ShearTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); + x = frames[frame + ShearTimeline.PREV_X]; + y = frames[frame + ShearTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); + x = x + (frames[frame + ShearTimeline.X] - x) * percent; + y = y + (frames[frame + ShearTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.shearX = bone.data.shearX + x * alpha; + bone.shearY = bone.data.shearY + y * alpha; + } + else { + bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; + bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; + } + }; + return ShearTimeline; + }(TranslateTimeline)); + spine.ShearTimeline = ShearTimeline; + var ColorTimeline = (function (_super) { + __extends(ColorTimeline, _super); + function ColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); + } + ColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.color << 24) + this.slotIndex; + }; + ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { + frameIndex *= ColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + ColorTimeline.R] = r; + this.frames[frameIndex + ColorTimeline.G] = g; + this.frames[frameIndex + ColorTimeline.B] = b; + this.frames[frameIndex + ColorTimeline.A] = a; + }; + ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + slot.color.setFromColor(slot.data.color); + return; + } + var r = 0, g = 0, b = 0, a = 0; + if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + ColorTimeline.PREV_R]; + g = frames[i + ColorTimeline.PREV_G]; + b = frames[i + ColorTimeline.PREV_B]; + a = frames[i + ColorTimeline.PREV_A]; + } + else { + var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); + r = frames[frame + ColorTimeline.PREV_R]; + g = frames[frame + ColorTimeline.PREV_G]; + b = frames[frame + ColorTimeline.PREV_B]; + a = frames[frame + ColorTimeline.PREV_A]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + ColorTimeline.R] - r) * percent; + g += (frames[frame + ColorTimeline.G] - g) * percent; + b += (frames[frame + ColorTimeline.B] - b) * percent; + a += (frames[frame + ColorTimeline.A] - a) * percent; + } + if (alpha == 1) + slot.color.set(r, g, b, a); + else { + var color = slot.color; + if (setupPose) + color.setFromColor(slot.data.color); + color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); + } + }; + ColorTimeline.ENTRIES = 5; + ColorTimeline.PREV_TIME = -5; + ColorTimeline.PREV_R = -4; + ColorTimeline.PREV_G = -3; + ColorTimeline.PREV_B = -2; + ColorTimeline.PREV_A = -1; + ColorTimeline.R = 1; + ColorTimeline.G = 2; + ColorTimeline.B = 3; + ColorTimeline.A = 4; + return ColorTimeline; + }(CurveTimeline)); + spine.ColorTimeline = ColorTimeline; + var TwoColorTimeline = (function (_super) { + __extends(TwoColorTimeline, _super); + function TwoColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); + } + TwoColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.twoColor << 24) + this.slotIndex; + }; + TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { + frameIndex *= TwoColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TwoColorTimeline.R] = r; + this.frames[frameIndex + TwoColorTimeline.G] = g; + this.frames[frameIndex + TwoColorTimeline.B] = b; + this.frames[frameIndex + TwoColorTimeline.A] = a; + this.frames[frameIndex + TwoColorTimeline.R2] = r2; + this.frames[frameIndex + TwoColorTimeline.G2] = g2; + this.frames[frameIndex + TwoColorTimeline.B2] = b2; + }; + TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + slot.color.setFromColor(slot.data.color); + slot.darkColor.setFromColor(slot.data.darkColor); + } + return; + } + var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; + if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + TwoColorTimeline.PREV_R]; + g = frames[i + TwoColorTimeline.PREV_G]; + b = frames[i + TwoColorTimeline.PREV_B]; + a = frames[i + TwoColorTimeline.PREV_A]; + r2 = frames[i + TwoColorTimeline.PREV_R2]; + g2 = frames[i + TwoColorTimeline.PREV_G2]; + b2 = frames[i + TwoColorTimeline.PREV_B2]; + } + else { + var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); + r = frames[frame + TwoColorTimeline.PREV_R]; + g = frames[frame + TwoColorTimeline.PREV_G]; + b = frames[frame + TwoColorTimeline.PREV_B]; + a = frames[frame + TwoColorTimeline.PREV_A]; + r2 = frames[frame + TwoColorTimeline.PREV_R2]; + g2 = frames[frame + TwoColorTimeline.PREV_G2]; + b2 = frames[frame + TwoColorTimeline.PREV_B2]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + TwoColorTimeline.R] - r) * percent; + g += (frames[frame + TwoColorTimeline.G] - g) * percent; + b += (frames[frame + TwoColorTimeline.B] - b) * percent; + a += (frames[frame + TwoColorTimeline.A] - a) * percent; + r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; + g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; + b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; + } + if (alpha == 1) { + slot.color.set(r, g, b, a); + slot.darkColor.set(r2, g2, b2, 1); + } + else { + var light = slot.color; + var dark = slot.darkColor; + if (setupPose) { + light.setFromColor(slot.data.color); + dark.setFromColor(slot.data.darkColor); + } + light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); + dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); + } + }; + TwoColorTimeline.ENTRIES = 8; + TwoColorTimeline.PREV_TIME = -8; + TwoColorTimeline.PREV_R = -7; + TwoColorTimeline.PREV_G = -6; + TwoColorTimeline.PREV_B = -5; + TwoColorTimeline.PREV_A = -4; + TwoColorTimeline.PREV_R2 = -3; + TwoColorTimeline.PREV_G2 = -2; + TwoColorTimeline.PREV_B2 = -1; + TwoColorTimeline.R = 1; + TwoColorTimeline.G = 2; + TwoColorTimeline.B = 3; + TwoColorTimeline.A = 4; + TwoColorTimeline.R2 = 5; + TwoColorTimeline.G2 = 6; + TwoColorTimeline.B2 = 7; + return TwoColorTimeline; + }(CurveTimeline)); + spine.TwoColorTimeline = TwoColorTimeline; + var AttachmentTimeline = (function () { + function AttachmentTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.attachmentNames = new Array(frameCount); + } + AttachmentTimeline.prototype.getPropertyId = function () { + return (TimelineType.attachment << 24) + this.slotIndex; + }; + AttachmentTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { + this.frames[frameIndex] = time; + this.attachmentNames[frameIndex] = attachmentName; + }; + AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + if (mixingOut && setupPose) { + var attachmentName_1 = slot.data.attachmentName; + slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + var attachmentName_2 = slot.data.attachmentName; + slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); + } + return; + } + var frameIndex = 0; + if (time >= frames[frames.length - 1]) + frameIndex = frames.length - 1; + else + frameIndex = Animation.binarySearch(frames, time, 1) - 1; + var attachmentName = this.attachmentNames[frameIndex]; + skeleton.slots[this.slotIndex] + .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); + }; + return AttachmentTimeline; + }()); + spine.AttachmentTimeline = AttachmentTimeline; + var DeformTimeline = (function (_super) { + __extends(DeformTimeline, _super); + function DeformTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount); + this.frameVertices = new Array(frameCount); + } + DeformTimeline.prototype.getPropertyId = function () { + return (TimelineType.deform << 24) + this.slotIndex; + }; + DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { + this.frames[frameIndex] = time; + this.frameVertices[frameIndex] = vertices; + }; + DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var slotAttachment = slot.getAttachment(); + if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) + return; + var frames = this.frames; + var verticesArray = slot.attachmentVertices; + if (time < frames[0]) { + if (setupPose) + spine.Utils.setArraySize(verticesArray, 0); + return; + } + var frameVertices = this.frameVertices; + var vertexCount = frameVertices[0].length; + if (verticesArray.length != vertexCount && !setupPose) + alpha = 1; + var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); + if (time >= frames[frames.length - 1]) { + var lastVertices = frameVertices[frames.length - 1]; + if (alpha == 1) { + spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var setup = setupVertices[i]; + vertices[i] = setup + (lastVertices[i] - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] = lastVertices[i] * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] += (lastVertices[i] - vertices[i]) * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time); + var prevVertices = frameVertices[frame - 1]; + var nextVertices = frameVertices[frame]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); + if (alpha == 1) { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = prev + (nextVertices[i] - prev) * percent; + } + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i], setup = setupVertices[i]; + vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; + } + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; + } + } + }; + return DeformTimeline; + }(CurveTimeline)); + spine.DeformTimeline = DeformTimeline; + var EventTimeline = (function () { + function EventTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.events = new Array(frameCount); + } + EventTimeline.prototype.getPropertyId = function () { + return TimelineType.event << 24; + }; + EventTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + EventTimeline.prototype.setFrame = function (frameIndex, event) { + this.frames[frameIndex] = event.time; + this.events[frameIndex] = event; + }; + EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + if (firedEvents == null) + return; + var frames = this.frames; + var frameCount = this.frames.length; + if (lastTime > time) { + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); + lastTime = -1; + } + else if (lastTime >= frames[frameCount - 1]) + return; + if (time < frames[0]) + return; + var frame = 0; + if (lastTime < frames[0]) + frame = 0; + else { + frame = Animation.binarySearch(frames, lastTime); + var frameTime = frames[frame]; + while (frame > 0) { + if (frames[frame - 1] != frameTime) + break; + frame--; + } + } + for (; frame < frameCount && time >= frames[frame]; frame++) + firedEvents.push(this.events[frame]); + }; + return EventTimeline; + }()); + spine.EventTimeline = EventTimeline; + var DrawOrderTimeline = (function () { + function DrawOrderTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.drawOrders = new Array(frameCount); + } + DrawOrderTimeline.prototype.getPropertyId = function () { + return TimelineType.drawOrder << 24; + }; + DrawOrderTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { + this.frames[frameIndex] = time; + this.drawOrders[frameIndex] = drawOrder; + }; + DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var drawOrder = skeleton.drawOrder; + var slots = skeleton.slots; + if (mixingOut && setupPose) { + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frame = 0; + if (time >= frames[frames.length - 1]) + frame = frames.length - 1; + else + frame = Animation.binarySearch(frames, time) - 1; + var drawOrderToSetupIndex = this.drawOrders[frame]; + if (drawOrderToSetupIndex == null) + spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); + else { + for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) + drawOrder[i] = slots[drawOrderToSetupIndex[i]]; + } + }; + return DrawOrderTimeline; + }()); + spine.DrawOrderTimeline = DrawOrderTimeline; + var IkConstraintTimeline = (function (_super) { + __extends(IkConstraintTimeline, _super); + function IkConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); + } + IkConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; + }; + IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { + frameIndex *= IkConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; + this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; + }; + IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.mix = constraint.data.mix; + constraint.bendDirection = constraint.data.bendDirection; + } + return; + } + if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { + if (setupPose) { + constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection + : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + return; + } + var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); + var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); + if (setupPose) { + constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + }; + IkConstraintTimeline.ENTRIES = 3; + IkConstraintTimeline.PREV_TIME = -3; + IkConstraintTimeline.PREV_MIX = -2; + IkConstraintTimeline.PREV_BEND_DIRECTION = -1; + IkConstraintTimeline.MIX = 1; + IkConstraintTimeline.BEND_DIRECTION = 2; + return IkConstraintTimeline; + }(CurveTimeline)); + spine.IkConstraintTimeline = IkConstraintTimeline; + var TransformConstraintTimeline = (function (_super) { + __extends(TransformConstraintTimeline, _super); + function TransformConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); + } + TransformConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; + }; + TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { + frameIndex *= TransformConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; + this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; + this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; + }; + TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.rotateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + return; + } + var rotate = 0, translate = 0, scale = 0, shear = 0; + if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { + var i = frames.length; + rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; + } + else { + var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); + rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; + scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; + shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; + } + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; + constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; + constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; + constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + constraint.scaleMix += (scale - constraint.scaleMix) * alpha; + constraint.shearMix += (shear - constraint.shearMix) * alpha; + } + }; + TransformConstraintTimeline.ENTRIES = 5; + TransformConstraintTimeline.PREV_TIME = -5; + TransformConstraintTimeline.PREV_ROTATE = -4; + TransformConstraintTimeline.PREV_TRANSLATE = -3; + TransformConstraintTimeline.PREV_SCALE = -2; + TransformConstraintTimeline.PREV_SHEAR = -1; + TransformConstraintTimeline.ROTATE = 1; + TransformConstraintTimeline.TRANSLATE = 2; + TransformConstraintTimeline.SCALE = 3; + TransformConstraintTimeline.SHEAR = 4; + return TransformConstraintTimeline; + }(CurveTimeline)); + spine.TransformConstraintTimeline = TransformConstraintTimeline; + var PathConstraintPositionTimeline = (function (_super) { + __extends(PathConstraintPositionTimeline, _super); + function PathConstraintPositionTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); + } + PathConstraintPositionTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; + }; + PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { + frameIndex *= PathConstraintPositionTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; + }; + PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.position = constraint.data.position; + return; + } + var position = 0; + if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) + position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); + position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); + position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; + } + if (setupPose) + constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; + else + constraint.position += (position - constraint.position) * alpha; + }; + PathConstraintPositionTimeline.ENTRIES = 2; + PathConstraintPositionTimeline.PREV_TIME = -2; + PathConstraintPositionTimeline.PREV_VALUE = -1; + PathConstraintPositionTimeline.VALUE = 1; + return PathConstraintPositionTimeline; + }(CurveTimeline)); + spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; + var PathConstraintSpacingTimeline = (function (_super) { + __extends(PathConstraintSpacingTimeline, _super); + function PathConstraintSpacingTimeline(frameCount) { + _super.call(this, frameCount); + } + PathConstraintSpacingTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; + }; + PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.spacing = constraint.data.spacing; + return; + } + var spacing = 0; + if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) + spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); + spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); + spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; + } + if (setupPose) + constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; + else + constraint.spacing += (spacing - constraint.spacing) * alpha; + }; + return PathConstraintSpacingTimeline; + }(PathConstraintPositionTimeline)); + spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; + var PathConstraintMixTimeline = (function (_super) { + __extends(PathConstraintMixTimeline, _super); + function PathConstraintMixTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); + } + PathConstraintMixTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; + }; + PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { + frameIndex *= PathConstraintMixTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; + }; + PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } + return; + } + var rotate = 0, translate = 0; + if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { + rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; + } + else { + var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); + rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; + } + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; + constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + } + }; + PathConstraintMixTimeline.ENTRIES = 3; + PathConstraintMixTimeline.PREV_TIME = -3; + PathConstraintMixTimeline.PREV_ROTATE = -2; + PathConstraintMixTimeline.PREV_TRANSLATE = -1; + PathConstraintMixTimeline.ROTATE = 1; + PathConstraintMixTimeline.TRANSLATE = 2; + return PathConstraintMixTimeline; + }(CurveTimeline)); + spine.PathConstraintMixTimeline = PathConstraintMixTimeline; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationState = (function () { - function AnimationState(data) { - this.tracks = new Array(); - this.events = new Array(); - this.listeners = new Array(); - this.queue = new EventQueue(this); - this.propertyIDs = new spine.IntSet(); - this.mixingTo = new Array(); - this.animationsChanged = false; - this.timeScale = 1; - this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); - this.data = data; - } - AnimationState.prototype.update = function (delta) { - delta *= this.timeScale; - var tracks = this.tracks; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null) - continue; - current.animationLast = current.nextAnimationLast; - current.trackLast = current.nextTrackLast; - var currentDelta = delta * current.timeScale; - if (current.delay > 0) { - current.delay -= currentDelta; - if (current.delay > 0) - continue; - currentDelta = -current.delay; - current.delay = 0; - } - var next = current.next; - if (next != null) { - var nextTime = current.trackLast - next.delay; - if (nextTime >= 0) { - next.delay = 0; - next.trackTime = nextTime + delta * next.timeScale; - current.trackTime += currentDelta; - this.setCurrent(i, next, true); - while (next.mixingFrom != null) { - next.mixTime += currentDelta; - next = next.mixingFrom; - } - continue; - } - } - else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { - tracks[i] = null; - this.queue.end(current); - this.disposeNext(current); - continue; - } - if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { - var from = current.mixingFrom; - current.mixingFrom = null; - while (from != null) { - this.queue.end(from); - from = from.mixingFrom; - } - } - current.trackTime += currentDelta; - } - this.queue.drain(); - }; - AnimationState.prototype.updateMixingFrom = function (to, delta) { - var from = to.mixingFrom; - if (from == null) - return true; - var finished = this.updateMixingFrom(from, delta); - if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { - if (from.totalAlpha == 0) { - to.mixingFrom = from.mixingFrom; - to.interruptAlpha = from.interruptAlpha; - this.queue.end(from); - } - return finished; - } - from.animationLast = from.nextAnimationLast; - from.trackLast = from.nextTrackLast; - from.trackTime += delta * from.timeScale; - to.mixTime += delta * to.timeScale; - return false; - }; - AnimationState.prototype.apply = function (skeleton) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (this.animationsChanged) - this._animationsChanged(); - var events = this.events; - var tracks = this.tracks; - var applied = false; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null || current.delay > 0) - continue; - applied = true; - var mix = current.alpha; - if (current.mixingFrom != null) - mix *= this.applyMixingFrom(current, skeleton); - else if (current.trackTime >= current.trackEnd && current.next == null) - mix = 0; - var animationLast = current.animationLast, animationTime = current.getAnimationTime(); - var timelineCount = current.animation.timelines.length; - var timelines = current.animation.timelines; - if (mix == 1) { - for (var ii = 0; ii < timelineCount; ii++) - timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); - } - else { - var timelineData = current.timelineData; - var firstFrame = current.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = current.timelinesRotation; - for (var ii = 0; ii < timelineCount; ii++) { - var timeline = timelines[ii]; - if (timeline instanceof spine.RotateTimeline) { - this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); - } - else - timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); - } - } - this.queueEvents(current, animationTime); - events.length = 0; - current.nextAnimationLast = animationTime; - current.nextTrackLast = current.trackTime; - } - this.queue.drain(); - return applied; - }; - AnimationState.prototype.applyMixingFrom = function (to, skeleton) { - var from = to.mixingFrom; - if (from.mixingFrom != null) - this.applyMixingFrom(from, skeleton); - var mix = 0; - if (to.mixDuration == 0) - mix = 1; - else { - mix = to.mixTime / to.mixDuration; - if (mix > 1) - mix = 1; - } - var events = mix < from.eventThreshold ? this.events : null; - var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; - var animationLast = from.animationLast, animationTime = from.getAnimationTime(); - var timelineCount = from.animation.timelines.length; - var timelines = from.animation.timelines; - var timelineData = from.timelineData; - var timelineDipMix = from.timelineDipMix; - var firstFrame = from.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = from.timelinesRotation; - var first = false; - var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; - from.totalAlpha = 0; - for (var i = 0; i < timelineCount; i++) { - var timeline = timelines[i]; - switch (timelineData[i]) { - case AnimationState.SUBSEQUENT: - first = false; - alpha = alphaMix; - break; - case AnimationState.FIRST: - first = true; - alpha = alphaMix; - break; - case AnimationState.DIP: - first = true; - alpha = alphaDip; - break; - default: - first = true; - alpha = alphaDip; - var dipMix = timelineDipMix[i]; - alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); - break; - } - from.totalAlpha += alpha; - if (timeline instanceof spine.RotateTimeline) - this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); - else { - if (!first) { - if (!attachments && timeline instanceof spine.AttachmentTimeline) - continue; - if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) - continue; - } - timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); - } - } - if (to.mixDuration > 0) - this.queueEvents(from, animationTime); - this.events.length = 0; - from.nextAnimationLast = animationTime; - from.nextTrackLast = from.trackTime; - return mix; - }; - AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { - if (firstFrame) - timelinesRotation[i] = 0; - if (alpha == 1) { - timeline.apply(skeleton, 0, time, null, 1, setupPose, false); - return; - } - var rotateTimeline = timeline; - var frames = rotateTimeline.frames; - var bone = skeleton.bones[rotateTimeline.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - var r2 = 0; - if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) - r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; - else { - var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); - var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); - r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - r2 = prevRotation + r2 * percent + bone.data.rotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - } - var r1 = setupPose ? bone.data.rotation : bone.rotation; - var total = 0, diff = r2 - r1; - if (diff == 0) { - total = timelinesRotation[i]; - } - else { - diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; - var lastTotal = 0, lastDiff = 0; - if (firstFrame) { - lastTotal = 0; - lastDiff = diff; - } - else { - lastTotal = timelinesRotation[i]; - lastDiff = timelinesRotation[i + 1]; - } - var current = diff > 0, dir = lastTotal >= 0; - if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { - if (Math.abs(lastTotal) > 180) - lastTotal += 360 * spine.MathUtils.signum(lastTotal); - dir = current; - } - total = diff + lastTotal - lastTotal % 360; - if (dir != current) - total += 360 * spine.MathUtils.signum(lastTotal); - timelinesRotation[i] = total; - } - timelinesRotation[i + 1] = diff; - r1 += total * alpha; - bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; - }; - AnimationState.prototype.queueEvents = function (entry, animationTime) { - var animationStart = entry.animationStart, animationEnd = entry.animationEnd; - var duration = animationEnd - animationStart; - var trackLastWrapped = entry.trackLast % duration; - var events = this.events; - var i = 0, n = events.length; - for (; i < n; i++) { - var event_1 = events[i]; - if (event_1.time < trackLastWrapped) - break; - if (event_1.time > animationEnd) - continue; - this.queue.event(entry, event_1); - } - if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) - : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { - this.queue.complete(entry); - } - for (; i < n; i++) { - var event_2 = events[i]; - if (event_2.time < animationStart) - continue; - this.queue.event(entry, events[i]); - } - }; - AnimationState.prototype.clearTracks = function () { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) - this.clearTrack(i); - this.tracks.length = 0; - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.clearTrack = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return; - var current = this.tracks[trackIndex]; - if (current == null) - return; - this.queue.end(current); - this.disposeNext(current); - var entry = current; - while (true) { - var from = entry.mixingFrom; - if (from == null) - break; - this.queue.end(from); - entry.mixingFrom = null; - entry = from; - } - this.tracks[current.trackIndex] = null; - this.queue.drain(); - }; - AnimationState.prototype.setCurrent = function (index, current, interrupt) { - var from = this.expandToIndex(index); - this.tracks[index] = current; - if (from != null) { - if (interrupt) - this.queue.interrupt(from); - current.mixingFrom = from; - current.mixTime = 0; - if (from.mixingFrom != null && from.mixDuration > 0) - current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); - from.timelinesRotation.length = 0; - } - this.queue.start(current); - }; - AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.setAnimationWith(trackIndex, animation, loop); - }; - AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { - if (animation == null) - throw new Error("animation cannot be null."); - var interrupt = true; - var current = this.expandToIndex(trackIndex); - if (current != null) { - if (current.nextTrackLast == -1) { - this.tracks[trackIndex] = current.mixingFrom; - this.queue.interrupt(current); - this.queue.end(current); - this.disposeNext(current); - current = current.mixingFrom; - interrupt = false; - } - else - this.disposeNext(current); - } - var entry = this.trackEntry(trackIndex, animation, loop, current); - this.setCurrent(trackIndex, entry, interrupt); - this.queue.drain(); - return entry; - }; - AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.addAnimationWith(trackIndex, animation, loop, delay); - }; - AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { - if (animation == null) - throw new Error("animation cannot be null."); - var last = this.expandToIndex(trackIndex); - if (last != null) { - while (last.next != null) - last = last.next; - } - var entry = this.trackEntry(trackIndex, animation, loop, last); - if (last == null) { - this.setCurrent(trackIndex, entry, true); - this.queue.drain(); - } - else { - last.next = entry; - if (delay <= 0) { - var duration = last.animationEnd - last.animationStart; - if (duration != 0) - delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); - else - delay = 0; - } - } - entry.delay = delay; - return entry; - }; - AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { - var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { - if (delay <= 0) - delay -= mixDuration; - var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.setEmptyAnimations = function (mixDuration) { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var current = this.tracks[i]; - if (current != null) - this.setEmptyAnimation(current.trackIndex, mixDuration); - } - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.expandToIndex = function (index) { - if (index < this.tracks.length) - return this.tracks[index]; - spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); - this.tracks.length = index + 1; - return null; - }; - AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { - var entry = this.trackEntryPool.obtain(); - entry.trackIndex = trackIndex; - entry.animation = animation; - entry.loop = loop; - entry.eventThreshold = 0; - entry.attachmentThreshold = 0; - entry.drawOrderThreshold = 0; - entry.animationStart = 0; - entry.animationEnd = animation.duration; - entry.animationLast = -1; - entry.nextAnimationLast = -1; - entry.delay = 0; - entry.trackTime = 0; - entry.trackLast = -1; - entry.nextTrackLast = -1; - entry.trackEnd = Number.MAX_VALUE; - entry.timeScale = 1; - entry.alpha = 1; - entry.interruptAlpha = 1; - entry.mixTime = 0; - entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); - return entry; - }; - AnimationState.prototype.disposeNext = function (entry) { - var next = entry.next; - while (next != null) { - this.queue.dispose(next); - next = next.next; - } - entry.next = null; - }; - AnimationState.prototype._animationsChanged = function () { - this.animationsChanged = false; - var propertyIDs = this.propertyIDs; - propertyIDs.clear(); - var mixingTo = this.mixingTo; - var lastEntry = null; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var entry = this.tracks[i]; - if (entry != null) { - entry.setTimelineData(lastEntry, mixingTo, propertyIDs); - lastEntry = entry; - } - } - }; - AnimationState.prototype.getCurrent = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return null; - return this.tracks[trackIndex]; - }; - AnimationState.prototype.addListener = function (listener) { - if (listener == null) - throw new Error("listener cannot be null."); - this.listeners.push(listener); - }; - AnimationState.prototype.removeListener = function (listener) { - var index = this.listeners.indexOf(listener); - if (index >= 0) - this.listeners.splice(index, 1); - }; - AnimationState.prototype.clearListeners = function () { - this.listeners.length = 0; - }; - AnimationState.prototype.clearListenerNotifications = function () { - this.queue.clear(); - }; - AnimationState.emptyAnimation = new spine.Animation("", [], 0); - AnimationState.SUBSEQUENT = 0; - AnimationState.FIRST = 1; - AnimationState.DIP = 2; - AnimationState.DIP_MIX = 3; - return AnimationState; - }()); - spine.AnimationState = AnimationState; - var TrackEntry = (function () { - function TrackEntry() { - this.timelineData = new Array(); - this.timelineDipMix = new Array(); - this.timelinesRotation = new Array(); - } - TrackEntry.prototype.reset = function () { - this.next = null; - this.mixingFrom = null; - this.animation = null; - this.listener = null; - this.timelineData.length = 0; - this.timelineDipMix.length = 0; - this.timelinesRotation.length = 0; - }; - TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { - if (to != null) - mixingToArray.push(to); - var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; - if (to != null) - mixingToArray.pop(); - var mixingTo = mixingToArray; - var mixingToLast = mixingToArray.length - 1; - var timelines = this.animation.timelines; - var timelinesCount = this.animation.timelines.length; - var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); - this.timelineDipMix.length = 0; - var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); - outer: for (var i = 0; i < timelinesCount; i++) { - var id = timelines[i].getPropertyId(); - if (!propertyIDs.add(id)) - timelineData[i] = AnimationState.SUBSEQUENT; - else if (to == null || !to.hasTimeline(id)) - timelineData[i] = AnimationState.FIRST; - else { - for (var ii = mixingToLast; ii >= 0; ii--) { - var entry = mixingTo[ii]; - if (!entry.hasTimeline(id)) { - if (entry.mixDuration > 0) { - timelineData[i] = AnimationState.DIP_MIX; - timelineDipMix[i] = entry; - continue outer; - } - } - } - timelineData[i] = AnimationState.DIP; - } - } - return lastEntry; - }; - TrackEntry.prototype.hasTimeline = function (id) { - var timelines = this.animation.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - if (timelines[i].getPropertyId() == id) - return true; - return false; - }; - TrackEntry.prototype.getAnimationTime = function () { - if (this.loop) { - var duration = this.animationEnd - this.animationStart; - if (duration == 0) - return this.animationStart; - return (this.trackTime % duration) + this.animationStart; - } - return Math.min(this.trackTime + this.animationStart, this.animationEnd); - }; - TrackEntry.prototype.setAnimationLast = function (animationLast) { - this.animationLast = animationLast; - this.nextAnimationLast = animationLast; - }; - TrackEntry.prototype.isComplete = function () { - return this.trackTime >= this.animationEnd - this.animationStart; - }; - TrackEntry.prototype.resetRotationDirections = function () { - this.timelinesRotation.length = 0; - }; - return TrackEntry; - }()); - spine.TrackEntry = TrackEntry; - var EventQueue = (function () { - function EventQueue(animState) { - this.objects = []; - this.drainDisabled = false; - this.animState = animState; - } - EventQueue.prototype.start = function (entry) { - this.objects.push(EventType.start); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.interrupt = function (entry) { - this.objects.push(EventType.interrupt); - this.objects.push(entry); - }; - EventQueue.prototype.end = function (entry) { - this.objects.push(EventType.end); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.dispose = function (entry) { - this.objects.push(EventType.dispose); - this.objects.push(entry); - }; - EventQueue.prototype.complete = function (entry) { - this.objects.push(EventType.complete); - this.objects.push(entry); - }; - EventQueue.prototype.event = function (entry, event) { - this.objects.push(EventType.event); - this.objects.push(entry); - this.objects.push(event); - }; - EventQueue.prototype.drain = function () { - if (this.drainDisabled) - return; - this.drainDisabled = true; - var objects = this.objects; - var listeners = this.animState.listeners; - for (var i = 0; i < objects.length; i += 2) { - var type = objects[i]; - var entry = objects[i + 1]; - switch (type) { - case EventType.start: - if (entry.listener != null && entry.listener.start) - entry.listener.start(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].start) - listeners[ii].start(entry); - break; - case EventType.interrupt: - if (entry.listener != null && entry.listener.interrupt) - entry.listener.interrupt(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].interrupt) - listeners[ii].interrupt(entry); - break; - case EventType.end: - if (entry.listener != null && entry.listener.end) - entry.listener.end(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].end) - listeners[ii].end(entry); - case EventType.dispose: - if (entry.listener != null && entry.listener.dispose) - entry.listener.dispose(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].dispose) - listeners[ii].dispose(entry); - this.animState.trackEntryPool.free(entry); - break; - case EventType.complete: - if (entry.listener != null && entry.listener.complete) - entry.listener.complete(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].complete) - listeners[ii].complete(entry); - break; - case EventType.event: - var event_3 = objects[i++ + 2]; - if (entry.listener != null && entry.listener.event) - entry.listener.event(entry, event_3); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].event) - listeners[ii].event(entry, event_3); - break; - } - } - this.clear(); - this.drainDisabled = false; - }; - EventQueue.prototype.clear = function () { - this.objects.length = 0; - }; - return EventQueue; - }()); - spine.EventQueue = EventQueue; - (function (EventType) { - EventType[EventType["start"] = 0] = "start"; - EventType[EventType["interrupt"] = 1] = "interrupt"; - EventType[EventType["end"] = 2] = "end"; - EventType[EventType["dispose"] = 3] = "dispose"; - EventType[EventType["complete"] = 4] = "complete"; - EventType[EventType["event"] = 5] = "event"; - })(spine.EventType || (spine.EventType = {})); - var EventType = spine.EventType; - var AnimationStateAdapter2 = (function () { - function AnimationStateAdapter2() { - } - AnimationStateAdapter2.prototype.start = function (entry) { - }; - AnimationStateAdapter2.prototype.interrupt = function (entry) { - }; - AnimationStateAdapter2.prototype.end = function (entry) { - }; - AnimationStateAdapter2.prototype.dispose = function (entry) { - }; - AnimationStateAdapter2.prototype.complete = function (entry) { - }; - AnimationStateAdapter2.prototype.event = function (entry, event) { - }; - return AnimationStateAdapter2; - }()); - spine.AnimationStateAdapter2 = AnimationStateAdapter2; + var AnimationState = (function () { + function AnimationState(data) { + this.tracks = new Array(); + this.events = new Array(); + this.listeners = new Array(); + this.queue = new EventQueue(this); + this.propertyIDs = new spine.IntSet(); + this.mixingTo = new Array(); + this.animationsChanged = false; + this.timeScale = 1; + this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); + this.data = data; + } + AnimationState.prototype.update = function (delta) { + delta *= this.timeScale; + var tracks = this.tracks; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null) + continue; + current.animationLast = current.nextAnimationLast; + current.trackLast = current.nextTrackLast; + var currentDelta = delta * current.timeScale; + if (current.delay > 0) { + current.delay -= currentDelta; + if (current.delay > 0) + continue; + currentDelta = -current.delay; + current.delay = 0; + } + var next = current.next; + if (next != null) { + var nextTime = current.trackLast - next.delay; + if (nextTime >= 0) { + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; + this.setCurrent(i, next, true); + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + } + else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; + } + if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { + var from = current.mixingFrom; + current.mixingFrom = null; + while (from != null) { + this.queue.end(from); + from = from.mixingFrom; + } + } + current.trackTime += currentDelta; + } + this.queue.drain(); + }; + AnimationState.prototype.updateMixingFrom = function (to, delta) { + var from = to.mixingFrom; + if (from == null) + return true; + var finished = this.updateMixingFrom(from, delta); + if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { + if (from.totalAlpha == 0) { + to.mixingFrom = from.mixingFrom; + to.interruptAlpha = from.interruptAlpha; + this.queue.end(from); + } + return finished; + } + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + from.trackTime += delta * from.timeScale; + to.mixTime += delta * to.timeScale; + return false; + }; + AnimationState.prototype.apply = function (skeleton) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (this.animationsChanged) + this._animationsChanged(); + var events = this.events; + var tracks = this.tracks; + var applied = false; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null || current.delay > 0) + continue; + applied = true; + var mix = current.alpha; + if (current.mixingFrom != null) + mix *= this.applyMixingFrom(current, skeleton); + else if (current.trackTime >= current.trackEnd && current.next == null) + mix = 0; + var animationLast = current.animationLast, animationTime = current.getAnimationTime(); + var timelineCount = current.animation.timelines.length; + var timelines = current.animation.timelines; + if (mix == 1) { + for (var ii = 0; ii < timelineCount; ii++) + timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); + } + else { + var timelineData = current.timelineData; + var firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = current.timelinesRotation; + for (var ii = 0; ii < timelineCount; ii++) { + var timeline = timelines[ii]; + if (timeline instanceof spine.RotateTimeline) { + this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); + } + else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); + } + } + this.queueEvents(current, animationTime); + events.length = 0; + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; + } + this.queue.drain(); + return applied; + }; + AnimationState.prototype.applyMixingFrom = function (to, skeleton) { + var from = to.mixingFrom; + if (from.mixingFrom != null) + this.applyMixingFrom(from, skeleton); + var mix = 0; + if (to.mixDuration == 0) + mix = 1; + else { + mix = to.mixTime / to.mixDuration; + if (mix > 1) + mix = 1; + } + var events = mix < from.eventThreshold ? this.events : null; + var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; + var animationLast = from.animationLast, animationTime = from.getAnimationTime(); + var timelineCount = from.animation.timelines.length; + var timelines = from.animation.timelines; + var timelineData = from.timelineData; + var timelineDipMix = from.timelineDipMix; + var firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = from.timelinesRotation; + var first = false; + var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; + from.totalAlpha = 0; + for (var i = 0; i < timelineCount; i++) { + var timeline = timelines[i]; + switch (timelineData[i]) { + case AnimationState.SUBSEQUENT: + first = false; + alpha = alphaMix; + break; + case AnimationState.FIRST: + first = true; + alpha = alphaMix; + break; + case AnimationState.DIP: + first = true; + alpha = alphaDip; + break; + default: + first = true; + alpha = alphaDip; + var dipMix = timelineDipMix[i]; + alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); + break; + } + from.totalAlpha += alpha; + if (timeline instanceof spine.RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); + else { + if (!first) { + if (!attachments && timeline instanceof spine.AttachmentTimeline) + continue; + if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) + continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); + } + } + if (to.mixDuration > 0) + this.queueEvents(from, animationTime); + this.events.length = 0; + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + }; + AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { + if (firstFrame) + timelinesRotation[i] = 0; + if (alpha == 1) { + timeline.apply(skeleton, 0, time, null, 1, setupPose, false); + return; + } + var rotateTimeline = timeline; + var frames = rotateTimeline.frames; + var bone = skeleton.bones[rotateTimeline.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + var r2 = 0; + if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) + r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; + else { + var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); + var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); + r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + r2 = prevRotation + r2 * percent + bone.data.rotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + } + var r1 = setupPose ? bone.data.rotation : bone.rotation; + var total = 0, diff = r2 - r1; + if (diff == 0) { + total = timelinesRotation[i]; + } + else { + diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; + var lastTotal = 0, lastDiff = 0; + if (firstFrame) { + lastTotal = 0; + lastDiff = diff; + } + else { + lastTotal = timelinesRotation[i]; + lastDiff = timelinesRotation[i + 1]; + } + var current = diff > 0, dir = lastTotal >= 0; + if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { + if (Math.abs(lastTotal) > 180) + lastTotal += 360 * spine.MathUtils.signum(lastTotal); + dir = current; + } + total = diff + lastTotal - lastTotal % 360; + if (dir != current) + total += 360 * spine.MathUtils.signum(lastTotal); + timelinesRotation[i] = total; + } + timelinesRotation[i + 1] = diff; + r1 += total * alpha; + bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; + }; + AnimationState.prototype.queueEvents = function (entry, animationTime) { + var animationStart = entry.animationStart, animationEnd = entry.animationEnd; + var duration = animationEnd - animationStart; + var trackLastWrapped = entry.trackLast % duration; + var events = this.events; + var i = 0, n = events.length; + for (; i < n; i++) { + var event_1 = events[i]; + if (event_1.time < trackLastWrapped) + break; + if (event_1.time > animationEnd) + continue; + this.queue.event(entry, event_1); + } + if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) + : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { + this.queue.complete(entry); + } + for (; i < n; i++) { + var event_2 = events[i]; + if (event_2.time < animationStart) + continue; + this.queue.event(entry, events[i]); + } + }; + AnimationState.prototype.clearTracks = function () { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) + this.clearTrack(i); + this.tracks.length = 0; + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.clearTrack = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return; + var current = this.tracks[trackIndex]; + if (current == null) + return; + this.queue.end(current); + this.disposeNext(current); + var entry = current; + while (true) { + var from = entry.mixingFrom; + if (from == null) + break; + this.queue.end(from); + entry.mixingFrom = null; + entry = from; + } + this.tracks[current.trackIndex] = null; + this.queue.drain(); + }; + AnimationState.prototype.setCurrent = function (index, current, interrupt) { + var from = this.expandToIndex(index); + this.tracks[index] = current; + if (from != null) { + if (interrupt) + this.queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + if (from.mixingFrom != null && from.mixDuration > 0) + current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); + from.timelinesRotation.length = 0; + } + this.queue.start(current); + }; + AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.setAnimationWith(trackIndex, animation, loop); + }; + AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { + if (animation == null) + throw new Error("animation cannot be null."); + var interrupt = true; + var current = this.expandToIndex(trackIndex); + if (current != null) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = current.mixingFrom; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = current.mixingFrom; + interrupt = false; + } + else + this.disposeNext(current); + } + var entry = this.trackEntry(trackIndex, animation, loop, current); + this.setCurrent(trackIndex, entry, interrupt); + this.queue.drain(); + return entry; + }; + AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.addAnimationWith(trackIndex, animation, loop, delay); + }; + AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { + if (animation == null) + throw new Error("animation cannot be null."); + var last = this.expandToIndex(trackIndex); + if (last != null) { + while (last.next != null) + last = last.next; + } + var entry = this.trackEntry(trackIndex, animation, loop, last); + if (last == null) { + this.setCurrent(trackIndex, entry, true); + this.queue.drain(); + } + else { + last.next = entry; + if (delay <= 0) { + var duration = last.animationEnd - last.animationStart; + if (duration != 0) + delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); + else + delay = 0; + } + } + entry.delay = delay; + return entry; + }; + AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { + var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { + if (delay <= 0) + delay -= mixDuration; + var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.setEmptyAnimations = function (mixDuration) { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var current = this.tracks[i]; + if (current != null) + this.setEmptyAnimation(current.trackIndex, mixDuration); + } + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.expandToIndex = function (index) { + if (index < this.tracks.length) + return this.tracks[index]; + spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); + this.tracks.length = index + 1; + return null; + }; + AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { + var entry = this.trackEntryPool.obtain(); + entry.trackIndex = trackIndex; + entry.animation = animation; + entry.loop = loop; + entry.eventThreshold = 0; + entry.attachmentThreshold = 0; + entry.drawOrderThreshold = 0; + entry.animationStart = 0; + entry.animationEnd = animation.duration; + entry.animationLast = -1; + entry.nextAnimationLast = -1; + entry.delay = 0; + entry.trackTime = 0; + entry.trackLast = -1; + entry.nextTrackLast = -1; + entry.trackEnd = Number.MAX_VALUE; + entry.timeScale = 1; + entry.alpha = 1; + entry.interruptAlpha = 1; + entry.mixTime = 0; + entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); + return entry; + }; + AnimationState.prototype.disposeNext = function (entry) { + var next = entry.next; + while (next != null) { + this.queue.dispose(next); + next = next.next; + } + entry.next = null; + }; + AnimationState.prototype._animationsChanged = function () { + this.animationsChanged = false; + var propertyIDs = this.propertyIDs; + propertyIDs.clear(); + var mixingTo = this.mixingTo; + var lastEntry = null; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var entry = this.tracks[i]; + if (entry != null) { + entry.setTimelineData(lastEntry, mixingTo, propertyIDs); + lastEntry = entry; + } + } + }; + AnimationState.prototype.getCurrent = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return null; + return this.tracks[trackIndex]; + }; + AnimationState.prototype.addListener = function (listener) { + if (listener == null) + throw new Error("listener cannot be null."); + this.listeners.push(listener); + }; + AnimationState.prototype.removeListener = function (listener) { + var index = this.listeners.indexOf(listener); + if (index >= 0) + this.listeners.splice(index, 1); + }; + AnimationState.prototype.clearListeners = function () { + this.listeners.length = 0; + }; + AnimationState.prototype.clearListenerNotifications = function () { + this.queue.clear(); + }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); + AnimationState.SUBSEQUENT = 0; + AnimationState.FIRST = 1; + AnimationState.DIP = 2; + AnimationState.DIP_MIX = 3; + return AnimationState; + }()); + spine.AnimationState = AnimationState; + var TrackEntry = (function () { + function TrackEntry() { + this.timelineData = new Array(); + this.timelineDipMix = new Array(); + this.timelinesRotation = new Array(); + } + TrackEntry.prototype.reset = function () { + this.next = null; + this.mixingFrom = null; + this.animation = null; + this.listener = null; + this.timelineData.length = 0; + this.timelineDipMix.length = 0; + this.timelinesRotation.length = 0; + }; + TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { + if (to != null) + mixingToArray.push(to); + var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; + if (to != null) + mixingToArray.pop(); + var mixingTo = mixingToArray; + var mixingToLast = mixingToArray.length - 1; + var timelines = this.animation.timelines; + var timelinesCount = this.animation.timelines.length; + var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); + this.timelineDipMix.length = 0; + var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); + outer: for (var i = 0; i < timelinesCount; i++) { + var id = timelines[i].getPropertyId(); + if (!propertyIDs.add(id)) + timelineData[i] = AnimationState.SUBSEQUENT; + else if (to == null || !to.hasTimeline(id)) + timelineData[i] = AnimationState.FIRST; + else { + for (var ii = mixingToLast; ii >= 0; ii--) { + var entry = mixingTo[ii]; + if (!entry.hasTimeline(id)) { + if (entry.mixDuration > 0) { + timelineData[i] = AnimationState.DIP_MIX; + timelineDipMix[i] = entry; + continue outer; + } + } + } + timelineData[i] = AnimationState.DIP; + } + } + return lastEntry; + }; + TrackEntry.prototype.hasTimeline = function (id) { + var timelines = this.animation.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + if (timelines[i].getPropertyId() == id) + return true; + return false; + }; + TrackEntry.prototype.getAnimationTime = function () { + if (this.loop) { + var duration = this.animationEnd - this.animationStart; + if (duration == 0) + return this.animationStart; + return (this.trackTime % duration) + this.animationStart; + } + return Math.min(this.trackTime + this.animationStart, this.animationEnd); + }; + TrackEntry.prototype.setAnimationLast = function (animationLast) { + this.animationLast = animationLast; + this.nextAnimationLast = animationLast; + }; + TrackEntry.prototype.isComplete = function () { + return this.trackTime >= this.animationEnd - this.animationStart; + }; + TrackEntry.prototype.resetRotationDirections = function () { + this.timelinesRotation.length = 0; + }; + return TrackEntry; + }()); + spine.TrackEntry = TrackEntry; + var EventQueue = (function () { + function EventQueue(animState) { + this.objects = []; + this.drainDisabled = false; + this.animState = animState; + } + EventQueue.prototype.start = function (entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.interrupt = function (entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); + }; + EventQueue.prototype.end = function (entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.dispose = function (entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); + }; + EventQueue.prototype.complete = function (entry) { + this.objects.push(EventType.complete); + this.objects.push(entry); + }; + EventQueue.prototype.event = function (entry, event) { + this.objects.push(EventType.event); + this.objects.push(entry); + this.objects.push(event); + }; + EventQueue.prototype.drain = function () { + if (this.drainDisabled) + return; + this.drainDisabled = true; + var objects = this.objects; + var listeners = this.animState.listeners; + for (var i = 0; i < objects.length; i += 2) { + var type = objects[i]; + var entry = objects[i + 1]; + switch (type) { + case EventType.start: + if (entry.listener != null && entry.listener.start) + entry.listener.start(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].start) + listeners[ii].start(entry); + break; + case EventType.interrupt: + if (entry.listener != null && entry.listener.interrupt) + entry.listener.interrupt(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].interrupt) + listeners[ii].interrupt(entry); + break; + case EventType.end: + if (entry.listener != null && entry.listener.end) + entry.listener.end(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].end) + listeners[ii].end(entry); + case EventType.dispose: + if (entry.listener != null && entry.listener.dispose) + entry.listener.dispose(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].dispose) + listeners[ii].dispose(entry); + this.animState.trackEntryPool.free(entry); + break; + case EventType.complete: + if (entry.listener != null && entry.listener.complete) + entry.listener.complete(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].complete) + listeners[ii].complete(entry); + break; + case EventType.event: + var event_3 = objects[i++ + 2]; + if (entry.listener != null && entry.listener.event) + entry.listener.event(entry, event_3); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].event) + listeners[ii].event(entry, event_3); + break; + } + } + this.clear(); + this.drainDisabled = false; + }; + EventQueue.prototype.clear = function () { + this.objects.length = 0; + }; + return EventQueue; + }()); + spine.EventQueue = EventQueue; + (function (EventType) { + EventType[EventType["start"] = 0] = "start"; + EventType[EventType["interrupt"] = 1] = "interrupt"; + EventType[EventType["end"] = 2] = "end"; + EventType[EventType["dispose"] = 3] = "dispose"; + EventType[EventType["complete"] = 4] = "complete"; + EventType[EventType["event"] = 5] = "event"; + })(spine.EventType || (spine.EventType = {})); + var EventType = spine.EventType; + var AnimationStateAdapter2 = (function () { + function AnimationStateAdapter2() { + } + AnimationStateAdapter2.prototype.start = function (entry) { + }; + AnimationStateAdapter2.prototype.interrupt = function (entry) { + }; + AnimationStateAdapter2.prototype.end = function (entry) { + }; + AnimationStateAdapter2.prototype.dispose = function (entry) { + }; + AnimationStateAdapter2.prototype.complete = function (entry) { + }; + AnimationStateAdapter2.prototype.event = function (entry, event) { + }; + return AnimationStateAdapter2; + }()); + spine.AnimationStateAdapter2 = AnimationStateAdapter2; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationStateData = (function () { - function AnimationStateData(skeletonData) { - this.animationToMixTime = {}; - this.defaultMix = 0; - if (skeletonData == null) - throw new Error("skeletonData cannot be null."); - this.skeletonData = skeletonData; - } - AnimationStateData.prototype.setMix = function (fromName, toName, duration) { - var from = this.skeletonData.findAnimation(fromName); - if (from == null) - throw new Error("Animation not found: " + fromName); - var to = this.skeletonData.findAnimation(toName); - if (to == null) - throw new Error("Animation not found: " + toName); - this.setMixWith(from, to, duration); - }; - AnimationStateData.prototype.setMixWith = function (from, to, duration) { - if (from == null) - throw new Error("from cannot be null."); - if (to == null) - throw new Error("to cannot be null."); - var key = from.name + to.name; - this.animationToMixTime[key] = duration; - }; - AnimationStateData.prototype.getMix = function (from, to) { - var key = from.name + to.name; - var value = this.animationToMixTime[key]; - return value === undefined ? this.defaultMix : value; - }; - return AnimationStateData; - }()); - spine.AnimationStateData = AnimationStateData; + var AnimationStateData = (function () { + function AnimationStateData(skeletonData) { + this.animationToMixTime = {}; + this.defaultMix = 0; + if (skeletonData == null) + throw new Error("skeletonData cannot be null."); + this.skeletonData = skeletonData; + } + AnimationStateData.prototype.setMix = function (fromName, toName, duration) { + var from = this.skeletonData.findAnimation(fromName); + if (from == null) + throw new Error("Animation not found: " + fromName); + var to = this.skeletonData.findAnimation(toName); + if (to == null) + throw new Error("Animation not found: " + toName); + this.setMixWith(from, to, duration); + }; + AnimationStateData.prototype.setMixWith = function (from, to, duration) { + if (from == null) + throw new Error("from cannot be null."); + if (to == null) + throw new Error("to cannot be null."); + var key = from.name + to.name; + this.animationToMixTime[key] = duration; + }; + AnimationStateData.prototype.getMix = function (from, to) { + var key = from.name + to.name; + var value = this.animationToMixTime[key]; + return value === undefined ? this.defaultMix : value; + }; + return AnimationStateData; + }()); + spine.AnimationStateData = AnimationStateData; })(spine || (spine = {})); var spine; (function (spine) { - var AtlasAttachmentLoader = (function () { - function AtlasAttachmentLoader(atlas) { - this.atlas = atlas; - } - AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.RegionAttachment(name); - attachment.setRegion(region); - return attachment; - }; - AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.MeshAttachment(name); - attachment.region = region; - return attachment; - }; - AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { - return new spine.BoundingBoxAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { - return new spine.PathAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { - return new spine.PointAttachment(name); - }; - AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { - return new spine.ClippingAttachment(name); - }; - return AtlasAttachmentLoader; - }()); - spine.AtlasAttachmentLoader = AtlasAttachmentLoader; + var AtlasAttachmentLoader = (function () { + function AtlasAttachmentLoader(atlas) { + this.atlas = atlas; + } + AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.RegionAttachment(name); + attachment.setRegion(region); + return attachment; + }; + AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.MeshAttachment(name); + attachment.region = region; + return attachment; + }; + AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { + return new spine.BoundingBoxAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { + return new spine.PathAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { + return new spine.PointAttachment(name); + }; + AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { + return new spine.ClippingAttachment(name); + }; + return AtlasAttachmentLoader; + }()); + spine.AtlasAttachmentLoader = AtlasAttachmentLoader; })(spine || (spine = {})); var spine; (function (spine) { - var Attachment = (function () { - function Attachment(name) { - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return Attachment; - }()); - spine.Attachment = Attachment; - var VertexAttachment = (function (_super) { - __extends(VertexAttachment, _super); - function VertexAttachment(name) { - _super.call(this, name); - this.worldVerticesLength = 0; - } - VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { - count = offset + (count >> 1) * stride; - var skeleton = slot.bone.skeleton; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices; - var bones = this.bones; - if (bones == null) { - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - var x = bone.worldX; - var y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { - var vx = vertices[v_1], vy = vertices[v_1 + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - } - return; - } - var v = 0, skip = 0; - for (var i = 0; i < start; i += 2) { - var n = bones[v]; - v += n + 1; - skip += n; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = offset, b = skip * 3; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - else { - var deform = deformArray; - for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3, f += 2) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - }; - VertexAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment; - }; - return VertexAttachment; - }(Attachment)); - spine.VertexAttachment = VertexAttachment; + var Attachment = (function () { + function Attachment(name) { + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return Attachment; + }()); + spine.Attachment = Attachment; + var VertexAttachment = (function (_super) { + __extends(VertexAttachment, _super); + function VertexAttachment(name) { + _super.call(this, name); + this.worldVerticesLength = 0; + } + VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { + count = offset + (count >> 1) * stride; + var skeleton = slot.bone.skeleton; + var deformArray = slot.attachmentVertices; + var vertices = this.vertices; + var bones = this.bones; + if (bones == null) { + if (deformArray.length > 0) + vertices = deformArray; + var bone = slot.bone; + var x = bone.worldX; + var y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { + var vx = vertices[v_1], vy = vertices[v_1 + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + } + return; + } + var v = 0, skip = 0; + for (var i = 0; i < start; i += 2) { + var n = bones[v]; + v += n + 1; + skip += n; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = offset, b = skip * 3; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + else { + var deform = deformArray; + for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3, f += 2) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + }; + VertexAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment; + }; + return VertexAttachment; + }(Attachment)); + spine.VertexAttachment = VertexAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (AttachmentType) { - AttachmentType[AttachmentType["Region"] = 0] = "Region"; - AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; - AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; - AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; - AttachmentType[AttachmentType["Path"] = 4] = "Path"; - AttachmentType[AttachmentType["Point"] = 5] = "Point"; - })(spine.AttachmentType || (spine.AttachmentType = {})); - var AttachmentType = spine.AttachmentType; + (function (AttachmentType) { + AttachmentType[AttachmentType["Region"] = 0] = "Region"; + AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; + AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; + AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; + AttachmentType[AttachmentType["Path"] = 4] = "Path"; + AttachmentType[AttachmentType["Point"] = 5] = "Point"; + })(spine.AttachmentType || (spine.AttachmentType = {})); + var AttachmentType = spine.AttachmentType; })(spine || (spine = {})); var spine; (function (spine) { - var BoundingBoxAttachment = (function (_super) { - __extends(BoundingBoxAttachment, _super); - function BoundingBoxAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - } - return BoundingBoxAttachment; - }(spine.VertexAttachment)); - spine.BoundingBoxAttachment = BoundingBoxAttachment; + var BoundingBoxAttachment = (function (_super) { + __extends(BoundingBoxAttachment, _super); + function BoundingBoxAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + } + return BoundingBoxAttachment; + }(spine.VertexAttachment)); + spine.BoundingBoxAttachment = BoundingBoxAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var ClippingAttachment = (function (_super) { - __extends(ClippingAttachment, _super); - function ClippingAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); - } - return ClippingAttachment; - }(spine.VertexAttachment)); - spine.ClippingAttachment = ClippingAttachment; + var ClippingAttachment = (function (_super) { + __extends(ClippingAttachment, _super); + function ClippingAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); + } + return ClippingAttachment; + }(spine.VertexAttachment)); + spine.ClippingAttachment = ClippingAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var MeshAttachment = (function (_super) { - __extends(MeshAttachment, _super); - function MeshAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - this.inheritDeform = false; - this.tempColor = new spine.Color(0, 0, 0, 0); - } - MeshAttachment.prototype.updateUVs = function () { - var u = 0, v = 0, width = 0, height = 0; - if (this.region == null) { - u = v = 0; - width = height = 1; - } - else { - u = this.region.u; - v = this.region.v; - width = this.region.u2 - u; - height = this.region.v2 - v; - } - var regionUVs = this.regionUVs; - if (this.uvs == null || this.uvs.length != regionUVs.length) - this.uvs = spine.Utils.newFloatArray(regionUVs.length); - var uvs = this.uvs; - if (this.region.rotate) { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i + 1] * width; - uvs[i + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i] * width; - uvs[i + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); - }; - MeshAttachment.prototype.getParentMesh = function () { - return this.parentMesh; - }; - MeshAttachment.prototype.setParentMesh = function (parentMesh) { - this.parentMesh = parentMesh; - if (parentMesh != null) { - this.bones = parentMesh.bones; - this.vertices = parentMesh.vertices; - this.worldVerticesLength = parentMesh.worldVerticesLength; - this.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - this.worldVerticesLength = parentMesh.worldVerticesLength; - } - }; - return MeshAttachment; - }(spine.VertexAttachment)); - spine.MeshAttachment = MeshAttachment; + var MeshAttachment = (function (_super) { + __extends(MeshAttachment, _super); + function MeshAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + this.inheritDeform = false; + this.tempColor = new spine.Color(0, 0, 0, 0); + } + MeshAttachment.prototype.updateUVs = function () { + var u = 0, v = 0, width = 0, height = 0; + if (this.region == null) { + u = v = 0; + width = height = 1; + } + else { + u = this.region.u; + v = this.region.v; + width = this.region.u2 - u; + height = this.region.v2 - v; + } + var regionUVs = this.regionUVs; + if (this.uvs == null || this.uvs.length != regionUVs.length) + this.uvs = spine.Utils.newFloatArray(regionUVs.length); + var uvs = this.uvs; + if (this.region.rotate) { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); + }; + MeshAttachment.prototype.getParentMesh = function () { + return this.parentMesh; + }; + MeshAttachment.prototype.setParentMesh = function (parentMesh) { + this.parentMesh = parentMesh; + if (parentMesh != null) { + this.bones = parentMesh.bones; + this.vertices = parentMesh.vertices; + this.worldVerticesLength = parentMesh.worldVerticesLength; + this.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + this.worldVerticesLength = parentMesh.worldVerticesLength; + } + }; + return MeshAttachment; + }(spine.VertexAttachment)); + spine.MeshAttachment = MeshAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PathAttachment = (function (_super) { - __extends(PathAttachment, _super); - function PathAttachment(name) { - _super.call(this, name); - this.closed = false; - this.constantSpeed = false; - this.color = new spine.Color(1, 1, 1, 1); - } - return PathAttachment; - }(spine.VertexAttachment)); - spine.PathAttachment = PathAttachment; + var PathAttachment = (function (_super) { + __extends(PathAttachment, _super); + function PathAttachment(name) { + _super.call(this, name); + this.closed = false; + this.constantSpeed = false; + this.color = new spine.Color(1, 1, 1, 1); + } + return PathAttachment; + }(spine.VertexAttachment)); + spine.PathAttachment = PathAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PointAttachment = (function (_super) { - __extends(PointAttachment, _super); - function PointAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.38, 0.94, 0, 1); - } - PointAttachment.prototype.computeWorldPosition = function (bone, point) { - point.x = this.x * bone.a + this.y * bone.b + bone.worldX; - point.y = this.x * bone.c + this.y * bone.d + bone.worldY; - return point; - }; - PointAttachment.prototype.computeWorldRotation = function (bone) { - var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); - var x = cos * bone.a + sin * bone.b; - var y = cos * bone.c + sin * bone.d; - return Math.atan2(y, x) * spine.MathUtils.radDeg; - }; - return PointAttachment; - }(spine.VertexAttachment)); - spine.PointAttachment = PointAttachment; + var PointAttachment = (function (_super) { + __extends(PointAttachment, _super); + function PointAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.38, 0.94, 0, 1); + } + PointAttachment.prototype.computeWorldPosition = function (bone, point) { + point.x = this.x * bone.a + this.y * bone.b + bone.worldX; + point.y = this.x * bone.c + this.y * bone.d + bone.worldY; + return point; + }; + PointAttachment.prototype.computeWorldRotation = function (bone) { + var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); + var x = cos * bone.a + sin * bone.b; + var y = cos * bone.c + sin * bone.d; + return Math.atan2(y, x) * spine.MathUtils.radDeg; + }; + return PointAttachment; + }(spine.VertexAttachment)); + spine.PointAttachment = PointAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var RegionAttachment = (function (_super) { - __extends(RegionAttachment, _super); - function RegionAttachment(name) { - _super.call(this, name); - this.x = 0; - this.y = 0; - this.scaleX = 1; - this.scaleY = 1; - this.rotation = 0; - this.width = 0; - this.height = 0; - this.color = new spine.Color(1, 1, 1, 1); - this.offset = spine.Utils.newFloatArray(8); - this.uvs = spine.Utils.newFloatArray(8); - this.tempColor = new spine.Color(1, 1, 1, 1); - } - RegionAttachment.prototype.updateOffset = function () { - var regionScaleX = this.width / this.region.originalWidth * this.scaleX; - var regionScaleY = this.height / this.region.originalHeight * this.scaleY; - var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; - var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; - var localX2 = localX + this.region.width * regionScaleX; - var localY2 = localY + this.region.height * regionScaleY; - var radians = this.rotation * Math.PI / 180; - var cos = Math.cos(radians); - var sin = Math.sin(radians); - var localXCos = localX * cos + this.x; - var localXSin = localX * sin; - var localYCos = localY * cos + this.y; - var localYSin = localY * sin; - var localX2Cos = localX2 * cos + this.x; - var localX2Sin = localX2 * sin; - var localY2Cos = localY2 * cos + this.y; - var localY2Sin = localY2 * sin; - var offset = this.offset; - offset[RegionAttachment.OX1] = localXCos - localYSin; - offset[RegionAttachment.OY1] = localYCos + localXSin; - offset[RegionAttachment.OX2] = localXCos - localY2Sin; - offset[RegionAttachment.OY2] = localY2Cos + localXSin; - offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; - offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; - offset[RegionAttachment.OX4] = localX2Cos - localYSin; - offset[RegionAttachment.OY4] = localYCos + localX2Sin; - }; - RegionAttachment.prototype.setRegion = function (region) { - this.region = region; - var uvs = this.uvs; - if (region.rotate) { - uvs[2] = region.u; - uvs[3] = region.v2; - uvs[4] = region.u; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v; - uvs[0] = region.u2; - uvs[1] = region.v2; - } - else { - uvs[0] = region.u; - uvs[1] = region.v2; - uvs[2] = region.u; - uvs[3] = region.v; - uvs[4] = region.u2; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v2; - } - }; - RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { - var vertexOffset = this.offset; - var x = bone.worldX, y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = vertexOffset[RegionAttachment.OX1]; - offsetY = vertexOffset[RegionAttachment.OY1]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX2]; - offsetY = vertexOffset[RegionAttachment.OY2]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX3]; - offsetY = vertexOffset[RegionAttachment.OY3]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX4]; - offsetY = vertexOffset[RegionAttachment.OY4]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - }; - RegionAttachment.OX1 = 0; - RegionAttachment.OY1 = 1; - RegionAttachment.OX2 = 2; - RegionAttachment.OY2 = 3; - RegionAttachment.OX3 = 4; - RegionAttachment.OY3 = 5; - RegionAttachment.OX4 = 6; - RegionAttachment.OY4 = 7; - RegionAttachment.X1 = 0; - RegionAttachment.Y1 = 1; - RegionAttachment.C1R = 2; - RegionAttachment.C1G = 3; - RegionAttachment.C1B = 4; - RegionAttachment.C1A = 5; - RegionAttachment.U1 = 6; - RegionAttachment.V1 = 7; - RegionAttachment.X2 = 8; - RegionAttachment.Y2 = 9; - RegionAttachment.C2R = 10; - RegionAttachment.C2G = 11; - RegionAttachment.C2B = 12; - RegionAttachment.C2A = 13; - RegionAttachment.U2 = 14; - RegionAttachment.V2 = 15; - RegionAttachment.X3 = 16; - RegionAttachment.Y3 = 17; - RegionAttachment.C3R = 18; - RegionAttachment.C3G = 19; - RegionAttachment.C3B = 20; - RegionAttachment.C3A = 21; - RegionAttachment.U3 = 22; - RegionAttachment.V3 = 23; - RegionAttachment.X4 = 24; - RegionAttachment.Y4 = 25; - RegionAttachment.C4R = 26; - RegionAttachment.C4G = 27; - RegionAttachment.C4B = 28; - RegionAttachment.C4A = 29; - RegionAttachment.U4 = 30; - RegionAttachment.V4 = 31; - return RegionAttachment; - }(spine.Attachment)); - spine.RegionAttachment = RegionAttachment; + var RegionAttachment = (function (_super) { + __extends(RegionAttachment, _super); + function RegionAttachment(name) { + _super.call(this, name); + this.x = 0; + this.y = 0; + this.scaleX = 1; + this.scaleY = 1; + this.rotation = 0; + this.width = 0; + this.height = 0; + this.color = new spine.Color(1, 1, 1, 1); + this.offset = spine.Utils.newFloatArray(8); + this.uvs = spine.Utils.newFloatArray(8); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.updateOffset = function () { + var regionScaleX = this.width / this.region.originalWidth * this.scaleX; + var regionScaleY = this.height / this.region.originalHeight * this.scaleY; + var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; + var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; + var localX2 = localX + this.region.width * regionScaleX; + var localY2 = localY + this.region.height * regionScaleY; + var radians = this.rotation * Math.PI / 180; + var cos = Math.cos(radians); + var sin = Math.sin(radians); + var localXCos = localX * cos + this.x; + var localXSin = localX * sin; + var localYCos = localY * cos + this.y; + var localYSin = localY * sin; + var localX2Cos = localX2 * cos + this.x; + var localX2Sin = localX2 * sin; + var localY2Cos = localY2 * cos + this.y; + var localY2Sin = localY2 * sin; + var offset = this.offset; + offset[RegionAttachment.OX1] = localXCos - localYSin; + offset[RegionAttachment.OY1] = localYCos + localXSin; + offset[RegionAttachment.OX2] = localXCos - localY2Sin; + offset[RegionAttachment.OY2] = localY2Cos + localXSin; + offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; + offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; + offset[RegionAttachment.OX4] = localX2Cos - localYSin; + offset[RegionAttachment.OY4] = localYCos + localX2Sin; + }; + RegionAttachment.prototype.setRegion = function (region) { + this.region = region; + var uvs = this.uvs; + if (region.rotate) { + uvs[2] = region.u; + uvs[3] = region.v2; + uvs[4] = region.u; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v; + uvs[0] = region.u2; + uvs[1] = region.v2; + } + else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; + } + }; + RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { + var vertexOffset = this.offset; + var x = bone.worldX, y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var offsetX = 0, offsetY = 0; + offsetX = vertexOffset[RegionAttachment.OX1]; + offsetY = vertexOffset[RegionAttachment.OY1]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX2]; + offsetY = vertexOffset[RegionAttachment.OY2]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX3]; + offsetY = vertexOffset[RegionAttachment.OY3]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX4]; + offsetY = vertexOffset[RegionAttachment.OY4]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + }; + RegionAttachment.OX1 = 0; + RegionAttachment.OY1 = 1; + RegionAttachment.OX2 = 2; + RegionAttachment.OY2 = 3; + RegionAttachment.OX3 = 4; + RegionAttachment.OY3 = 5; + RegionAttachment.OX4 = 6; + RegionAttachment.OY4 = 7; + RegionAttachment.X1 = 0; + RegionAttachment.Y1 = 1; + RegionAttachment.C1R = 2; + RegionAttachment.C1G = 3; + RegionAttachment.C1B = 4; + RegionAttachment.C1A = 5; + RegionAttachment.U1 = 6; + RegionAttachment.V1 = 7; + RegionAttachment.X2 = 8; + RegionAttachment.Y2 = 9; + RegionAttachment.C2R = 10; + RegionAttachment.C2G = 11; + RegionAttachment.C2B = 12; + RegionAttachment.C2A = 13; + RegionAttachment.U2 = 14; + RegionAttachment.V2 = 15; + RegionAttachment.X3 = 16; + RegionAttachment.Y3 = 17; + RegionAttachment.C3R = 18; + RegionAttachment.C3G = 19; + RegionAttachment.C3B = 20; + RegionAttachment.C3A = 21; + RegionAttachment.U3 = 22; + RegionAttachment.V3 = 23; + RegionAttachment.X4 = 24; + RegionAttachment.Y4 = 25; + RegionAttachment.C4R = 26; + RegionAttachment.C4G = 27; + RegionAttachment.C4B = 28; + RegionAttachment.C4A = 29; + RegionAttachment.U4 = 30; + RegionAttachment.V4 = 31; + return RegionAttachment; + }(spine.Attachment)); + spine.RegionAttachment = RegionAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (BlendMode) { - BlendMode[BlendMode["Normal"] = 0] = "Normal"; - BlendMode[BlendMode["Additive"] = 1] = "Additive"; - BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; - BlendMode[BlendMode["Screen"] = 3] = "Screen"; - })(spine.BlendMode || (spine.BlendMode = {})); - var BlendMode = spine.BlendMode; + (function (BlendMode) { + BlendMode[BlendMode["Normal"] = 0] = "Normal"; + BlendMode[BlendMode["Additive"] = 1] = "Additive"; + BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; + BlendMode[BlendMode["Screen"] = 3] = "Screen"; + })(spine.BlendMode || (spine.BlendMode = {})); + var BlendMode = spine.BlendMode; })(spine || (spine = {})); var spine; (function (spine) { - var Bone = (function () { - function Bone(data, skeleton, parent) { - this.children = new Array(); - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 0; - this.scaleY = 0; - this.shearX = 0; - this.shearY = 0; - this.ax = 0; - this.ay = 0; - this.arotation = 0; - this.ascaleX = 0; - this.ascaleY = 0; - this.ashearX = 0; - this.ashearY = 0; - this.appliedValid = false; - this.a = 0; - this.b = 0; - this.worldX = 0; - this.c = 0; - this.d = 0; - this.worldY = 0; - this.sorted = false; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.skeleton = skeleton; - this.parent = parent; - this.setToSetupPose(); - } - Bone.prototype.update = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransform = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { - this.ax = x; - this.ay = y; - this.arotation = rotation; - this.ascaleX = scaleX; - this.ascaleY = scaleY; - this.ashearX = shearX; - this.ashearY = shearY; - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - var skeleton = this.skeleton; - if (skeleton.flipX) { - x = -x; - la = -la; - lb = -lb; - } - if (skeleton.flipY) { - y = -y; - lc = -lc; - ld = -ld; - } - this.a = la; - this.b = lb; - this.c = lc; - this.d = ld; - this.worldX = x + skeleton.x; - this.worldY = y + skeleton.y; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - this.worldX = pa * x + pb * y + parent.worldX; - this.worldY = pc * x + pd * y + parent.worldY; - switch (this.data.transformMode) { - case spine.TransformMode.Normal: { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - return; - } - case spine.TransformMode.OnlyTranslation: { - var rotationY = rotation + 90 + shearY; - this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; - this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; - break; - } - case spine.TransformMode.NoRotationOrReflection: { - var s = pa * pa + pc * pc; - var prx = 0; - if (s > 0.0001) { - s = Math.abs(pa * pd - pb * pc) / s; - pb = pc * s; - pd = pa * s; - prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; - } - else { - pa = 0; - pc = 0; - prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; - } - var rx = rotation + shearX - prx; - var ry = rotation + shearY - prx + 90; - var la = spine.MathUtils.cosDeg(rx) * scaleX; - var lb = spine.MathUtils.cosDeg(ry) * scaleY; - var lc = spine.MathUtils.sinDeg(rx) * scaleX; - var ld = spine.MathUtils.sinDeg(ry) * scaleY; - this.a = pa * la - pb * lc; - this.b = pa * lb - pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - break; - } - case spine.TransformMode.NoScale: - case spine.TransformMode.NoScaleOrReflection: { - var cos = spine.MathUtils.cosDeg(rotation); - var sin = spine.MathUtils.sinDeg(rotation); - var za = pa * cos + pb * sin; - var zc = pc * cos + pd * sin; - var s = Math.sqrt(za * za + zc * zc); - if (s > 0.00001) - s = 1 / s; - za *= s; - zc *= s; - s = Math.sqrt(za * za + zc * zc); - var r = Math.PI / 2 + Math.atan2(zc, za); - var zb = Math.cos(r) * s; - var zd = Math.sin(r) * s; - var la = spine.MathUtils.cosDeg(shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; - var lc = spine.MathUtils.sinDeg(shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; - this.a = za * la + zb * lc; - this.b = za * lb + zb * ld; - this.c = zc * la + zd * lc; - this.d = zc * lb + zd * ld; - if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { - this.b = -this.b; - this.d = -this.d; - } - return; - } - } - if (this.skeleton.flipX) { - this.a = -this.a; - this.b = -this.b; - } - if (this.skeleton.flipY) { - this.c = -this.c; - this.d = -this.d; - } - }; - Bone.prototype.setToSetupPose = function () { - var data = this.data; - this.x = data.x; - this.y = data.y; - this.rotation = data.rotation; - this.scaleX = data.scaleX; - this.scaleY = data.scaleY; - this.shearX = data.shearX; - this.shearY = data.shearY; - }; - Bone.prototype.getWorldRotationX = function () { - return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldRotationY = function () { - return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldScaleX = function () { - return Math.sqrt(this.a * this.a + this.c * this.c); - }; - Bone.prototype.getWorldScaleY = function () { - return Math.sqrt(this.b * this.b + this.d * this.d); - }; - Bone.prototype.updateAppliedTransform = function () { - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - this.ax = this.worldX; - this.ay = this.worldY; - this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); - this.ashearX = 0; - this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - var pid = 1 / (pa * pd - pb * pc); - var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; - this.ax = (dx * pd * pid - dy * pb * pid); - this.ay = (dy * pa * pid - dx * pc * pid); - var ia = pid * pd; - var id = pid * pa; - var ib = pid * pb; - var ic = pid * pc; - var ra = ia * this.a - ib * this.c; - var rb = ia * this.b - ib * this.d; - var rc = id * this.c - ic * this.a; - var rd = id * this.d - ic * this.b; - this.ashearX = 0; - this.ascaleX = Math.sqrt(ra * ra + rc * rc); - if (this.ascaleX > 0.0001) { - var det = ra * rd - rb * rc; - this.ascaleY = det / this.ascaleX; - this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; - this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; - } - else { - this.ascaleX = 0; - this.ascaleY = Math.sqrt(rb * rb + rd * rd); - this.ashearY = 0; - this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; - } - }; - Bone.prototype.worldToLocal = function (world) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var invDet = 1 / (a * d - b * c); - var x = world.x - this.worldX, y = world.y - this.worldY; - world.x = (x * d * invDet - y * b * invDet); - world.y = (y * a * invDet - x * c * invDet); - return world; - }; - Bone.prototype.localToWorld = function (local) { - var x = local.x, y = local.y; - local.x = x * this.a + y * this.b + this.worldX; - local.y = x * this.c + y * this.d + this.worldY; - return local; - }; - Bone.prototype.worldToLocalRotation = function (worldRotation) { - var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); - return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; - }; - Bone.prototype.localToWorldRotation = function (localRotation) { - var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); - return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.rotateWorld = function (degrees) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); - this.a = cos * a - sin * c; - this.b = cos * b - sin * d; - this.c = sin * a + cos * c; - this.d = sin * b + cos * d; - this.appliedValid = false; - }; - return Bone; - }()); - spine.Bone = Bone; + var Bone = (function () { + function Bone(data, skeleton, parent) { + this.children = new Array(); + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 0; + this.scaleY = 0; + this.shearX = 0; + this.shearY = 0; + this.ax = 0; + this.ay = 0; + this.arotation = 0; + this.ascaleX = 0; + this.ascaleY = 0; + this.ashearX = 0; + this.ashearY = 0; + this.appliedValid = false; + this.a = 0; + this.b = 0; + this.worldX = 0; + this.c = 0; + this.d = 0; + this.worldY = 0; + this.sorted = false; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.skeleton = skeleton; + this.parent = parent; + this.setToSetupPose(); + } + Bone.prototype.update = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransform = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { + this.ax = x; + this.ay = y; + this.arotation = rotation; + this.ascaleX = scaleX; + this.ascaleY = scaleY; + this.ashearX = shearX; + this.ashearY = shearY; + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + var skeleton = this.skeleton; + if (skeleton.flipX) { + x = -x; + la = -la; + lb = -lb; + } + if (skeleton.flipY) { + y = -y; + lc = -lc; + ld = -ld; + } + this.a = la; + this.b = lb; + this.c = lc; + this.d = ld; + this.worldX = x + skeleton.x; + this.worldY = y + skeleton.y; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + this.worldX = pa * x + pb * y + parent.worldX; + this.worldY = pc * x + pd * y + parent.worldY; + switch (this.data.transformMode) { + case spine.TransformMode.Normal: { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + this.a = pa * la + pb * lc; + this.b = pa * lb + pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + return; + } + case spine.TransformMode.OnlyTranslation: { + var rotationY = rotation + 90 + shearY; + this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; + this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; + break; + } + case spine.TransformMode.NoRotationOrReflection: { + var s = pa * pa + pc * pc; + var prx = 0; + if (s > 0.0001) { + s = Math.abs(pa * pd - pb * pc) / s; + pb = pc * s; + pd = pa * s; + prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; + } + else { + pa = 0; + pc = 0; + prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; + } + var rx = rotation + shearX - prx; + var ry = rotation + shearY - prx + 90; + var la = spine.MathUtils.cosDeg(rx) * scaleX; + var lb = spine.MathUtils.cosDeg(ry) * scaleY; + var lc = spine.MathUtils.sinDeg(rx) * scaleX; + var ld = spine.MathUtils.sinDeg(ry) * scaleY; + this.a = pa * la - pb * lc; + this.b = pa * lb - pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + break; + } + case spine.TransformMode.NoScale: + case spine.TransformMode.NoScaleOrReflection: { + var cos = spine.MathUtils.cosDeg(rotation); + var sin = spine.MathUtils.sinDeg(rotation); + var za = pa * cos + pb * sin; + var zc = pc * cos + pd * sin; + var s = Math.sqrt(za * za + zc * zc); + if (s > 0.00001) + s = 1 / s; + za *= s; + zc *= s; + s = Math.sqrt(za * za + zc * zc); + var r = Math.PI / 2 + Math.atan2(zc, za); + var zb = Math.cos(r) * s; + var zd = Math.sin(r) * s; + var la = spine.MathUtils.cosDeg(shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; + var lc = spine.MathUtils.sinDeg(shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; + this.a = za * la + zb * lc; + this.b = za * lb + zb * ld; + this.c = zc * la + zd * lc; + this.d = zc * lb + zd * ld; + if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { + this.b = -this.b; + this.d = -this.d; + } + return; + } + } + if (this.skeleton.flipX) { + this.a = -this.a; + this.b = -this.b; + } + if (this.skeleton.flipY) { + this.c = -this.c; + this.d = -this.d; + } + }; + Bone.prototype.setToSetupPose = function () { + var data = this.data; + this.x = data.x; + this.y = data.y; + this.rotation = data.rotation; + this.scaleX = data.scaleX; + this.scaleY = data.scaleY; + this.shearX = data.shearX; + this.shearY = data.shearY; + }; + Bone.prototype.getWorldRotationX = function () { + return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldRotationY = function () { + return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldScaleX = function () { + return Math.sqrt(this.a * this.a + this.c * this.c); + }; + Bone.prototype.getWorldScaleY = function () { + return Math.sqrt(this.b * this.b + this.d * this.d); + }; + Bone.prototype.updateAppliedTransform = function () { + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + this.ax = this.worldX; + this.ay = this.worldY; + this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); + this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); + this.ashearX = 0; + this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + var pid = 1 / (pa * pd - pb * pc); + var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; + this.ax = (dx * pd * pid - dy * pb * pid); + this.ay = (dy * pa * pid - dx * pc * pid); + var ia = pid * pd; + var id = pid * pa; + var ib = pid * pb; + var ic = pid * pc; + var ra = ia * this.a - ib * this.c; + var rb = ia * this.b - ib * this.d; + var rc = id * this.c - ic * this.a; + var rd = id * this.d - ic * this.b; + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { + var det = ra * rd - rb * rc; + this.ascaleY = det / this.ascaleX; + this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; + this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; + } + else { + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; + } + }; + Bone.prototype.worldToLocal = function (world) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var invDet = 1 / (a * d - b * c); + var x = world.x - this.worldX, y = world.y - this.worldY; + world.x = (x * d * invDet - y * b * invDet); + world.y = (y * a * invDet - x * c * invDet); + return world; + }; + Bone.prototype.localToWorld = function (local) { + var x = local.x, y = local.y; + local.x = x * this.a + y * this.b + this.worldX; + local.y = x * this.c + y * this.d + this.worldY; + return local; + }; + Bone.prototype.worldToLocalRotation = function (worldRotation) { + var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); + return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; + }; + Bone.prototype.localToWorldRotation = function (localRotation) { + var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); + return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.rotateWorld = function (degrees) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); + this.a = cos * a - sin * c; + this.b = cos * b - sin * d; + this.c = sin * a + cos * c; + this.d = sin * b + cos * d; + this.appliedValid = false; + }; + return Bone; + }()); + spine.Bone = Bone; })(spine || (spine = {})); var spine; (function (spine) { - var BoneData = (function () { - function BoneData(index, name, parent) { - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 1; - this.scaleY = 1; - this.shearX = 0; - this.shearY = 0; - this.transformMode = TransformMode.Normal; - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - this.index = index; - this.name = name; - this.parent = parent; - } - return BoneData; - }()); - spine.BoneData = BoneData; - (function (TransformMode) { - TransformMode[TransformMode["Normal"] = 0] = "Normal"; - TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; - TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; - TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; - TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; - })(spine.TransformMode || (spine.TransformMode = {})); - var TransformMode = spine.TransformMode; + var BoneData = (function () { + function BoneData(index, name, parent) { + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 1; + this.scaleY = 1; + this.shearX = 0; + this.shearY = 0; + this.transformMode = TransformMode.Normal; + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + this.index = index; + this.name = name; + this.parent = parent; + } + return BoneData; + }()); + spine.BoneData = BoneData; + (function (TransformMode) { + TransformMode[TransformMode["Normal"] = 0] = "Normal"; + TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; + TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; + TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; + TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; + })(spine.TransformMode || (spine.TransformMode = {})); + var TransformMode = spine.TransformMode; })(spine || (spine = {})); var spine; (function (spine) { - var Event = (function () { - function Event(time, data) { - if (data == null) - throw new Error("data cannot be null."); - this.time = time; - this.data = data; - } - return Event; - }()); - spine.Event = Event; + var Event = (function () { + function Event(time, data) { + if (data == null) + throw new Error("data cannot be null."); + this.time = time; + this.data = data; + } + return Event; + }()); + spine.Event = Event; })(spine || (spine = {})); var spine; (function (spine) { - var EventData = (function () { - function EventData(name) { - this.name = name; - } - return EventData; - }()); - spine.EventData = EventData; + var EventData = (function () { + function EventData(name) { + this.name = name; + } + return EventData; + }()); + spine.EventData = EventData; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraint = (function () { - function IkConstraint(data, skeleton) { - this.mix = 1; - this.bendDirection = 0; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.mix = data.mix; - this.bendDirection = data.bendDirection; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - IkConstraint.prototype.getOrder = function () { - return this.data.order; - }; - IkConstraint.prototype.apply = function () { - this.update(); - }; - IkConstraint.prototype.update = function () { - var target = this.target; - var bones = this.bones; - switch (bones.length) { - case 1: - this.apply1(bones[0], target.worldX, target.worldY, this.mix); - break; - case 2: - this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); - break; - } - }; - IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var p = bone.parent; - var id = 1 / (p.a * p.d - p.b * p.c); - var x = targetX - p.worldX, y = targetY - p.worldY; - var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; - var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; - if (bone.ascaleX < 0) - rotationIK += 180; - if (rotationIK > 180) - rotationIK -= 360; - else if (rotationIK < -180) - rotationIK += 360; - bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); - }; - IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { - if (alpha == 0) { - child.updateWorldTransform(); - return; - } - if (!parent.appliedValid) - parent.updateAppliedTransform(); - if (!child.appliedValid) - child.updateAppliedTransform(); - var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; - var os1 = 0, os2 = 0, s2 = 0; - if (psx < 0) { - psx = -psx; - os1 = 180; - s2 = -1; - } - else { - os1 = 0; - s2 = 1; - } - if (psy < 0) { - psy = -psy; - s2 = -s2; - } - if (csx < 0) { - csx = -csx; - os2 = 180; - } - else - os2 = 0; - var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; - var u = Math.abs(psx - psy) <= 0.0001; - if (!u) { - cy = 0; - cwx = a * cx + parent.worldX; - cwy = c * cx + parent.worldY; - } - else { - cy = child.ay; - cwx = a * cx + b * cy + parent.worldX; - cwy = c * cx + d * cy + parent.worldY; - } - var pp = parent.parent; - a = pp.a; - b = pp.b; - c = pp.c; - d = pp.d; - var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; - var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; - x = cwx - pp.worldX; - y = cwy - pp.worldY; - var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; - var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; - outer: if (u) { - l2 *= psx; - var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); - if (cos < -1) - cos = -1; - else if (cos > 1) - cos = 1; - a2 = Math.acos(cos) * bendDir; - a = l1 + l2 * cos; - b = l2 * Math.sin(a2); - a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); - } - else { - a = psx * l2; - b = psy * l2; - var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); - c = bb * l1 * l1 + aa * dd - aa * bb; - var c1 = -2 * bb * l1, c2 = bb - aa; - d = c1 * c1 - 4 * c2 * c; - if (d >= 0) { - var q = Math.sqrt(d); - if (c1 < 0) - q = -q; - q = -(c1 + q) / 2; - var r0 = q / c2, r1 = c / q; - var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; - if (r * r <= dd) { - y = Math.sqrt(dd - r * r) * bendDir; - a1 = ta - Math.atan2(y, r); - a2 = Math.atan2(y / psy, (r - l1) / psx); - break outer; - } - } - var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; - var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; - c = -a * l1 / (aa - bb); - if (c >= -1 && c <= 1) { - c = Math.acos(c); - x = a * Math.cos(c) + l1; - y = b * Math.sin(c); - d = x * x + y * y; - if (d < minDist) { - minAngle = c; - minDist = d; - minX = x; - minY = y; - } - if (d > maxDist) { - maxAngle = c; - maxDist = d; - maxX = x; - maxY = y; - } - } - if (dd <= (minDist + maxDist) / 2) { - a1 = ta - Math.atan2(minY * bendDir, minX); - a2 = minAngle * bendDir; - } - else { - a1 = ta - Math.atan2(maxY * bendDir, maxX); - a2 = maxAngle * bendDir; - } - } - var os = Math.atan2(cy, cx) * s2; - var rotation = parent.arotation; - a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; - if (a1 > 180) - a1 -= 360; - else if (a1 < -180) - a1 += 360; - parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); - rotation = child.arotation; - a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; - if (a2 > 180) - a2 -= 360; - else if (a2 < -180) - a2 += 360; - child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); - }; - return IkConstraint; - }()); - spine.IkConstraint = IkConstraint; + var IkConstraint = (function () { + function IkConstraint(data, skeleton) { + this.mix = 1; + this.bendDirection = 0; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.mix = data.mix; + this.bendDirection = data.bendDirection; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + IkConstraint.prototype.getOrder = function () { + return this.data.order; + }; + IkConstraint.prototype.apply = function () { + this.update(); + }; + IkConstraint.prototype.update = function () { + var target = this.target; + var bones = this.bones; + switch (bones.length) { + case 1: + this.apply1(bones[0], target.worldX, target.worldY, this.mix); + break; + case 2: + this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); + break; + } + }; + IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var p = bone.parent; + var id = 1 / (p.a * p.d - p.b * p.c); + var x = targetX - p.worldX, y = targetY - p.worldY; + var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; + var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; + if (bone.ascaleX < 0) + rotationIK += 180; + if (rotationIK > 180) + rotationIK -= 360; + else if (rotationIK < -180) + rotationIK += 360; + bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); + }; + IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { + if (alpha == 0) { + child.updateWorldTransform(); + return; + } + if (!parent.appliedValid) + parent.updateAppliedTransform(); + if (!child.appliedValid) + child.updateAppliedTransform(); + var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; + var os1 = 0, os2 = 0, s2 = 0; + if (psx < 0) { + psx = -psx; + os1 = 180; + s2 = -1; + } + else { + os1 = 0; + s2 = 1; + } + if (psy < 0) { + psy = -psy; + s2 = -s2; + } + if (csx < 0) { + csx = -csx; + os2 = 180; + } + else + os2 = 0; + var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + var u = Math.abs(psx - psy) <= 0.0001; + if (!u) { + cy = 0; + cwx = a * cx + parent.worldX; + cwy = c * cx + parent.worldY; + } + else { + cy = child.ay; + cwx = a * cx + b * cy + parent.worldX; + cwy = c * cx + d * cy + parent.worldY; + } + var pp = parent.parent; + a = pp.a; + b = pp.b; + c = pp.c; + d = pp.d; + var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; + var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; + x = cwx - pp.worldX; + y = cwy - pp.worldY; + var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; + var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; + outer: if (u) { + l2 *= psx; + var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); + if (cos < -1) + cos = -1; + else if (cos > 1) + cos = 1; + a2 = Math.acos(cos) * bendDir; + a = l1 + l2 * cos; + b = l2 * Math.sin(a2); + a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); + } + else { + a = psx * l2; + b = psy * l2; + var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); + c = bb * l1 * l1 + aa * dd - aa * bb; + var c1 = -2 * bb * l1, c2 = bb - aa; + d = c1 * c1 - 4 * c2 * c; + if (d >= 0) { + var q = Math.sqrt(d); + if (c1 < 0) + q = -q; + q = -(c1 + q) / 2; + var r0 = q / c2, r1 = c / q; + var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; + if (r * r <= dd) { + y = Math.sqrt(dd - r * r) * bendDir; + a1 = ta - Math.atan2(y, r); + a2 = Math.atan2(y / psy, (r - l1) / psx); + break outer; + } + } + var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; + var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } + } + if (dd <= (minDist + maxDist) / 2) { + a1 = ta - Math.atan2(minY * bendDir, minX); + a2 = minAngle * bendDir; + } + else { + a1 = ta - Math.atan2(maxY * bendDir, maxX); + a2 = maxAngle * bendDir; + } + } + var os = Math.atan2(cy, cx) * s2; + var rotation = parent.arotation; + a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; + if (a1 > 180) + a1 -= 360; + else if (a1 < -180) + a1 += 360; + parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); + rotation = child.arotation; + a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; + if (a2 > 180) + a2 -= 360; + else if (a2 < -180) + a2 += 360; + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); + }; + return IkConstraint; + }()); + spine.IkConstraint = IkConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraintData = (function () { - function IkConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.bendDirection = 1; - this.mix = 1; - this.name = name; - } - return IkConstraintData; - }()); - spine.IkConstraintData = IkConstraintData; + var IkConstraintData = (function () { + function IkConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.bendDirection = 1; + this.mix = 1; + this.name = name; + } + return IkConstraintData; + }()); + spine.IkConstraintData = IkConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraint = (function () { - function PathConstraint(data, skeleton) { - this.position = 0; - this.spacing = 0; - this.rotateMix = 0; - this.translateMix = 0; - this.spaces = new Array(); - this.positions = new Array(); - this.world = new Array(); - this.curves = new Array(); - this.lengths = new Array(); - this.segments = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0, n = data.bones.length; i < n; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findSlot(data.target.name); - this.position = data.position; - this.spacing = data.spacing; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - } - PathConstraint.prototype.apply = function () { - this.update(); - }; - PathConstraint.prototype.update = function () { - var attachment = this.target.getAttachment(); - if (!(attachment instanceof spine.PathAttachment)) - return; - var rotateMix = this.rotateMix, translateMix = this.translateMix; - var translate = translateMix > 0, rotate = rotateMix > 0; - if (!translate && !rotate) - return; - var data = this.data; - var spacingMode = data.spacingMode; - var lengthSpacing = spacingMode == spine.SpacingMode.Length; - var rotateMode = data.rotateMode; - var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; - var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; - var bones = this.bones; - var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; - var spacing = this.spacing; - if (scale || lengthSpacing) { - if (scale) - lengths = spine.Utils.setArraySize(this.lengths, boneCount); - for (var i = 0, n = spacesCount - 1; i < n;) { - var bone = bones[i]; - var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; - var length_1 = Math.sqrt(x * x + y * y); - if (scale) - lengths[i] = length_1; - spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; - } - } - else { - for (var i = 1; i < spacesCount; i++) - spaces[i] = spacing; - } - var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); - var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - var tip = false; - if (offsetRotation == 0) - tip = rotateMode == spine.RotateMode.Chain; - else { - tip = false; - var p = this.target.bone; - offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - } - for (var i = 0, p = 3; i < boneCount; i++, p += 3) { - var bone = bones[i]; - bone.worldX += (boneX - bone.worldX) * translateMix; - bone.worldY += (boneY - bone.worldY) * translateMix; - var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; - if (scale) { - var length_2 = lengths[i]; - if (length_2 != 0) { - var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; - bone.a *= s; - bone.c *= s; - } - } - boneX = x; - boneY = y; - if (rotate) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; - if (tangents) - r = positions[p - 1]; - else if (spaces[i + 1] == 0) - r = positions[p + 2]; - else - r = Math.atan2(dy, dx); - r -= Math.atan2(c, a); - if (tip) { - cos = Math.cos(r); - sin = Math.sin(r); - var length_3 = bone.data.length; - boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; - boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; - } - else { - r += offsetRotation; - } - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - cos = Math.cos(r); - sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - } - bone.appliedValid = false; - } - }; - PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { - var target = this.target; - var position = this.position; - var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; - var closed = path.closed; - var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; - if (!path.constantSpeed) { - var lengths = path.lengths; - curveCount -= closed ? 1 : 2; - var pathLength_1 = lengths[curveCount]; - if (percentPosition) - position *= pathLength_1; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength_1; - } - world = spine.Utils.setArraySize(this.world, 8); - for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength_1; - if (p < 0) - p += pathLength_1; - curve = 0; - } - else if (p < 0) { - if (prevCurve != PathConstraint.BEFORE) { - prevCurve = PathConstraint.BEFORE; - path.computeWorldVertices(target, 2, 4, world, 0, 2); - } - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength_1) { - if (prevCurve != PathConstraint.AFTER) { - prevCurve = PathConstraint.AFTER; - path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); - } - this.addAfterPosition(p - pathLength_1, world, 0, out, o); - continue; - } - for (;; curve++) { - var length_4 = lengths[curve]; - if (p > length_4) - continue; - if (curve == 0) - p /= length_4; - else { - var prev = lengths[curve - 1]; - p = (p - prev) / (length_4 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - if (closed && curve == curveCount) { - path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); - path.computeWorldVertices(target, 0, 4, world, 4, 2); - } - else - path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); - } - this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); - } - return out; - } - if (closed) { - verticesLength += 2; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); - path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); - world[verticesLength - 2] = world[0]; - world[verticesLength - 1] = world[1]; - } - else { - curveCount--; - verticesLength -= 4; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); - } - var curves = spine.Utils.setArraySize(this.curves, curveCount); - var pathLength = 0; - var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; - var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; - for (var i = 0, w = 2; i < curveCount; i++, w += 6) { - cx1 = world[w]; - cy1 = world[w + 1]; - cx2 = world[w + 2]; - cy2 = world[w + 3]; - x2 = world[w + 4]; - y2 = world[w + 5]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; - tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - curves[i] = pathLength; - x1 = x2; - y1 = y2; - } - if (percentPosition) - position *= pathLength; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength; - } - var segments = this.segments; - var curveLength = 0; - for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength; - if (p < 0) - p += pathLength; - curve = 0; - } - else if (p < 0) { - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength) { - this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); - continue; - } - for (;; curve++) { - var length_5 = curves[curve]; - if (p > length_5) - continue; - if (curve == 0) - p /= length_5; - else { - var prev = curves[curve - 1]; - p = (p - prev) / (length_5 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - var ii = curve * 6; - x1 = world[ii]; - y1 = world[ii + 1]; - cx1 = world[ii + 2]; - cy1 = world[ii + 3]; - cx2 = world[ii + 4]; - cy2 = world[ii + 5]; - x2 = world[ii + 6]; - y2 = world[ii + 7]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.03; - tmpy = (y1 - cy1 * 2 + cy2) * 0.03; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; - curveLength = Math.sqrt(dfx * dfx + dfy * dfy); - segments[0] = curveLength; - for (ii = 1; ii < 8; ii++) { - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[ii] = curveLength; - } - dfx += ddfx; - dfy += ddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[8] = curveLength; - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[9] = curveLength; - segment = 0; - } - p *= curveLength; - for (;; segment++) { - var length_6 = segments[segment]; - if (p > length_6) - continue; - if (segment == 0) - p /= length_6; - else { - var prev = segments[segment - 1]; - p = segment + (p - prev) / (length_6 - prev); - } - break; - } - this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); - } - return out; - }; - PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { - var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { - var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { - if (p == 0 || isNaN(p)) - p = 0.0001; - var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; - var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; - var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; - out[o] = x; - out[o + 1] = y; - if (tangents) - out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); - }; - PathConstraint.prototype.getOrder = function () { - return this.data.order; - }; - PathConstraint.NONE = -1; - PathConstraint.BEFORE = -2; - PathConstraint.AFTER = -3; - return PathConstraint; - }()); - spine.PathConstraint = PathConstraint; + var PathConstraint = (function () { + function PathConstraint(data, skeleton) { + this.position = 0; + this.spacing = 0; + this.rotateMix = 0; + this.translateMix = 0; + this.spaces = new Array(); + this.positions = new Array(); + this.world = new Array(); + this.curves = new Array(); + this.lengths = new Array(); + this.segments = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0, n = data.bones.length; i < n; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findSlot(data.target.name); + this.position = data.position; + this.spacing = data.spacing; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + } + PathConstraint.prototype.apply = function () { + this.update(); + }; + PathConstraint.prototype.update = function () { + var attachment = this.target.getAttachment(); + if (!(attachment instanceof spine.PathAttachment)) + return; + var rotateMix = this.rotateMix, translateMix = this.translateMix; + var translate = translateMix > 0, rotate = rotateMix > 0; + if (!translate && !rotate) + return; + var data = this.data; + var spacingMode = data.spacingMode; + var lengthSpacing = spacingMode == spine.SpacingMode.Length; + var rotateMode = data.rotateMode; + var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; + var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; + var bones = this.bones; + var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; + var spacing = this.spacing; + if (scale || lengthSpacing) { + if (scale) + lengths = spine.Utils.setArraySize(this.lengths, boneCount); + for (var i = 0, n = spacesCount - 1; i < n;) { + var bone = bones[i]; + var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; + var length_1 = Math.sqrt(x * x + y * y); + if (scale) + lengths[i] = length_1; + spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; + } + } + else { + for (var i = 1; i < spacesCount; i++) + spaces[i] = spacing; + } + var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); + var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; + var tip = false; + if (offsetRotation == 0) + tip = rotateMode == spine.RotateMode.Chain; + else { + tip = false; + var p = this.target.bone; + offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + } + for (var i = 0, p = 3; i < boneCount; i++, p += 3) { + var bone = bones[i]; + bone.worldX += (boneX - bone.worldX) * translateMix; + bone.worldY += (boneY - bone.worldY) * translateMix; + var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; + if (scale) { + var length_2 = lengths[i]; + if (length_2 != 0) { + var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; + bone.a *= s; + bone.c *= s; + } + } + boneX = x; + boneY = y; + if (rotate) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; + if (tangents) + r = positions[p - 1]; + else if (spaces[i + 1] == 0) + r = positions[p + 2]; + else + r = Math.atan2(dy, dx); + r -= Math.atan2(c, a); + if (tip) { + cos = Math.cos(r); + sin = Math.sin(r); + var length_3 = bone.data.length; + boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; + boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; + } + else { + r += offsetRotation; + } + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + cos = Math.cos(r); + sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + bone.appliedValid = false; + } + }; + PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { + var target = this.target; + var position = this.position; + var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; + var closed = path.closed; + var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; + if (!path.constantSpeed) { + var lengths = path.lengths; + curveCount -= closed ? 1 : 2; + var pathLength_1 = lengths[curveCount]; + if (percentPosition) + position *= pathLength_1; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength_1; + } + world = spine.Utils.setArraySize(this.world, 8); + for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength_1; + if (p < 0) + p += pathLength_1; + curve = 0; + } + else if (p < 0) { + if (prevCurve != PathConstraint.BEFORE) { + prevCurve = PathConstraint.BEFORE; + path.computeWorldVertices(target, 2, 4, world, 0, 2); + } + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength_1) { + if (prevCurve != PathConstraint.AFTER) { + prevCurve = PathConstraint.AFTER; + path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); + } + this.addAfterPosition(p - pathLength_1, world, 0, out, o); + continue; + } + for (;; curve++) { + var length_4 = lengths[curve]; + if (p > length_4) + continue; + if (curve == 0) + p /= length_4; + else { + var prev = lengths[curve - 1]; + p = (p - prev) / (length_4 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + if (closed && curve == curveCount) { + path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); + path.computeWorldVertices(target, 0, 4, world, 4, 2); + } + else + path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); + } + this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); + } + return out; + } + if (closed) { + verticesLength += 2; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); + path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); + world[verticesLength - 2] = world[0]; + world[verticesLength - 1] = world[1]; + } + else { + curveCount--; + verticesLength -= 4; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); + } + var curves = spine.Utils.setArraySize(this.curves, curveCount); + var pathLength = 0; + var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; + var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; + for (var i = 0, w = 2; i < curveCount; i++, w += 6) { + cx1 = world[w]; + cy1 = world[w + 1]; + cx2 = world[w + 2]; + cy2 = world[w + 3]; + x2 = world[w + 4]; + y2 = world[w + 5]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; + tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + curves[i] = pathLength; + x1 = x2; + y1 = y2; + } + if (percentPosition) + position *= pathLength; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength; + } + var segments = this.segments; + var curveLength = 0; + for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength; + if (p < 0) + p += pathLength; + curve = 0; + } + else if (p < 0) { + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength) { + this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); + continue; + } + for (;; curve++) { + var length_5 = curves[curve]; + if (p > length_5) + continue; + if (curve == 0) + p /= length_5; + else { + var prev = curves[curve - 1]; + p = (p - prev) / (length_5 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + var ii = curve * 6; + x1 = world[ii]; + y1 = world[ii + 1]; + cx1 = world[ii + 2]; + cy1 = world[ii + 3]; + cx2 = world[ii + 4]; + cy2 = world[ii + 5]; + x2 = world[ii + 6]; + y2 = world[ii + 7]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.03; + tmpy = (y1 - cy1 * 2 + cy2) * 0.03; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; + curveLength = Math.sqrt(dfx * dfx + dfy * dfy); + segments[0] = curveLength; + for (ii = 1; ii < 8; ii++) { + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[ii] = curveLength; + } + dfx += ddfx; + dfy += ddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[8] = curveLength; + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[9] = curveLength; + segment = 0; + } + p *= curveLength; + for (;; segment++) { + var length_6 = segments[segment]; + if (p > length_6) + continue; + if (segment == 0) + p /= length_6; + else { + var prev = segments[segment - 1]; + p = segment + (p - prev) / (length_6 - prev); + } + break; + } + this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); + } + return out; + }; + PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { + var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { + var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { + if (p == 0 || isNaN(p)) + p = 0.0001; + var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; + var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; + var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; + out[o] = x; + out[o + 1] = y; + if (tangents) + out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); + }; + PathConstraint.prototype.getOrder = function () { + return this.data.order; + }; + PathConstraint.NONE = -1; + PathConstraint.BEFORE = -2; + PathConstraint.AFTER = -3; + return PathConstraint; + }()); + spine.PathConstraint = PathConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraintData = (function () { - function PathConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.name = name; - } - return PathConstraintData; - }()); - spine.PathConstraintData = PathConstraintData; - (function (PositionMode) { - PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; - PositionMode[PositionMode["Percent"] = 1] = "Percent"; - })(spine.PositionMode || (spine.PositionMode = {})); - var PositionMode = spine.PositionMode; - (function (SpacingMode) { - SpacingMode[SpacingMode["Length"] = 0] = "Length"; - SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; - SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; - })(spine.SpacingMode || (spine.SpacingMode = {})); - var SpacingMode = spine.SpacingMode; - (function (RotateMode) { - RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; - RotateMode[RotateMode["Chain"] = 1] = "Chain"; - RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; - })(spine.RotateMode || (spine.RotateMode = {})); - var RotateMode = spine.RotateMode; + var PathConstraintData = (function () { + function PathConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.name = name; + } + return PathConstraintData; + }()); + spine.PathConstraintData = PathConstraintData; + (function (PositionMode) { + PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; + PositionMode[PositionMode["Percent"] = 1] = "Percent"; + })(spine.PositionMode || (spine.PositionMode = {})); + var PositionMode = spine.PositionMode; + (function (SpacingMode) { + SpacingMode[SpacingMode["Length"] = 0] = "Length"; + SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; + SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; + })(spine.SpacingMode || (spine.SpacingMode = {})); + var SpacingMode = spine.SpacingMode; + (function (RotateMode) { + RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; + RotateMode[RotateMode["Chain"] = 1] = "Chain"; + RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; + })(spine.RotateMode || (spine.RotateMode = {})); + var RotateMode = spine.RotateMode; })(spine || (spine = {})); var spine; (function (spine) { - var Assets = (function () { - function Assets(clientId) { - this.toLoad = new Array(); - this.assets = {}; - this.clientId = clientId; - } - Assets.prototype.loaded = function () { - var i = 0; - for (var v in this.assets) - i++; - return i; - }; - return Assets; - }()); - var SharedAssetManager = (function () { - function SharedAssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.clientAssets = {}; - this.queuedAssets = {}; - this.rawAssets = {}; - this.errors = {}; - this.pathPrefix = pathPrefix; - } - SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) { - clientAssets = new Assets(clientId); - this.clientAssets[clientId] = clientAssets; - } - if (textureLoader !== null) - clientAssets.textureLoader = textureLoader; - clientAssets.toLoad.push(path); - if (this.queuedAssets[path] === path) { - return false; - } - else { - this.queuedAssets[path] = path; - return true; - } - }; - SharedAssetManager.prototype.loadText = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = request.responseText; - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadJson = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = JSON.parse(request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, textureLoader, path)) - return; - var img = new Image(); - img.src = path; - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - _this.rawAssets[path] = img; - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - }; - }; - SharedAssetManager.prototype.get = function (clientId, path) { - path = this.pathPrefix + path; - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - return clientAssets.assets[path]; - }; - SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { - for (var i = 0; i < clientAssets.toLoad.length; i++) { - var path = clientAssets.toLoad[i]; - var asset = clientAssets.assets[path]; - if (asset === null || asset === undefined) { - var rawAsset = this.rawAssets[path]; - if (rawAsset === null || rawAsset === undefined) - continue; - if (rawAsset instanceof HTMLImageElement) { - clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); - } - else { - clientAssets.assets[path] = rawAsset; - } - } - } - }; - SharedAssetManager.prototype.isLoadingComplete = function (clientId) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - this.updateClientAssets(clientAssets); - return clientAssets.toLoad.length == clientAssets.loaded(); - }; - SharedAssetManager.prototype.dispose = function () { - }; - SharedAssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - SharedAssetManager.prototype.getErrors = function () { - return this.errors; - }; - return SharedAssetManager; - }()); - spine.SharedAssetManager = SharedAssetManager; + var Assets = (function () { + function Assets(clientId) { + this.toLoad = new Array(); + this.assets = {}; + this.clientId = clientId; + } + Assets.prototype.loaded = function () { + var i = 0; + for (var v in this.assets) + i++; + return i; + }; + return Assets; + }()); + var SharedAssetManager = (function () { + function SharedAssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.clientAssets = {}; + this.queuedAssets = {}; + this.rawAssets = {}; + this.errors = {}; + this.pathPrefix = pathPrefix; + } + SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) { + clientAssets = new Assets(clientId); + this.clientAssets[clientId] = clientAssets; + } + if (textureLoader !== null) + clientAssets.textureLoader = textureLoader; + clientAssets.toLoad.push(path); + if (this.queuedAssets[path] === path) { + return false; + } + else { + this.queuedAssets[path] = path; + return true; + } + }; + SharedAssetManager.prototype.loadText = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = request.responseText; + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadJson = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = JSON.parse(request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, textureLoader, path)) + return; + var img = new Image(); + img.src = path; + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + _this.rawAssets[path] = img; + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + }; + }; + SharedAssetManager.prototype.get = function (clientId, path) { + path = this.pathPrefix + path; + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + return clientAssets.assets[path]; + }; + SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { + for (var i = 0; i < clientAssets.toLoad.length; i++) { + var path = clientAssets.toLoad[i]; + var asset = clientAssets.assets[path]; + if (asset === null || asset === undefined) { + var rawAsset = this.rawAssets[path]; + if (rawAsset === null || rawAsset === undefined) + continue; + if (rawAsset instanceof HTMLImageElement) { + clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); + } + else { + clientAssets.assets[path] = rawAsset; + } + } + } + }; + SharedAssetManager.prototype.isLoadingComplete = function (clientId) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + this.updateClientAssets(clientAssets); + return clientAssets.toLoad.length == clientAssets.loaded(); + }; + SharedAssetManager.prototype.dispose = function () { + }; + SharedAssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + SharedAssetManager.prototype.getErrors = function () { + return this.errors; + }; + return SharedAssetManager; + }()); + spine.SharedAssetManager = SharedAssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var Skeleton = (function () { - function Skeleton(data) { - this._updateCache = new Array(); - this.updateCacheReset = new Array(); - this.time = 0; - this.flipX = false; - this.flipY = false; - this.x = 0; - this.y = 0; - if (data == null) - throw new Error("data cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) { - var boneData = data.bones[i]; - var bone = void 0; - if (boneData.parent == null) - bone = new spine.Bone(boneData, this, null); - else { - var parent_1 = this.bones[boneData.parent.index]; - bone = new spine.Bone(boneData, this, parent_1); - parent_1.children.push(bone); - } - this.bones.push(bone); - } - this.slots = new Array(); - this.drawOrder = new Array(); - for (var i = 0; i < data.slots.length; i++) { - var slotData = data.slots[i]; - var bone = this.bones[slotData.boneData.index]; - var slot = new spine.Slot(slotData, bone); - this.slots.push(slot); - this.drawOrder.push(slot); - } - this.ikConstraints = new Array(); - for (var i = 0; i < data.ikConstraints.length; i++) { - var ikConstraintData = data.ikConstraints[i]; - this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); - } - this.transformConstraints = new Array(); - for (var i = 0; i < data.transformConstraints.length; i++) { - var transformConstraintData = data.transformConstraints[i]; - this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); - } - this.pathConstraints = new Array(); - for (var i = 0; i < data.pathConstraints.length; i++) { - var pathConstraintData = data.pathConstraints[i]; - this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); - } - this.color = new spine.Color(1, 1, 1, 1); - this.updateCache(); - } - Skeleton.prototype.updateCache = function () { - var updateCache = this._updateCache; - updateCache.length = 0; - this.updateCacheReset.length = 0; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].sorted = false; - var ikConstraints = this.ikConstraints; - var transformConstraints = this.transformConstraints; - var pathConstraints = this.pathConstraints; - var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; - var constraintCount = ikCount + transformCount + pathCount; - outer: for (var i = 0; i < constraintCount; i++) { - for (var ii = 0; ii < ikCount; ii++) { - var constraint = ikConstraints[ii]; - if (constraint.data.order == i) { - this.sortIkConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < transformCount; ii++) { - var constraint = transformConstraints[ii]; - if (constraint.data.order == i) { - this.sortTransformConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < pathCount; ii++) { - var constraint = pathConstraints[ii]; - if (constraint.data.order == i) { - this.sortPathConstraint(constraint); - continue outer; - } - } - } - for (var i = 0, n = bones.length; i < n; i++) - this.sortBone(bones[i]); - }; - Skeleton.prototype.sortIkConstraint = function (constraint) { - var target = constraint.target; - this.sortBone(target); - var constrained = constraint.bones; - var parent = constrained[0]; - this.sortBone(parent); - if (constrained.length > 1) { - var child = constrained[constrained.length - 1]; - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - this._updateCache.push(constraint); - this.sortReset(parent.children); - constrained[constrained.length - 1].sorted = true; - }; - Skeleton.prototype.sortPathConstraint = function (constraint) { - var slot = constraint.target; - var slotIndex = slot.data.index; - var slotBone = slot.bone; - if (this.skin != null) - this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); - if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) - this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); - for (var i = 0, n = this.data.skins.length; i < n; i++) - this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); - var attachment = slot.getAttachment(); - if (attachment instanceof spine.PathAttachment) - this.sortPathConstraintAttachmentWith(attachment, slotBone); - var constrained = constraint.bones; - var boneCount = constrained.length; - for (var i = 0; i < boneCount; i++) - this.sortBone(constrained[i]); - this._updateCache.push(constraint); - for (var i = 0; i < boneCount; i++) - this.sortReset(constrained[i].children); - for (var i = 0; i < boneCount; i++) - constrained[i].sorted = true; - }; - Skeleton.prototype.sortTransformConstraint = function (constraint) { - this.sortBone(constraint.target); - var constrained = constraint.bones; - var boneCount = constrained.length; - if (constraint.data.local) { - for (var i = 0; i < boneCount; i++) { - var child = constrained[i]; - this.sortBone(child.parent); - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - } - else { - for (var i = 0; i < boneCount; i++) { - this.sortBone(constrained[i]); - } - } - this._updateCache.push(constraint); - for (var ii = 0; ii < boneCount; ii++) - this.sortReset(constrained[ii].children); - for (var ii = 0; ii < boneCount; ii++) - constrained[ii].sorted = true; - }; - Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { - var attachments = skin.attachments[slotIndex]; - if (!attachments) - return; - for (var key in attachments) { - this.sortPathConstraintAttachmentWith(attachments[key], slotBone); - } - }; - Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { - if (!(attachment instanceof spine.PathAttachment)) - return; - var pathBones = attachment.bones; - if (pathBones == null) - this.sortBone(slotBone); - else { - var bones = this.bones; - var i = 0; - while (i < pathBones.length) { - var boneCount = pathBones[i++]; - for (var n = i + boneCount; i < n; i++) { - var boneIndex = pathBones[i]; - this.sortBone(bones[boneIndex]); - } - } - } - }; - Skeleton.prototype.sortBone = function (bone) { - if (bone.sorted) - return; - var parent = bone.parent; - if (parent != null) - this.sortBone(parent); - bone.sorted = true; - this._updateCache.push(bone); - }; - Skeleton.prototype.sortReset = function (bones) { - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.sorted) - this.sortReset(bone.children); - bone.sorted = false; - } - }; - Skeleton.prototype.updateWorldTransform = function () { - var updateCacheReset = this.updateCacheReset; - for (var i = 0, n = updateCacheReset.length; i < n; i++) { - var bone = updateCacheReset[i]; - bone.ax = bone.x; - bone.ay = bone.y; - bone.arotation = bone.rotation; - bone.ascaleX = bone.scaleX; - bone.ascaleY = bone.scaleY; - bone.ashearX = bone.shearX; - bone.ashearY = bone.shearY; - bone.appliedValid = true; - } - var updateCache = this._updateCache; - for (var i = 0, n = updateCache.length; i < n; i++) - updateCache[i].update(); - }; - Skeleton.prototype.setToSetupPose = function () { - this.setBonesToSetupPose(); - this.setSlotsToSetupPose(); - }; - Skeleton.prototype.setBonesToSetupPose = function () { - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].setToSetupPose(); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - constraint.bendDirection = constraint.data.bendDirection; - constraint.mix = constraint.data.mix; - } - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - var data = constraint.data; - constraint.position = data.position; - constraint.spacing = data.spacing; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - } - }; - Skeleton.prototype.setSlotsToSetupPose = function () { - var slots = this.slots; - spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); - for (var i = 0, n = slots.length; i < n; i++) - slots[i].setToSetupPose(); - }; - Skeleton.prototype.getRootBone = function () { - if (this.bones.length == 0) - return null; - return this.bones[0]; - }; - Skeleton.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.data.name == boneName) - return bone; - } - return null; - }; - Skeleton.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].data.name == boneName) - return i; - return -1; - }; - Skeleton.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) - return slot; - } - return null; - }; - Skeleton.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].data.name == slotName) - return i; - return -1; - }; - Skeleton.prototype.setSkinByName = function (skinName) { - var skin = this.data.findSkin(skinName); - if (skin == null) - throw new Error("Skin not found: " + skinName); - this.setSkin(skin); - }; - Skeleton.prototype.setSkin = function (newSkin) { - if (newSkin != null) { - if (this.skin != null) - newSkin.attachAll(this, this.skin); - else { - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var name_1 = slot.data.attachmentName; - if (name_1 != null) { - var attachment = newSkin.getAttachment(i, name_1); - if (attachment != null) - slot.setAttachment(attachment); - } - } - } - } - this.skin = newSkin; - }; - Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { - return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); - }; - Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { - if (attachmentName == null) - throw new Error("attachmentName cannot be null."); - if (this.skin != null) { - var attachment = this.skin.getAttachment(slotIndex, attachmentName); - if (attachment != null) - return attachment; - } - if (this.data.defaultSkin != null) - return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); - return null; - }; - Skeleton.prototype.setAttachment = function (slotName, attachmentName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) { - var attachment = null; - if (attachmentName != null) { - attachment = this.getAttachment(i, attachmentName); - if (attachment == null) - throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); - } - slot.setAttachment(attachment); - return; - } - } - throw new Error("Slot not found: " + slotName); - }; - Skeleton.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var ikConstraint = ikConstraints[i]; - if (ikConstraint.data.name == constraintName) - return ikConstraint; - } - return null; - }; - Skeleton.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.getBounds = function (offset, size, temp) { - if (offset == null) - throw new Error("offset cannot be null."); - if (size == null) - throw new Error("size cannot be null."); - var drawOrder = this.drawOrder; - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var verticesLength = 0; - var vertices = null; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.RegionAttachment) { - verticesLength = 8; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - attachment.computeWorldVertices(slot.bone, vertices, 0, 2); - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - verticesLength = mesh.worldVerticesLength; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); - } - if (vertices != null) { - for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { - var x = vertices[ii], y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - } - offset.set(minX, minY); - size.set(maxX - minX, maxY - minY); - }; - Skeleton.prototype.update = function (delta) { - this.time += delta; - }; - return Skeleton; - }()); - spine.Skeleton = Skeleton; + var Skeleton = (function () { + function Skeleton(data) { + this._updateCache = new Array(); + this.updateCacheReset = new Array(); + this.time = 0; + this.flipX = false; + this.flipY = false; + this.x = 0; + this.y = 0; + if (data == null) + throw new Error("data cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) { + var boneData = data.bones[i]; + var bone = void 0; + if (boneData.parent == null) + bone = new spine.Bone(boneData, this, null); + else { + var parent_1 = this.bones[boneData.parent.index]; + bone = new spine.Bone(boneData, this, parent_1); + parent_1.children.push(bone); + } + this.bones.push(bone); + } + this.slots = new Array(); + this.drawOrder = new Array(); + for (var i = 0; i < data.slots.length; i++) { + var slotData = data.slots[i]; + var bone = this.bones[slotData.boneData.index]; + var slot = new spine.Slot(slotData, bone); + this.slots.push(slot); + this.drawOrder.push(slot); + } + this.ikConstraints = new Array(); + for (var i = 0; i < data.ikConstraints.length; i++) { + var ikConstraintData = data.ikConstraints[i]; + this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); + } + this.transformConstraints = new Array(); + for (var i = 0; i < data.transformConstraints.length; i++) { + var transformConstraintData = data.transformConstraints[i]; + this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); + } + this.pathConstraints = new Array(); + for (var i = 0; i < data.pathConstraints.length; i++) { + var pathConstraintData = data.pathConstraints[i]; + this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); + } + this.color = new spine.Color(1, 1, 1, 1); + this.updateCache(); + } + Skeleton.prototype.updateCache = function () { + var updateCache = this._updateCache; + updateCache.length = 0; + this.updateCacheReset.length = 0; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].sorted = false; + var ikConstraints = this.ikConstraints; + var transformConstraints = this.transformConstraints; + var pathConstraints = this.pathConstraints; + var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; + var constraintCount = ikCount + transformCount + pathCount; + outer: for (var i = 0; i < constraintCount; i++) { + for (var ii = 0; ii < ikCount; ii++) { + var constraint = ikConstraints[ii]; + if (constraint.data.order == i) { + this.sortIkConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < transformCount; ii++) { + var constraint = transformConstraints[ii]; + if (constraint.data.order == i) { + this.sortTransformConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < pathCount; ii++) { + var constraint = pathConstraints[ii]; + if (constraint.data.order == i) { + this.sortPathConstraint(constraint); + continue outer; + } + } + } + for (var i = 0, n = bones.length; i < n; i++) + this.sortBone(bones[i]); + }; + Skeleton.prototype.sortIkConstraint = function (constraint) { + var target = constraint.target; + this.sortBone(target); + var constrained = constraint.bones; + var parent = constrained[0]; + this.sortBone(parent); + if (constrained.length > 1) { + var child = constrained[constrained.length - 1]; + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + this._updateCache.push(constraint); + this.sortReset(parent.children); + constrained[constrained.length - 1].sorted = true; + }; + Skeleton.prototype.sortPathConstraint = function (constraint) { + var slot = constraint.target; + var slotIndex = slot.data.index; + var slotBone = slot.bone; + if (this.skin != null) + this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); + if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) + this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); + for (var i = 0, n = this.data.skins.length; i < n; i++) + this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); + var attachment = slot.getAttachment(); + if (attachment instanceof spine.PathAttachment) + this.sortPathConstraintAttachmentWith(attachment, slotBone); + var constrained = constraint.bones; + var boneCount = constrained.length; + for (var i = 0; i < boneCount; i++) + this.sortBone(constrained[i]); + this._updateCache.push(constraint); + for (var i = 0; i < boneCount; i++) + this.sortReset(constrained[i].children); + for (var i = 0; i < boneCount; i++) + constrained[i].sorted = true; + }; + Skeleton.prototype.sortTransformConstraint = function (constraint) { + this.sortBone(constraint.target); + var constrained = constraint.bones; + var boneCount = constrained.length; + if (constraint.data.local) { + for (var i = 0; i < boneCount; i++) { + var child = constrained[i]; + this.sortBone(child.parent); + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + } + else { + for (var i = 0; i < boneCount; i++) { + this.sortBone(constrained[i]); + } + } + this._updateCache.push(constraint); + for (var ii = 0; ii < boneCount; ii++) + this.sortReset(constrained[ii].children); + for (var ii = 0; ii < boneCount; ii++) + constrained[ii].sorted = true; + }; + Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { + var attachments = skin.attachments[slotIndex]; + if (!attachments) + return; + for (var key in attachments) { + this.sortPathConstraintAttachmentWith(attachments[key], slotBone); + } + }; + Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { + if (!(attachment instanceof spine.PathAttachment)) + return; + var pathBones = attachment.bones; + if (pathBones == null) + this.sortBone(slotBone); + else { + var bones = this.bones; + var i = 0; + while (i < pathBones.length) { + var boneCount = pathBones[i++]; + for (var n = i + boneCount; i < n; i++) { + var boneIndex = pathBones[i]; + this.sortBone(bones[boneIndex]); + } + } + } + }; + Skeleton.prototype.sortBone = function (bone) { + if (bone.sorted) + return; + var parent = bone.parent; + if (parent != null) + this.sortBone(parent); + bone.sorted = true; + this._updateCache.push(bone); + }; + Skeleton.prototype.sortReset = function (bones) { + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.sorted) + this.sortReset(bone.children); + bone.sorted = false; + } + }; + Skeleton.prototype.updateWorldTransform = function () { + var updateCacheReset = this.updateCacheReset; + for (var i = 0, n = updateCacheReset.length; i < n; i++) { + var bone = updateCacheReset[i]; + bone.ax = bone.x; + bone.ay = bone.y; + bone.arotation = bone.rotation; + bone.ascaleX = bone.scaleX; + bone.ascaleY = bone.scaleY; + bone.ashearX = bone.shearX; + bone.ashearY = bone.shearY; + bone.appliedValid = true; + } + var updateCache = this._updateCache; + for (var i = 0, n = updateCache.length; i < n; i++) + updateCache[i].update(); + }; + Skeleton.prototype.setToSetupPose = function () { + this.setBonesToSetupPose(); + this.setSlotsToSetupPose(); + }; + Skeleton.prototype.setBonesToSetupPose = function () { + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].setToSetupPose(); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + constraint.bendDirection = constraint.data.bendDirection; + constraint.mix = constraint.data.mix; + } + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + var data = constraint.data; + constraint.position = data.position; + constraint.spacing = data.spacing; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + } + }; + Skeleton.prototype.setSlotsToSetupPose = function () { + var slots = this.slots; + spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); + for (var i = 0, n = slots.length; i < n; i++) + slots[i].setToSetupPose(); + }; + Skeleton.prototype.getRootBone = function () { + if (this.bones.length == 0) + return null; + return this.bones[0]; + }; + Skeleton.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.data.name == boneName) + return bone; + } + return null; + }; + Skeleton.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].data.name == boneName) + return i; + return -1; + }; + Skeleton.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) + return slot; + } + return null; + }; + Skeleton.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].data.name == slotName) + return i; + return -1; + }; + Skeleton.prototype.setSkinByName = function (skinName) { + var skin = this.data.findSkin(skinName); + if (skin == null) + throw new Error("Skin not found: " + skinName); + this.setSkin(skin); + }; + Skeleton.prototype.setSkin = function (newSkin) { + if (newSkin != null) { + if (this.skin != null) + newSkin.attachAll(this, this.skin); + else { + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var name_1 = slot.data.attachmentName; + if (name_1 != null) { + var attachment = newSkin.getAttachment(i, name_1); + if (attachment != null) + slot.setAttachment(attachment); + } + } + } + } + this.skin = newSkin; + }; + Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { + return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); + }; + Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { + if (attachmentName == null) + throw new Error("attachmentName cannot be null."); + if (this.skin != null) { + var attachment = this.skin.getAttachment(slotIndex, attachmentName); + if (attachment != null) + return attachment; + } + if (this.data.defaultSkin != null) + return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); + return null; + }; + Skeleton.prototype.setAttachment = function (slotName, attachmentName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) { + var attachment = null; + if (attachmentName != null) { + attachment = this.getAttachment(i, attachmentName); + if (attachment == null) + throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); + } + slot.setAttachment(attachment); + return; + } + } + throw new Error("Slot not found: " + slotName); + }; + Skeleton.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var ikConstraint = ikConstraints[i]; + if (ikConstraint.data.name == constraintName) + return ikConstraint; + } + return null; + }; + Skeleton.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.getBounds = function (offset, size, temp) { + if (offset == null) + throw new Error("offset cannot be null."); + if (size == null) + throw new Error("size cannot be null."); + var drawOrder = this.drawOrder; + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var verticesLength = 0; + var vertices = null; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.RegionAttachment) { + verticesLength = 8; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + attachment.computeWorldVertices(slot.bone, vertices, 0, 2); + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + verticesLength = mesh.worldVerticesLength; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); + } + if (vertices != null) { + for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { + var x = vertices[ii], y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + } + offset.set(minX, minY); + size.set(maxX - minX, maxY - minY); + }; + Skeleton.prototype.update = function (delta) { + this.time += delta; + }; + return Skeleton; + }()); + spine.Skeleton = Skeleton; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonBounds = (function () { - function SkeletonBounds() { - this.minX = 0; - this.minY = 0; - this.maxX = 0; - this.maxY = 0; - this.boundingBoxes = new Array(); - this.polygons = new Array(); - this.polygonPool = new spine.Pool(function () { - return spine.Utils.newFloatArray(16); - }); - } - SkeletonBounds.prototype.update = function (skeleton, updateAabb) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - var boundingBoxes = this.boundingBoxes; - var polygons = this.polygons; - var polygonPool = this.polygonPool; - var slots = skeleton.slots; - var slotCount = slots.length; - boundingBoxes.length = 0; - polygonPool.freeAll(polygons); - polygons.length = 0; - for (var i = 0; i < slotCount; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.BoundingBoxAttachment) { - var boundingBox = attachment; - boundingBoxes.push(boundingBox); - var polygon = polygonPool.obtain(); - if (polygon.length != boundingBox.worldVerticesLength) { - polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); - } - polygons.push(polygon); - boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); - } - } - if (updateAabb) { - this.aabbCompute(); - } - else { - this.minX = Number.POSITIVE_INFINITY; - this.minY = Number.POSITIVE_INFINITY; - this.maxX = Number.NEGATIVE_INFINITY; - this.maxY = Number.NEGATIVE_INFINITY; - } - }; - SkeletonBounds.prototype.aabbCompute = function () { - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) { - var polygon = polygons[i]; - var vertices = polygon; - for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { - var x = vertices[ii]; - var y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - this.minX = minX; - this.minY = minY; - this.maxX = maxX; - this.maxY = maxY; - }; - SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { - return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; - }; - SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { - var minX = this.minX; - var minY = this.minY; - var maxX = this.maxX; - var maxY = this.maxY; - if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) - return false; - var m = (y2 - y1) / (x2 - x1); - var y = m * (minX - x1) + y1; - if (y > minY && y < maxY) - return true; - y = m * (maxX - x1) + y1; - if (y > minY && y < maxY) - return true; - var x = (minY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - x = (maxY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - return false; - }; - SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { - return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; - }; - SkeletonBounds.prototype.containsPoint = function (x, y) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.containsPointPolygon(polygons[i], x, y)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { - var vertices = polygon; - var nn = polygon.length; - var prevIndex = nn - 2; - var inside = false; - for (var ii = 0; ii < nn; ii += 2) { - var vertexY = vertices[ii + 1]; - var prevY = vertices[prevIndex + 1]; - if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { - var vertexX = vertices[ii]; - if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) - inside = !inside; - } - prevIndex = ii; - } - return inside; - }; - SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { - var vertices = polygon; - var nn = polygon.length; - var width12 = x1 - x2, height12 = y1 - y2; - var det1 = x1 * y2 - y1 * x2; - var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; - for (var ii = 0; ii < nn; ii += 2) { - var x4 = vertices[ii], y4 = vertices[ii + 1]; - var det2 = x3 * y4 - y3 * x4; - var width34 = x3 - x4, height34 = y3 - y4; - var det3 = width12 * height34 - height12 * width34; - var x = (det1 * width34 - width12 * det2) / det3; - if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { - var y = (det1 * height34 - height12 * det2) / det3; - if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) - return true; - } - x3 = x4; - y3 = y4; - } - return false; - }; - SkeletonBounds.prototype.getPolygon = function (boundingBox) { - if (boundingBox == null) - throw new Error("boundingBox cannot be null."); - var index = this.boundingBoxes.indexOf(boundingBox); - return index == -1 ? null : this.polygons[index]; - }; - SkeletonBounds.prototype.getWidth = function () { - return this.maxX - this.minX; - }; - SkeletonBounds.prototype.getHeight = function () { - return this.maxY - this.minY; - }; - return SkeletonBounds; - }()); - spine.SkeletonBounds = SkeletonBounds; + var SkeletonBounds = (function () { + function SkeletonBounds() { + this.minX = 0; + this.minY = 0; + this.maxX = 0; + this.maxY = 0; + this.boundingBoxes = new Array(); + this.polygons = new Array(); + this.polygonPool = new spine.Pool(function () { + return spine.Utils.newFloatArray(16); + }); + } + SkeletonBounds.prototype.update = function (skeleton, updateAabb) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + var boundingBoxes = this.boundingBoxes; + var polygons = this.polygons; + var polygonPool = this.polygonPool; + var slots = skeleton.slots; + var slotCount = slots.length; + boundingBoxes.length = 0; + polygonPool.freeAll(polygons); + polygons.length = 0; + for (var i = 0; i < slotCount; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.BoundingBoxAttachment) { + var boundingBox = attachment; + boundingBoxes.push(boundingBox); + var polygon = polygonPool.obtain(); + if (polygon.length != boundingBox.worldVerticesLength) { + polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); + } + polygons.push(polygon); + boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); + } + } + if (updateAabb) { + this.aabbCompute(); + } + else { + this.minX = Number.POSITIVE_INFINITY; + this.minY = Number.POSITIVE_INFINITY; + this.maxX = Number.NEGATIVE_INFINITY; + this.maxY = Number.NEGATIVE_INFINITY; + } + }; + SkeletonBounds.prototype.aabbCompute = function () { + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) { + var polygon = polygons[i]; + var vertices = polygon; + for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { + var x = vertices[ii]; + var y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + this.minX = minX; + this.minY = minY; + this.maxX = maxX; + this.maxY = maxY; + }; + SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { + return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; + }; + SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { + var minX = this.minX; + var minY = this.minY; + var maxX = this.maxX; + var maxY = this.maxY; + if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) + return false; + var m = (y2 - y1) / (x2 - x1); + var y = m * (minX - x1) + y1; + if (y > minY && y < maxY) + return true; + y = m * (maxX - x1) + y1; + if (y > minY && y < maxY) + return true; + var x = (minY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + x = (maxY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + return false; + }; + SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { + return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; + }; + SkeletonBounds.prototype.containsPoint = function (x, y) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.containsPointPolygon(polygons[i], x, y)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { + var vertices = polygon; + var nn = polygon.length; + var prevIndex = nn - 2; + var inside = false; + for (var ii = 0; ii < nn; ii += 2) { + var vertexY = vertices[ii + 1]; + var prevY = vertices[prevIndex + 1]; + if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { + var vertexX = vertices[ii]; + if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) + inside = !inside; + } + prevIndex = ii; + } + return inside; + }; + SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { + var vertices = polygon; + var nn = polygon.length; + var width12 = x1 - x2, height12 = y1 - y2; + var det1 = x1 * y2 - y1 * x2; + var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; + for (var ii = 0; ii < nn; ii += 2) { + var x4 = vertices[ii], y4 = vertices[ii + 1]; + var det2 = x3 * y4 - y3 * x4; + var width34 = x3 - x4, height34 = y3 - y4; + var det3 = width12 * height34 - height12 * width34; + var x = (det1 * width34 - width12 * det2) / det3; + if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { + var y = (det1 * height34 - height12 * det2) / det3; + if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) + return true; + } + x3 = x4; + y3 = y4; + } + return false; + }; + SkeletonBounds.prototype.getPolygon = function (boundingBox) { + if (boundingBox == null) + throw new Error("boundingBox cannot be null."); + var index = this.boundingBoxes.indexOf(boundingBox); + return index == -1 ? null : this.polygons[index]; + }; + SkeletonBounds.prototype.getWidth = function () { + return this.maxX - this.minX; + }; + SkeletonBounds.prototype.getHeight = function () { + return this.maxY - this.minY; + }; + return SkeletonBounds; + }()); + spine.SkeletonBounds = SkeletonBounds; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonClipping = (function () { - function SkeletonClipping() { - this.triangulator = new spine.Triangulator(); - this.clippingPolygon = new Array(); - this.clipOutput = new Array(); - this.clippedVertices = new Array(); - this.clippedTriangles = new Array(); - this.scratch = new Array(); - } - SkeletonClipping.prototype.clipStart = function (slot, clip) { - if (this.clipAttachment != null) - return 0; - this.clipAttachment = clip; - var n = clip.worldVerticesLength; - var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); - clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); - var clippingPolygon = this.clippingPolygon; - SkeletonClipping.makeClockwise(clippingPolygon); - var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); - for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { - var polygon = clippingPolygons[i]; - SkeletonClipping.makeClockwise(polygon); - polygon.push(polygon[0]); - polygon.push(polygon[1]); - } - return clippingPolygons.length; - }; - SkeletonClipping.prototype.clipEndWithSlot = function (slot) { - if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) - this.clipEnd(); - }; - SkeletonClipping.prototype.clipEnd = function () { - if (this.clipAttachment == null) - return; - this.clipAttachment = null; - this.clippingPolygons = null; - this.clippedVertices.length = 0; - this.clippedTriangles.length = 0; - this.clippingPolygon.length = 0; - }; - SkeletonClipping.prototype.isClipping = function () { - return this.clipAttachment != null; - }; - SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { - var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; - var clippedTriangles = this.clippedTriangles; - var polygons = this.clippingPolygons; - var polygonsCount = this.clippingPolygons.length; - var vertexSize = twoColor ? 12 : 8; - var index = 0; - clippedVertices.length = 0; - clippedTriangles.length = 0; - outer: for (var i = 0; i < trianglesLength; i += 3) { - var vertexOffset = triangles[i] << 1; - var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; - var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 1] << 1; - var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; - var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 2] << 1; - var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; - var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; - for (var p = 0; p < polygonsCount; p++) { - var s = clippedVertices.length; - if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { - var clipOutputLength = clipOutput.length; - if (clipOutputLength == 0) - continue; - var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; - var d = 1 / (d0 * d2 + d1 * (y1 - y3)); - var clipOutputCount = clipOutputLength >> 1; - var clipOutputItems = this.clipOutput; - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); - for (var ii = 0; ii < clipOutputLength; ii += 2) { - var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; - clippedVerticesItems[s] = x; - clippedVerticesItems[s + 1] = y; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - var c0 = x - x3, c1 = y - y3; - var a = (d0 * c0 + d1 * c1) * d; - var b = (d4 * c0 + d2 * c1) * d; - var c = 1 - a - b; - clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; - clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; - if (twoColor) { - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 8] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - } - s += vertexSize; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); - clipOutputCount--; - for (var ii = 1; ii < clipOutputCount; ii++) { - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + ii); - clippedTrianglesItems[s + 2] = (index + ii + 1); - s += 3; - } - index += clipOutputCount + 1; - } - else { - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); - clippedVerticesItems[s] = x1; - clippedVerticesItems[s + 1] = y1; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - if (!twoColor) { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = x2; - clippedVerticesItems[s + 9] = y2; - clippedVerticesItems[s + 10] = light.r; - clippedVerticesItems[s + 11] = light.g; - clippedVerticesItems[s + 12] = light.b; - clippedVerticesItems[s + 13] = light.a; - clippedVerticesItems[s + 14] = u2; - clippedVerticesItems[s + 15] = v2; - clippedVerticesItems[s + 16] = x3; - clippedVerticesItems[s + 17] = y3; - clippedVerticesItems[s + 18] = light.r; - clippedVerticesItems[s + 19] = light.g; - clippedVerticesItems[s + 20] = light.b; - clippedVerticesItems[s + 21] = light.a; - clippedVerticesItems[s + 22] = u3; - clippedVerticesItems[s + 23] = v3; - } - else { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 9] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - clippedVerticesItems[s + 12] = x2; - clippedVerticesItems[s + 13] = y2; - clippedVerticesItems[s + 14] = light.r; - clippedVerticesItems[s + 15] = light.g; - clippedVerticesItems[s + 16] = light.b; - clippedVerticesItems[s + 17] = light.a; - clippedVerticesItems[s + 18] = u2; - clippedVerticesItems[s + 19] = v2; - clippedVerticesItems[s + 20] = dark.r; - clippedVerticesItems[s + 21] = dark.g; - clippedVerticesItems[s + 22] = dark.b; - clippedVerticesItems[s + 23] = dark.a; - clippedVerticesItems[s + 24] = x3; - clippedVerticesItems[s + 25] = y3; - clippedVerticesItems[s + 26] = light.r; - clippedVerticesItems[s + 27] = light.g; - clippedVerticesItems[s + 28] = light.b; - clippedVerticesItems[s + 29] = light.a; - clippedVerticesItems[s + 30] = u3; - clippedVerticesItems[s + 31] = v3; - clippedVerticesItems[s + 32] = dark.r; - clippedVerticesItems[s + 33] = dark.g; - clippedVerticesItems[s + 34] = dark.b; - clippedVerticesItems[s + 35] = dark.a; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + 1); - clippedTrianglesItems[s + 2] = (index + 2); - index += 3; - continue outer; - } - } - } - }; - SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { - var originalOutput = output; - var clipped = false; - var input = null; - if (clippingArea.length % 4 >= 2) { - input = output; - output = this.scratch; - } - else - input = this.scratch; - input.length = 0; - input.push(x1); - input.push(y1); - input.push(x2); - input.push(y2); - input.push(x3); - input.push(y3); - input.push(x1); - input.push(y1); - output.length = 0; - var clippingVertices = clippingArea; - var clippingVerticesLast = clippingArea.length - 4; - for (var i = 0;; i += 2) { - var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; - var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; - var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; - var inputVertices = input; - var inputVerticesLength = input.length - 2, outputStart = output.length; - for (var ii = 0; ii < inputVerticesLength; ii += 2) { - var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; - var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; - var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; - if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { - if (side2) { - output.push(inputX2); - output.push(inputY2); - continue; - } - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - } - else if (side2) { - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - output.push(inputX2); - output.push(inputY2); - } - clipped = true; - } - if (outputStart == output.length) { - originalOutput.length = 0; - return true; - } - output.push(output[0]); - output.push(output[1]); - if (i == clippingVerticesLast) - break; - var temp = output; - output = input; - output.length = 0; - input = temp; - } - if (originalOutput != output) { - originalOutput.length = 0; - for (var i = 0, n = output.length - 2; i < n; i++) - originalOutput[i] = output[i]; - } - else - originalOutput.length = originalOutput.length - 2; - return clipped; - }; - SkeletonClipping.makeClockwise = function (polygon) { - var vertices = polygon; - var verticeslength = polygon.length; - var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; - for (var i = 0, n = verticeslength - 3; i < n; i += 2) { - p1x = vertices[i]; - p1y = vertices[i + 1]; - p2x = vertices[i + 2]; - p2y = vertices[i + 3]; - area += p1x * p2y - p2x * p1y; - } - if (area < 0) - return; - for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { - var x = vertices[i], y = vertices[i + 1]; - var other = lastX - i; - vertices[i] = vertices[other]; - vertices[i + 1] = vertices[other + 1]; - vertices[other] = x; - vertices[other + 1] = y; - } - }; - return SkeletonClipping; - }()); - spine.SkeletonClipping = SkeletonClipping; + var SkeletonClipping = (function () { + function SkeletonClipping() { + this.triangulator = new spine.Triangulator(); + this.clippingPolygon = new Array(); + this.clipOutput = new Array(); + this.clippedVertices = new Array(); + this.clippedTriangles = new Array(); + this.scratch = new Array(); + } + SkeletonClipping.prototype.clipStart = function (slot, clip) { + if (this.clipAttachment != null) + return 0; + this.clipAttachment = clip; + var n = clip.worldVerticesLength; + var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); + clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); + var clippingPolygon = this.clippingPolygon; + SkeletonClipping.makeClockwise(clippingPolygon); + var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); + for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { + var polygon = clippingPolygons[i]; + SkeletonClipping.makeClockwise(polygon); + polygon.push(polygon[0]); + polygon.push(polygon[1]); + } + return clippingPolygons.length; + }; + SkeletonClipping.prototype.clipEndWithSlot = function (slot) { + if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) + this.clipEnd(); + }; + SkeletonClipping.prototype.clipEnd = function () { + if (this.clipAttachment == null) + return; + this.clipAttachment = null; + this.clippingPolygons = null; + this.clippedVertices.length = 0; + this.clippedTriangles.length = 0; + this.clippingPolygon.length = 0; + }; + SkeletonClipping.prototype.isClipping = function () { + return this.clipAttachment != null; + }; + SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { + var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; + var clippedTriangles = this.clippedTriangles; + var polygons = this.clippingPolygons; + var polygonsCount = this.clippingPolygons.length; + var vertexSize = twoColor ? 12 : 8; + var index = 0; + clippedVertices.length = 0; + clippedTriangles.length = 0; + outer: for (var i = 0; i < trianglesLength; i += 3) { + var vertexOffset = triangles[i] << 1; + var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; + var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 1] << 1; + var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; + var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 2] << 1; + var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; + var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; + for (var p = 0; p < polygonsCount; p++) { + var s = clippedVertices.length; + if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { + var clipOutputLength = clipOutput.length; + if (clipOutputLength == 0) + continue; + var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; + var d = 1 / (d0 * d2 + d1 * (y1 - y3)); + var clipOutputCount = clipOutputLength >> 1; + var clipOutputItems = this.clipOutput; + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); + for (var ii = 0; ii < clipOutputLength; ii += 2) { + var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; + clippedVerticesItems[s] = x; + clippedVerticesItems[s + 1] = y; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + var c0 = x - x3, c1 = y - y3; + var a = (d0 * c0 + d1 * c1) * d; + var b = (d4 * c0 + d2 * c1) * d; + var c = 1 - a - b; + clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; + clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; + if (twoColor) { + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 8] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + } + s += vertexSize; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); + clipOutputCount--; + for (var ii = 1; ii < clipOutputCount; ii++) { + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + ii); + clippedTrianglesItems[s + 2] = (index + ii + 1); + s += 3; + } + index += clipOutputCount + 1; + } + else { + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); + clippedVerticesItems[s] = x1; + clippedVerticesItems[s + 1] = y1; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + if (!twoColor) { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = x2; + clippedVerticesItems[s + 9] = y2; + clippedVerticesItems[s + 10] = light.r; + clippedVerticesItems[s + 11] = light.g; + clippedVerticesItems[s + 12] = light.b; + clippedVerticesItems[s + 13] = light.a; + clippedVerticesItems[s + 14] = u2; + clippedVerticesItems[s + 15] = v2; + clippedVerticesItems[s + 16] = x3; + clippedVerticesItems[s + 17] = y3; + clippedVerticesItems[s + 18] = light.r; + clippedVerticesItems[s + 19] = light.g; + clippedVerticesItems[s + 20] = light.b; + clippedVerticesItems[s + 21] = light.a; + clippedVerticesItems[s + 22] = u3; + clippedVerticesItems[s + 23] = v3; + } + else { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 9] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + clippedVerticesItems[s + 12] = x2; + clippedVerticesItems[s + 13] = y2; + clippedVerticesItems[s + 14] = light.r; + clippedVerticesItems[s + 15] = light.g; + clippedVerticesItems[s + 16] = light.b; + clippedVerticesItems[s + 17] = light.a; + clippedVerticesItems[s + 18] = u2; + clippedVerticesItems[s + 19] = v2; + clippedVerticesItems[s + 20] = dark.r; + clippedVerticesItems[s + 21] = dark.g; + clippedVerticesItems[s + 22] = dark.b; + clippedVerticesItems[s + 23] = dark.a; + clippedVerticesItems[s + 24] = x3; + clippedVerticesItems[s + 25] = y3; + clippedVerticesItems[s + 26] = light.r; + clippedVerticesItems[s + 27] = light.g; + clippedVerticesItems[s + 28] = light.b; + clippedVerticesItems[s + 29] = light.a; + clippedVerticesItems[s + 30] = u3; + clippedVerticesItems[s + 31] = v3; + clippedVerticesItems[s + 32] = dark.r; + clippedVerticesItems[s + 33] = dark.g; + clippedVerticesItems[s + 34] = dark.b; + clippedVerticesItems[s + 35] = dark.a; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + 1); + clippedTrianglesItems[s + 2] = (index + 2); + index += 3; + continue outer; + } + } + } + }; + SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { + var originalOutput = output; + var clipped = false; + var input = null; + if (clippingArea.length % 4 >= 2) { + input = output; + output = this.scratch; + } + else + input = this.scratch; + input.length = 0; + input.push(x1); + input.push(y1); + input.push(x2); + input.push(y2); + input.push(x3); + input.push(y3); + input.push(x1); + input.push(y1); + output.length = 0; + var clippingVertices = clippingArea; + var clippingVerticesLast = clippingArea.length - 4; + for (var i = 0;; i += 2) { + var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; + var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; + var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; + var inputVertices = input; + var inputVerticesLength = input.length - 2, outputStart = output.length; + for (var ii = 0; ii < inputVerticesLength; ii += 2) { + var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; + var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; + var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; + if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { + if (side2) { + output.push(inputX2); + output.push(inputY2); + continue; + } + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + } + else if (side2) { + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + output.push(inputX2); + output.push(inputY2); + } + clipped = true; + } + if (outputStart == output.length) { + originalOutput.length = 0; + return true; + } + output.push(output[0]); + output.push(output[1]); + if (i == clippingVerticesLast) + break; + var temp = output; + output = input; + output.length = 0; + input = temp; + } + if (originalOutput != output) { + originalOutput.length = 0; + for (var i = 0, n = output.length - 2; i < n; i++) + originalOutput[i] = output[i]; + } + else + originalOutput.length = originalOutput.length - 2; + return clipped; + }; + SkeletonClipping.makeClockwise = function (polygon) { + var vertices = polygon; + var verticeslength = polygon.length; + var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; + for (var i = 0, n = verticeslength - 3; i < n; i += 2) { + p1x = vertices[i]; + p1y = vertices[i + 1]; + p2x = vertices[i + 2]; + p2y = vertices[i + 3]; + area += p1x * p2y - p2x * p1y; + } + if (area < 0) + return; + for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { + var x = vertices[i], y = vertices[i + 1]; + var other = lastX - i; + vertices[i] = vertices[other]; + vertices[i + 1] = vertices[other + 1]; + vertices[other] = x; + vertices[other + 1] = y; + } + }; + return SkeletonClipping; + }()); + spine.SkeletonClipping = SkeletonClipping; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonData = (function () { - function SkeletonData() { - this.bones = new Array(); - this.slots = new Array(); - this.skins = new Array(); - this.events = new Array(); - this.animations = new Array(); - this.ikConstraints = new Array(); - this.transformConstraints = new Array(); - this.pathConstraints = new Array(); - this.fps = 0; - } - SkeletonData.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.name == boneName) - return bone; - } - return null; - }; - SkeletonData.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].name == boneName) - return i; - return -1; - }; - SkeletonData.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.name == slotName) - return slot; - } - return null; - }; - SkeletonData.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].name == slotName) - return i; - return -1; - }; - SkeletonData.prototype.findSkin = function (skinName) { - if (skinName == null) - throw new Error("skinName cannot be null."); - var skins = this.skins; - for (var i = 0, n = skins.length; i < n; i++) { - var skin = skins[i]; - if (skin.name == skinName) - return skin; - } - return null; - }; - SkeletonData.prototype.findEvent = function (eventDataName) { - if (eventDataName == null) - throw new Error("eventDataName cannot be null."); - var events = this.events; - for (var i = 0, n = events.length; i < n; i++) { - var event_4 = events[i]; - if (event_4.name == eventDataName) - return event_4; - } - return null; - }; - SkeletonData.prototype.findAnimation = function (animationName) { - if (animationName == null) - throw new Error("animationName cannot be null."); - var animations = this.animations; - for (var i = 0, n = animations.length; i < n; i++) { - var animation = animations[i]; - if (animation.name == animationName) - return animation; - } - return null; - }; - SkeletonData.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { - if (pathConstraintName == null) - throw new Error("pathConstraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) - if (pathConstraints[i].name == pathConstraintName) - return i; - return -1; - }; - return SkeletonData; - }()); - spine.SkeletonData = SkeletonData; + var SkeletonData = (function () { + function SkeletonData() { + this.bones = new Array(); + this.slots = new Array(); + this.skins = new Array(); + this.events = new Array(); + this.animations = new Array(); + this.ikConstraints = new Array(); + this.transformConstraints = new Array(); + this.pathConstraints = new Array(); + this.fps = 0; + } + SkeletonData.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.name == boneName) + return bone; + } + return null; + }; + SkeletonData.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].name == boneName) + return i; + return -1; + }; + SkeletonData.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.name == slotName) + return slot; + } + return null; + }; + SkeletonData.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].name == slotName) + return i; + return -1; + }; + SkeletonData.prototype.findSkin = function (skinName) { + if (skinName == null) + throw new Error("skinName cannot be null."); + var skins = this.skins; + for (var i = 0, n = skins.length; i < n; i++) { + var skin = skins[i]; + if (skin.name == skinName) + return skin; + } + return null; + }; + SkeletonData.prototype.findEvent = function (eventDataName) { + if (eventDataName == null) + throw new Error("eventDataName cannot be null."); + var events = this.events; + for (var i = 0, n = events.length; i < n; i++) { + var event_4 = events[i]; + if (event_4.name == eventDataName) + return event_4; + } + return null; + }; + SkeletonData.prototype.findAnimation = function (animationName) { + if (animationName == null) + throw new Error("animationName cannot be null."); + var animations = this.animations; + for (var i = 0, n = animations.length; i < n; i++) { + var animation = animations[i]; + if (animation.name == animationName) + return animation; + } + return null; + }; + SkeletonData.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { + if (pathConstraintName == null) + throw new Error("pathConstraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) + if (pathConstraints[i].name == pathConstraintName) + return i; + return -1; + }; + return SkeletonData; + }()); + spine.SkeletonData = SkeletonData; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonJson = (function () { - function SkeletonJson(attachmentLoader) { - this.scale = 1; - this.linkedMeshes = new Array(); - this.attachmentLoader = attachmentLoader; - } - SkeletonJson.prototype.readSkeletonData = function (json) { - var scale = this.scale; - var skeletonData = new spine.SkeletonData(); - var root = typeof (json) === "string" ? JSON.parse(json) : json; - var skeletonMap = root.skeleton; - if (skeletonMap != null) { - skeletonData.hash = skeletonMap.hash; - skeletonData.version = skeletonMap.spine; - skeletonData.width = skeletonMap.width; - skeletonData.height = skeletonMap.height; - skeletonData.fps = skeletonMap.fps; - skeletonData.imagesPath = skeletonMap.images; - } - if (root.bones) { - for (var i = 0; i < root.bones.length; i++) { - var boneMap = root.bones[i]; - var parent_2 = null; - var parentName = this.getValue(boneMap, "parent", null); - if (parentName != null) { - parent_2 = skeletonData.findBone(parentName); - if (parent_2 == null) - throw new Error("Parent bone not found: " + parentName); - } - var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); - data.length = this.getValue(boneMap, "length", 0) * scale; - data.x = this.getValue(boneMap, "x", 0) * scale; - data.y = this.getValue(boneMap, "y", 0) * scale; - data.rotation = this.getValue(boneMap, "rotation", 0); - data.scaleX = this.getValue(boneMap, "scaleX", 1); - data.scaleY = this.getValue(boneMap, "scaleY", 1); - data.shearX = this.getValue(boneMap, "shearX", 0); - data.shearY = this.getValue(boneMap, "shearY", 0); - data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); - skeletonData.bones.push(data); - } - } - if (root.slots) { - for (var i = 0; i < root.slots.length; i++) { - var slotMap = root.slots[i]; - var slotName = slotMap.name; - var boneName = slotMap.bone; - var boneData = skeletonData.findBone(boneName); - if (boneData == null) - throw new Error("Slot bone not found: " + boneName); - var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); - var color = this.getValue(slotMap, "color", null); - if (color != null) - data.color.setFromString(color); - var dark = this.getValue(slotMap, "dark", null); - if (dark != null) { - data.darkColor = new spine.Color(1, 1, 1, 1); - data.darkColor.setFromString(dark); - } - data.attachmentName = this.getValue(slotMap, "attachment", null); - data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); - skeletonData.slots.push(data); - } - } - if (root.ik) { - for (var i = 0; i < root.ik.length; i++) { - var constraintMap = root.ik[i]; - var data = new spine.IkConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("IK bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("IK target bone not found: " + targetName); - data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; - data.mix = this.getValue(constraintMap, "mix", 1); - skeletonData.ikConstraints.push(data); - } - } - if (root.transform) { - for (var i = 0; i < root.transform.length; i++) { - var constraintMap = root.transform[i]; - var data = new spine.TransformConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("Transform constraint target bone not found: " + targetName); - data.local = this.getValue(constraintMap, "local", false); - data.relative = this.getValue(constraintMap, "relative", false); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.offsetX = this.getValue(constraintMap, "x", 0) * scale; - data.offsetY = this.getValue(constraintMap, "y", 0) * scale; - data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); - data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); - data.offsetShearY = this.getValue(constraintMap, "shearY", 0); - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); - data.shearMix = this.getValue(constraintMap, "shearMix", 1); - skeletonData.transformConstraints.push(data); - } - } - if (root.path) { - for (var i = 0; i < root.path.length; i++) { - var constraintMap = root.path[i]; - var data = new spine.PathConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findSlot(targetName); - if (data.target == null) - throw new Error("Path target slot not found: " + targetName); - data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); - data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); - data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.position = this.getValue(constraintMap, "position", 0); - if (data.positionMode == spine.PositionMode.Fixed) - data.position *= scale; - data.spacing = this.getValue(constraintMap, "spacing", 0); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - data.spacing *= scale; - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - skeletonData.pathConstraints.push(data); - } - } - if (root.skins) { - for (var skinName in root.skins) { - var skinMap = root.skins[skinName]; - var skin = new spine.Skin(skinName); - for (var slotName in skinMap) { - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - var slotMap = skinMap[slotName]; - for (var entryName in slotMap) { - var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); - if (attachment != null) - skin.addAttachment(slotIndex, entryName, attachment); - } - } - skeletonData.skins.push(skin); - if (skin.name == "default") - skeletonData.defaultSkin = skin; - } - } - for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { - var linkedMesh = this.linkedMeshes[i]; - var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); - if (skin == null) - throw new Error("Skin not found: " + linkedMesh.skin); - var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_3 == null) - throw new Error("Parent mesh not found: " + linkedMesh.parent); - linkedMesh.mesh.setParentMesh(parent_3); - linkedMesh.mesh.updateUVs(); - } - this.linkedMeshes.length = 0; - if (root.events) { - for (var eventName in root.events) { - var eventMap = root.events[eventName]; - var data = new spine.EventData(eventName); - data.intValue = this.getValue(eventMap, "int", 0); - data.floatValue = this.getValue(eventMap, "float", 0); - data.stringValue = this.getValue(eventMap, "string", ""); - skeletonData.events.push(data); - } - } - if (root.animations) { - for (var animationName in root.animations) { - var animationMap = root.animations[animationName]; - this.readAnimation(animationMap, animationName, skeletonData); - } - } - return skeletonData; - }; - SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { - var scale = this.scale; - name = this.getValue(map, "name", name); - var type = this.getValue(map, "type", "region"); - switch (type) { - case "region": { - var path = this.getValue(map, "path", name); - var region = this.attachmentLoader.newRegionAttachment(skin, name, path); - if (region == null) - return null; - region.path = path; - region.x = this.getValue(map, "x", 0) * scale; - region.y = this.getValue(map, "y", 0) * scale; - region.scaleX = this.getValue(map, "scaleX", 1); - region.scaleY = this.getValue(map, "scaleY", 1); - region.rotation = this.getValue(map, "rotation", 0); - region.width = map.width * scale; - region.height = map.height * scale; - var color = this.getValue(map, "color", null); - if (color != null) - region.color.setFromString(color); - region.updateOffset(); - return region; - } - case "boundingbox": { - var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); - if (box == null) - return null; - this.readVertices(map, box, map.vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - box.color.setFromString(color); - return box; - } - case "mesh": - case "linkedmesh": { - var path = this.getValue(map, "path", name); - var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); - if (mesh == null) - return null; - mesh.path = path; - var color = this.getValue(map, "color", null); - if (color != null) - mesh.color.setFromString(color); - var parent_4 = this.getValue(map, "parent", null); - if (parent_4 != null) { - mesh.inheritDeform = this.getValue(map, "deform", true); - this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); - return mesh; - } - var uvs = map.uvs; - this.readVertices(map, mesh, uvs.length); - mesh.triangles = map.triangles; - mesh.regionUVs = uvs; - mesh.updateUVs(); - mesh.hullLength = this.getValue(map, "hull", 0) * 2; - return mesh; - } - case "path": { - var path = this.attachmentLoader.newPathAttachment(skin, name); - if (path == null) - return null; - path.closed = this.getValue(map, "closed", false); - path.constantSpeed = this.getValue(map, "constantSpeed", true); - var vertexCount = map.vertexCount; - this.readVertices(map, path, vertexCount << 1); - var lengths = spine.Utils.newArray(vertexCount / 3, 0); - for (var i = 0; i < map.lengths.length; i++) - lengths[i++] = map.lengths[i] * scale; - path.lengths = lengths; - var color = this.getValue(map, "color", null); - if (color != null) - path.color.setFromString(color); - return path; - } - case "point": { - var point = this.attachmentLoader.newPointAttachment(skin, name); - if (point == null) - return null; - point.x = this.getValue(map, "x", 0) * scale; - point.y = this.getValue(map, "y", 0) * scale; - point.rotation = this.getValue(map, "rotation", 0); - var color = this.getValue(map, "color", null); - if (color != null) - point.color.setFromString(color); - return point; - } - case "clipping": { - var clip = this.attachmentLoader.newClippingAttachment(skin, name); - if (clip == null) - return null; - var end = this.getValue(map, "end", null); - if (end != null) { - var slot = skeletonData.findSlot(end); - if (slot == null) - throw new Error("Clipping end slot not found: " + end); - clip.endSlot = slot; - } - var vertexCount = map.vertexCount; - this.readVertices(map, clip, vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - clip.color.setFromString(color); - return clip; - } - } - return null; - }; - SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { - var scale = this.scale; - attachment.worldVerticesLength = verticesLength; - var vertices = map.vertices; - if (verticesLength == vertices.length) { - var scaledVertices = spine.Utils.toFloatArray(vertices); - if (scale != 1) { - for (var i = 0, n = vertices.length; i < n; i++) - scaledVertices[i] *= scale; - } - attachment.vertices = scaledVertices; - return; - } - var weights = new Array(); - var bones = new Array(); - for (var i = 0, n = vertices.length; i < n;) { - var boneCount = vertices[i++]; - bones.push(boneCount); - for (var nn = i + boneCount * 4; i < nn; i += 4) { - bones.push(vertices[i]); - weights.push(vertices[i + 1] * scale); - weights.push(vertices[i + 2] * scale); - weights.push(vertices[i + 3]); - } - } - attachment.bones = bones; - attachment.vertices = spine.Utils.toFloatArray(weights); - }; - SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { - var scale = this.scale; - var timelines = new Array(); - var duration = 0; - if (map.slots) { - for (var slotName in map.slots) { - var slotMap = map.slots[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - if (timelineName == "attachment") { - var timeline = new spine.AttachmentTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - else if (timelineName == "color") { - var timeline = new spine.ColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var color = new spine.Color(); - color.setFromString(valueMap.color); - timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); - } - else if (timelineName == "twoColor") { - var timeline = new spine.TwoColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var light = new spine.Color(); - var dark = new spine.Color(); - light.setFromString(valueMap.light); - dark.setFromString(valueMap.dark); - timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); - } - } - } - if (map.bones) { - for (var boneName in map.bones) { - var boneMap = map.bones[boneName]; - var boneIndex = skeletonData.findBoneIndex(boneName); - if (boneIndex == -1) - throw new Error("Bone not found: " + boneName); - for (var timelineName in boneMap) { - var timelineMap = boneMap[timelineName]; - if (timelineName === "rotate") { - var timeline = new spine.RotateTimeline(timelineMap.length); - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); - } - else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "scale") - timeline = new spine.ScaleTimeline(timelineMap.length); - else if (timelineName === "shear") - timeline = new spine.ShearTimeline(timelineMap.length); - else { - timeline = new spine.TranslateTimeline(timelineMap.length); - timelineScale = scale; - } - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); - timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); - } - } - } - if (map.ik) { - for (var constraintName in map.ik) { - var constraintMap = map.ik[constraintName]; - var constraint = skeletonData.findIkConstraint(constraintName); - var timeline = new spine.IkConstraintTimeline(constraintMap.length); - timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); - } - } - if (map.transform) { - for (var constraintName in map.transform) { - var constraintMap = map.transform[constraintName]; - var constraint = skeletonData.findTransformConstraint(constraintName); - var timeline = new spine.TransformConstraintTimeline(constraintMap.length); - timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); - } - } - if (map.paths) { - for (var constraintName in map.paths) { - var constraintMap = map.paths[constraintName]; - var index = skeletonData.findPathConstraintIndex(constraintName); - if (index == -1) - throw new Error("Path constraint not found: " + constraintName); - var data = skeletonData.pathConstraints[index]; - for (var timelineName in constraintMap) { - var timelineMap = constraintMap[timelineName]; - if (timelineName === "position" || timelineName === "spacing") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "spacing") { - timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - timelineScale = scale; - } - else { - timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); - if (data.positionMode == spine.PositionMode.Fixed) - timelineScale = scale; - } - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); - } - else if (timelineName === "mix") { - var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); - } - } - } - } - if (map.deform) { - for (var deformName in map.deform) { - var deformMap = map.deform[deformName]; - var skin = skeletonData.findSkin(deformName); - if (skin == null) - throw new Error("Skin not found: " + deformName); - for (var slotName in deformMap) { - var slotMap = deformMap[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotMap.name); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - var attachment = skin.getAttachment(slotIndex, timelineName); - if (attachment == null) - throw new Error("Deform attachment not found: " + timelineMap.name); - var weighted = attachment.bones != null; - var vertices = attachment.vertices; - var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; - var timeline = new spine.DeformTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - timeline.attachment = attachment; - var frameIndex = 0; - for (var j = 0; j < timelineMap.length; j++) { - var valueMap = timelineMap[j]; - var deform = void 0; - var verticesValue = this.getValue(valueMap, "vertices", null); - if (verticesValue == null) - deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; - else { - deform = spine.Utils.newFloatArray(deformLength); - var start = this.getValue(valueMap, "offset", 0); - spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); - if (scale != 1) { - for (var i = start, n = i + verticesValue.length; i < n; i++) - deform[i] *= scale; - } - if (!weighted) { - for (var i = 0; i < deformLength; i++) - deform[i] += vertices[i]; - } - } - timeline.setFrame(frameIndex, valueMap.time, deform); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - } - } - } - var drawOrderNode = map.drawOrder; - if (drawOrderNode == null) - drawOrderNode = map.draworder; - if (drawOrderNode != null) { - var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); - var slotCount = skeletonData.slots.length; - var frameIndex = 0; - for (var j = 0; j < drawOrderNode.length; j++) { - var drawOrderMap = drawOrderNode[j]; - var drawOrder = null; - var offsets = this.getValue(drawOrderMap, "offsets", null); - if (offsets != null) { - drawOrder = spine.Utils.newArray(slotCount, -1); - var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); - var originalIndex = 0, unchangedIndex = 0; - for (var i = 0; i < offsets.length; i++) { - var offsetMap = offsets[i]; - var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); - if (slotIndex == -1) - throw new Error("Slot not found: " + offsetMap.slot); - while (originalIndex != slotIndex) - unchanged[unchangedIndex++] = originalIndex++; - drawOrder[originalIndex + offsetMap.offset] = originalIndex++; - } - while (originalIndex < slotCount) - unchanged[unchangedIndex++] = originalIndex++; - for (var i = slotCount - 1; i >= 0; i--) - if (drawOrder[i] == -1) - drawOrder[i] = unchanged[--unchangedIndex]; - } - timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (map.events) { - var timeline = new spine.EventTimeline(map.events.length); - var frameIndex = 0; - for (var i = 0; i < map.events.length; i++) { - var eventMap = map.events[i]; - var eventData = skeletonData.findEvent(eventMap.name); - if (eventData == null) - throw new Error("Event not found: " + eventMap.name); - var event_5 = new spine.Event(eventMap.time, eventData); - event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); - event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); - event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); - timeline.setFrame(frameIndex++, event_5); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (isNaN(duration)) { - throw new Error("Error while parsing animation, duration is NaN"); - } - skeletonData.animations.push(new spine.Animation(name, timelines, duration)); - }; - SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { - if (!map.curve) - return; - if (map.curve === "stepped") - timeline.setStepped(frameIndex); - else if (Object.prototype.toString.call(map.curve) === '[object Array]') { - var curve = map.curve; - timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); - } - }; - SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { - return map[prop] !== undefined ? map[prop] : defaultValue; - }; - SkeletonJson.blendModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.BlendMode.Normal; - if (str == "additive") - return spine.BlendMode.Additive; - if (str == "multiply") - return spine.BlendMode.Multiply; - if (str == "screen") - return spine.BlendMode.Screen; - throw new Error("Unknown blend mode: " + str); - }; - SkeletonJson.positionModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "fixed") - return spine.PositionMode.Fixed; - if (str == "percent") - return spine.PositionMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.spacingModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "length") - return spine.SpacingMode.Length; - if (str == "fixed") - return spine.SpacingMode.Fixed; - if (str == "percent") - return spine.SpacingMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.rotateModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "tangent") - return spine.RotateMode.Tangent; - if (str == "chain") - return spine.RotateMode.Chain; - if (str == "chainscale") - return spine.RotateMode.ChainScale; - throw new Error("Unknown rotate mode: " + str); - }; - SkeletonJson.transformModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.TransformMode.Normal; - if (str == "onlytranslation") - return spine.TransformMode.OnlyTranslation; - if (str == "norotationorreflection") - return spine.TransformMode.NoRotationOrReflection; - if (str == "noscale") - return spine.TransformMode.NoScale; - if (str == "noscaleorreflection") - return spine.TransformMode.NoScaleOrReflection; - throw new Error("Unknown transform mode: " + str); - }; - return SkeletonJson; - }()); - spine.SkeletonJson = SkeletonJson; - var LinkedMesh = (function () { - function LinkedMesh(mesh, skin, slotIndex, parent) { - this.mesh = mesh; - this.skin = skin; - this.slotIndex = slotIndex; - this.parent = parent; - } - return LinkedMesh; - }()); + var SkeletonJson = (function () { + function SkeletonJson(attachmentLoader) { + this.scale = 1; + this.linkedMeshes = new Array(); + this.attachmentLoader = attachmentLoader; + } + SkeletonJson.prototype.readSkeletonData = function (json) { + var scale = this.scale; + var skeletonData = new spine.SkeletonData(); + var root = typeof (json) === "string" ? JSON.parse(json) : json; + var skeletonMap = root.skeleton; + if (skeletonMap != null) { + skeletonData.hash = skeletonMap.hash; + skeletonData.version = skeletonMap.spine; + skeletonData.width = skeletonMap.width; + skeletonData.height = skeletonMap.height; + skeletonData.fps = skeletonMap.fps; + skeletonData.imagesPath = skeletonMap.images; + } + if (root.bones) { + for (var i = 0; i < root.bones.length; i++) { + var boneMap = root.bones[i]; + var parent_2 = null; + var parentName = this.getValue(boneMap, "parent", null); + if (parentName != null) { + parent_2 = skeletonData.findBone(parentName); + if (parent_2 == null) + throw new Error("Parent bone not found: " + parentName); + } + var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); + data.length = this.getValue(boneMap, "length", 0) * scale; + data.x = this.getValue(boneMap, "x", 0) * scale; + data.y = this.getValue(boneMap, "y", 0) * scale; + data.rotation = this.getValue(boneMap, "rotation", 0); + data.scaleX = this.getValue(boneMap, "scaleX", 1); + data.scaleY = this.getValue(boneMap, "scaleY", 1); + data.shearX = this.getValue(boneMap, "shearX", 0); + data.shearY = this.getValue(boneMap, "shearY", 0); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); + skeletonData.bones.push(data); + } + } + if (root.slots) { + for (var i = 0; i < root.slots.length; i++) { + var slotMap = root.slots[i]; + var slotName = slotMap.name; + var boneName = slotMap.bone; + var boneData = skeletonData.findBone(boneName); + if (boneData == null) + throw new Error("Slot bone not found: " + boneName); + var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); + var color = this.getValue(slotMap, "color", null); + if (color != null) + data.color.setFromString(color); + var dark = this.getValue(slotMap, "dark", null); + if (dark != null) { + data.darkColor = new spine.Color(1, 1, 1, 1); + data.darkColor.setFromString(dark); + } + data.attachmentName = this.getValue(slotMap, "attachment", null); + data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); + skeletonData.slots.push(data); + } + } + if (root.ik) { + for (var i = 0; i < root.ik.length; i++) { + var constraintMap = root.ik[i]; + var data = new spine.IkConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("IK bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("IK target bone not found: " + targetName); + data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; + data.mix = this.getValue(constraintMap, "mix", 1); + skeletonData.ikConstraints.push(data); + } + } + if (root.transform) { + for (var i = 0; i < root.transform.length; i++) { + var constraintMap = root.transform[i]; + var data = new spine.TransformConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("Transform constraint target bone not found: " + targetName); + data.local = this.getValue(constraintMap, "local", false); + data.relative = this.getValue(constraintMap, "relative", false); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.offsetX = this.getValue(constraintMap, "x", 0) * scale; + data.offsetY = this.getValue(constraintMap, "y", 0) * scale; + data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); + data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); + data.offsetShearY = this.getValue(constraintMap, "shearY", 0); + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); + data.shearMix = this.getValue(constraintMap, "shearMix", 1); + skeletonData.transformConstraints.push(data); + } + } + if (root.path) { + for (var i = 0; i < root.path.length; i++) { + var constraintMap = root.path[i]; + var data = new spine.PathConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findSlot(targetName); + if (data.target == null) + throw new Error("Path target slot not found: " + targetName); + data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); + data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); + data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.position = this.getValue(constraintMap, "position", 0); + if (data.positionMode == spine.PositionMode.Fixed) + data.position *= scale; + data.spacing = this.getValue(constraintMap, "spacing", 0); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + data.spacing *= scale; + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + skeletonData.pathConstraints.push(data); + } + } + if (root.skins) { + for (var skinName in root.skins) { + var skinMap = root.skins[skinName]; + var skin = new spine.Skin(skinName); + for (var slotName in skinMap) { + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + var slotMap = skinMap[slotName]; + for (var entryName in slotMap) { + var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); + if (attachment != null) + skin.addAttachment(slotIndex, entryName, attachment); + } + } + skeletonData.skins.push(skin); + if (skin.name == "default") + skeletonData.defaultSkin = skin; + } + } + for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { + var linkedMesh = this.linkedMeshes[i]; + var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); + if (skin == null) + throw new Error("Skin not found: " + linkedMesh.skin); + var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); + if (parent_3 == null) + throw new Error("Parent mesh not found: " + linkedMesh.parent); + linkedMesh.mesh.setParentMesh(parent_3); + linkedMesh.mesh.updateUVs(); + } + this.linkedMeshes.length = 0; + if (root.events) { + for (var eventName in root.events) { + var eventMap = root.events[eventName]; + var data = new spine.EventData(eventName); + data.intValue = this.getValue(eventMap, "int", 0); + data.floatValue = this.getValue(eventMap, "float", 0); + data.stringValue = this.getValue(eventMap, "string", ""); + skeletonData.events.push(data); + } + } + if (root.animations) { + for (var animationName in root.animations) { + var animationMap = root.animations[animationName]; + this.readAnimation(animationMap, animationName, skeletonData); + } + } + return skeletonData; + }; + SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { + var scale = this.scale; + name = this.getValue(map, "name", name); + var type = this.getValue(map, "type", "region"); + switch (type) { + case "region": { + var path = this.getValue(map, "path", name); + var region = this.attachmentLoader.newRegionAttachment(skin, name, path); + if (region == null) + return null; + region.path = path; + region.x = this.getValue(map, "x", 0) * scale; + region.y = this.getValue(map, "y", 0) * scale; + region.scaleX = this.getValue(map, "scaleX", 1); + region.scaleY = this.getValue(map, "scaleY", 1); + region.rotation = this.getValue(map, "rotation", 0); + region.width = map.width * scale; + region.height = map.height * scale; + var color = this.getValue(map, "color", null); + if (color != null) + region.color.setFromString(color); + region.updateOffset(); + return region; + } + case "boundingbox": { + var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); + if (box == null) + return null; + this.readVertices(map, box, map.vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + box.color.setFromString(color); + return box; + } + case "mesh": + case "linkedmesh": { + var path = this.getValue(map, "path", name); + var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); + if (mesh == null) + return null; + mesh.path = path; + var color = this.getValue(map, "color", null); + if (color != null) + mesh.color.setFromString(color); + var parent_4 = this.getValue(map, "parent", null); + if (parent_4 != null) { + mesh.inheritDeform = this.getValue(map, "deform", true); + this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); + return mesh; + } + var uvs = map.uvs; + this.readVertices(map, mesh, uvs.length); + mesh.triangles = map.triangles; + mesh.regionUVs = uvs; + mesh.updateUVs(); + mesh.hullLength = this.getValue(map, "hull", 0) * 2; + return mesh; + } + case "path": { + var path = this.attachmentLoader.newPathAttachment(skin, name); + if (path == null) + return null; + path.closed = this.getValue(map, "closed", false); + path.constantSpeed = this.getValue(map, "constantSpeed", true); + var vertexCount = map.vertexCount; + this.readVertices(map, path, vertexCount << 1); + var lengths = spine.Utils.newArray(vertexCount / 3, 0); + for (var i = 0; i < map.lengths.length; i++) + lengths[i++] = map.lengths[i] * scale; + path.lengths = lengths; + var color = this.getValue(map, "color", null); + if (color != null) + path.color.setFromString(color); + return path; + } + case "point": { + var point = this.attachmentLoader.newPointAttachment(skin, name); + if (point == null) + return null; + point.x = this.getValue(map, "x", 0) * scale; + point.y = this.getValue(map, "y", 0) * scale; + point.rotation = this.getValue(map, "rotation", 0); + var color = this.getValue(map, "color", null); + if (color != null) + point.color.setFromString(color); + return point; + } + case "clipping": { + var clip = this.attachmentLoader.newClippingAttachment(skin, name); + if (clip == null) + return null; + var end = this.getValue(map, "end", null); + if (end != null) { + var slot = skeletonData.findSlot(end); + if (slot == null) + throw new Error("Clipping end slot not found: " + end); + clip.endSlot = slot; + } + var vertexCount = map.vertexCount; + this.readVertices(map, clip, vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + clip.color.setFromString(color); + return clip; + } + } + return null; + }; + SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { + var scale = this.scale; + attachment.worldVerticesLength = verticesLength; + var vertices = map.vertices; + if (verticesLength == vertices.length) { + var scaledVertices = spine.Utils.toFloatArray(vertices); + if (scale != 1) { + for (var i = 0, n = vertices.length; i < n; i++) + scaledVertices[i] *= scale; + } + attachment.vertices = scaledVertices; + return; + } + var weights = new Array(); + var bones = new Array(); + for (var i = 0, n = vertices.length; i < n;) { + var boneCount = vertices[i++]; + bones.push(boneCount); + for (var nn = i + boneCount * 4; i < nn; i += 4) { + bones.push(vertices[i]); + weights.push(vertices[i + 1] * scale); + weights.push(vertices[i + 2] * scale); + weights.push(vertices[i + 3]); + } + } + attachment.bones = bones; + attachment.vertices = spine.Utils.toFloatArray(weights); + }; + SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { + var scale = this.scale; + var timelines = new Array(); + var duration = 0; + if (map.slots) { + for (var slotName in map.slots) { + var slotMap = map.slots[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + if (timelineName == "attachment") { + var timeline = new spine.AttachmentTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + else if (timelineName == "color") { + var timeline = new spine.ColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var color = new spine.Color(); + color.setFromString(valueMap.color); + timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); + } + else if (timelineName == "twoColor") { + var timeline = new spine.TwoColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var light = new spine.Color(); + var dark = new spine.Color(); + light.setFromString(valueMap.light); + dark.setFromString(valueMap.dark); + timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); + } + } + } + if (map.bones) { + for (var boneName in map.bones) { + var boneMap = map.bones[boneName]; + var boneIndex = skeletonData.findBoneIndex(boneName); + if (boneIndex == -1) + throw new Error("Bone not found: " + boneName); + for (var timelineName in boneMap) { + var timelineMap = boneMap[timelineName]; + if (timelineName === "rotate") { + var timeline = new spine.RotateTimeline(timelineMap.length); + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); + } + else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "scale") + timeline = new spine.ScaleTimeline(timelineMap.length); + else if (timelineName === "shear") + timeline = new spine.ShearTimeline(timelineMap.length); + else { + timeline = new spine.TranslateTimeline(timelineMap.length); + timelineScale = scale; + } + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); + timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); + } + } + } + if (map.ik) { + for (var constraintName in map.ik) { + var constraintMap = map.ik[constraintName]; + var constraint = skeletonData.findIkConstraint(constraintName); + var timeline = new spine.IkConstraintTimeline(constraintMap.length); + timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); + } + } + if (map.transform) { + for (var constraintName in map.transform) { + var constraintMap = map.transform[constraintName]; + var constraint = skeletonData.findTransformConstraint(constraintName); + var timeline = new spine.TransformConstraintTimeline(constraintMap.length); + timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); + } + } + if (map.paths) { + for (var constraintName in map.paths) { + var constraintMap = map.paths[constraintName]; + var index = skeletonData.findPathConstraintIndex(constraintName); + if (index == -1) + throw new Error("Path constraint not found: " + constraintName); + var data = skeletonData.pathConstraints[index]; + for (var timelineName in constraintMap) { + var timelineMap = constraintMap[timelineName]; + if (timelineName === "position" || timelineName === "spacing") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "spacing") { + timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + timelineScale = scale; + } + else { + timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); + if (data.positionMode == spine.PositionMode.Fixed) + timelineScale = scale; + } + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); + } + else if (timelineName === "mix") { + var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); + } + } + } + } + if (map.deform) { + for (var deformName in map.deform) { + var deformMap = map.deform[deformName]; + var skin = skeletonData.findSkin(deformName); + if (skin == null) + throw new Error("Skin not found: " + deformName); + for (var slotName in deformMap) { + var slotMap = deformMap[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotMap.name); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + var attachment = skin.getAttachment(slotIndex, timelineName); + if (attachment == null) + throw new Error("Deform attachment not found: " + timelineMap.name); + var weighted = attachment.bones != null; + var vertices = attachment.vertices; + var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; + var timeline = new spine.DeformTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + timeline.attachment = attachment; + var frameIndex = 0; + for (var j = 0; j < timelineMap.length; j++) { + var valueMap = timelineMap[j]; + var deform = void 0; + var verticesValue = this.getValue(valueMap, "vertices", null); + if (verticesValue == null) + deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; + else { + deform = spine.Utils.newFloatArray(deformLength); + var start = this.getValue(valueMap, "offset", 0); + spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); + if (scale != 1) { + for (var i = start, n = i + verticesValue.length; i < n; i++) + deform[i] *= scale; + } + if (!weighted) { + for (var i = 0; i < deformLength; i++) + deform[i] += vertices[i]; + } + } + timeline.setFrame(frameIndex, valueMap.time, deform); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + } + } + } + var drawOrderNode = map.drawOrder; + if (drawOrderNode == null) + drawOrderNode = map.draworder; + if (drawOrderNode != null) { + var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); + var slotCount = skeletonData.slots.length; + var frameIndex = 0; + for (var j = 0; j < drawOrderNode.length; j++) { + var drawOrderMap = drawOrderNode[j]; + var drawOrder = null; + var offsets = this.getValue(drawOrderMap, "offsets", null); + if (offsets != null) { + drawOrder = spine.Utils.newArray(slotCount, -1); + var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); + var originalIndex = 0, unchangedIndex = 0; + for (var i = 0; i < offsets.length; i++) { + var offsetMap = offsets[i]; + var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); + if (slotIndex == -1) + throw new Error("Slot not found: " + offsetMap.slot); + while (originalIndex != slotIndex) + unchanged[unchangedIndex++] = originalIndex++; + drawOrder[originalIndex + offsetMap.offset] = originalIndex++; + } + while (originalIndex < slotCount) + unchanged[unchangedIndex++] = originalIndex++; + for (var i = slotCount - 1; i >= 0; i--) + if (drawOrder[i] == -1) + drawOrder[i] = unchanged[--unchangedIndex]; + } + timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (map.events) { + var timeline = new spine.EventTimeline(map.events.length); + var frameIndex = 0; + for (var i = 0; i < map.events.length; i++) { + var eventMap = map.events[i]; + var eventData = skeletonData.findEvent(eventMap.name); + if (eventData == null) + throw new Error("Event not found: " + eventMap.name); + var event_5 = new spine.Event(eventMap.time, eventData); + event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); + event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); + event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); + timeline.setFrame(frameIndex++, event_5); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (isNaN(duration)) { + throw new Error("Error while parsing animation, duration is NaN"); + } + skeletonData.animations.push(new spine.Animation(name, timelines, duration)); + }; + SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { + if (!map.curve) + return; + if (map.curve === "stepped") + timeline.setStepped(frameIndex); + else if (Object.prototype.toString.call(map.curve) === '[object Array]') { + var curve = map.curve; + timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); + } + }; + SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { + return map[prop] !== undefined ? map[prop] : defaultValue; + }; + SkeletonJson.blendModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.BlendMode.Normal; + if (str == "additive") + return spine.BlendMode.Additive; + if (str == "multiply") + return spine.BlendMode.Multiply; + if (str == "screen") + return spine.BlendMode.Screen; + throw new Error("Unknown blend mode: " + str); + }; + SkeletonJson.positionModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "fixed") + return spine.PositionMode.Fixed; + if (str == "percent") + return spine.PositionMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.spacingModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "length") + return spine.SpacingMode.Length; + if (str == "fixed") + return spine.SpacingMode.Fixed; + if (str == "percent") + return spine.SpacingMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.rotateModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "tangent") + return spine.RotateMode.Tangent; + if (str == "chain") + return spine.RotateMode.Chain; + if (str == "chainscale") + return spine.RotateMode.ChainScale; + throw new Error("Unknown rotate mode: " + str); + }; + SkeletonJson.transformModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.TransformMode.Normal; + if (str == "onlytranslation") + return spine.TransformMode.OnlyTranslation; + if (str == "norotationorreflection") + return spine.TransformMode.NoRotationOrReflection; + if (str == "noscale") + return spine.TransformMode.NoScale; + if (str == "noscaleorreflection") + return spine.TransformMode.NoScaleOrReflection; + throw new Error("Unknown transform mode: " + str); + }; + return SkeletonJson; + }()); + spine.SkeletonJson = SkeletonJson; + var LinkedMesh = (function () { + function LinkedMesh(mesh, skin, slotIndex, parent) { + this.mesh = mesh; + this.skin = skin; + this.slotIndex = slotIndex; + this.parent = parent; + } + return LinkedMesh; + }()); })(spine || (spine = {})); var spine; (function (spine) { - var Skin = (function () { - function Skin(name) { - this.attachments = new Array(); - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - Skin.prototype.addAttachment = function (slotIndex, name, attachment) { - if (attachment == null) - throw new Error("attachment cannot be null."); - var attachments = this.attachments; - if (slotIndex >= attachments.length) - attachments.length = slotIndex + 1; - if (!attachments[slotIndex]) - attachments[slotIndex] = {}; - attachments[slotIndex][name] = attachment; - }; - Skin.prototype.getAttachment = function (slotIndex, name) { - var dictionary = this.attachments[slotIndex]; - return dictionary ? dictionary[name] : null; - }; - Skin.prototype.attachAll = function (skeleton, oldSkin) { - var slotIndex = 0; - for (var i = 0; i < skeleton.slots.length; i++) { - var slot = skeleton.slots[i]; - var slotAttachment = slot.getAttachment(); - if (slotAttachment && slotIndex < oldSkin.attachments.length) { - var dictionary = oldSkin.attachments[slotIndex]; - for (var key in dictionary) { - var skinAttachment = dictionary[key]; - if (slotAttachment == skinAttachment) { - var attachment = this.getAttachment(slotIndex, key); - if (attachment != null) - slot.setAttachment(attachment); - break; - } - } - } - slotIndex++; - } - }; - return Skin; - }()); - spine.Skin = Skin; + var Skin = (function () { + function Skin(name) { + this.attachments = new Array(); + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + Skin.prototype.addAttachment = function (slotIndex, name, attachment) { + if (attachment == null) + throw new Error("attachment cannot be null."); + var attachments = this.attachments; + if (slotIndex >= attachments.length) + attachments.length = slotIndex + 1; + if (!attachments[slotIndex]) + attachments[slotIndex] = {}; + attachments[slotIndex][name] = attachment; + }; + Skin.prototype.getAttachment = function (slotIndex, name) { + var dictionary = this.attachments[slotIndex]; + return dictionary ? dictionary[name] : null; + }; + Skin.prototype.attachAll = function (skeleton, oldSkin) { + var slotIndex = 0; + for (var i = 0; i < skeleton.slots.length; i++) { + var slot = skeleton.slots[i]; + var slotAttachment = slot.getAttachment(); + if (slotAttachment && slotIndex < oldSkin.attachments.length) { + var dictionary = oldSkin.attachments[slotIndex]; + for (var key in dictionary) { + var skinAttachment = dictionary[key]; + if (slotAttachment == skinAttachment) { + var attachment = this.getAttachment(slotIndex, key); + if (attachment != null) + slot.setAttachment(attachment); + break; + } + } + } + slotIndex++; + } + }; + return Skin; + }()); + spine.Skin = Skin; })(spine || (spine = {})); var spine; (function (spine) { - var Slot = (function () { - function Slot(data, bone) { - this.attachmentVertices = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (bone == null) - throw new Error("bone cannot be null."); - this.data = data; - this.bone = bone; - this.color = new spine.Color(); - this.darkColor = data.darkColor == null ? null : new spine.Color(); - this.setToSetupPose(); - } - Slot.prototype.getAttachment = function () { - return this.attachment; - }; - Slot.prototype.setAttachment = function (attachment) { - if (this.attachment == attachment) - return; - this.attachment = attachment; - this.attachmentTime = this.bone.skeleton.time; - this.attachmentVertices.length = 0; - }; - Slot.prototype.setAttachmentTime = function (time) { - this.attachmentTime = this.bone.skeleton.time - time; - }; - Slot.prototype.getAttachmentTime = function () { - return this.bone.skeleton.time - this.attachmentTime; - }; - Slot.prototype.setToSetupPose = function () { - this.color.setFromColor(this.data.color); - if (this.darkColor != null) - this.darkColor.setFromColor(this.data.darkColor); - if (this.data.attachmentName == null) - this.attachment = null; - else { - this.attachment = null; - this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); - } - }; - return Slot; - }()); - spine.Slot = Slot; + var Slot = (function () { + function Slot(data, bone) { + this.attachmentVertices = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (bone == null) + throw new Error("bone cannot be null."); + this.data = data; + this.bone = bone; + this.color = new spine.Color(); + this.darkColor = data.darkColor == null ? null : new spine.Color(); + this.setToSetupPose(); + } + Slot.prototype.getAttachment = function () { + return this.attachment; + }; + Slot.prototype.setAttachment = function (attachment) { + if (this.attachment == attachment) + return; + this.attachment = attachment; + this.attachmentTime = this.bone.skeleton.time; + this.attachmentVertices.length = 0; + }; + Slot.prototype.setAttachmentTime = function (time) { + this.attachmentTime = this.bone.skeleton.time - time; + }; + Slot.prototype.getAttachmentTime = function () { + return this.bone.skeleton.time - this.attachmentTime; + }; + Slot.prototype.setToSetupPose = function () { + this.color.setFromColor(this.data.color); + if (this.darkColor != null) + this.darkColor.setFromColor(this.data.darkColor); + if (this.data.attachmentName == null) + this.attachment = null; + else { + this.attachment = null; + this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); + } + }; + return Slot; + }()); + spine.Slot = Slot; })(spine || (spine = {})); var spine; (function (spine) { - var SlotData = (function () { - function SlotData(index, name, boneData) { - this.color = new spine.Color(1, 1, 1, 1); - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - if (boneData == null) - throw new Error("boneData cannot be null."); - this.index = index; - this.name = name; - this.boneData = boneData; - } - return SlotData; - }()); - spine.SlotData = SlotData; + var SlotData = (function () { + function SlotData(index, name, boneData) { + this.color = new spine.Color(1, 1, 1, 1); + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + if (boneData == null) + throw new Error("boneData cannot be null."); + this.index = index; + this.name = name; + this.boneData = boneData; + } + return SlotData; + }()); + spine.SlotData = SlotData; })(spine || (spine = {})); var spine; (function (spine) { - var TextureAtlas = (function () { - function TextureAtlas(atlasText, textureLoader) { - this.pages = new Array(); - this.regions = new Array(); - this.load(atlasText, textureLoader); - } - TextureAtlas.prototype.load = function (atlasText, textureLoader) { - if (textureLoader == null) - throw new Error("textureLoader cannot be null."); - var reader = new TextureAtlasReader(atlasText); - var tuple = new Array(4); - var page = null; - while (true) { - var line = reader.readLine(); - if (line == null) - break; - line = line.trim(); - if (line.length == 0) - page = null; - else if (!page) { - page = new TextureAtlasPage(); - page.name = line; - if (reader.readTuple(tuple) == 2) { - page.width = parseInt(tuple[0]); - page.height = parseInt(tuple[1]); - reader.readTuple(tuple); - } - reader.readTuple(tuple); - page.minFilter = spine.Texture.filterFromString(tuple[0]); - page.magFilter = spine.Texture.filterFromString(tuple[1]); - var direction = reader.readValue(); - page.uWrap = spine.TextureWrap.ClampToEdge; - page.vWrap = spine.TextureWrap.ClampToEdge; - if (direction == "x") - page.uWrap = spine.TextureWrap.Repeat; - else if (direction == "y") - page.vWrap = spine.TextureWrap.Repeat; - else if (direction == "xy") - page.uWrap = page.vWrap = spine.TextureWrap.Repeat; - page.texture = textureLoader(line); - page.texture.setFilters(page.minFilter, page.magFilter); - page.texture.setWraps(page.uWrap, page.vWrap); - page.width = page.texture.getImage().width; - page.height = page.texture.getImage().height; - this.pages.push(page); - } - else { - var region = new TextureAtlasRegion(); - region.name = line; - region.page = page; - region.rotate = reader.readValue() == "true"; - reader.readTuple(tuple); - var x = parseInt(tuple[0]); - var y = parseInt(tuple[1]); - reader.readTuple(tuple); - var width = parseInt(tuple[0]); - var height = parseInt(tuple[1]); - region.u = x / page.width; - region.v = y / page.height; - if (region.rotate) { - region.u2 = (x + height) / page.width; - region.v2 = (y + width) / page.height; - } - else { - region.u2 = (x + width) / page.width; - region.v2 = (y + height) / page.height; - } - region.x = x; - region.y = y; - region.width = Math.abs(width); - region.height = Math.abs(height); - if (reader.readTuple(tuple) == 4) { - if (reader.readTuple(tuple) == 4) { - reader.readTuple(tuple); - } - } - region.originalWidth = parseInt(tuple[0]); - region.originalHeight = parseInt(tuple[1]); - reader.readTuple(tuple); - region.offsetX = parseInt(tuple[0]); - region.offsetY = parseInt(tuple[1]); - region.index = parseInt(reader.readValue()); - region.texture = page.texture; - this.regions.push(region); - } - } - }; - TextureAtlas.prototype.findRegion = function (name) { - for (var i = 0; i < this.regions.length; i++) { - if (this.regions[i].name == name) { - return this.regions[i]; - } - } - return null; - }; - TextureAtlas.prototype.dispose = function () { - for (var i = 0; i < this.pages.length; i++) { - this.pages[i].texture.dispose(); - } - }; - return TextureAtlas; - }()); - spine.TextureAtlas = TextureAtlas; - var TextureAtlasReader = (function () { - function TextureAtlasReader(text) { - this.index = 0; - this.lines = text.split(/\r\n|\r|\n/); - } - TextureAtlasReader.prototype.readLine = function () { - if (this.index >= this.lines.length) - return null; - return this.lines[this.index++]; - }; - TextureAtlasReader.prototype.readValue = function () { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - return line.substring(colon + 1).trim(); - }; - TextureAtlasReader.prototype.readTuple = function (tuple) { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - var i = 0, lastMatch = colon + 1; - for (; i < 3; i++) { - var comma = line.indexOf(",", lastMatch); - if (comma == -1) - break; - tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); - lastMatch = comma + 1; - } - tuple[i] = line.substring(lastMatch).trim(); - return i + 1; - }; - return TextureAtlasReader; - }()); - var TextureAtlasPage = (function () { - function TextureAtlasPage() { - } - return TextureAtlasPage; - }()); - spine.TextureAtlasPage = TextureAtlasPage; - var TextureAtlasRegion = (function (_super) { - __extends(TextureAtlasRegion, _super); - function TextureAtlasRegion() { - _super.apply(this, arguments); - } - return TextureAtlasRegion; - }(spine.TextureRegion)); - spine.TextureAtlasRegion = TextureAtlasRegion; + var TextureAtlas = (function () { + function TextureAtlas(atlasText, textureLoader) { + this.pages = new Array(); + this.regions = new Array(); + this.load(atlasText, textureLoader); + } + TextureAtlas.prototype.load = function (atlasText, textureLoader) { + if (textureLoader == null) + throw new Error("textureLoader cannot be null."); + var reader = new TextureAtlasReader(atlasText); + var tuple = new Array(4); + var page = null; + while (true) { + var line = reader.readLine(); + if (line == null) + break; + line = line.trim(); + if (line.length == 0) + page = null; + else if (!page) { + page = new TextureAtlasPage(); + page.name = line; + if (reader.readTuple(tuple) == 2) { + page.width = parseInt(tuple[0]); + page.height = parseInt(tuple[1]); + reader.readTuple(tuple); + } + reader.readTuple(tuple); + page.minFilter = spine.Texture.filterFromString(tuple[0]); + page.magFilter = spine.Texture.filterFromString(tuple[1]); + var direction = reader.readValue(); + page.uWrap = spine.TextureWrap.ClampToEdge; + page.vWrap = spine.TextureWrap.ClampToEdge; + if (direction == "x") + page.uWrap = spine.TextureWrap.Repeat; + else if (direction == "y") + page.vWrap = spine.TextureWrap.Repeat; + else if (direction == "xy") + page.uWrap = page.vWrap = spine.TextureWrap.Repeat; + page.texture = textureLoader(line); + page.texture.setFilters(page.minFilter, page.magFilter); + page.texture.setWraps(page.uWrap, page.vWrap); + page.width = page.texture.getImage().width; + page.height = page.texture.getImage().height; + this.pages.push(page); + } + else { + var region = new TextureAtlasRegion(); + region.name = line; + region.page = page; + region.rotate = reader.readValue() == "true"; + reader.readTuple(tuple); + var x = parseInt(tuple[0]); + var y = parseInt(tuple[1]); + reader.readTuple(tuple); + var width = parseInt(tuple[0]); + var height = parseInt(tuple[1]); + region.u = x / page.width; + region.v = y / page.height; + if (region.rotate) { + region.u2 = (x + height) / page.width; + region.v2 = (y + width) / page.height; + } + else { + region.u2 = (x + width) / page.width; + region.v2 = (y + height) / page.height; + } + region.x = x; + region.y = y; + region.width = Math.abs(width); + region.height = Math.abs(height); + if (reader.readTuple(tuple) == 4) { + if (reader.readTuple(tuple) == 4) { + reader.readTuple(tuple); + } + } + region.originalWidth = parseInt(tuple[0]); + region.originalHeight = parseInt(tuple[1]); + reader.readTuple(tuple); + region.offsetX = parseInt(tuple[0]); + region.offsetY = parseInt(tuple[1]); + region.index = parseInt(reader.readValue()); + region.texture = page.texture; + this.regions.push(region); + } + } + }; + TextureAtlas.prototype.findRegion = function (name) { + for (var i = 0; i < this.regions.length; i++) { + if (this.regions[i].name == name) { + return this.regions[i]; + } + } + return null; + }; + TextureAtlas.prototype.dispose = function () { + for (var i = 0; i < this.pages.length; i++) { + this.pages[i].texture.dispose(); + } + }; + return TextureAtlas; + }()); + spine.TextureAtlas = TextureAtlas; + var TextureAtlasReader = (function () { + function TextureAtlasReader(text) { + this.index = 0; + this.lines = text.split(/\r\n|\r|\n/); + } + TextureAtlasReader.prototype.readLine = function () { + if (this.index >= this.lines.length) + return null; + return this.lines[this.index++]; + }; + TextureAtlasReader.prototype.readValue = function () { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + return line.substring(colon + 1).trim(); + }; + TextureAtlasReader.prototype.readTuple = function (tuple) { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + var i = 0, lastMatch = colon + 1; + for (; i < 3; i++) { + var comma = line.indexOf(",", lastMatch); + if (comma == -1) + break; + tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); + lastMatch = comma + 1; + } + tuple[i] = line.substring(lastMatch).trim(); + return i + 1; + }; + return TextureAtlasReader; + }()); + var TextureAtlasPage = (function () { + function TextureAtlasPage() { + } + return TextureAtlasPage; + }()); + spine.TextureAtlasPage = TextureAtlasPage; + var TextureAtlasRegion = (function (_super) { + __extends(TextureAtlasRegion, _super); + function TextureAtlasRegion() { + _super.apply(this, arguments); + } + return TextureAtlasRegion; + }(spine.TextureRegion)); + spine.TextureAtlasRegion = TextureAtlasRegion; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraint = (function () { - function TransformConstraint(data, skeleton) { - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.temp = new spine.Vector2(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - this.scaleMix = data.scaleMix; - this.shearMix = data.shearMix; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - TransformConstraint.prototype.apply = function () { - this.update(); - }; - TransformConstraint.prototype.update = function () { - if (this.data.local) { - if (this.data.relative) - this.applyRelativeLocal(); - else - this.applyAbsoluteLocal(); - } - else { - if (this.data.relative) - this.applyRelativeWorld(); - else - this.applyAbsoluteWorld(); - } - }; - TransformConstraint.prototype.applyAbsoluteWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect; - var offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += (temp.x - bone.worldX) * translateMix; - bone.worldY += (temp.y - bone.worldY) * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); - var ts = Math.sqrt(ta * ta + tc * tc); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; - bone.a *= s; - bone.c *= s; - s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); - ts = Math.sqrt(tb * tb + td * td); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var b = bone.b, d = bone.d; - var by = Math.atan2(d, b); - var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r = by + (r + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyRelativeWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += temp.x * translateMix; - bone.worldY += temp.y * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; - bone.a *= s; - bone.c *= s; - s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var r = Math.atan2(td, tb) - Math.atan2(tc, ta); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - var b = bone.b, d = bone.d; - r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyAbsoluteLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) { - var r = target.arotation - rotation + this.data.offsetRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - rotation += r * rotateMix; - } - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax - x + this.data.offsetX) * translateMix; - y += (target.ay - y + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; - if (scaleY > 0.00001) - scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; - } - var shearY = bone.ashearY; - if (shearMix > 0) { - var r = target.ashearY - shearY + this.data.offsetShearY; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.shearY += r * shearMix; - } - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.applyRelativeLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) - rotation += (target.arotation + this.data.offsetRotation) * rotateMix; - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax + this.data.offsetX) * translateMix; - y += (target.ay + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; - if (scaleY > 0.00001) - scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; - } - var shearY = bone.ashearY; - if (shearMix > 0) - shearY += (target.ashearY + this.data.offsetShearY) * shearMix; - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.getOrder = function () { - return this.data.order; - }; - return TransformConstraint; - }()); - spine.TransformConstraint = TransformConstraint; + var TransformConstraint = (function () { + function TransformConstraint(data, skeleton) { + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.temp = new spine.Vector2(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + this.scaleMix = data.scaleMix; + this.shearMix = data.shearMix; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + TransformConstraint.prototype.apply = function () { + this.update(); + }; + TransformConstraint.prototype.update = function () { + if (this.data.local) { + if (this.data.relative) + this.applyRelativeLocal(); + else + this.applyAbsoluteLocal(); + } + else { + if (this.data.relative) + this.applyRelativeWorld(); + else + this.applyAbsoluteWorld(); + } + }; + TransformConstraint.prototype.applyAbsoluteWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect; + var offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += (temp.x - bone.worldX) * translateMix; + bone.worldY += (temp.y - bone.worldY) * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var ts = Math.sqrt(ta * ta + tc * tc); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; + bone.a *= s; + bone.c *= s; + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + ts = Math.sqrt(tb * tb + td * td); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var b = bone.b, d = bone.d; + var by = Math.atan2(d, b); + var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r = by + (r + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyRelativeWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += temp.x * translateMix; + bone.worldY += temp.y * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; + bone.a *= s; + bone.c *= s; + s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var r = Math.atan2(td, tb) - Math.atan2(tc, ta); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + var b = bone.b, d = bone.d; + r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyAbsoluteLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) { + var r = target.arotation - rotation + this.data.offsetRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + rotation += r * rotateMix; + } + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax - x + this.data.offsetX) * translateMix; + y += (target.ay - y + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; + if (scaleY > 0.00001) + scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; + } + var shearY = bone.ashearY; + if (shearMix > 0) { + var r = target.ashearY - shearY + this.data.offsetShearY; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.shearY += r * shearMix; + } + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.applyRelativeLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) + rotation += (target.arotation + this.data.offsetRotation) * rotateMix; + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax + this.data.offsetX) * translateMix; + y += (target.ay + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; + if (scaleY > 0.00001) + scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; + } + var shearY = bone.ashearY; + if (shearMix > 0) + shearY += (target.ashearY + this.data.offsetShearY) * shearMix; + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.getOrder = function () { + return this.data.order; + }; + return TransformConstraint; + }()); + spine.TransformConstraint = TransformConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraintData = (function () { - function TransformConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.offsetRotation = 0; - this.offsetX = 0; - this.offsetY = 0; - this.offsetScaleX = 0; - this.offsetScaleY = 0; - this.offsetShearY = 0; - this.relative = false; - this.local = false; - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return TransformConstraintData; - }()); - spine.TransformConstraintData = TransformConstraintData; + var TransformConstraintData = (function () { + function TransformConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.offsetRotation = 0; + this.offsetX = 0; + this.offsetY = 0; + this.offsetScaleX = 0; + this.offsetScaleY = 0; + this.offsetShearY = 0; + this.relative = false; + this.local = false; + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return TransformConstraintData; + }()); + spine.TransformConstraintData = TransformConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var Triangulator = (function () { - function Triangulator() { - this.convexPolygons = new Array(); - this.convexPolygonsIndices = new Array(); - this.indicesArray = new Array(); - this.isConcaveArray = new Array(); - this.triangles = new Array(); - this.polygonPool = new spine.Pool(function () { - return new Array(); - }); - this.polygonIndicesPool = new spine.Pool(function () { - return new Array(); - }); - } - Triangulator.prototype.triangulate = function (verticesArray) { - var vertices = verticesArray; - var vertexCount = verticesArray.length >> 1; - var indices = this.indicesArray; - indices.length = 0; - for (var i = 0; i < vertexCount; i++) - indices[i] = i; - var isConcave = this.isConcaveArray; - isConcave.length = 0; - for (var i = 0, n = vertexCount; i < n; ++i) - isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); - var triangles = this.triangles; - triangles.length = 0; - while (vertexCount > 3) { - var previous = vertexCount - 1, i = 0, next = 1; - while (true) { - outer: if (!isConcave[i]) { - var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; - var p1x = vertices[p1], p1y = vertices[p1 + 1]; - var p2x = vertices[p2], p2y = vertices[p2 + 1]; - var p3x = vertices[p3], p3y = vertices[p3 + 1]; - for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { - if (!isConcave[ii]) - continue; - var v = indices[ii] << 1; - var vx = vertices[v], vy = vertices[v + 1]; - if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { - if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { - if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) - break outer; - } - } - } - break; - } - if (next == 0) { - do { - if (!isConcave[i]) - break; - i--; - } while (i > 0); - break; - } - previous = i; - i = next; - next = (next + 1) % vertexCount; - } - triangles.push(indices[(vertexCount + i - 1) % vertexCount]); - triangles.push(indices[i]); - triangles.push(indices[(i + 1) % vertexCount]); - indices.splice(i, 1); - isConcave.splice(i, 1); - vertexCount--; - var previousIndex = (vertexCount + i - 1) % vertexCount; - var nextIndex = i == vertexCount ? 0 : i; - isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); - isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); - } - if (vertexCount == 3) { - triangles.push(indices[2]); - triangles.push(indices[0]); - triangles.push(indices[1]); - } - return triangles; - }; - Triangulator.prototype.decompose = function (verticesArray, triangles) { - var vertices = verticesArray; - var convexPolygons = this.convexPolygons; - this.polygonPool.freeAll(convexPolygons); - convexPolygons.length = 0; - var convexPolygonsIndices = this.convexPolygonsIndices; - this.polygonIndicesPool.freeAll(convexPolygonsIndices); - convexPolygonsIndices.length = 0; - var polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - var polygon = this.polygonPool.obtain(); - polygon.length = 0; - var fanBaseIndex = -1, lastWinding = 0; - for (var i = 0, n = triangles.length; i < n; i += 3) { - var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; - var x1 = vertices[t1], y1 = vertices[t1 + 1]; - var x2 = vertices[t2], y2 = vertices[t2 + 1]; - var x3 = vertices[t3], y3 = vertices[t3 + 1]; - var merged = false; - if (fanBaseIndex == t1) { - var o = polygon.length - 4; - var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); - var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); - if (winding1 == lastWinding && winding2 == lastWinding) { - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(t3); - merged = true; - } - } - if (!merged) { - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - else { - this.polygonPool.free(polygon); - this.polygonIndicesPool.free(polygonIndices); - } - polygon = this.polygonPool.obtain(); - polygon.length = 0; - polygon.push(x1); - polygon.push(y1); - polygon.push(x2); - polygon.push(y2); - polygon.push(x3); - polygon.push(y3); - polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - polygonIndices.push(t1); - polygonIndices.push(t2); - polygonIndices.push(t3); - lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); - fanBaseIndex = t1; - } - } - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - for (var i = 0, n = convexPolygons.length; i < n; i++) { - polygonIndices = convexPolygonsIndices[i]; - if (polygonIndices.length == 0) - continue; - var firstIndex = polygonIndices[0]; - var lastIndex = polygonIndices[polygonIndices.length - 1]; - polygon = convexPolygons[i]; - var o = polygon.length - 4; - var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; - var prevX = polygon[o + 2], prevY = polygon[o + 3]; - var firstX = polygon[0], firstY = polygon[1]; - var secondX = polygon[2], secondY = polygon[3]; - var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); - for (var ii = 0; ii < n; ii++) { - if (ii == i) - continue; - var otherIndices = convexPolygonsIndices[ii]; - if (otherIndices.length != 3) - continue; - var otherFirstIndex = otherIndices[0]; - var otherSecondIndex = otherIndices[1]; - var otherLastIndex = otherIndices[2]; - var otherPoly = convexPolygons[ii]; - var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; - if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) - continue; - var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); - var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); - if (winding1 == winding && winding2 == winding) { - otherPoly.length = 0; - otherIndices.length = 0; - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(otherLastIndex); - prevPrevX = prevX; - prevPrevY = prevY; - prevX = x3; - prevY = y3; - ii = 0; - } - } - } - for (var i = convexPolygons.length - 1; i >= 0; i--) { - polygon = convexPolygons[i]; - if (polygon.length == 0) { - convexPolygons.splice(i, 1); - this.polygonPool.free(polygon); - polygonIndices = convexPolygonsIndices[i]; - convexPolygonsIndices.splice(i, 1); - this.polygonIndicesPool.free(polygonIndices); - } - } - return convexPolygons; - }; - Triangulator.isConcave = function (index, vertexCount, vertices, indices) { - var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; - var current = indices[index] << 1; - var next = indices[(index + 1) % vertexCount] << 1; - return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); - }; - Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { - return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; - }; - Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { - var px = p2x - p1x, py = p2y - p1y; - return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; - }; - return Triangulator; - }()); - spine.Triangulator = Triangulator; + var Triangulator = (function () { + function Triangulator() { + this.convexPolygons = new Array(); + this.convexPolygonsIndices = new Array(); + this.indicesArray = new Array(); + this.isConcaveArray = new Array(); + this.triangles = new Array(); + this.polygonPool = new spine.Pool(function () { + return new Array(); + }); + this.polygonIndicesPool = new spine.Pool(function () { + return new Array(); + }); + } + Triangulator.prototype.triangulate = function (verticesArray) { + var vertices = verticesArray; + var vertexCount = verticesArray.length >> 1; + var indices = this.indicesArray; + indices.length = 0; + for (var i = 0; i < vertexCount; i++) + indices[i] = i; + var isConcave = this.isConcaveArray; + isConcave.length = 0; + for (var i = 0, n = vertexCount; i < n; ++i) + isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); + var triangles = this.triangles; + triangles.length = 0; + while (vertexCount > 3) { + var previous = vertexCount - 1, i = 0, next = 1; + while (true) { + outer: if (!isConcave[i]) { + var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; + var p1x = vertices[p1], p1y = vertices[p1 + 1]; + var p2x = vertices[p2], p2y = vertices[p2 + 1]; + var p3x = vertices[p3], p3y = vertices[p3 + 1]; + for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { + if (!isConcave[ii]) + continue; + var v = indices[ii] << 1; + var vx = vertices[v], vy = vertices[v + 1]; + if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { + if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { + if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) + break outer; + } + } + } + break; + } + if (next == 0) { + do { + if (!isConcave[i]) + break; + i--; + } while (i > 0); + break; + } + previous = i; + i = next; + next = (next + 1) % vertexCount; + } + triangles.push(indices[(vertexCount + i - 1) % vertexCount]); + triangles.push(indices[i]); + triangles.push(indices[(i + 1) % vertexCount]); + indices.splice(i, 1); + isConcave.splice(i, 1); + vertexCount--; + var previousIndex = (vertexCount + i - 1) % vertexCount; + var nextIndex = i == vertexCount ? 0 : i; + isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); + isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); + } + if (vertexCount == 3) { + triangles.push(indices[2]); + triangles.push(indices[0]); + triangles.push(indices[1]); + } + return triangles; + }; + Triangulator.prototype.decompose = function (verticesArray, triangles) { + var vertices = verticesArray; + var convexPolygons = this.convexPolygons; + this.polygonPool.freeAll(convexPolygons); + convexPolygons.length = 0; + var convexPolygonsIndices = this.convexPolygonsIndices; + this.polygonIndicesPool.freeAll(convexPolygonsIndices); + convexPolygonsIndices.length = 0; + var polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + var polygon = this.polygonPool.obtain(); + polygon.length = 0; + var fanBaseIndex = -1, lastWinding = 0; + for (var i = 0, n = triangles.length; i < n; i += 3) { + var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; + var x1 = vertices[t1], y1 = vertices[t1 + 1]; + var x2 = vertices[t2], y2 = vertices[t2 + 1]; + var x3 = vertices[t3], y3 = vertices[t3 + 1]; + var merged = false; + if (fanBaseIndex == t1) { + var o = polygon.length - 4; + var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); + var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); + if (winding1 == lastWinding && winding2 == lastWinding) { + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(t3); + merged = true; + } + } + if (!merged) { + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + else { + this.polygonPool.free(polygon); + this.polygonIndicesPool.free(polygonIndices); + } + polygon = this.polygonPool.obtain(); + polygon.length = 0; + polygon.push(x1); + polygon.push(y1); + polygon.push(x2); + polygon.push(y2); + polygon.push(x3); + polygon.push(y3); + polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + polygonIndices.push(t1); + polygonIndices.push(t2); + polygonIndices.push(t3); + lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); + fanBaseIndex = t1; + } + } + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + for (var i = 0, n = convexPolygons.length; i < n; i++) { + polygonIndices = convexPolygonsIndices[i]; + if (polygonIndices.length == 0) + continue; + var firstIndex = polygonIndices[0]; + var lastIndex = polygonIndices[polygonIndices.length - 1]; + polygon = convexPolygons[i]; + var o = polygon.length - 4; + var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; + var prevX = polygon[o + 2], prevY = polygon[o + 3]; + var firstX = polygon[0], firstY = polygon[1]; + var secondX = polygon[2], secondY = polygon[3]; + var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); + for (var ii = 0; ii < n; ii++) { + if (ii == i) + continue; + var otherIndices = convexPolygonsIndices[ii]; + if (otherIndices.length != 3) + continue; + var otherFirstIndex = otherIndices[0]; + var otherSecondIndex = otherIndices[1]; + var otherLastIndex = otherIndices[2]; + var otherPoly = convexPolygons[ii]; + var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; + if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) + continue; + var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); + var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); + if (winding1 == winding && winding2 == winding) { + otherPoly.length = 0; + otherIndices.length = 0; + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(otherLastIndex); + prevPrevX = prevX; + prevPrevY = prevY; + prevX = x3; + prevY = y3; + ii = 0; + } + } + } + for (var i = convexPolygons.length - 1; i >= 0; i--) { + polygon = convexPolygons[i]; + if (polygon.length == 0) { + convexPolygons.splice(i, 1); + this.polygonPool.free(polygon); + polygonIndices = convexPolygonsIndices[i]; + convexPolygonsIndices.splice(i, 1); + this.polygonIndicesPool.free(polygonIndices); + } + } + return convexPolygons; + }; + Triangulator.isConcave = function (index, vertexCount, vertices, indices) { + var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; + var current = indices[index] << 1; + var next = indices[(index + 1) % vertexCount] << 1; + return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); + }; + Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { + return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; + }; + Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { + var px = p2x - p1x, py = p2y - p1y; + return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; + }; + return Triangulator; + }()); + spine.Triangulator = Triangulator; })(spine || (spine = {})); var spine; (function (spine) { - var IntSet = (function () { - function IntSet() { - this.array = new Array(); - } - IntSet.prototype.add = function (value) { - var contains = this.contains(value); - this.array[value | 0] = value | 0; - return !contains; - }; - IntSet.prototype.contains = function (value) { - return this.array[value | 0] != undefined; - }; - IntSet.prototype.remove = function (value) { - this.array[value | 0] = undefined; - }; - IntSet.prototype.clear = function () { - this.array.length = 0; - }; - return IntSet; - }()); - spine.IntSet = IntSet; - var Color = (function () { - function Color(r, g, b, a) { - if (r === void 0) { r = 0; } - if (g === void 0) { g = 0; } - if (b === void 0) { b = 0; } - if (a === void 0) { a = 0; } - this.r = r; - this.g = g; - this.b = b; - this.a = a; - } - Color.prototype.set = function (r, g, b, a) { - this.r = r; - this.g = g; - this.b = b; - this.a = a; - this.clamp(); - return this; - }; - Color.prototype.setFromColor = function (c) { - this.r = c.r; - this.g = c.g; - this.b = c.b; - this.a = c.a; - return this; - }; - Color.prototype.setFromString = function (hex) { - hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; - this.r = parseInt(hex.substr(0, 2), 16) / 255.0; - this.g = parseInt(hex.substr(2, 2), 16) / 255.0; - this.b = parseInt(hex.substr(4, 2), 16) / 255.0; - this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; - return this; - }; - Color.prototype.add = function (r, g, b, a) { - this.r += r; - this.g += g; - this.b += b; - this.a += a; - this.clamp(); - return this; - }; - Color.prototype.clamp = function () { - if (this.r < 0) - this.r = 0; - else if (this.r > 1) - this.r = 1; - if (this.g < 0) - this.g = 0; - else if (this.g > 1) - this.g = 1; - if (this.b < 0) - this.b = 0; - else if (this.b > 1) - this.b = 1; - if (this.a < 0) - this.a = 0; - else if (this.a > 1) - this.a = 1; - return this; - }; - Color.WHITE = new Color(1, 1, 1, 1); - Color.RED = new Color(1, 0, 0, 1); - Color.GREEN = new Color(0, 1, 0, 1); - Color.BLUE = new Color(0, 0, 1, 1); - Color.MAGENTA = new Color(1, 0, 1, 1); - return Color; - }()); - spine.Color = Color; - var MathUtils = (function () { - function MathUtils() { - } - MathUtils.clamp = function (value, min, max) { - if (value < min) - return min; - if (value > max) - return max; - return value; - }; - MathUtils.cosDeg = function (degrees) { - return Math.cos(degrees * MathUtils.degRad); - }; - MathUtils.sinDeg = function (degrees) { - return Math.sin(degrees * MathUtils.degRad); - }; - MathUtils.signum = function (value) { - return value > 0 ? 1 : value < 0 ? -1 : 0; - }; - MathUtils.toInt = function (x) { - return x > 0 ? Math.floor(x) : Math.ceil(x); - }; - MathUtils.cbrt = function (x) { - var y = Math.pow(Math.abs(x), 1 / 3); - return x < 0 ? -y : y; - }; - MathUtils.PI = 3.1415927; - MathUtils.PI2 = MathUtils.PI * 2; - MathUtils.radiansToDegrees = 180 / MathUtils.PI; - MathUtils.radDeg = MathUtils.radiansToDegrees; - MathUtils.degreesToRadians = MathUtils.PI / 180; - MathUtils.degRad = MathUtils.degreesToRadians; - return MathUtils; - }()); - spine.MathUtils = MathUtils; - var Utils = (function () { - function Utils() { - } - Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { - for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { - dest[j] = source[i]; - } - }; - Utils.setArraySize = function (array, size, value) { - if (value === void 0) { value = 0; } - var oldSize = array.length; - if (oldSize == size) - return array; - array.length = size; - if (oldSize < size) { - for (var i = oldSize; i < size; i++) - array[i] = value; - } - return array; - }; - Utils.ensureArrayCapacity = function (array, size, value) { - if (value === void 0) { value = 0; } - if (array.length >= size) - return array; - return Utils.setArraySize(array, size, value); - }; - Utils.newArray = function (size, defaultValue) { - var array = new Array(size); - for (var i = 0; i < size; i++) - array[i] = defaultValue; - return array; - }; - Utils.newFloatArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Float32Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.newShortArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Int16Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.toFloatArray = function (array) { - return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; - }; - Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; - return Utils; - }()); - spine.Utils = Utils; - var DebugUtils = (function () { - function DebugUtils() { - } - DebugUtils.logBones = function (skeleton) { - for (var i = 0; i < skeleton.bones.length; i++) { - var bone = skeleton.bones[i]; - console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); - } - }; - return DebugUtils; - }()); - spine.DebugUtils = DebugUtils; - var Pool = (function () { - function Pool(instantiator) { - this.items = new Array(); - this.instantiator = instantiator; - } - Pool.prototype.obtain = function () { - return this.items.length > 0 ? this.items.pop() : this.instantiator(); - }; - Pool.prototype.free = function (item) { - if (item.reset) - item.reset(); - this.items.push(item); - }; - Pool.prototype.freeAll = function (items) { - for (var i = 0; i < items.length; i++) { - if (items[i].reset) - items[i].reset(); - this.items[i] = items[i]; - } - }; - Pool.prototype.clear = function () { - this.items.length = 0; - }; - return Pool; - }()); - spine.Pool = Pool; - var Vector2 = (function () { - function Vector2(x, y) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - this.x = x; - this.y = y; - } - Vector2.prototype.set = function (x, y) { - this.x = x; - this.y = y; - return this; - }; - Vector2.prototype.length = function () { - var x = this.x; - var y = this.y; - return Math.sqrt(x * x + y * y); - }; - Vector2.prototype.normalize = function () { - var len = this.length(); - if (len != 0) { - this.x /= len; - this.y /= len; - } - return this; - }; - return Vector2; - }()); - spine.Vector2 = Vector2; - var TimeKeeper = (function () { - function TimeKeeper() { - this.maxDelta = 0.064; - this.framesPerSecond = 0; - this.delta = 0; - this.totalTime = 0; - this.lastTime = Date.now() / 1000; - this.frameCount = 0; - this.frameTime = 0; - } - TimeKeeper.prototype.update = function () { - var now = Date.now() / 1000; - this.delta = now - this.lastTime; - this.frameTime += this.delta; - this.totalTime += this.delta; - if (this.delta > this.maxDelta) - this.delta = this.maxDelta; - this.lastTime = now; - this.frameCount++; - if (this.frameTime > 1) { - this.framesPerSecond = this.frameCount / this.frameTime; - this.frameTime = 0; - this.frameCount = 0; - } - }; - return TimeKeeper; - }()); - spine.TimeKeeper = TimeKeeper; - var WindowedMean = (function () { - function WindowedMean(windowSize) { - if (windowSize === void 0) { windowSize = 32; } - this.addedValues = 0; - this.lastValue = 0; - this.mean = 0; - this.dirty = true; - this.values = new Array(windowSize); - } - WindowedMean.prototype.hasEnoughData = function () { - return this.addedValues >= this.values.length; - }; - WindowedMean.prototype.addValue = function (value) { - if (this.addedValues < this.values.length) - this.addedValues++; - this.values[this.lastValue++] = value; - if (this.lastValue > this.values.length - 1) - this.lastValue = 0; - this.dirty = true; - }; - WindowedMean.prototype.getMean = function () { - if (this.hasEnoughData()) { - if (this.dirty) { - var mean = 0; - for (var i = 0; i < this.values.length; i++) { - mean += this.values[i]; - } - this.mean = mean / this.values.length; - this.dirty = false; - } - return this.mean; - } - else { - return 0; - } - }; - return WindowedMean; - }()); - spine.WindowedMean = WindowedMean; + var IntSet = (function () { + function IntSet() { + this.array = new Array(); + } + IntSet.prototype.add = function (value) { + var contains = this.contains(value); + this.array[value | 0] = value | 0; + return !contains; + }; + IntSet.prototype.contains = function (value) { + return this.array[value | 0] != undefined; + }; + IntSet.prototype.remove = function (value) { + this.array[value | 0] = undefined; + }; + IntSet.prototype.clear = function () { + this.array.length = 0; + }; + return IntSet; + }()); + spine.IntSet = IntSet; + var Color = (function () { + function Color(r, g, b, a) { + if (r === void 0) { r = 0; } + if (g === void 0) { g = 0; } + if (b === void 0) { b = 0; } + if (a === void 0) { a = 0; } + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + Color.prototype.set = function (r, g, b, a) { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + this.clamp(); + return this; + }; + Color.prototype.setFromColor = function (c) { + this.r = c.r; + this.g = c.g; + this.b = c.b; + this.a = c.a; + return this; + }; + Color.prototype.setFromString = function (hex) { + hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; + this.r = parseInt(hex.substr(0, 2), 16) / 255.0; + this.g = parseInt(hex.substr(2, 2), 16) / 255.0; + this.b = parseInt(hex.substr(4, 2), 16) / 255.0; + this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; + return this; + }; + Color.prototype.add = function (r, g, b, a) { + this.r += r; + this.g += g; + this.b += b; + this.a += a; + this.clamp(); + return this; + }; + Color.prototype.clamp = function () { + if (this.r < 0) + this.r = 0; + else if (this.r > 1) + this.r = 1; + if (this.g < 0) + this.g = 0; + else if (this.g > 1) + this.g = 1; + if (this.b < 0) + this.b = 0; + else if (this.b > 1) + this.b = 1; + if (this.a < 0) + this.a = 0; + else if (this.a > 1) + this.a = 1; + return this; + }; + Color.WHITE = new Color(1, 1, 1, 1); + Color.RED = new Color(1, 0, 0, 1); + Color.GREEN = new Color(0, 1, 0, 1); + Color.BLUE = new Color(0, 0, 1, 1); + Color.MAGENTA = new Color(1, 0, 1, 1); + return Color; + }()); + spine.Color = Color; + var MathUtils = (function () { + function MathUtils() { + } + MathUtils.clamp = function (value, min, max) { + if (value < min) + return min; + if (value > max) + return max; + return value; + }; + MathUtils.cosDeg = function (degrees) { + return Math.cos(degrees * MathUtils.degRad); + }; + MathUtils.sinDeg = function (degrees) { + return Math.sin(degrees * MathUtils.degRad); + }; + MathUtils.signum = function (value) { + return value > 0 ? 1 : value < 0 ? -1 : 0; + }; + MathUtils.toInt = function (x) { + return x > 0 ? Math.floor(x) : Math.ceil(x); + }; + MathUtils.cbrt = function (x) { + var y = Math.pow(Math.abs(x), 1 / 3); + return x < 0 ? -y : y; + }; + MathUtils.PI = 3.1415927; + MathUtils.PI2 = MathUtils.PI * 2; + MathUtils.radiansToDegrees = 180 / MathUtils.PI; + MathUtils.radDeg = MathUtils.radiansToDegrees; + MathUtils.degreesToRadians = MathUtils.PI / 180; + MathUtils.degRad = MathUtils.degreesToRadians; + return MathUtils; + }()); + spine.MathUtils = MathUtils; + var Utils = (function () { + function Utils() { + } + Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { + for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { + dest[j] = source[i]; + } + }; + Utils.setArraySize = function (array, size, value) { + if (value === void 0) { value = 0; } + var oldSize = array.length; + if (oldSize == size) + return array; + array.length = size; + if (oldSize < size) { + for (var i = oldSize; i < size; i++) + array[i] = value; + } + return array; + }; + Utils.ensureArrayCapacity = function (array, size, value) { + if (value === void 0) { value = 0; } + if (array.length >= size) + return array; + return Utils.setArraySize(array, size, value); + }; + Utils.newArray = function (size, defaultValue) { + var array = new Array(size); + for (var i = 0; i < size; i++) + array[i] = defaultValue; + return array; + }; + Utils.newFloatArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Float32Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.newShortArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Int16Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.toFloatArray = function (array) { + return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; + }; + Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; + return Utils; + }()); + spine.Utils = Utils; + var DebugUtils = (function () { + function DebugUtils() { + } + DebugUtils.logBones = function (skeleton) { + for (var i = 0; i < skeleton.bones.length; i++) { + var bone = skeleton.bones[i]; + console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); + } + }; + return DebugUtils; + }()); + spine.DebugUtils = DebugUtils; + var Pool = (function () { + function Pool(instantiator) { + this.items = new Array(); + this.instantiator = instantiator; + } + Pool.prototype.obtain = function () { + return this.items.length > 0 ? this.items.pop() : this.instantiator(); + }; + Pool.prototype.free = function (item) { + if (item.reset) + item.reset(); + this.items.push(item); + }; + Pool.prototype.freeAll = function (items) { + for (var i = 0; i < items.length; i++) { + if (items[i].reset) + items[i].reset(); + this.items[i] = items[i]; + } + }; + Pool.prototype.clear = function () { + this.items.length = 0; + }; + return Pool; + }()); + spine.Pool = Pool; + var Vector2 = (function () { + function Vector2(x, y) { + if (x === void 0) { x = 0; } + if (y === void 0) { y = 0; } + this.x = x; + this.y = y; + } + Vector2.prototype.set = function (x, y) { + this.x = x; + this.y = y; + return this; + }; + Vector2.prototype.length = function () { + var x = this.x; + var y = this.y; + return Math.sqrt(x * x + y * y); + }; + Vector2.prototype.normalize = function () { + var len = this.length(); + if (len != 0) { + this.x /= len; + this.y /= len; + } + return this; + }; + return Vector2; + }()); + spine.Vector2 = Vector2; + var TimeKeeper = (function () { + function TimeKeeper() { + this.maxDelta = 0.064; + this.framesPerSecond = 0; + this.delta = 0; + this.totalTime = 0; + this.lastTime = Date.now() / 1000; + this.frameCount = 0; + this.frameTime = 0; + } + TimeKeeper.prototype.update = function () { + var now = Date.now() / 1000; + this.delta = now - this.lastTime; + this.frameTime += this.delta; + this.totalTime += this.delta; + if (this.delta > this.maxDelta) + this.delta = this.maxDelta; + this.lastTime = now; + this.frameCount++; + if (this.frameTime > 1) { + this.framesPerSecond = this.frameCount / this.frameTime; + this.frameTime = 0; + this.frameCount = 0; + } + }; + return TimeKeeper; + }()); + spine.TimeKeeper = TimeKeeper; + var WindowedMean = (function () { + function WindowedMean(windowSize) { + if (windowSize === void 0) { windowSize = 32; } + this.addedValues = 0; + this.lastValue = 0; + this.mean = 0; + this.dirty = true; + this.values = new Array(windowSize); + } + WindowedMean.prototype.hasEnoughData = function () { + return this.addedValues >= this.values.length; + }; + WindowedMean.prototype.addValue = function (value) { + if (this.addedValues < this.values.length) + this.addedValues++; + this.values[this.lastValue++] = value; + if (this.lastValue > this.values.length - 1) + this.lastValue = 0; + this.dirty = true; + }; + WindowedMean.prototype.getMean = function () { + if (this.hasEnoughData()) { + if (this.dirty) { + var mean = 0; + for (var i = 0; i < this.values.length; i++) { + mean += this.values[i]; + } + this.mean = mean / this.values.length; + this.dirty = false; + } + return this.mean; + } + else { + return 0; + } + }; + return WindowedMean; + }()); + spine.WindowedMean = WindowedMean; })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var AssetManager = (function (_super) { - __extends(AssetManager, _super); - function AssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - _super.call(this, function (image) { - return new threejs.ThreeJsTexture(image); - }, pathPrefix); - } - return AssetManager; - }(spine.AssetManager)); - threejs.AssetManager = AssetManager; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var AssetManager = (function (_super) { + __extends(AssetManager, _super); + function AssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + _super.call(this, function (image) { + return new threejs.ThreeJsTexture(image); + }, pathPrefix); + } + return AssetManager; + }(spine.AssetManager)); + threejs.AssetManager = AssetManager; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var MeshBatcher = (function () { - function MeshBatcher(mesh, maxVertices) { - if (maxVertices === void 0) { maxVertices = 10920; } - this.verticesLength = 0; - this.indicesLength = 0; - if (maxVertices > 10920) - throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); - var vertices = this.vertices = new Float32Array(maxVertices * MeshBatcher.VERTEX_SIZE); - var indices = this.indices = new Uint16Array(maxVertices * 3); - this.mesh = mesh; - var geo = new THREE.BufferGeometry(); - var vertexBuffer = this.vertexBuffer = new THREE.InterleavedBuffer(vertices, MeshBatcher.VERTEX_SIZE); - vertexBuffer.dynamic = true; - geo.addAttribute("position", new THREE.InterleavedBufferAttribute(vertexBuffer, 3, 0, false)); - geo.addAttribute("color", new THREE.InterleavedBufferAttribute(vertexBuffer, 4, 3, false)); - geo.addAttribute("uv", new THREE.InterleavedBufferAttribute(vertexBuffer, 2, 7, false)); - geo.setIndex(new THREE.BufferAttribute(indices, 1)); - geo.getIndex().dynamic = true; - geo.drawRange.start = 0; - geo.drawRange.count = 0; - mesh.geometry = geo; - } - MeshBatcher.prototype.begin = function () { - this.verticesLength = 0; - this.indicesLength = 0; - }; - MeshBatcher.prototype.batch = function (vertices, verticesLength, indices, indicesLength, z) { - if (z === void 0) { z = 0; } - var indexStart = this.verticesLength / MeshBatcher.VERTEX_SIZE; - var vertexBuffer = this.vertices; - var i = this.verticesLength; - var j = 0; - for (; j < verticesLength;) { - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = z; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - } - this.verticesLength = i; - var indicesArray = this.indices; - for (i = this.indicesLength, j = 0; j < indicesLength; i++, j++) - indicesArray[i] = indices[j] + indexStart; - this.indicesLength += indicesLength; - }; - MeshBatcher.prototype.end = function () { - this.vertexBuffer.needsUpdate = true; - this.vertexBuffer.updateRange.offset = 0; - this.vertexBuffer.updateRange.count = this.verticesLength; - var geo = this.mesh.geometry; - geo.getIndex().needsUpdate = true; - geo.getIndex().updateRange.offset = 0; - geo.getIndex().updateRange.count = this.indicesLength; - geo.drawRange.start = 0; - geo.drawRange.count = this.indicesLength; - }; - MeshBatcher.VERTEX_SIZE = 9; - return MeshBatcher; - }()); - threejs.MeshBatcher = MeshBatcher; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var MeshBatcher = (function () { + function MeshBatcher(mesh, maxVertices) { + if (maxVertices === void 0) { maxVertices = 10920; } + this.verticesLength = 0; + this.indicesLength = 0; + if (maxVertices > 10920) + throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); + var vertices = this.vertices = new Float32Array(maxVertices * MeshBatcher.VERTEX_SIZE); + var indices = this.indices = new Uint16Array(maxVertices * 3); + this.mesh = mesh; + var geo = new THREE.BufferGeometry(); + var vertexBuffer = this.vertexBuffer = new THREE.InterleavedBuffer(vertices, MeshBatcher.VERTEX_SIZE); + vertexBuffer.dynamic = true; + geo.addAttribute("position", new THREE.InterleavedBufferAttribute(vertexBuffer, 3, 0, false)); + geo.addAttribute("color", new THREE.InterleavedBufferAttribute(vertexBuffer, 4, 3, false)); + geo.addAttribute("uv", new THREE.InterleavedBufferAttribute(vertexBuffer, 2, 7, false)); + geo.setIndex(new THREE.BufferAttribute(indices, 1)); + geo.getIndex().dynamic = true; + geo.drawRange.start = 0; + geo.drawRange.count = 0; + mesh.geometry = geo; + } + MeshBatcher.prototype.begin = function () { + this.verticesLength = 0; + this.indicesLength = 0; + }; + MeshBatcher.prototype.batch = function (vertices, verticesLength, indices, indicesLength, z) { + if (z === void 0) { z = 0; } + var indexStart = this.verticesLength / MeshBatcher.VERTEX_SIZE; + var vertexBuffer = this.vertices; + var i = this.verticesLength; + var j = 0; + for (; j < verticesLength;) { + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = z; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + } + this.verticesLength = i; + var indicesArray = this.indices; + for (i = this.indicesLength, j = 0; j < indicesLength; i++, j++) + indicesArray[i] = indices[j] + indexStart; + this.indicesLength += indicesLength; + }; + MeshBatcher.prototype.end = function () { + this.vertexBuffer.needsUpdate = true; + this.vertexBuffer.updateRange.offset = 0; + this.vertexBuffer.updateRange.count = this.verticesLength; + var geo = this.mesh.geometry; + geo.getIndex().needsUpdate = true; + geo.getIndex().updateRange.offset = 0; + geo.getIndex().updateRange.count = this.indicesLength; + geo.drawRange.start = 0; + geo.drawRange.count = this.indicesLength; + }; + MeshBatcher.VERTEX_SIZE = 9; + return MeshBatcher; + }()); + threejs.MeshBatcher = MeshBatcher; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var SkeletonMesh = (function (_super) { - __extends(SkeletonMesh, _super); - function SkeletonMesh(skeletonData) { - _super.call(this); - this.zOffset = 0.1; - this.clipper = new spine.SkeletonClipping(); - this.vertices = spine.Utils.newFloatArray(1024); - this.tempColor = new spine.Color(); - this.skeleton = new spine.Skeleton(skeletonData); - var animData = new spine.AnimationStateData(skeletonData); - this.state = new spine.AnimationState(animData); - var material = this.material = new THREE.MeshBasicMaterial(); - material.side = THREE.DoubleSide; - material.transparent = true; - material.alphaTest = 0.5; - this.batcher = new threejs.MeshBatcher(this); - } - SkeletonMesh.prototype.update = function (deltaTime) { - var state = this.state; - var skeleton = this.skeleton; - state.update(deltaTime); - state.apply(skeleton); - skeleton.updateWorldTransform(); - this.updateGeometry(); - }; - SkeletonMesh.prototype.updateGeometry = function () { - var geometry = this.geometry; - var numVertices = 0; - var verticesLength = 0; - var indicesLength = 0; - var blendMode = null; - var clipper = this.clipper; - var vertices = this.vertices; - var triangles = null; - var uvs = null; - var drawOrder = this.skeleton.drawOrder; - var batcher = this.batcher; - batcher.begin(); - var z = 0; - var zOffset = this.zOffset; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var vertexSize = clipper.isClipping() ? 2 : SkeletonMesh.VERTEX_SIZE; - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var attachmentColor = null; - var texture = null; - var numFloats = 0; - if (attachment instanceof spine.RegionAttachment) { - var region = attachment; - attachmentColor = region.color; - vertices = this.vertices; - numFloats = vertexSize * 4; - region.computeWorldVertices(slot.bone, vertices, 0, vertexSize); - triangles = SkeletonMesh.QUAD_TRIANGLES; - uvs = region.uvs; - texture = region.region.renderObject.texture; - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - attachmentColor = mesh.color; - vertices = this.vertices; - numFloats = (mesh.worldVerticesLength >> 1) * vertexSize; - if (numFloats > vertices.length) { - vertices = this.vertices = spine.Utils.newFloatArray(numFloats); - } - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, vertexSize); - triangles = mesh.triangles; - uvs = mesh.uvs; - texture = mesh.region.renderObject.texture; - } - else if (attachment instanceof spine.ClippingAttachment) { - var clip = (attachment); - clipper.clipStart(slot, clip); - continue; - } - else - continue; - if (texture != null) { - if (!this.material.map) { - var mat = this.material; - mat.map = texture.texture; - mat.needsUpdate = true; - } - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var alpha = skeletonColor.a * slotColor.a * attachmentColor.a; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * attachmentColor.r, skeletonColor.g * slotColor.g * attachmentColor.g, skeletonColor.b * slotColor.b * attachmentColor.b, alpha); - if (clipper.isClipping()) { - clipper.clipTriangles(vertices, numFloats, triangles, triangles.length, uvs, color, null, false); - var clippedVertices = clipper.clippedVertices; - var clippedTriangles = clipper.clippedTriangles; - batcher.batch(clippedVertices, clippedVertices.length, clippedTriangles, clippedTriangles.length, z); - } - else { - var verts = vertices; - for (var v = 2, u = 0, n_2 = numFloats; v < n_2; v += vertexSize, u += 2) { - verts[v] = color.r; - verts[v + 1] = color.g; - verts[v + 2] = color.b; - verts[v + 3] = color.a; - verts[v + 4] = uvs[u]; - verts[v + 5] = uvs[u + 1]; - } - batcher.batch(vertices, numFloats, triangles, triangles.length, z); - } - z += zOffset; - } - } - batcher.end(); - }; - SkeletonMesh.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - SkeletonMesh.VERTEX_SIZE = 2 + 2 + 4; - return SkeletonMesh; - }(THREE.Mesh)); - threejs.SkeletonMesh = SkeletonMesh; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var SkeletonMesh = (function (_super) { + __extends(SkeletonMesh, _super); + function SkeletonMesh(skeletonData) { + _super.call(this); + this.zOffset = 0.1; + this.clipper = new spine.SkeletonClipping(); + this.vertices = spine.Utils.newFloatArray(1024); + this.tempColor = new spine.Color(); + this.skeleton = new spine.Skeleton(skeletonData); + var animData = new spine.AnimationStateData(skeletonData); + this.state = new spine.AnimationState(animData); + var material = this.material = new THREE.MeshBasicMaterial(); + material.side = THREE.DoubleSide; + material.transparent = true; + material.alphaTest = 0.5; + this.batcher = new threejs.MeshBatcher(this); + } + SkeletonMesh.prototype.update = function (deltaTime) { + var state = this.state; + var skeleton = this.skeleton; + state.update(deltaTime); + state.apply(skeleton); + skeleton.updateWorldTransform(); + this.updateGeometry(); + }; + SkeletonMesh.prototype.updateGeometry = function () { + var geometry = this.geometry; + var numVertices = 0; + var verticesLength = 0; + var indicesLength = 0; + var blendMode = null; + var clipper = this.clipper; + var vertices = this.vertices; + var triangles = null; + var uvs = null; + var drawOrder = this.skeleton.drawOrder; + var batcher = this.batcher; + batcher.begin(); + var z = 0; + var zOffset = this.zOffset; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var vertexSize = clipper.isClipping() ? 2 : SkeletonMesh.VERTEX_SIZE; + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var attachmentColor = null; + var texture = null; + var numFloats = 0; + if (attachment instanceof spine.RegionAttachment) { + var region = attachment; + attachmentColor = region.color; + vertices = this.vertices; + numFloats = vertexSize * 4; + region.computeWorldVertices(slot.bone, vertices, 0, vertexSize); + triangles = SkeletonMesh.QUAD_TRIANGLES; + uvs = region.uvs; + texture = region.region.renderObject.texture; + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + attachmentColor = mesh.color; + vertices = this.vertices; + numFloats = (mesh.worldVerticesLength >> 1) * vertexSize; + if (numFloats > vertices.length) { + vertices = this.vertices = spine.Utils.newFloatArray(numFloats); + } + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, vertexSize); + triangles = mesh.triangles; + uvs = mesh.uvs; + texture = mesh.region.renderObject.texture; + } + else if (attachment instanceof spine.ClippingAttachment) { + var clip = (attachment); + clipper.clipStart(slot, clip); + continue; + } + else + continue; + if (texture != null) { + if (!this.material.map) { + var mat = this.material; + mat.map = texture.texture; + mat.needsUpdate = true; + } + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var alpha = skeletonColor.a * slotColor.a * attachmentColor.a; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * attachmentColor.r, skeletonColor.g * slotColor.g * attachmentColor.g, skeletonColor.b * slotColor.b * attachmentColor.b, alpha); + if (clipper.isClipping()) { + clipper.clipTriangles(vertices, numFloats, triangles, triangles.length, uvs, color, null, false); + var clippedVertices = clipper.clippedVertices; + var clippedTriangles = clipper.clippedTriangles; + batcher.batch(clippedVertices, clippedVertices.length, clippedTriangles, clippedTriangles.length, z); + } + else { + var verts = vertices; + for (var v = 2, u = 0, n_2 = numFloats; v < n_2; v += vertexSize, u += 2) { + verts[v] = color.r; + verts[v + 1] = color.g; + verts[v + 2] = color.b; + verts[v + 3] = color.a; + verts[v + 4] = uvs[u]; + verts[v + 5] = uvs[u + 1]; + } + batcher.batch(vertices, numFloats, triangles, triangles.length, z); + } + z += zOffset; + } + } + batcher.end(); + }; + SkeletonMesh.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + SkeletonMesh.VERTEX_SIZE = 2 + 2 + 4; + return SkeletonMesh; + }(THREE.Mesh)); + threejs.SkeletonMesh = SkeletonMesh; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var ThreeJsTexture = (function (_super) { - __extends(ThreeJsTexture, _super); - function ThreeJsTexture(image) { - _super.call(this, image); - this.texture = new THREE.Texture(image); - this.texture.flipY = false; - this.texture.needsUpdate = true; - } - ThreeJsTexture.prototype.setFilters = function (minFilter, magFilter) { - this.texture.minFilter = ThreeJsTexture.toThreeJsTextureFilter(minFilter); - this.texture.magFilter = ThreeJsTexture.toThreeJsTextureFilter(magFilter); - }; - ThreeJsTexture.prototype.setWraps = function (uWrap, vWrap) { - this.texture.wrapS = ThreeJsTexture.toThreeJsTextureWrap(uWrap); - this.texture.wrapT = ThreeJsTexture.toThreeJsTextureWrap(vWrap); - }; - ThreeJsTexture.prototype.dispose = function () { - this.texture.dispose(); - }; - ThreeJsTexture.toThreeJsTextureFilter = function (filter) { - if (filter === spine.TextureFilter.Linear) - return THREE.LinearFilter; - else if (filter === spine.TextureFilter.MipMap) - return THREE.LinearMipMapLinearFilter; - else if (filter === spine.TextureFilter.MipMapLinearNearest) - return THREE.LinearMipMapNearestFilter; - else if (filter === spine.TextureFilter.MipMapNearestLinear) - return THREE.NearestMipMapLinearFilter; - else if (filter === spine.TextureFilter.MipMapNearestNearest) - return THREE.NearestMipMapNearestFilter; - else if (filter === spine.TextureFilter.Nearest) - return THREE.NearestFilter; - else - throw new Error("Unknown texture filter: " + filter); - }; - ThreeJsTexture.toThreeJsTextureWrap = function (wrap) { - if (wrap === spine.TextureWrap.ClampToEdge) - return THREE.ClampToEdgeWrapping; - else if (wrap === spine.TextureWrap.MirroredRepeat) - return THREE.MirroredRepeatWrapping; - else if (wrap === spine.TextureWrap.Repeat) - return THREE.RepeatWrapping; - else - throw new Error("Unknown texture wrap: " + wrap); - }; - return ThreeJsTexture; - }(spine.Texture)); - threejs.ThreeJsTexture = ThreeJsTexture; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var ThreeJsTexture = (function (_super) { + __extends(ThreeJsTexture, _super); + function ThreeJsTexture(image) { + _super.call(this, image); + this.texture = new THREE.Texture(image); + this.texture.flipY = false; + this.texture.needsUpdate = true; + } + ThreeJsTexture.prototype.setFilters = function (minFilter, magFilter) { + this.texture.minFilter = ThreeJsTexture.toThreeJsTextureFilter(minFilter); + this.texture.magFilter = ThreeJsTexture.toThreeJsTextureFilter(magFilter); + }; + ThreeJsTexture.prototype.setWraps = function (uWrap, vWrap) { + this.texture.wrapS = ThreeJsTexture.toThreeJsTextureWrap(uWrap); + this.texture.wrapT = ThreeJsTexture.toThreeJsTextureWrap(vWrap); + }; + ThreeJsTexture.prototype.dispose = function () { + this.texture.dispose(); + }; + ThreeJsTexture.toThreeJsTextureFilter = function (filter) { + if (filter === spine.TextureFilter.Linear) + return THREE.LinearFilter; + else if (filter === spine.TextureFilter.MipMap) + return THREE.LinearMipMapLinearFilter; + else if (filter === spine.TextureFilter.MipMapLinearNearest) + return THREE.LinearMipMapNearestFilter; + else if (filter === spine.TextureFilter.MipMapNearestLinear) + return THREE.NearestMipMapLinearFilter; + else if (filter === spine.TextureFilter.MipMapNearestNearest) + return THREE.NearestMipMapNearestFilter; + else if (filter === spine.TextureFilter.Nearest) + return THREE.NearestFilter; + else + throw new Error("Unknown texture filter: " + filter); + }; + ThreeJsTexture.toThreeJsTextureWrap = function (wrap) { + if (wrap === spine.TextureWrap.ClampToEdge) + return THREE.ClampToEdgeWrapping; + else if (wrap === spine.TextureWrap.MirroredRepeat) + return THREE.MirroredRepeatWrapping; + else if (wrap === spine.TextureWrap.Repeat) + return THREE.RepeatWrapping; + else + throw new Error("Unknown texture wrap: " + wrap); + }; + return ThreeJsTexture; + }(spine.Texture)); + threejs.ThreeJsTexture = ThreeJsTexture; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var AssetManager = (function (_super) { - __extends(AssetManager, _super); - function AssetManager(context, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - _super.call(this, function (image) { - return new spine.webgl.GLTexture(context, image); - }, pathPrefix); - } - return AssetManager; - }(spine.AssetManager)); - webgl.AssetManager = AssetManager; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var AssetManager = (function (_super) { + __extends(AssetManager, _super); + function AssetManager(context, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + _super.call(this, function (image) { + return new spine.webgl.GLTexture(context, image); + }, pathPrefix); + } + return AssetManager; + }(spine.AssetManager)); + webgl.AssetManager = AssetManager; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var OrthoCamera = (function () { - function OrthoCamera(viewportWidth, viewportHeight) { - this.position = new webgl.Vector3(0, 0, 0); - this.direction = new webgl.Vector3(0, 0, -1); - this.up = new webgl.Vector3(0, 1, 0); - this.near = 0; - this.far = 100; - this.zoom = 1; - this.viewportWidth = 0; - this.viewportHeight = 0; - this.projectionView = new webgl.Matrix4(); - this.inverseProjectionView = new webgl.Matrix4(); - this.projection = new webgl.Matrix4(); - this.view = new webgl.Matrix4(); - this.tmp = new webgl.Vector3(); - this.viewportWidth = viewportWidth; - this.viewportHeight = viewportHeight; - this.update(); - } - OrthoCamera.prototype.update = function () { - var projection = this.projection; - var view = this.view; - var projectionView = this.projectionView; - var inverseProjectionView = this.inverseProjectionView; - var zoom = this.zoom, viewportWidth = this.viewportWidth, viewportHeight = this.viewportHeight; - projection.ortho(zoom * (-viewportWidth / 2), zoom * (viewportWidth / 2), zoom * (-viewportHeight / 2), zoom * (viewportHeight / 2), this.near, this.far); - view.lookAt(this.position, this.direction, this.up); - projectionView.set(projection.values); - projectionView.multiply(view); - inverseProjectionView.set(projectionView.values).invert(); - }; - OrthoCamera.prototype.screenToWorld = function (screenCoords, screenWidth, screenHeight) { - var x = screenCoords.x, y = screenHeight - screenCoords.y - 1; - var tmp = this.tmp; - tmp.x = (2 * x) / screenWidth - 1; - tmp.y = (2 * y) / screenHeight - 1; - tmp.z = (2 * screenCoords.z) - 1; - tmp.project(this.inverseProjectionView); - screenCoords.set(tmp.x, tmp.y, tmp.z); - return screenCoords; - }; - OrthoCamera.prototype.setViewport = function (viewportWidth, viewportHeight) { - this.viewportWidth = viewportWidth; - this.viewportHeight = viewportHeight; - }; - return OrthoCamera; - }()); - webgl.OrthoCamera = OrthoCamera; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var OrthoCamera = (function () { + function OrthoCamera(viewportWidth, viewportHeight) { + this.position = new webgl.Vector3(0, 0, 0); + this.direction = new webgl.Vector3(0, 0, -1); + this.up = new webgl.Vector3(0, 1, 0); + this.near = 0; + this.far = 100; + this.zoom = 1; + this.viewportWidth = 0; + this.viewportHeight = 0; + this.projectionView = new webgl.Matrix4(); + this.inverseProjectionView = new webgl.Matrix4(); + this.projection = new webgl.Matrix4(); + this.view = new webgl.Matrix4(); + this.tmp = new webgl.Vector3(); + this.viewportWidth = viewportWidth; + this.viewportHeight = viewportHeight; + this.update(); + } + OrthoCamera.prototype.update = function () { + var projection = this.projection; + var view = this.view; + var projectionView = this.projectionView; + var inverseProjectionView = this.inverseProjectionView; + var zoom = this.zoom, viewportWidth = this.viewportWidth, viewportHeight = this.viewportHeight; + projection.ortho(zoom * (-viewportWidth / 2), zoom * (viewportWidth / 2), zoom * (-viewportHeight / 2), zoom * (viewportHeight / 2), this.near, this.far); + view.lookAt(this.position, this.direction, this.up); + projectionView.set(projection.values); + projectionView.multiply(view); + inverseProjectionView.set(projectionView.values).invert(); + }; + OrthoCamera.prototype.screenToWorld = function (screenCoords, screenWidth, screenHeight) { + var x = screenCoords.x, y = screenHeight - screenCoords.y - 1; + var tmp = this.tmp; + tmp.x = (2 * x) / screenWidth - 1; + tmp.y = (2 * y) / screenHeight - 1; + tmp.z = (2 * screenCoords.z) - 1; + tmp.project(this.inverseProjectionView); + screenCoords.set(tmp.x, tmp.y, tmp.z); + return screenCoords; + }; + OrthoCamera.prototype.setViewport = function (viewportWidth, viewportHeight) { + this.viewportWidth = viewportWidth; + this.viewportHeight = viewportHeight; + }; + return OrthoCamera; + }()); + webgl.OrthoCamera = OrthoCamera; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var GLTexture = (function (_super) { - __extends(GLTexture, _super); - function GLTexture(context, image, useMipMaps) { - if (useMipMaps === void 0) { useMipMaps = false; } - _super.call(this, image); - this.texture = null; - this.boundUnit = 0; - this.useMipMaps = false; - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.useMipMaps = useMipMaps; - this.restore(); - this.context.addRestorable(this); - } - GLTexture.prototype.setFilters = function (minFilter, magFilter) { - var gl = this.context.gl; - this.bind(); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, magFilter); - }; - GLTexture.prototype.setWraps = function (uWrap, vWrap) { - var gl = this.context.gl; - this.bind(); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, uWrap); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, vWrap); - }; - GLTexture.prototype.update = function (useMipMaps) { - var gl = this.context.gl; - if (!this.texture) { - this.texture = this.context.gl.createTexture(); - } - this.bind(); - gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this._image); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, useMipMaps ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); - if (useMipMaps) - gl.generateMipmap(gl.TEXTURE_2D); - }; - GLTexture.prototype.restore = function () { - this.texture = null; - this.update(this.useMipMaps); - }; - GLTexture.prototype.bind = function (unit) { - if (unit === void 0) { unit = 0; } - var gl = this.context.gl; - this.boundUnit = unit; - gl.activeTexture(gl.TEXTURE0 + unit); - gl.bindTexture(gl.TEXTURE_2D, this.texture); - }; - GLTexture.prototype.unbind = function () { - var gl = this.context.gl; - gl.activeTexture(gl.TEXTURE0 + this.boundUnit); - gl.bindTexture(gl.TEXTURE_2D, null); - }; - GLTexture.prototype.dispose = function () { - this.context.removeRestorable(this); - var gl = this.context.gl; - gl.deleteTexture(this.texture); - }; - return GLTexture; - }(spine.Texture)); - webgl.GLTexture = GLTexture; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var GLTexture = (function (_super) { + __extends(GLTexture, _super); + function GLTexture(context, image, useMipMaps) { + if (useMipMaps === void 0) { useMipMaps = false; } + _super.call(this, image); + this.texture = null; + this.boundUnit = 0; + this.useMipMaps = false; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.useMipMaps = useMipMaps; + this.restore(); + this.context.addRestorable(this); + } + GLTexture.prototype.setFilters = function (minFilter, magFilter) { + var gl = this.context.gl; + this.bind(); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, magFilter); + }; + GLTexture.prototype.setWraps = function (uWrap, vWrap) { + var gl = this.context.gl; + this.bind(); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, uWrap); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, vWrap); + }; + GLTexture.prototype.update = function (useMipMaps) { + var gl = this.context.gl; + if (!this.texture) { + this.texture = this.context.gl.createTexture(); + } + this.bind(); + gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this._image); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, useMipMaps ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); + if (useMipMaps) + gl.generateMipmap(gl.TEXTURE_2D); + }; + GLTexture.prototype.restore = function () { + this.texture = null; + this.update(this.useMipMaps); + }; + GLTexture.prototype.bind = function (unit) { + if (unit === void 0) { unit = 0; } + var gl = this.context.gl; + this.boundUnit = unit; + gl.activeTexture(gl.TEXTURE0 + unit); + gl.bindTexture(gl.TEXTURE_2D, this.texture); + }; + GLTexture.prototype.unbind = function () { + var gl = this.context.gl; + gl.activeTexture(gl.TEXTURE0 + this.boundUnit); + gl.bindTexture(gl.TEXTURE_2D, null); + }; + GLTexture.prototype.dispose = function () { + this.context.removeRestorable(this); + var gl = this.context.gl; + gl.deleteTexture(this.texture); + }; + return GLTexture; + }(spine.Texture)); + webgl.GLTexture = GLTexture; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Input = (function () { - function Input(element) { - this.lastX = 0; - this.lastY = 0; - this.buttonDown = false; - this.currTouch = null; - this.touchesPool = new spine.Pool(function () { - return new spine.webgl.Touch(0, 0, 0); - }); - this.listeners = new Array(); - this.element = element; - this.setupCallbacks(element); - } - Input.prototype.setupCallbacks = function (element) { - var _this = this; - element.addEventListener("mousedown", function (ev) { - if (ev instanceof MouseEvent) { - var rect = element.getBoundingClientRect(); - var x = ev.clientX - rect.left; - var y = ev.clientY - rect.top; - var listeners = _this.listeners; - for (var i = 0; i < listeners.length; i++) { - listeners[i].down(x, y); - } - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = true; - } - }, true); - element.addEventListener("mousemove", function (ev) { - if (ev instanceof MouseEvent) { - var rect = element.getBoundingClientRect(); - var x = ev.clientX - rect.left; - var y = ev.clientY - rect.top; - var listeners = _this.listeners; - for (var i = 0; i < listeners.length; i++) { - if (_this.buttonDown) { - listeners[i].dragged(x, y); - } - else { - listeners[i].moved(x, y); - } - } - _this.lastX = x; - _this.lastY = y; - } - }, true); - element.addEventListener("mouseup", function (ev) { - if (ev instanceof MouseEvent) { - var rect = element.getBoundingClientRect(); - var x = ev.clientX - rect.left; - var y = ev.clientY - rect.top; - var listeners = _this.listeners; - for (var i = 0; i < listeners.length; i++) { - listeners[i].up(x, y); - } - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = false; - } - }, true); - element.addEventListener("touchstart", function (ev) { - if (_this.currTouch != null) - return; - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - var rect = element.getBoundingClientRect(); - var x = touch.clientX - rect.left; - var y = touch.clientY - rect.top; - _this.currTouch = _this.touchesPool.obtain(); - _this.currTouch.identifier = touch.identifier; - _this.currTouch.x = x; - _this.currTouch.y = y; - break; - } - var listeners = _this.listeners; - for (var i_1 = 0; i_1 < listeners.length; i_1++) { - listeners[i_1].down(_this.currTouch.x, _this.currTouch.y); - } - console.log("Start " + _this.currTouch.x + ", " + _this.currTouch.y); - _this.lastX = _this.currTouch.x; - _this.lastY = _this.currTouch.y; - _this.buttonDown = true; - ev.preventDefault(); - }, false); - element.addEventListener("touchend", function (ev) { - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - if (_this.currTouch.identifier === touch.identifier) { - var rect = element.getBoundingClientRect(); - var x = _this.currTouch.x = touch.clientX - rect.left; - var y = _this.currTouch.y = touch.clientY - rect.top; - _this.touchesPool.free(_this.currTouch); - var listeners = _this.listeners; - for (var i_2 = 0; i_2 < listeners.length; i_2++) { - listeners[i_2].up(x, y); - } - console.log("End " + x + ", " + y); - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = false; - _this.currTouch = null; - break; - } - } - ev.preventDefault(); - }, false); - element.addEventListener("touchcancel", function (ev) { - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - if (_this.currTouch.identifier === touch.identifier) { - var rect = element.getBoundingClientRect(); - var x = _this.currTouch.x = touch.clientX - rect.left; - var y = _this.currTouch.y = touch.clientY - rect.top; - _this.touchesPool.free(_this.currTouch); - var listeners = _this.listeners; - for (var i_3 = 0; i_3 < listeners.length; i_3++) { - listeners[i_3].up(x, y); - } - console.log("End " + x + ", " + y); - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = false; - _this.currTouch = null; - break; - } - } - ev.preventDefault(); - }, false); - element.addEventListener("touchmove", function (ev) { - if (_this.currTouch == null) - return; - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - if (_this.currTouch.identifier === touch.identifier) { - var rect = element.getBoundingClientRect(); - var x = touch.clientX - rect.left; - var y = touch.clientY - rect.top; - var listeners = _this.listeners; - for (var i_4 = 0; i_4 < listeners.length; i_4++) { - listeners[i_4].dragged(x, y); - } - console.log("Drag " + x + ", " + y); - _this.lastX = _this.currTouch.x = x; - _this.lastY = _this.currTouch.y = y; - break; - } - } - ev.preventDefault(); - }, false); - }; - Input.prototype.addListener = function (listener) { - this.listeners.push(listener); - }; - Input.prototype.removeListener = function (listener) { - var idx = this.listeners.indexOf(listener); - if (idx > -1) { - this.listeners.splice(idx, 1); - } - }; - return Input; - }()); - webgl.Input = Input; - var Touch = (function () { - function Touch(identifier, x, y) { - this.identifier = identifier; - this.x = x; - this.y = y; - } - return Touch; - }()); - webgl.Touch = Touch; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Input = (function () { + function Input(element) { + this.lastX = 0; + this.lastY = 0; + this.buttonDown = false; + this.currTouch = null; + this.touchesPool = new spine.Pool(function () { + return new spine.webgl.Touch(0, 0, 0); + }); + this.listeners = new Array(); + this.element = element; + this.setupCallbacks(element); + } + Input.prototype.setupCallbacks = function (element) { + var _this = this; + element.addEventListener("mousedown", function (ev) { + if (ev instanceof MouseEvent) { + var rect = element.getBoundingClientRect(); + var x = ev.clientX - rect.left; + var y = ev.clientY - rect.top; + var listeners = _this.listeners; + for (var i = 0; i < listeners.length; i++) { + listeners[i].down(x, y); + } + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = true; + } + }, true); + element.addEventListener("mousemove", function (ev) { + if (ev instanceof MouseEvent) { + var rect = element.getBoundingClientRect(); + var x = ev.clientX - rect.left; + var y = ev.clientY - rect.top; + var listeners = _this.listeners; + for (var i = 0; i < listeners.length; i++) { + if (_this.buttonDown) { + listeners[i].dragged(x, y); + } + else { + listeners[i].moved(x, y); + } + } + _this.lastX = x; + _this.lastY = y; + } + }, true); + element.addEventListener("mouseup", function (ev) { + if (ev instanceof MouseEvent) { + var rect = element.getBoundingClientRect(); + var x = ev.clientX - rect.left; + var y = ev.clientY - rect.top; + var listeners = _this.listeners; + for (var i = 0; i < listeners.length; i++) { + listeners[i].up(x, y); + } + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = false; + } + }, true); + element.addEventListener("touchstart", function (ev) { + if (_this.currTouch != null) + return; + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + var rect = element.getBoundingClientRect(); + var x = touch.clientX - rect.left; + var y = touch.clientY - rect.top; + _this.currTouch = _this.touchesPool.obtain(); + _this.currTouch.identifier = touch.identifier; + _this.currTouch.x = x; + _this.currTouch.y = y; + break; + } + var listeners = _this.listeners; + for (var i_1 = 0; i_1 < listeners.length; i_1++) { + listeners[i_1].down(_this.currTouch.x, _this.currTouch.y); + } + console.log("Start " + _this.currTouch.x + ", " + _this.currTouch.y); + _this.lastX = _this.currTouch.x; + _this.lastY = _this.currTouch.y; + _this.buttonDown = true; + ev.preventDefault(); + }, false); + element.addEventListener("touchend", function (ev) { + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + if (_this.currTouch.identifier === touch.identifier) { + var rect = element.getBoundingClientRect(); + var x = _this.currTouch.x = touch.clientX - rect.left; + var y = _this.currTouch.y = touch.clientY - rect.top; + _this.touchesPool.free(_this.currTouch); + var listeners = _this.listeners; + for (var i_2 = 0; i_2 < listeners.length; i_2++) { + listeners[i_2].up(x, y); + } + console.log("End " + x + ", " + y); + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = false; + _this.currTouch = null; + break; + } + } + ev.preventDefault(); + }, false); + element.addEventListener("touchcancel", function (ev) { + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + if (_this.currTouch.identifier === touch.identifier) { + var rect = element.getBoundingClientRect(); + var x = _this.currTouch.x = touch.clientX - rect.left; + var y = _this.currTouch.y = touch.clientY - rect.top; + _this.touchesPool.free(_this.currTouch); + var listeners = _this.listeners; + for (var i_3 = 0; i_3 < listeners.length; i_3++) { + listeners[i_3].up(x, y); + } + console.log("End " + x + ", " + y); + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = false; + _this.currTouch = null; + break; + } + } + ev.preventDefault(); + }, false); + element.addEventListener("touchmove", function (ev) { + if (_this.currTouch == null) + return; + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + if (_this.currTouch.identifier === touch.identifier) { + var rect = element.getBoundingClientRect(); + var x = touch.clientX - rect.left; + var y = touch.clientY - rect.top; + var listeners = _this.listeners; + for (var i_4 = 0; i_4 < listeners.length; i_4++) { + listeners[i_4].dragged(x, y); + } + console.log("Drag " + x + ", " + y); + _this.lastX = _this.currTouch.x = x; + _this.lastY = _this.currTouch.y = y; + break; + } + } + ev.preventDefault(); + }, false); + }; + Input.prototype.addListener = function (listener) { + this.listeners.push(listener); + }; + Input.prototype.removeListener = function (listener) { + var idx = this.listeners.indexOf(listener); + if (idx > -1) { + this.listeners.splice(idx, 1); + } + }; + return Input; + }()); + webgl.Input = Input; + var Touch = (function () { + function Touch(identifier, x, y) { + this.identifier = identifier; + this.x = x; + this.y = y; + } + return Touch; + }()); + webgl.Touch = Touch; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var LoadingScreen = (function () { - function LoadingScreen(renderer) { - this.logo = null; - this.spinner = null; - this.angle = 0; - this.fadeOut = 0; - this.timeKeeper = new spine.TimeKeeper(); - this.backgroundColor = new spine.Color(0.135, 0.135, 0.135, 1); - this.tempColor = new spine.Color(); - this.firstDraw = 0; - this.renderer = renderer; - this.timeKeeper.maxDelta = 9; - if (LoadingScreen.logoImg === null) { - var isSafari = navigator.userAgent.indexOf("Safari") > -1; - LoadingScreen.logoImg = new Image(); - LoadingScreen.logoImg.src = LoadingScreen.SPINE_LOGO_DATA; - if (!isSafari) - LoadingScreen.logoImg.crossOrigin = "anonymous"; - LoadingScreen.logoImg.onload = function (ev) { - LoadingScreen.loaded++; - }; - LoadingScreen.spinnerImg = new Image(); - LoadingScreen.spinnerImg.src = LoadingScreen.SPINNER_DATA; - if (!isSafari) - LoadingScreen.spinnerImg.crossOrigin = "anonymous"; - LoadingScreen.spinnerImg.onload = function (ev) { - LoadingScreen.loaded++; - }; - } - } - LoadingScreen.prototype.draw = function (complete) { - if (complete === void 0) { complete = false; } - if (complete && this.fadeOut > LoadingScreen.FADE_SECONDS) - return; - this.timeKeeper.update(); - var a = Math.abs(Math.sin(this.timeKeeper.totalTime + 0.75)); - this.angle -= this.timeKeeper.delta * 360 * (1 + 1.5 * Math.pow(a, 5)); - var renderer = this.renderer; - var canvas = renderer.canvas; - var gl = renderer.context.gl; - var oldX = renderer.camera.position.x, oldY = renderer.camera.position.y; - renderer.camera.position.set(canvas.width / 2, canvas.height / 2, 0); - renderer.camera.viewportWidth = canvas.width; - renderer.camera.viewportHeight = canvas.height; - renderer.resize(webgl.ResizeMode.Stretch); - if (!complete) { - gl.clearColor(this.backgroundColor.r, this.backgroundColor.g, this.backgroundColor.b, this.backgroundColor.a); - gl.clear(gl.COLOR_BUFFER_BIT); - this.tempColor.a = 1; - } - else { - this.fadeOut += this.timeKeeper.delta * (this.timeKeeper.totalTime < 1 ? 2 : 1); - if (this.fadeOut > LoadingScreen.FADE_SECONDS) { - renderer.camera.position.set(oldX, oldY, 0); - return; - } - a = 1 - this.fadeOut / LoadingScreen.FADE_SECONDS; - this.tempColor.setFromColor(this.backgroundColor); - this.tempColor.a = 1 - (a - 1) * (a - 1); - renderer.begin(); - renderer.quad(true, 0, 0, canvas.width, 0, canvas.width, canvas.height, 0, canvas.height, this.tempColor, this.tempColor, this.tempColor, this.tempColor); - renderer.end(); - } - this.tempColor.set(1, 1, 1, this.tempColor.a); - if (LoadingScreen.loaded != 2) - return; - if (this.logo === null) { - this.logo = new webgl.GLTexture(renderer.context, LoadingScreen.logoImg); - this.spinner = new webgl.GLTexture(renderer.context, LoadingScreen.spinnerImg); - } - this.logo.update(false); - this.spinner.update(false); - var logoWidth = this.logo.getImage().width; - var logoHeight = this.logo.getImage().height; - var spinnerWidth = this.spinner.getImage().width; - var spinnerHeight = this.spinner.getImage().height; - renderer.batcher.setBlendMode(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA); - renderer.begin(); - renderer.drawTexture(this.logo, (canvas.width - logoWidth) / 2, (canvas.height - logoHeight) / 2, logoWidth, logoHeight, this.tempColor); - renderer.drawTextureRotated(this.spinner, (canvas.width - spinnerWidth) / 2, (canvas.height - spinnerHeight) / 2, spinnerWidth, spinnerHeight, spinnerWidth / 2, spinnerHeight / 2, this.angle, this.tempColor); - renderer.end(); - renderer.camera.position.set(oldX, oldY, 0); - }; - LoadingScreen.FADE_SECONDS = 1; - LoadingScreen.loaded = 0; - LoadingScreen.spinnerImg = null; - LoadingScreen.logoImg = null; - LoadingScreen.SPINNER_DATA = "data:image/png;base64,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"; - LoadingScreen.SPINE_LOGO_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAAAZCAYAAACis3k0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtNJREFUaN7tmT2I1EAUxwN+oWgRT0HFKo0WCkJ6ObmAWFwZbCxsXGysLNJaiCyIoDaSwk4ETzvhmnBaCRbBWoQ01ho4PwotjP8cE337mMy8TLK757mBH3fLTWbe/PbN53neNniqZW8FvAVvQAqugwvgDDgO9niLRyTyJagM/ACPF6bsIl9ZRDac/Cc6tLn5xQdRQ496QlKPLxD5QCDxO9jtGM8QfYoIgUlgCipGCRJL5VvlyOdCU09iEXkCfLSIfCrs7Fab6nOsiafu06iDwES9w/uU1QnDC+ekkVS9vEaDsgVeB0d+z1VDtOGxRaYPboP3Gokb4GgXkZp4chZPJKgvZ3U0XkriK/TIt9YUDllFgTAjGwoaoHqfBhMI58yD4BQ4V6/aHYdfxToftvw9F2SiVroawU2/Cv5C4Thv0KB9S5nxlOd4STxjwUjzSdYlgrYijw2BsEfgsaFcM09lhiys94xXQQwugcvgJrgFLjrEE7WUiTuWCQzt/ZXN7FfqGwuGClyVy2xZAFmfDQvNtwFFSspMDGsD+UTWqu1KoVmVooFEJgKRXw0if85RpISEzwsjzeqWzkjkC4PIJ3MUmQgITAHlQwTFhnZhELkEntfZRwR+AvfAgXmJHOqU02XligWT8ppg67NXbdCXeq7afUQ6L8C2DalEZNt2YyQ94Qy8/ekjMpBMbfyl5iTjG7YAI8cNecROAb4kJmTjaXAF3AGvwQewOiuRxEtlSaT4j2h2lMsUueQEoMlIKpTvAmKhxPMtC876jEX6rE8l8TNx/KVbn6xlWU9NWcSDUsO4NGWpQOTZFpHPOooMXcswmW2XFk3ixb2v0Nq+XVKP00QNaffBLyWwBI/AkTlfMYZDXMf12kc6yjwEjoFdO/5me5oi/6tnyhlZX6OtgmX1c2Uh0k3khmbB2b9TRfpd/jfTUeRDJvHdYg5wE7kPXAN3wQ1weDvH+xufEgpi5qIl3QAAAABJRU5ErkJggg=="; - return LoadingScreen; - }()); - webgl.LoadingScreen = LoadingScreen; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var LoadingScreen = (function () { + function LoadingScreen(renderer) { + this.logo = null; + this.spinner = null; + this.angle = 0; + this.fadeOut = 0; + this.timeKeeper = new spine.TimeKeeper(); + this.backgroundColor = new spine.Color(0.135, 0.135, 0.135, 1); + this.tempColor = new spine.Color(); + this.firstDraw = 0; + this.renderer = renderer; + this.timeKeeper.maxDelta = 9; + if (LoadingScreen.logoImg === null) { + var isSafari = navigator.userAgent.indexOf("Safari") > -1; + LoadingScreen.logoImg = new Image(); + LoadingScreen.logoImg.src = LoadingScreen.SPINE_LOGO_DATA; + if (!isSafari) + LoadingScreen.logoImg.crossOrigin = "anonymous"; + LoadingScreen.logoImg.onload = function (ev) { + LoadingScreen.loaded++; + }; + LoadingScreen.spinnerImg = new Image(); + LoadingScreen.spinnerImg.src = LoadingScreen.SPINNER_DATA; + if (!isSafari) + LoadingScreen.spinnerImg.crossOrigin = "anonymous"; + LoadingScreen.spinnerImg.onload = function (ev) { + LoadingScreen.loaded++; + }; + } + } + LoadingScreen.prototype.draw = function (complete) { + if (complete === void 0) { complete = false; } + if (complete && this.fadeOut > LoadingScreen.FADE_SECONDS) + return; + this.timeKeeper.update(); + var a = Math.abs(Math.sin(this.timeKeeper.totalTime + 0.75)); + this.angle -= this.timeKeeper.delta * 360 * (1 + 1.5 * Math.pow(a, 5)); + var renderer = this.renderer; + var canvas = renderer.canvas; + var gl = renderer.context.gl; + var oldX = renderer.camera.position.x, oldY = renderer.camera.position.y; + renderer.camera.position.set(canvas.width / 2, canvas.height / 2, 0); + renderer.camera.viewportWidth = canvas.width; + renderer.camera.viewportHeight = canvas.height; + renderer.resize(webgl.ResizeMode.Stretch); + if (!complete) { + gl.clearColor(this.backgroundColor.r, this.backgroundColor.g, this.backgroundColor.b, this.backgroundColor.a); + gl.clear(gl.COLOR_BUFFER_BIT); + this.tempColor.a = 1; + } + else { + this.fadeOut += this.timeKeeper.delta * (this.timeKeeper.totalTime < 1 ? 2 : 1); + if (this.fadeOut > LoadingScreen.FADE_SECONDS) { + renderer.camera.position.set(oldX, oldY, 0); + return; + } + a = 1 - this.fadeOut / LoadingScreen.FADE_SECONDS; + this.tempColor.setFromColor(this.backgroundColor); + this.tempColor.a = 1 - (a - 1) * (a - 1); + renderer.begin(); + renderer.quad(true, 0, 0, canvas.width, 0, canvas.width, canvas.height, 0, canvas.height, this.tempColor, this.tempColor, this.tempColor, this.tempColor); + renderer.end(); + } + this.tempColor.set(1, 1, 1, this.tempColor.a); + if (LoadingScreen.loaded != 2) + return; + if (this.logo === null) { + this.logo = new webgl.GLTexture(renderer.context, LoadingScreen.logoImg); + this.spinner = new webgl.GLTexture(renderer.context, LoadingScreen.spinnerImg); + } + this.logo.update(false); + this.spinner.update(false); + var logoWidth = this.logo.getImage().width; + var logoHeight = this.logo.getImage().height; + var spinnerWidth = this.spinner.getImage().width; + var spinnerHeight = this.spinner.getImage().height; + renderer.batcher.setBlendMode(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA); + renderer.begin(); + renderer.drawTexture(this.logo, (canvas.width - logoWidth) / 2, (canvas.height - logoHeight) / 2, logoWidth, logoHeight, this.tempColor); + renderer.drawTextureRotated(this.spinner, (canvas.width - spinnerWidth) / 2, (canvas.height - spinnerHeight) / 2, spinnerWidth, spinnerHeight, spinnerWidth / 2, spinnerHeight / 2, this.angle, this.tempColor); + renderer.end(); + renderer.camera.position.set(oldX, oldY, 0); + }; + LoadingScreen.FADE_SECONDS = 1; + LoadingScreen.loaded = 0; + LoadingScreen.spinnerImg = null; + LoadingScreen.logoImg = null; + LoadingScreen.SPINNER_DATA = "data:image/png;base64,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"; + LoadingScreen.SPINE_LOGO_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAAAZCAYAAACis3k0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtNJREFUaN7tmT2I1EAUxwN+oWgRT0HFKo0WCkJ6ObmAWFwZbCxsXGysLNJaiCyIoDaSwk4ETzvhmnBaCRbBWoQ01ho4PwotjP8cE337mMy8TLK757mBH3fLTWbe/PbN53neNniqZW8FvAVvQAqugwvgDDgO9niLRyTyJagM/ACPF6bsIl9ZRDac/Cc6tLn5xQdRQ496QlKPLxD5QCDxO9jtGM8QfYoIgUlgCipGCRJL5VvlyOdCU09iEXkCfLSIfCrs7Fab6nOsiafu06iDwES9w/uU1QnDC+ekkVS9vEaDsgVeB0d+z1VDtOGxRaYPboP3Gokb4GgXkZp4chZPJKgvZ3U0XkriK/TIt9YUDllFgTAjGwoaoHqfBhMI58yD4BQ4V6/aHYdfxToftvw9F2SiVroawU2/Cv5C4Thv0KB9S5nxlOd4STxjwUjzSdYlgrYijw2BsEfgsaFcM09lhiys94xXQQwugcvgJrgFLjrEE7WUiTuWCQzt/ZXN7FfqGwuGClyVy2xZAFmfDQvNtwFFSspMDGsD+UTWqu1KoVmVooFEJgKRXw0if85RpISEzwsjzeqWzkjkC4PIJ3MUmQgITAHlQwTFhnZhELkEntfZRwR+AvfAgXmJHOqU02XligWT8ppg67NXbdCXeq7afUQ6L8C2DalEZNt2YyQ94Qy8/ekjMpBMbfyl5iTjG7YAI8cNecROAb4kJmTjaXAF3AGvwQewOiuRxEtlSaT4j2h2lMsUueQEoMlIKpTvAmKhxPMtC876jEX6rE8l8TNx/KVbn6xlWU9NWcSDUsO4NGWpQOTZFpHPOooMXcswmW2XFk3ixb2v0Nq+XVKP00QNaffBLyWwBI/AkTlfMYZDXMf12kc6yjwEjoFdO/5me5oi/6tnyhlZX6OtgmX1c2Uh0k3khmbB2b9TRfpd/jfTUeRDJvHdYg5wE7kPXAN3wQ1weDvH+xufEgpi5qIl3QAAAABJRU5ErkJggg=="; + return LoadingScreen; + }()); + webgl.LoadingScreen = LoadingScreen; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - webgl.M00 = 0; - webgl.M01 = 4; - webgl.M02 = 8; - webgl.M03 = 12; - webgl.M10 = 1; - webgl.M11 = 5; - webgl.M12 = 9; - webgl.M13 = 13; - webgl.M20 = 2; - webgl.M21 = 6; - webgl.M22 = 10; - webgl.M23 = 14; - webgl.M30 = 3; - webgl.M31 = 7; - webgl.M32 = 11; - webgl.M33 = 15; - var Matrix4 = (function () { - function Matrix4() { - this.temp = new Float32Array(16); - this.values = new Float32Array(16); - var v = this.values; - v[webgl.M00] = 1; - v[webgl.M11] = 1; - v[webgl.M22] = 1; - v[webgl.M33] = 1; - } - Matrix4.prototype.set = function (values) { - this.values.set(values); - return this; - }; - Matrix4.prototype.transpose = function () { - var t = this.temp; - var v = this.values; - t[webgl.M00] = v[webgl.M00]; - t[webgl.M01] = v[webgl.M10]; - t[webgl.M02] = v[webgl.M20]; - t[webgl.M03] = v[webgl.M30]; - t[webgl.M10] = v[webgl.M01]; - t[webgl.M11] = v[webgl.M11]; - t[webgl.M12] = v[webgl.M21]; - t[webgl.M13] = v[webgl.M31]; - t[webgl.M20] = v[webgl.M02]; - t[webgl.M21] = v[webgl.M12]; - t[webgl.M22] = v[webgl.M22]; - t[webgl.M23] = v[webgl.M32]; - t[webgl.M30] = v[webgl.M03]; - t[webgl.M31] = v[webgl.M13]; - t[webgl.M32] = v[webgl.M23]; - t[webgl.M33] = v[webgl.M33]; - return this.set(t); - }; - Matrix4.prototype.identity = function () { - var v = this.values; - v[webgl.M00] = 1; - v[webgl.M01] = 0; - v[webgl.M02] = 0; - v[webgl.M03] = 0; - v[webgl.M10] = 0; - v[webgl.M11] = 1; - v[webgl.M12] = 0; - v[webgl.M13] = 0; - v[webgl.M20] = 0; - v[webgl.M21] = 0; - v[webgl.M22] = 1; - v[webgl.M23] = 0; - v[webgl.M30] = 0; - v[webgl.M31] = 0; - v[webgl.M32] = 0; - v[webgl.M33] = 1; - return this; - }; - Matrix4.prototype.invert = function () { - var v = this.values; - var t = this.temp; - var l_det = v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] - + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] - - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] - - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] - + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] - + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] - - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] - - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; - if (l_det == 0) - throw new Error("non-invertible matrix"); - var inv_det = 1.0 / l_det; - t[webgl.M00] = v[webgl.M12] * v[webgl.M23] * v[webgl.M31] - v[webgl.M13] * v[webgl.M22] * v[webgl.M31] + v[webgl.M13] * v[webgl.M21] * v[webgl.M32] - - v[webgl.M11] * v[webgl.M23] * v[webgl.M32] - v[webgl.M12] * v[webgl.M21] * v[webgl.M33] + v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M01] = v[webgl.M03] * v[webgl.M22] * v[webgl.M31] - v[webgl.M02] * v[webgl.M23] * v[webgl.M31] - v[webgl.M03] * v[webgl.M21] * v[webgl.M32] - + v[webgl.M01] * v[webgl.M23] * v[webgl.M32] + v[webgl.M02] * v[webgl.M21] * v[webgl.M33] - v[webgl.M01] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M02] = v[webgl.M02] * v[webgl.M13] * v[webgl.M31] - v[webgl.M03] * v[webgl.M12] * v[webgl.M31] + v[webgl.M03] * v[webgl.M11] * v[webgl.M32] - - v[webgl.M01] * v[webgl.M13] * v[webgl.M32] - v[webgl.M02] * v[webgl.M11] * v[webgl.M33] + v[webgl.M01] * v[webgl.M12] * v[webgl.M33]; - t[webgl.M03] = v[webgl.M03] * v[webgl.M12] * v[webgl.M21] - v[webgl.M02] * v[webgl.M13] * v[webgl.M21] - v[webgl.M03] * v[webgl.M11] * v[webgl.M22] - + v[webgl.M01] * v[webgl.M13] * v[webgl.M22] + v[webgl.M02] * v[webgl.M11] * v[webgl.M23] - v[webgl.M01] * v[webgl.M12] * v[webgl.M23]; - t[webgl.M10] = v[webgl.M13] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M20] * v[webgl.M32] - + v[webgl.M10] * v[webgl.M23] * v[webgl.M32] + v[webgl.M12] * v[webgl.M20] * v[webgl.M33] - v[webgl.M10] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M11] = v[webgl.M02] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M22] * v[webgl.M30] + v[webgl.M03] * v[webgl.M20] * v[webgl.M32] - - v[webgl.M00] * v[webgl.M23] * v[webgl.M32] - v[webgl.M02] * v[webgl.M20] * v[webgl.M33] + v[webgl.M00] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M12] = v[webgl.M03] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M10] * v[webgl.M32] - + v[webgl.M00] * v[webgl.M13] * v[webgl.M32] + v[webgl.M02] * v[webgl.M10] * v[webgl.M33] - v[webgl.M00] * v[webgl.M12] * v[webgl.M33]; - t[webgl.M13] = v[webgl.M02] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M12] * v[webgl.M20] + v[webgl.M03] * v[webgl.M10] * v[webgl.M22] - - v[webgl.M00] * v[webgl.M13] * v[webgl.M22] - v[webgl.M02] * v[webgl.M10] * v[webgl.M23] + v[webgl.M00] * v[webgl.M12] * v[webgl.M23]; - t[webgl.M20] = v[webgl.M11] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M21] * v[webgl.M30] + v[webgl.M13] * v[webgl.M20] * v[webgl.M31] - - v[webgl.M10] * v[webgl.M23] * v[webgl.M31] - v[webgl.M11] * v[webgl.M20] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M33]; - t[webgl.M21] = v[webgl.M03] * v[webgl.M21] * v[webgl.M30] - v[webgl.M01] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M20] * v[webgl.M31] - + v[webgl.M00] * v[webgl.M23] * v[webgl.M31] + v[webgl.M01] * v[webgl.M20] * v[webgl.M33] - v[webgl.M00] * v[webgl.M21] * v[webgl.M33]; - t[webgl.M22] = v[webgl.M01] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M11] * v[webgl.M30] + v[webgl.M03] * v[webgl.M10] * v[webgl.M31] - - v[webgl.M00] * v[webgl.M13] * v[webgl.M31] - v[webgl.M01] * v[webgl.M10] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M33]; - t[webgl.M23] = v[webgl.M03] * v[webgl.M11] * v[webgl.M20] - v[webgl.M01] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M10] * v[webgl.M21] - + v[webgl.M00] * v[webgl.M13] * v[webgl.M21] + v[webgl.M01] * v[webgl.M10] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M23]; - t[webgl.M30] = v[webgl.M12] * v[webgl.M21] * v[webgl.M30] - v[webgl.M11] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M20] * v[webgl.M31] - + v[webgl.M10] * v[webgl.M22] * v[webgl.M31] + v[webgl.M11] * v[webgl.M20] * v[webgl.M32] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32]; - t[webgl.M31] = v[webgl.M01] * v[webgl.M22] * v[webgl.M30] - v[webgl.M02] * v[webgl.M21] * v[webgl.M30] + v[webgl.M02] * v[webgl.M20] * v[webgl.M31] - - v[webgl.M00] * v[webgl.M22] * v[webgl.M31] - v[webgl.M01] * v[webgl.M20] * v[webgl.M32] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32]; - t[webgl.M32] = v[webgl.M02] * v[webgl.M11] * v[webgl.M30] - v[webgl.M01] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M10] * v[webgl.M31] - + v[webgl.M00] * v[webgl.M12] * v[webgl.M31] + v[webgl.M01] * v[webgl.M10] * v[webgl.M32] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32]; - t[webgl.M33] = v[webgl.M01] * v[webgl.M12] * v[webgl.M20] - v[webgl.M02] * v[webgl.M11] * v[webgl.M20] + v[webgl.M02] * v[webgl.M10] * v[webgl.M21] - - v[webgl.M00] * v[webgl.M12] * v[webgl.M21] - v[webgl.M01] * v[webgl.M10] * v[webgl.M22] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22]; - v[webgl.M00] = t[webgl.M00] * inv_det; - v[webgl.M01] = t[webgl.M01] * inv_det; - v[webgl.M02] = t[webgl.M02] * inv_det; - v[webgl.M03] = t[webgl.M03] * inv_det; - v[webgl.M10] = t[webgl.M10] * inv_det; - v[webgl.M11] = t[webgl.M11] * inv_det; - v[webgl.M12] = t[webgl.M12] * inv_det; - v[webgl.M13] = t[webgl.M13] * inv_det; - v[webgl.M20] = t[webgl.M20] * inv_det; - v[webgl.M21] = t[webgl.M21] * inv_det; - v[webgl.M22] = t[webgl.M22] * inv_det; - v[webgl.M23] = t[webgl.M23] * inv_det; - v[webgl.M30] = t[webgl.M30] * inv_det; - v[webgl.M31] = t[webgl.M31] * inv_det; - v[webgl.M32] = t[webgl.M32] * inv_det; - v[webgl.M33] = t[webgl.M33] * inv_det; - return this; - }; - Matrix4.prototype.determinant = function () { - var v = this.values; - return v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] - + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] - - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] - - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] - + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] - + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] - - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] - - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; - }; - Matrix4.prototype.translate = function (x, y, z) { - var v = this.values; - v[webgl.M03] += x; - v[webgl.M13] += y; - v[webgl.M23] += z; - return this; - }; - Matrix4.prototype.copy = function () { - return new Matrix4().set(this.values); - }; - Matrix4.prototype.projection = function (near, far, fovy, aspectRatio) { - this.identity(); - var l_fd = (1.0 / Math.tan((fovy * (Math.PI / 180)) / 2.0)); - var l_a1 = (far + near) / (near - far); - var l_a2 = (2 * far * near) / (near - far); - var v = this.values; - v[webgl.M00] = l_fd / aspectRatio; - v[webgl.M10] = 0; - v[webgl.M20] = 0; - v[webgl.M30] = 0; - v[webgl.M01] = 0; - v[webgl.M11] = l_fd; - v[webgl.M21] = 0; - v[webgl.M31] = 0; - v[webgl.M02] = 0; - v[webgl.M12] = 0; - v[webgl.M22] = l_a1; - v[webgl.M32] = -1; - v[webgl.M03] = 0; - v[webgl.M13] = 0; - v[webgl.M23] = l_a2; - v[webgl.M33] = 0; - return this; - }; - Matrix4.prototype.ortho2d = function (x, y, width, height) { - return this.ortho(x, x + width, y, y + height, 0, 1); - }; - Matrix4.prototype.ortho = function (left, right, bottom, top, near, far) { - this.identity(); - var x_orth = 2 / (right - left); - var y_orth = 2 / (top - bottom); - var z_orth = -2 / (far - near); - var tx = -(right + left) / (right - left); - var ty = -(top + bottom) / (top - bottom); - var tz = -(far + near) / (far - near); - var v = this.values; - v[webgl.M00] = x_orth; - v[webgl.M10] = 0; - v[webgl.M20] = 0; - v[webgl.M30] = 0; - v[webgl.M01] = 0; - v[webgl.M11] = y_orth; - v[webgl.M21] = 0; - v[webgl.M31] = 0; - v[webgl.M02] = 0; - v[webgl.M12] = 0; - v[webgl.M22] = z_orth; - v[webgl.M32] = 0; - v[webgl.M03] = tx; - v[webgl.M13] = ty; - v[webgl.M23] = tz; - v[webgl.M33] = 1; - return this; - }; - Matrix4.prototype.multiply = function (matrix) { - var t = this.temp; - var v = this.values; - var m = matrix.values; - t[webgl.M00] = v[webgl.M00] * m[webgl.M00] + v[webgl.M01] * m[webgl.M10] + v[webgl.M02] * m[webgl.M20] + v[webgl.M03] * m[webgl.M30]; - t[webgl.M01] = v[webgl.M00] * m[webgl.M01] + v[webgl.M01] * m[webgl.M11] + v[webgl.M02] * m[webgl.M21] + v[webgl.M03] * m[webgl.M31]; - t[webgl.M02] = v[webgl.M00] * m[webgl.M02] + v[webgl.M01] * m[webgl.M12] + v[webgl.M02] * m[webgl.M22] + v[webgl.M03] * m[webgl.M32]; - t[webgl.M03] = v[webgl.M00] * m[webgl.M03] + v[webgl.M01] * m[webgl.M13] + v[webgl.M02] * m[webgl.M23] + v[webgl.M03] * m[webgl.M33]; - t[webgl.M10] = v[webgl.M10] * m[webgl.M00] + v[webgl.M11] * m[webgl.M10] + v[webgl.M12] * m[webgl.M20] + v[webgl.M13] * m[webgl.M30]; - t[webgl.M11] = v[webgl.M10] * m[webgl.M01] + v[webgl.M11] * m[webgl.M11] + v[webgl.M12] * m[webgl.M21] + v[webgl.M13] * m[webgl.M31]; - t[webgl.M12] = v[webgl.M10] * m[webgl.M02] + v[webgl.M11] * m[webgl.M12] + v[webgl.M12] * m[webgl.M22] + v[webgl.M13] * m[webgl.M32]; - t[webgl.M13] = v[webgl.M10] * m[webgl.M03] + v[webgl.M11] * m[webgl.M13] + v[webgl.M12] * m[webgl.M23] + v[webgl.M13] * m[webgl.M33]; - t[webgl.M20] = v[webgl.M20] * m[webgl.M00] + v[webgl.M21] * m[webgl.M10] + v[webgl.M22] * m[webgl.M20] + v[webgl.M23] * m[webgl.M30]; - t[webgl.M21] = v[webgl.M20] * m[webgl.M01] + v[webgl.M21] * m[webgl.M11] + v[webgl.M22] * m[webgl.M21] + v[webgl.M23] * m[webgl.M31]; - t[webgl.M22] = v[webgl.M20] * m[webgl.M02] + v[webgl.M21] * m[webgl.M12] + v[webgl.M22] * m[webgl.M22] + v[webgl.M23] * m[webgl.M32]; - t[webgl.M23] = v[webgl.M20] * m[webgl.M03] + v[webgl.M21] * m[webgl.M13] + v[webgl.M22] * m[webgl.M23] + v[webgl.M23] * m[webgl.M33]; - t[webgl.M30] = v[webgl.M30] * m[webgl.M00] + v[webgl.M31] * m[webgl.M10] + v[webgl.M32] * m[webgl.M20] + v[webgl.M33] * m[webgl.M30]; - t[webgl.M31] = v[webgl.M30] * m[webgl.M01] + v[webgl.M31] * m[webgl.M11] + v[webgl.M32] * m[webgl.M21] + v[webgl.M33] * m[webgl.M31]; - t[webgl.M32] = v[webgl.M30] * m[webgl.M02] + v[webgl.M31] * m[webgl.M12] + v[webgl.M32] * m[webgl.M22] + v[webgl.M33] * m[webgl.M32]; - t[webgl.M33] = v[webgl.M30] * m[webgl.M03] + v[webgl.M31] * m[webgl.M13] + v[webgl.M32] * m[webgl.M23] + v[webgl.M33] * m[webgl.M33]; - return this.set(this.temp); - }; - Matrix4.prototype.multiplyLeft = function (matrix) { - var t = this.temp; - var v = this.values; - var m = matrix.values; - t[webgl.M00] = m[webgl.M00] * v[webgl.M00] + m[webgl.M01] * v[webgl.M10] + m[webgl.M02] * v[webgl.M20] + m[webgl.M03] * v[webgl.M30]; - t[webgl.M01] = m[webgl.M00] * v[webgl.M01] + m[webgl.M01] * v[webgl.M11] + m[webgl.M02] * v[webgl.M21] + m[webgl.M03] * v[webgl.M31]; - t[webgl.M02] = m[webgl.M00] * v[webgl.M02] + m[webgl.M01] * v[webgl.M12] + m[webgl.M02] * v[webgl.M22] + m[webgl.M03] * v[webgl.M32]; - t[webgl.M03] = m[webgl.M00] * v[webgl.M03] + m[webgl.M01] * v[webgl.M13] + m[webgl.M02] * v[webgl.M23] + m[webgl.M03] * v[webgl.M33]; - t[webgl.M10] = m[webgl.M10] * v[webgl.M00] + m[webgl.M11] * v[webgl.M10] + m[webgl.M12] * v[webgl.M20] + m[webgl.M13] * v[webgl.M30]; - t[webgl.M11] = m[webgl.M10] * v[webgl.M01] + m[webgl.M11] * v[webgl.M11] + m[webgl.M12] * v[webgl.M21] + m[webgl.M13] * v[webgl.M31]; - t[webgl.M12] = m[webgl.M10] * v[webgl.M02] + m[webgl.M11] * v[webgl.M12] + m[webgl.M12] * v[webgl.M22] + m[webgl.M13] * v[webgl.M32]; - t[webgl.M13] = m[webgl.M10] * v[webgl.M03] + m[webgl.M11] * v[webgl.M13] + m[webgl.M12] * v[webgl.M23] + m[webgl.M13] * v[webgl.M33]; - t[webgl.M20] = m[webgl.M20] * v[webgl.M00] + m[webgl.M21] * v[webgl.M10] + m[webgl.M22] * v[webgl.M20] + m[webgl.M23] * v[webgl.M30]; - t[webgl.M21] = m[webgl.M20] * v[webgl.M01] + m[webgl.M21] * v[webgl.M11] + m[webgl.M22] * v[webgl.M21] + m[webgl.M23] * v[webgl.M31]; - t[webgl.M22] = m[webgl.M20] * v[webgl.M02] + m[webgl.M21] * v[webgl.M12] + m[webgl.M22] * v[webgl.M22] + m[webgl.M23] * v[webgl.M32]; - t[webgl.M23] = m[webgl.M20] * v[webgl.M03] + m[webgl.M21] * v[webgl.M13] + m[webgl.M22] * v[webgl.M23] + m[webgl.M23] * v[webgl.M33]; - t[webgl.M30] = m[webgl.M30] * v[webgl.M00] + m[webgl.M31] * v[webgl.M10] + m[webgl.M32] * v[webgl.M20] + m[webgl.M33] * v[webgl.M30]; - t[webgl.M31] = m[webgl.M30] * v[webgl.M01] + m[webgl.M31] * v[webgl.M11] + m[webgl.M32] * v[webgl.M21] + m[webgl.M33] * v[webgl.M31]; - t[webgl.M32] = m[webgl.M30] * v[webgl.M02] + m[webgl.M31] * v[webgl.M12] + m[webgl.M32] * v[webgl.M22] + m[webgl.M33] * v[webgl.M32]; - t[webgl.M33] = m[webgl.M30] * v[webgl.M03] + m[webgl.M31] * v[webgl.M13] + m[webgl.M32] * v[webgl.M23] + m[webgl.M33] * v[webgl.M33]; - return this.set(this.temp); - }; - Matrix4.prototype.lookAt = function (position, direction, up) { - Matrix4.initTemps(); - var xAxis = Matrix4.xAxis, yAxis = Matrix4.yAxis, zAxis = Matrix4.zAxis; - zAxis.setFrom(direction).normalize(); - xAxis.setFrom(direction).normalize(); - xAxis.cross(up).normalize(); - yAxis.setFrom(xAxis).cross(zAxis).normalize(); - this.identity(); - var val = this.values; - val[webgl.M00] = xAxis.x; - val[webgl.M01] = xAxis.y; - val[webgl.M02] = xAxis.z; - val[webgl.M10] = yAxis.x; - val[webgl.M11] = yAxis.y; - val[webgl.M12] = yAxis.z; - val[webgl.M20] = -zAxis.x; - val[webgl.M21] = -zAxis.y; - val[webgl.M22] = -zAxis.z; - Matrix4.tmpMatrix.identity(); - Matrix4.tmpMatrix.values[webgl.M03] = -position.x; - Matrix4.tmpMatrix.values[webgl.M13] = -position.y; - Matrix4.tmpMatrix.values[webgl.M23] = -position.z; - this.multiply(Matrix4.tmpMatrix); - return this; - }; - Matrix4.initTemps = function () { - if (Matrix4.xAxis === null) - Matrix4.xAxis = new webgl.Vector3(); - if (Matrix4.yAxis === null) - Matrix4.yAxis = new webgl.Vector3(); - if (Matrix4.zAxis === null) - Matrix4.zAxis = new webgl.Vector3(); - }; - Matrix4.xAxis = null; - Matrix4.yAxis = null; - Matrix4.zAxis = null; - Matrix4.tmpMatrix = new Matrix4(); - return Matrix4; - }()); - webgl.Matrix4 = Matrix4; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + webgl.M00 = 0; + webgl.M01 = 4; + webgl.M02 = 8; + webgl.M03 = 12; + webgl.M10 = 1; + webgl.M11 = 5; + webgl.M12 = 9; + webgl.M13 = 13; + webgl.M20 = 2; + webgl.M21 = 6; + webgl.M22 = 10; + webgl.M23 = 14; + webgl.M30 = 3; + webgl.M31 = 7; + webgl.M32 = 11; + webgl.M33 = 15; + var Matrix4 = (function () { + function Matrix4() { + this.temp = new Float32Array(16); + this.values = new Float32Array(16); + var v = this.values; + v[webgl.M00] = 1; + v[webgl.M11] = 1; + v[webgl.M22] = 1; + v[webgl.M33] = 1; + } + Matrix4.prototype.set = function (values) { + this.values.set(values); + return this; + }; + Matrix4.prototype.transpose = function () { + var t = this.temp; + var v = this.values; + t[webgl.M00] = v[webgl.M00]; + t[webgl.M01] = v[webgl.M10]; + t[webgl.M02] = v[webgl.M20]; + t[webgl.M03] = v[webgl.M30]; + t[webgl.M10] = v[webgl.M01]; + t[webgl.M11] = v[webgl.M11]; + t[webgl.M12] = v[webgl.M21]; + t[webgl.M13] = v[webgl.M31]; + t[webgl.M20] = v[webgl.M02]; + t[webgl.M21] = v[webgl.M12]; + t[webgl.M22] = v[webgl.M22]; + t[webgl.M23] = v[webgl.M32]; + t[webgl.M30] = v[webgl.M03]; + t[webgl.M31] = v[webgl.M13]; + t[webgl.M32] = v[webgl.M23]; + t[webgl.M33] = v[webgl.M33]; + return this.set(t); + }; + Matrix4.prototype.identity = function () { + var v = this.values; + v[webgl.M00] = 1; + v[webgl.M01] = 0; + v[webgl.M02] = 0; + v[webgl.M03] = 0; + v[webgl.M10] = 0; + v[webgl.M11] = 1; + v[webgl.M12] = 0; + v[webgl.M13] = 0; + v[webgl.M20] = 0; + v[webgl.M21] = 0; + v[webgl.M22] = 1; + v[webgl.M23] = 0; + v[webgl.M30] = 0; + v[webgl.M31] = 0; + v[webgl.M32] = 0; + v[webgl.M33] = 1; + return this; + }; + Matrix4.prototype.invert = function () { + var v = this.values; + var t = this.temp; + var l_det = v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] + + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] + - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] + - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] + + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] + + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] + - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] + - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; + if (l_det == 0) + throw new Error("non-invertible matrix"); + var inv_det = 1.0 / l_det; + t[webgl.M00] = v[webgl.M12] * v[webgl.M23] * v[webgl.M31] - v[webgl.M13] * v[webgl.M22] * v[webgl.M31] + v[webgl.M13] * v[webgl.M21] * v[webgl.M32] + - v[webgl.M11] * v[webgl.M23] * v[webgl.M32] - v[webgl.M12] * v[webgl.M21] * v[webgl.M33] + v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M01] = v[webgl.M03] * v[webgl.M22] * v[webgl.M31] - v[webgl.M02] * v[webgl.M23] * v[webgl.M31] - v[webgl.M03] * v[webgl.M21] * v[webgl.M32] + + v[webgl.M01] * v[webgl.M23] * v[webgl.M32] + v[webgl.M02] * v[webgl.M21] * v[webgl.M33] - v[webgl.M01] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M02] = v[webgl.M02] * v[webgl.M13] * v[webgl.M31] - v[webgl.M03] * v[webgl.M12] * v[webgl.M31] + v[webgl.M03] * v[webgl.M11] * v[webgl.M32] + - v[webgl.M01] * v[webgl.M13] * v[webgl.M32] - v[webgl.M02] * v[webgl.M11] * v[webgl.M33] + v[webgl.M01] * v[webgl.M12] * v[webgl.M33]; + t[webgl.M03] = v[webgl.M03] * v[webgl.M12] * v[webgl.M21] - v[webgl.M02] * v[webgl.M13] * v[webgl.M21] - v[webgl.M03] * v[webgl.M11] * v[webgl.M22] + + v[webgl.M01] * v[webgl.M13] * v[webgl.M22] + v[webgl.M02] * v[webgl.M11] * v[webgl.M23] - v[webgl.M01] * v[webgl.M12] * v[webgl.M23]; + t[webgl.M10] = v[webgl.M13] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M20] * v[webgl.M32] + + v[webgl.M10] * v[webgl.M23] * v[webgl.M32] + v[webgl.M12] * v[webgl.M20] * v[webgl.M33] - v[webgl.M10] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M11] = v[webgl.M02] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M22] * v[webgl.M30] + v[webgl.M03] * v[webgl.M20] * v[webgl.M32] + - v[webgl.M00] * v[webgl.M23] * v[webgl.M32] - v[webgl.M02] * v[webgl.M20] * v[webgl.M33] + v[webgl.M00] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M12] = v[webgl.M03] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M10] * v[webgl.M32] + + v[webgl.M00] * v[webgl.M13] * v[webgl.M32] + v[webgl.M02] * v[webgl.M10] * v[webgl.M33] - v[webgl.M00] * v[webgl.M12] * v[webgl.M33]; + t[webgl.M13] = v[webgl.M02] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M12] * v[webgl.M20] + v[webgl.M03] * v[webgl.M10] * v[webgl.M22] + - v[webgl.M00] * v[webgl.M13] * v[webgl.M22] - v[webgl.M02] * v[webgl.M10] * v[webgl.M23] + v[webgl.M00] * v[webgl.M12] * v[webgl.M23]; + t[webgl.M20] = v[webgl.M11] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M21] * v[webgl.M30] + v[webgl.M13] * v[webgl.M20] * v[webgl.M31] + - v[webgl.M10] * v[webgl.M23] * v[webgl.M31] - v[webgl.M11] * v[webgl.M20] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M33]; + t[webgl.M21] = v[webgl.M03] * v[webgl.M21] * v[webgl.M30] - v[webgl.M01] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M20] * v[webgl.M31] + + v[webgl.M00] * v[webgl.M23] * v[webgl.M31] + v[webgl.M01] * v[webgl.M20] * v[webgl.M33] - v[webgl.M00] * v[webgl.M21] * v[webgl.M33]; + t[webgl.M22] = v[webgl.M01] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M11] * v[webgl.M30] + v[webgl.M03] * v[webgl.M10] * v[webgl.M31] + - v[webgl.M00] * v[webgl.M13] * v[webgl.M31] - v[webgl.M01] * v[webgl.M10] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M33]; + t[webgl.M23] = v[webgl.M03] * v[webgl.M11] * v[webgl.M20] - v[webgl.M01] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M10] * v[webgl.M21] + + v[webgl.M00] * v[webgl.M13] * v[webgl.M21] + v[webgl.M01] * v[webgl.M10] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M23]; + t[webgl.M30] = v[webgl.M12] * v[webgl.M21] * v[webgl.M30] - v[webgl.M11] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M20] * v[webgl.M31] + + v[webgl.M10] * v[webgl.M22] * v[webgl.M31] + v[webgl.M11] * v[webgl.M20] * v[webgl.M32] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32]; + t[webgl.M31] = v[webgl.M01] * v[webgl.M22] * v[webgl.M30] - v[webgl.M02] * v[webgl.M21] * v[webgl.M30] + v[webgl.M02] * v[webgl.M20] * v[webgl.M31] + - v[webgl.M00] * v[webgl.M22] * v[webgl.M31] - v[webgl.M01] * v[webgl.M20] * v[webgl.M32] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32]; + t[webgl.M32] = v[webgl.M02] * v[webgl.M11] * v[webgl.M30] - v[webgl.M01] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M10] * v[webgl.M31] + + v[webgl.M00] * v[webgl.M12] * v[webgl.M31] + v[webgl.M01] * v[webgl.M10] * v[webgl.M32] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32]; + t[webgl.M33] = v[webgl.M01] * v[webgl.M12] * v[webgl.M20] - v[webgl.M02] * v[webgl.M11] * v[webgl.M20] + v[webgl.M02] * v[webgl.M10] * v[webgl.M21] + - v[webgl.M00] * v[webgl.M12] * v[webgl.M21] - v[webgl.M01] * v[webgl.M10] * v[webgl.M22] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22]; + v[webgl.M00] = t[webgl.M00] * inv_det; + v[webgl.M01] = t[webgl.M01] * inv_det; + v[webgl.M02] = t[webgl.M02] * inv_det; + v[webgl.M03] = t[webgl.M03] * inv_det; + v[webgl.M10] = t[webgl.M10] * inv_det; + v[webgl.M11] = t[webgl.M11] * inv_det; + v[webgl.M12] = t[webgl.M12] * inv_det; + v[webgl.M13] = t[webgl.M13] * inv_det; + v[webgl.M20] = t[webgl.M20] * inv_det; + v[webgl.M21] = t[webgl.M21] * inv_det; + v[webgl.M22] = t[webgl.M22] * inv_det; + v[webgl.M23] = t[webgl.M23] * inv_det; + v[webgl.M30] = t[webgl.M30] * inv_det; + v[webgl.M31] = t[webgl.M31] * inv_det; + v[webgl.M32] = t[webgl.M32] * inv_det; + v[webgl.M33] = t[webgl.M33] * inv_det; + return this; + }; + Matrix4.prototype.determinant = function () { + var v = this.values; + return v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] + + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] + - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] + - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] + + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] + + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] + - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] + - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; + }; + Matrix4.prototype.translate = function (x, y, z) { + var v = this.values; + v[webgl.M03] += x; + v[webgl.M13] += y; + v[webgl.M23] += z; + return this; + }; + Matrix4.prototype.copy = function () { + return new Matrix4().set(this.values); + }; + Matrix4.prototype.projection = function (near, far, fovy, aspectRatio) { + this.identity(); + var l_fd = (1.0 / Math.tan((fovy * (Math.PI / 180)) / 2.0)); + var l_a1 = (far + near) / (near - far); + var l_a2 = (2 * far * near) / (near - far); + var v = this.values; + v[webgl.M00] = l_fd / aspectRatio; + v[webgl.M10] = 0; + v[webgl.M20] = 0; + v[webgl.M30] = 0; + v[webgl.M01] = 0; + v[webgl.M11] = l_fd; + v[webgl.M21] = 0; + v[webgl.M31] = 0; + v[webgl.M02] = 0; + v[webgl.M12] = 0; + v[webgl.M22] = l_a1; + v[webgl.M32] = -1; + v[webgl.M03] = 0; + v[webgl.M13] = 0; + v[webgl.M23] = l_a2; + v[webgl.M33] = 0; + return this; + }; + Matrix4.prototype.ortho2d = function (x, y, width, height) { + return this.ortho(x, x + width, y, y + height, 0, 1); + }; + Matrix4.prototype.ortho = function (left, right, bottom, top, near, far) { + this.identity(); + var x_orth = 2 / (right - left); + var y_orth = 2 / (top - bottom); + var z_orth = -2 / (far - near); + var tx = -(right + left) / (right - left); + var ty = -(top + bottom) / (top - bottom); + var tz = -(far + near) / (far - near); + var v = this.values; + v[webgl.M00] = x_orth; + v[webgl.M10] = 0; + v[webgl.M20] = 0; + v[webgl.M30] = 0; + v[webgl.M01] = 0; + v[webgl.M11] = y_orth; + v[webgl.M21] = 0; + v[webgl.M31] = 0; + v[webgl.M02] = 0; + v[webgl.M12] = 0; + v[webgl.M22] = z_orth; + v[webgl.M32] = 0; + v[webgl.M03] = tx; + v[webgl.M13] = ty; + v[webgl.M23] = tz; + v[webgl.M33] = 1; + return this; + }; + Matrix4.prototype.multiply = function (matrix) { + var t = this.temp; + var v = this.values; + var m = matrix.values; + t[webgl.M00] = v[webgl.M00] * m[webgl.M00] + v[webgl.M01] * m[webgl.M10] + v[webgl.M02] * m[webgl.M20] + v[webgl.M03] * m[webgl.M30]; + t[webgl.M01] = v[webgl.M00] * m[webgl.M01] + v[webgl.M01] * m[webgl.M11] + v[webgl.M02] * m[webgl.M21] + v[webgl.M03] * m[webgl.M31]; + t[webgl.M02] = v[webgl.M00] * m[webgl.M02] + v[webgl.M01] * m[webgl.M12] + v[webgl.M02] * m[webgl.M22] + v[webgl.M03] * m[webgl.M32]; + t[webgl.M03] = v[webgl.M00] * m[webgl.M03] + v[webgl.M01] * m[webgl.M13] + v[webgl.M02] * m[webgl.M23] + v[webgl.M03] * m[webgl.M33]; + t[webgl.M10] = v[webgl.M10] * m[webgl.M00] + v[webgl.M11] * m[webgl.M10] + v[webgl.M12] * m[webgl.M20] + v[webgl.M13] * m[webgl.M30]; + t[webgl.M11] = v[webgl.M10] * m[webgl.M01] + v[webgl.M11] * m[webgl.M11] + v[webgl.M12] * m[webgl.M21] + v[webgl.M13] * m[webgl.M31]; + t[webgl.M12] = v[webgl.M10] * m[webgl.M02] + v[webgl.M11] * m[webgl.M12] + v[webgl.M12] * m[webgl.M22] + v[webgl.M13] * m[webgl.M32]; + t[webgl.M13] = v[webgl.M10] * m[webgl.M03] + v[webgl.M11] * m[webgl.M13] + v[webgl.M12] * m[webgl.M23] + v[webgl.M13] * m[webgl.M33]; + t[webgl.M20] = v[webgl.M20] * m[webgl.M00] + v[webgl.M21] * m[webgl.M10] + v[webgl.M22] * m[webgl.M20] + v[webgl.M23] * m[webgl.M30]; + t[webgl.M21] = v[webgl.M20] * m[webgl.M01] + v[webgl.M21] * m[webgl.M11] + v[webgl.M22] * m[webgl.M21] + v[webgl.M23] * m[webgl.M31]; + t[webgl.M22] = v[webgl.M20] * m[webgl.M02] + v[webgl.M21] * m[webgl.M12] + v[webgl.M22] * m[webgl.M22] + v[webgl.M23] * m[webgl.M32]; + t[webgl.M23] = v[webgl.M20] * m[webgl.M03] + v[webgl.M21] * m[webgl.M13] + v[webgl.M22] * m[webgl.M23] + v[webgl.M23] * m[webgl.M33]; + t[webgl.M30] = v[webgl.M30] * m[webgl.M00] + v[webgl.M31] * m[webgl.M10] + v[webgl.M32] * m[webgl.M20] + v[webgl.M33] * m[webgl.M30]; + t[webgl.M31] = v[webgl.M30] * m[webgl.M01] + v[webgl.M31] * m[webgl.M11] + v[webgl.M32] * m[webgl.M21] + v[webgl.M33] * m[webgl.M31]; + t[webgl.M32] = v[webgl.M30] * m[webgl.M02] + v[webgl.M31] * m[webgl.M12] + v[webgl.M32] * m[webgl.M22] + v[webgl.M33] * m[webgl.M32]; + t[webgl.M33] = v[webgl.M30] * m[webgl.M03] + v[webgl.M31] * m[webgl.M13] + v[webgl.M32] * m[webgl.M23] + v[webgl.M33] * m[webgl.M33]; + return this.set(this.temp); + }; + Matrix4.prototype.multiplyLeft = function (matrix) { + var t = this.temp; + var v = this.values; + var m = matrix.values; + t[webgl.M00] = m[webgl.M00] * v[webgl.M00] + m[webgl.M01] * v[webgl.M10] + m[webgl.M02] * v[webgl.M20] + m[webgl.M03] * v[webgl.M30]; + t[webgl.M01] = m[webgl.M00] * v[webgl.M01] + m[webgl.M01] * v[webgl.M11] + m[webgl.M02] * v[webgl.M21] + m[webgl.M03] * v[webgl.M31]; + t[webgl.M02] = m[webgl.M00] * v[webgl.M02] + m[webgl.M01] * v[webgl.M12] + m[webgl.M02] * v[webgl.M22] + m[webgl.M03] * v[webgl.M32]; + t[webgl.M03] = m[webgl.M00] * v[webgl.M03] + m[webgl.M01] * v[webgl.M13] + m[webgl.M02] * v[webgl.M23] + m[webgl.M03] * v[webgl.M33]; + t[webgl.M10] = m[webgl.M10] * v[webgl.M00] + m[webgl.M11] * v[webgl.M10] + m[webgl.M12] * v[webgl.M20] + m[webgl.M13] * v[webgl.M30]; + t[webgl.M11] = m[webgl.M10] * v[webgl.M01] + m[webgl.M11] * v[webgl.M11] + m[webgl.M12] * v[webgl.M21] + m[webgl.M13] * v[webgl.M31]; + t[webgl.M12] = m[webgl.M10] * v[webgl.M02] + m[webgl.M11] * v[webgl.M12] + m[webgl.M12] * v[webgl.M22] + m[webgl.M13] * v[webgl.M32]; + t[webgl.M13] = m[webgl.M10] * v[webgl.M03] + m[webgl.M11] * v[webgl.M13] + m[webgl.M12] * v[webgl.M23] + m[webgl.M13] * v[webgl.M33]; + t[webgl.M20] = m[webgl.M20] * v[webgl.M00] + m[webgl.M21] * v[webgl.M10] + m[webgl.M22] * v[webgl.M20] + m[webgl.M23] * v[webgl.M30]; + t[webgl.M21] = m[webgl.M20] * v[webgl.M01] + m[webgl.M21] * v[webgl.M11] + m[webgl.M22] * v[webgl.M21] + m[webgl.M23] * v[webgl.M31]; + t[webgl.M22] = m[webgl.M20] * v[webgl.M02] + m[webgl.M21] * v[webgl.M12] + m[webgl.M22] * v[webgl.M22] + m[webgl.M23] * v[webgl.M32]; + t[webgl.M23] = m[webgl.M20] * v[webgl.M03] + m[webgl.M21] * v[webgl.M13] + m[webgl.M22] * v[webgl.M23] + m[webgl.M23] * v[webgl.M33]; + t[webgl.M30] = m[webgl.M30] * v[webgl.M00] + m[webgl.M31] * v[webgl.M10] + m[webgl.M32] * v[webgl.M20] + m[webgl.M33] * v[webgl.M30]; + t[webgl.M31] = m[webgl.M30] * v[webgl.M01] + m[webgl.M31] * v[webgl.M11] + m[webgl.M32] * v[webgl.M21] + m[webgl.M33] * v[webgl.M31]; + t[webgl.M32] = m[webgl.M30] * v[webgl.M02] + m[webgl.M31] * v[webgl.M12] + m[webgl.M32] * v[webgl.M22] + m[webgl.M33] * v[webgl.M32]; + t[webgl.M33] = m[webgl.M30] * v[webgl.M03] + m[webgl.M31] * v[webgl.M13] + m[webgl.M32] * v[webgl.M23] + m[webgl.M33] * v[webgl.M33]; + return this.set(this.temp); + }; + Matrix4.prototype.lookAt = function (position, direction, up) { + Matrix4.initTemps(); + var xAxis = Matrix4.xAxis, yAxis = Matrix4.yAxis, zAxis = Matrix4.zAxis; + zAxis.setFrom(direction).normalize(); + xAxis.setFrom(direction).normalize(); + xAxis.cross(up).normalize(); + yAxis.setFrom(xAxis).cross(zAxis).normalize(); + this.identity(); + var val = this.values; + val[webgl.M00] = xAxis.x; + val[webgl.M01] = xAxis.y; + val[webgl.M02] = xAxis.z; + val[webgl.M10] = yAxis.x; + val[webgl.M11] = yAxis.y; + val[webgl.M12] = yAxis.z; + val[webgl.M20] = -zAxis.x; + val[webgl.M21] = -zAxis.y; + val[webgl.M22] = -zAxis.z; + Matrix4.tmpMatrix.identity(); + Matrix4.tmpMatrix.values[webgl.M03] = -position.x; + Matrix4.tmpMatrix.values[webgl.M13] = -position.y; + Matrix4.tmpMatrix.values[webgl.M23] = -position.z; + this.multiply(Matrix4.tmpMatrix); + return this; + }; + Matrix4.initTemps = function () { + if (Matrix4.xAxis === null) + Matrix4.xAxis = new webgl.Vector3(); + if (Matrix4.yAxis === null) + Matrix4.yAxis = new webgl.Vector3(); + if (Matrix4.zAxis === null) + Matrix4.zAxis = new webgl.Vector3(); + }; + Matrix4.xAxis = null; + Matrix4.yAxis = null; + Matrix4.zAxis = null; + Matrix4.tmpMatrix = new Matrix4(); + return Matrix4; + }()); + webgl.Matrix4 = Matrix4; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Mesh = (function () { - function Mesh(context, attributes, maxVertices, maxIndices) { - this.attributes = attributes; - this.verticesLength = 0; - this.dirtyVertices = false; - this.indicesLength = 0; - this.dirtyIndices = false; - this.elementsPerVertex = 0; - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.elementsPerVertex = 0; - for (var i = 0; i < attributes.length; i++) { - this.elementsPerVertex += attributes[i].numElements; - } - this.vertices = new Float32Array(maxVertices * this.elementsPerVertex); - this.indices = new Uint16Array(maxIndices); - this.context.addRestorable(this); - } - Mesh.prototype.getAttributes = function () { return this.attributes; }; - Mesh.prototype.maxVertices = function () { return this.vertices.length / this.elementsPerVertex; }; - Mesh.prototype.numVertices = function () { return this.verticesLength / this.elementsPerVertex; }; - Mesh.prototype.setVerticesLength = function (length) { - this.dirtyVertices = true; - this.verticesLength = length; - }; - Mesh.prototype.getVertices = function () { return this.vertices; }; - Mesh.prototype.maxIndices = function () { return this.indices.length; }; - Mesh.prototype.numIndices = function () { return this.indicesLength; }; - Mesh.prototype.setIndicesLength = function (length) { - this.dirtyIndices = true; - this.indicesLength = length; - }; - Mesh.prototype.getIndices = function () { return this.indices; }; - ; - Mesh.prototype.getVertexSizeInFloats = function () { - var size = 0; - for (var i = 0; i < this.attributes.length; i++) { - var attribute = this.attributes[i]; - size += attribute.numElements; - } - return size; - }; - Mesh.prototype.setVertices = function (vertices) { - this.dirtyVertices = true; - if (vertices.length > this.vertices.length) - throw Error("Mesh can't store more than " + this.maxVertices() + " vertices"); - this.vertices.set(vertices, 0); - this.verticesLength = vertices.length; - }; - Mesh.prototype.setIndices = function (indices) { - this.dirtyIndices = true; - if (indices.length > this.indices.length) - throw Error("Mesh can't store more than " + this.maxIndices() + " indices"); - this.indices.set(indices, 0); - this.indicesLength = indices.length; - }; - Mesh.prototype.draw = function (shader, primitiveType) { - this.drawWithOffset(shader, primitiveType, 0, this.indicesLength > 0 ? this.indicesLength : this.verticesLength / this.elementsPerVertex); - }; - Mesh.prototype.drawWithOffset = function (shader, primitiveType, offset, count) { - var gl = this.context.gl; - if (this.dirtyVertices || this.dirtyIndices) - this.update(); - this.bind(shader); - if (this.indicesLength > 0) { - gl.drawElements(primitiveType, count, gl.UNSIGNED_SHORT, offset * 2); - } - else { - gl.drawArrays(primitiveType, offset, count); - } - this.unbind(shader); - }; - Mesh.prototype.bind = function (shader) { - var gl = this.context.gl; - gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); - var offset = 0; - for (var i = 0; i < this.attributes.length; i++) { - var attrib = this.attributes[i]; - var location_1 = shader.getAttributeLocation(attrib.name); - gl.enableVertexAttribArray(location_1); - gl.vertexAttribPointer(location_1, attrib.numElements, gl.FLOAT, false, this.elementsPerVertex * 4, offset * 4); - offset += attrib.numElements; - } - if (this.indicesLength > 0) - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); - }; - Mesh.prototype.unbind = function (shader) { - var gl = this.context.gl; - for (var i = 0; i < this.attributes.length; i++) { - var attrib = this.attributes[i]; - var location_2 = shader.getAttributeLocation(attrib.name); - gl.disableVertexAttribArray(location_2); - } - gl.bindBuffer(gl.ARRAY_BUFFER, null); - if (this.indicesLength > 0) - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); - }; - Mesh.prototype.update = function () { - var gl = this.context.gl; - if (this.dirtyVertices) { - if (!this.verticesBuffer) { - this.verticesBuffer = gl.createBuffer(); - } - gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.vertices.subarray(0, this.verticesLength), gl.DYNAMIC_DRAW); - this.dirtyVertices = false; - } - if (this.dirtyIndices) { - if (!this.indicesBuffer) { - this.indicesBuffer = gl.createBuffer(); - } - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); - gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices.subarray(0, this.indicesLength), gl.DYNAMIC_DRAW); - this.dirtyIndices = false; - } - }; - Mesh.prototype.restore = function () { - this.verticesBuffer = null; - this.indicesBuffer = null; - this.update(); - }; - Mesh.prototype.dispose = function () { - this.context.removeRestorable(this); - var gl = this.context.gl; - gl.deleteBuffer(this.verticesBuffer); - gl.deleteBuffer(this.indicesBuffer); - }; - return Mesh; - }()); - webgl.Mesh = Mesh; - var VertexAttribute = (function () { - function VertexAttribute(name, type, numElements) { - this.name = name; - this.type = type; - this.numElements = numElements; - } - return VertexAttribute; - }()); - webgl.VertexAttribute = VertexAttribute; - var Position2Attribute = (function (_super) { - __extends(Position2Attribute, _super); - function Position2Attribute() { - _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 2); - } - return Position2Attribute; - }(VertexAttribute)); - webgl.Position2Attribute = Position2Attribute; - var Position3Attribute = (function (_super) { - __extends(Position3Attribute, _super); - function Position3Attribute() { - _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 3); - } - return Position3Attribute; - }(VertexAttribute)); - webgl.Position3Attribute = Position3Attribute; - var TexCoordAttribute = (function (_super) { - __extends(TexCoordAttribute, _super); - function TexCoordAttribute(unit) { - if (unit === void 0) { unit = 0; } - _super.call(this, webgl.Shader.TEXCOORDS + (unit == 0 ? "" : unit), VertexAttributeType.Float, 2); - } - return TexCoordAttribute; - }(VertexAttribute)); - webgl.TexCoordAttribute = TexCoordAttribute; - var ColorAttribute = (function (_super) { - __extends(ColorAttribute, _super); - function ColorAttribute() { - _super.call(this, webgl.Shader.COLOR, VertexAttributeType.Float, 4); - } - return ColorAttribute; - }(VertexAttribute)); - webgl.ColorAttribute = ColorAttribute; - var Color2Attribute = (function (_super) { - __extends(Color2Attribute, _super); - function Color2Attribute() { - _super.call(this, webgl.Shader.COLOR2, VertexAttributeType.Float, 4); - } - return Color2Attribute; - }(VertexAttribute)); - webgl.Color2Attribute = Color2Attribute; - (function (VertexAttributeType) { - VertexAttributeType[VertexAttributeType["Float"] = 0] = "Float"; - })(webgl.VertexAttributeType || (webgl.VertexAttributeType = {})); - var VertexAttributeType = webgl.VertexAttributeType; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Mesh = (function () { + function Mesh(context, attributes, maxVertices, maxIndices) { + this.attributes = attributes; + this.verticesLength = 0; + this.dirtyVertices = false; + this.indicesLength = 0; + this.dirtyIndices = false; + this.elementsPerVertex = 0; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.elementsPerVertex = 0; + for (var i = 0; i < attributes.length; i++) { + this.elementsPerVertex += attributes[i].numElements; + } + this.vertices = new Float32Array(maxVertices * this.elementsPerVertex); + this.indices = new Uint16Array(maxIndices); + this.context.addRestorable(this); + } + Mesh.prototype.getAttributes = function () { return this.attributes; }; + Mesh.prototype.maxVertices = function () { return this.vertices.length / this.elementsPerVertex; }; + Mesh.prototype.numVertices = function () { return this.verticesLength / this.elementsPerVertex; }; + Mesh.prototype.setVerticesLength = function (length) { + this.dirtyVertices = true; + this.verticesLength = length; + }; + Mesh.prototype.getVertices = function () { return this.vertices; }; + Mesh.prototype.maxIndices = function () { return this.indices.length; }; + Mesh.prototype.numIndices = function () { return this.indicesLength; }; + Mesh.prototype.setIndicesLength = function (length) { + this.dirtyIndices = true; + this.indicesLength = length; + }; + Mesh.prototype.getIndices = function () { return this.indices; }; + ; + Mesh.prototype.getVertexSizeInFloats = function () { + var size = 0; + for (var i = 0; i < this.attributes.length; i++) { + var attribute = this.attributes[i]; + size += attribute.numElements; + } + return size; + }; + Mesh.prototype.setVertices = function (vertices) { + this.dirtyVertices = true; + if (vertices.length > this.vertices.length) + throw Error("Mesh can't store more than " + this.maxVertices() + " vertices"); + this.vertices.set(vertices, 0); + this.verticesLength = vertices.length; + }; + Mesh.prototype.setIndices = function (indices) { + this.dirtyIndices = true; + if (indices.length > this.indices.length) + throw Error("Mesh can't store more than " + this.maxIndices() + " indices"); + this.indices.set(indices, 0); + this.indicesLength = indices.length; + }; + Mesh.prototype.draw = function (shader, primitiveType) { + this.drawWithOffset(shader, primitiveType, 0, this.indicesLength > 0 ? this.indicesLength : this.verticesLength / this.elementsPerVertex); + }; + Mesh.prototype.drawWithOffset = function (shader, primitiveType, offset, count) { + var gl = this.context.gl; + if (this.dirtyVertices || this.dirtyIndices) + this.update(); + this.bind(shader); + if (this.indicesLength > 0) { + gl.drawElements(primitiveType, count, gl.UNSIGNED_SHORT, offset * 2); + } + else { + gl.drawArrays(primitiveType, offset, count); + } + this.unbind(shader); + }; + Mesh.prototype.bind = function (shader) { + var gl = this.context.gl; + gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); + var offset = 0; + for (var i = 0; i < this.attributes.length; i++) { + var attrib = this.attributes[i]; + var location_1 = shader.getAttributeLocation(attrib.name); + gl.enableVertexAttribArray(location_1); + gl.vertexAttribPointer(location_1, attrib.numElements, gl.FLOAT, false, this.elementsPerVertex * 4, offset * 4); + offset += attrib.numElements; + } + if (this.indicesLength > 0) + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); + }; + Mesh.prototype.unbind = function (shader) { + var gl = this.context.gl; + for (var i = 0; i < this.attributes.length; i++) { + var attrib = this.attributes[i]; + var location_2 = shader.getAttributeLocation(attrib.name); + gl.disableVertexAttribArray(location_2); + } + gl.bindBuffer(gl.ARRAY_BUFFER, null); + if (this.indicesLength > 0) + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); + }; + Mesh.prototype.update = function () { + var gl = this.context.gl; + if (this.dirtyVertices) { + if (!this.verticesBuffer) { + this.verticesBuffer = gl.createBuffer(); + } + gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.vertices.subarray(0, this.verticesLength), gl.DYNAMIC_DRAW); + this.dirtyVertices = false; + } + if (this.dirtyIndices) { + if (!this.indicesBuffer) { + this.indicesBuffer = gl.createBuffer(); + } + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices.subarray(0, this.indicesLength), gl.DYNAMIC_DRAW); + this.dirtyIndices = false; + } + }; + Mesh.prototype.restore = function () { + this.verticesBuffer = null; + this.indicesBuffer = null; + this.update(); + }; + Mesh.prototype.dispose = function () { + this.context.removeRestorable(this); + var gl = this.context.gl; + gl.deleteBuffer(this.verticesBuffer); + gl.deleteBuffer(this.indicesBuffer); + }; + return Mesh; + }()); + webgl.Mesh = Mesh; + var VertexAttribute = (function () { + function VertexAttribute(name, type, numElements) { + this.name = name; + this.type = type; + this.numElements = numElements; + } + return VertexAttribute; + }()); + webgl.VertexAttribute = VertexAttribute; + var Position2Attribute = (function (_super) { + __extends(Position2Attribute, _super); + function Position2Attribute() { + _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 2); + } + return Position2Attribute; + }(VertexAttribute)); + webgl.Position2Attribute = Position2Attribute; + var Position3Attribute = (function (_super) { + __extends(Position3Attribute, _super); + function Position3Attribute() { + _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 3); + } + return Position3Attribute; + }(VertexAttribute)); + webgl.Position3Attribute = Position3Attribute; + var TexCoordAttribute = (function (_super) { + __extends(TexCoordAttribute, _super); + function TexCoordAttribute(unit) { + if (unit === void 0) { unit = 0; } + _super.call(this, webgl.Shader.TEXCOORDS + (unit == 0 ? "" : unit), VertexAttributeType.Float, 2); + } + return TexCoordAttribute; + }(VertexAttribute)); + webgl.TexCoordAttribute = TexCoordAttribute; + var ColorAttribute = (function (_super) { + __extends(ColorAttribute, _super); + function ColorAttribute() { + _super.call(this, webgl.Shader.COLOR, VertexAttributeType.Float, 4); + } + return ColorAttribute; + }(VertexAttribute)); + webgl.ColorAttribute = ColorAttribute; + var Color2Attribute = (function (_super) { + __extends(Color2Attribute, _super); + function Color2Attribute() { + _super.call(this, webgl.Shader.COLOR2, VertexAttributeType.Float, 4); + } + return Color2Attribute; + }(VertexAttribute)); + webgl.Color2Attribute = Color2Attribute; + (function (VertexAttributeType) { + VertexAttributeType[VertexAttributeType["Float"] = 0] = "Float"; + })(webgl.VertexAttributeType || (webgl.VertexAttributeType = {})); + var VertexAttributeType = webgl.VertexAttributeType; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var PolygonBatcher = (function () { - function PolygonBatcher(context, twoColorTint, maxVertices) { - if (twoColorTint === void 0) { twoColorTint = true; } - if (maxVertices === void 0) { maxVertices = 10920; } - this.isDrawing = false; - this.shader = null; - this.lastTexture = null; - this.verticesLength = 0; - this.indicesLength = 0; - if (maxVertices > 10920) - throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - var attributes = twoColorTint ? - [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute(), new webgl.Color2Attribute()] : - [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute()]; - this.mesh = new webgl.Mesh(context, attributes, maxVertices, maxVertices * 3); - this.srcBlend = this.context.gl.SRC_ALPHA; - this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; - } - PolygonBatcher.prototype.begin = function (shader) { - var gl = this.context.gl; - if (this.isDrawing) - throw new Error("PolygonBatch is already drawing. Call PolygonBatch.end() before calling PolygonBatch.begin()"); - this.drawCalls = 0; - this.shader = shader; - this.lastTexture = null; - this.isDrawing = true; - gl.enable(gl.BLEND); - gl.blendFunc(this.srcBlend, this.dstBlend); - }; - PolygonBatcher.prototype.setBlendMode = function (srcBlend, dstBlend) { - var gl = this.context.gl; - this.srcBlend = srcBlend; - this.dstBlend = dstBlend; - if (this.isDrawing) { - this.flush(); - gl.blendFunc(this.srcBlend, this.dstBlend); - } - }; - PolygonBatcher.prototype.draw = function (texture, vertices, indices) { - if (texture != this.lastTexture) { - this.flush(); - this.lastTexture = texture; - } - else if (this.verticesLength + vertices.length > this.mesh.getVertices().length || - this.indicesLength + indices.length > this.mesh.getIndices().length) { - this.flush(); - } - var indexStart = this.mesh.numVertices(); - this.mesh.getVertices().set(vertices, this.verticesLength); - this.verticesLength += vertices.length; - this.mesh.setVerticesLength(this.verticesLength); - var indicesArray = this.mesh.getIndices(); - for (var i = this.indicesLength, j = 0; j < indices.length; i++, j++) - indicesArray[i] = indices[j] + indexStart; - this.indicesLength += indices.length; - this.mesh.setIndicesLength(this.indicesLength); - }; - PolygonBatcher.prototype.flush = function () { - var gl = this.context.gl; - if (this.verticesLength == 0) - return; - this.lastTexture.bind(); - this.mesh.draw(this.shader, gl.TRIANGLES); - this.verticesLength = 0; - this.indicesLength = 0; - this.mesh.setVerticesLength(0); - this.mesh.setIndicesLength(0); - this.drawCalls++; - }; - PolygonBatcher.prototype.end = function () { - var gl = this.context.gl; - if (!this.isDrawing) - throw new Error("PolygonBatch is not drawing. Call PolygonBatch.begin() before calling PolygonBatch.end()"); - if (this.verticesLength > 0 || this.indicesLength > 0) - this.flush(); - this.shader = null; - this.lastTexture = null; - this.isDrawing = false; - gl.disable(gl.BLEND); - }; - PolygonBatcher.prototype.getDrawCalls = function () { return this.drawCalls; }; - PolygonBatcher.prototype.dispose = function () { - this.mesh.dispose(); - }; - return PolygonBatcher; - }()); - webgl.PolygonBatcher = PolygonBatcher; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var PolygonBatcher = (function () { + function PolygonBatcher(context, twoColorTint, maxVertices) { + if (twoColorTint === void 0) { twoColorTint = true; } + if (maxVertices === void 0) { maxVertices = 10920; } + this.isDrawing = false; + this.shader = null; + this.lastTexture = null; + this.verticesLength = 0; + this.indicesLength = 0; + if (maxVertices > 10920) + throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + var attributes = twoColorTint ? + [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute(), new webgl.Color2Attribute()] : + [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute()]; + this.mesh = new webgl.Mesh(context, attributes, maxVertices, maxVertices * 3); + this.srcBlend = this.context.gl.SRC_ALPHA; + this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; + } + PolygonBatcher.prototype.begin = function (shader) { + var gl = this.context.gl; + if (this.isDrawing) + throw new Error("PolygonBatch is already drawing. Call PolygonBatch.end() before calling PolygonBatch.begin()"); + this.drawCalls = 0; + this.shader = shader; + this.lastTexture = null; + this.isDrawing = true; + gl.enable(gl.BLEND); + gl.blendFunc(this.srcBlend, this.dstBlend); + }; + PolygonBatcher.prototype.setBlendMode = function (srcBlend, dstBlend) { + var gl = this.context.gl; + this.srcBlend = srcBlend; + this.dstBlend = dstBlend; + if (this.isDrawing) { + this.flush(); + gl.blendFunc(this.srcBlend, this.dstBlend); + } + }; + PolygonBatcher.prototype.draw = function (texture, vertices, indices) { + if (texture != this.lastTexture) { + this.flush(); + this.lastTexture = texture; + } + else if (this.verticesLength + vertices.length > this.mesh.getVertices().length || + this.indicesLength + indices.length > this.mesh.getIndices().length) { + this.flush(); + } + var indexStart = this.mesh.numVertices(); + this.mesh.getVertices().set(vertices, this.verticesLength); + this.verticesLength += vertices.length; + this.mesh.setVerticesLength(this.verticesLength); + var indicesArray = this.mesh.getIndices(); + for (var i = this.indicesLength, j = 0; j < indices.length; i++, j++) + indicesArray[i] = indices[j] + indexStart; + this.indicesLength += indices.length; + this.mesh.setIndicesLength(this.indicesLength); + }; + PolygonBatcher.prototype.flush = function () { + var gl = this.context.gl; + if (this.verticesLength == 0) + return; + this.lastTexture.bind(); + this.mesh.draw(this.shader, gl.TRIANGLES); + this.verticesLength = 0; + this.indicesLength = 0; + this.mesh.setVerticesLength(0); + this.mesh.setIndicesLength(0); + this.drawCalls++; + }; + PolygonBatcher.prototype.end = function () { + var gl = this.context.gl; + if (!this.isDrawing) + throw new Error("PolygonBatch is not drawing. Call PolygonBatch.begin() before calling PolygonBatch.end()"); + if (this.verticesLength > 0 || this.indicesLength > 0) + this.flush(); + this.shader = null; + this.lastTexture = null; + this.isDrawing = false; + gl.disable(gl.BLEND); + }; + PolygonBatcher.prototype.getDrawCalls = function () { return this.drawCalls; }; + PolygonBatcher.prototype.dispose = function () { + this.mesh.dispose(); + }; + return PolygonBatcher; + }()); + webgl.PolygonBatcher = PolygonBatcher; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var SceneRenderer = (function () { - function SceneRenderer(canvas, context, twoColorTint) { - if (twoColorTint === void 0) { twoColorTint = true; } - this.twoColorTint = false; - this.activeRenderer = null; - this.QUAD = [ - 0, 0, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 0, 0, - ]; - this.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - this.WHITE = new spine.Color(1, 1, 1, 1); - this.canvas = canvas; - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.twoColorTint = twoColorTint; - this.camera = new webgl.OrthoCamera(canvas.width, canvas.height); - this.batcherShader = twoColorTint ? webgl.Shader.newTwoColoredTextured(this.context) : webgl.Shader.newColoredTextured(this.context); - this.batcher = new webgl.PolygonBatcher(this.context, twoColorTint); - this.shapesShader = webgl.Shader.newColored(this.context); - this.shapes = new webgl.ShapeRenderer(this.context); - this.skeletonRenderer = new webgl.SkeletonRenderer(this.context, twoColorTint); - this.skeletonDebugRenderer = new webgl.SkeletonDebugRenderer(this.context); - } - SceneRenderer.prototype.begin = function () { - this.camera.update(); - this.enableRenderer(this.batcher); - }; - SceneRenderer.prototype.drawSkeleton = function (skeleton, premultipliedAlpha) { - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - this.enableRenderer(this.batcher); - this.skeletonRenderer.premultipliedAlpha = premultipliedAlpha; - this.skeletonRenderer.draw(this.batcher, skeleton); - }; - SceneRenderer.prototype.drawSkeletonDebug = function (skeleton, premultipliedAlpha, ignoredBones) { - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - if (ignoredBones === void 0) { ignoredBones = null; } - this.enableRenderer(this.shapes); - this.skeletonDebugRenderer.premultipliedAlpha = premultipliedAlpha; - this.skeletonDebugRenderer.draw(this.shapes, skeleton, ignoredBones); - }; - SceneRenderer.prototype.drawTexture = function (texture, x, y, width, height, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.batcher); - if (color === null) - color = this.WHITE; - var quad = this.QUAD; - var i = 0; - quad[i++] = x; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); - }; - SceneRenderer.prototype.drawTextureRotated = function (texture, x, y, width, height, pivotX, pivotY, angle, color, premultipliedAlpha) { - if (color === void 0) { color = null; } - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - this.enableRenderer(this.batcher); - if (color === null) - color = this.WHITE; - var quad = this.QUAD; - var worldOriginX = x + pivotX; - var worldOriginY = y + pivotY; - var fx = -pivotX; - var fy = -pivotY; - var fx2 = width - pivotX; - var fy2 = height - pivotY; - var p1x = fx; - var p1y = fy; - var p2x = fx; - var p2y = fy2; - var p3x = fx2; - var p3y = fy2; - var p4x = fx2; - var p4y = fy; - var x1 = 0; - var y1 = 0; - var x2 = 0; - var y2 = 0; - var x3 = 0; - var y3 = 0; - var x4 = 0; - var y4 = 0; - if (angle != 0) { - var cos = spine.MathUtils.cosDeg(angle); - var sin = spine.MathUtils.sinDeg(angle); - x1 = cos * p1x - sin * p1y; - y1 = sin * p1x + cos * p1y; - x4 = cos * p2x - sin * p2y; - y4 = sin * p2x + cos * p2y; - x3 = cos * p3x - sin * p3y; - y3 = sin * p3x + cos * p3y; - x2 = x3 + (x1 - x4); - y2 = y3 + (y1 - y4); - } - else { - x1 = p1x; - y1 = p1y; - x4 = p2x; - y4 = p2y; - x3 = p3x; - y3 = p3y; - x2 = p4x; - y2 = p4y; - } - x1 += worldOriginX; - y1 += worldOriginY; - x2 += worldOriginX; - y2 += worldOriginY; - x3 += worldOriginX; - y3 += worldOriginY; - x4 += worldOriginX; - y4 += worldOriginY; - var i = 0; - quad[i++] = x1; - quad[i++] = y1; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x2; - quad[i++] = y2; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x3; - quad[i++] = y3; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x4; - quad[i++] = y4; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); - }; - SceneRenderer.prototype.drawRegion = function (region, x, y, width, height, color, premultipliedAlpha) { - if (color === void 0) { color = null; } - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - this.enableRenderer(this.batcher); - if (color === null) - color = this.WHITE; - var quad = this.QUAD; - var i = 0; - quad[i++] = x; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u; - quad[i++] = region.v2; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u2; - quad[i++] = region.v2; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u2; - quad[i++] = region.v; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u; - quad[i++] = region.v; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - this.batcher.draw(region.texture, quad, this.QUAD_TRIANGLES); - }; - SceneRenderer.prototype.line = function (x, y, x2, y2, color, color2) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - this.enableRenderer(this.shapes); - this.shapes.line(x, y, x2, y2, color); - }; - SceneRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - this.enableRenderer(this.shapes); - this.shapes.triangle(filled, x, y, x2, y2, x3, y3, color, color2, color3); - }; - SceneRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - if (color4 === void 0) { color4 = null; } - this.enableRenderer(this.shapes); - this.shapes.quad(filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4); - }; - SceneRenderer.prototype.rect = function (filled, x, y, width, height, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.rect(filled, x, y, width, height, color); - }; - SceneRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.rectLine(filled, x1, y1, x2, y2, width, color); - }; - SceneRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.polygon(polygonVertices, offset, count, color); - }; - SceneRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { - if (color === void 0) { color = null; } - if (segments === void 0) { segments = 0; } - this.enableRenderer(this.shapes); - this.shapes.circle(filled, x, y, radius, color, segments); - }; - SceneRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color); - }; - SceneRenderer.prototype.end = function () { - if (this.activeRenderer === this.batcher) - this.batcher.end(); - else if (this.activeRenderer === this.shapes) - this.shapes.end(); - this.activeRenderer = null; - }; - SceneRenderer.prototype.resize = function (resizeMode) { - var canvas = this.canvas; - var w = canvas.clientWidth; - var h = canvas.clientHeight; - if (canvas.width != w || canvas.height != h) { - canvas.width = w; - canvas.height = h; - } - this.context.gl.viewport(0, 0, canvas.width, canvas.height); - if (resizeMode === ResizeMode.Stretch) { - } - else if (resizeMode === ResizeMode.Expand) { - this.camera.setViewport(w, h); - } - else if (resizeMode === ResizeMode.Fit) { - var sourceWidth = canvas.width, sourceHeight = canvas.height; - var targetWidth = this.camera.viewportWidth, targetHeight = this.camera.viewportHeight; - var targetRatio = targetHeight / targetWidth; - var sourceRatio = sourceHeight / sourceWidth; - var scale = targetRatio < sourceRatio ? targetWidth / sourceWidth : targetHeight / sourceHeight; - this.camera.viewportWidth = sourceWidth * scale; - this.camera.viewportHeight = sourceHeight * scale; - } - this.camera.update(); - }; - SceneRenderer.prototype.enableRenderer = function (renderer) { - if (this.activeRenderer === renderer) - return; - this.end(); - if (renderer instanceof webgl.PolygonBatcher) { - this.batcherShader.bind(); - this.batcherShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); - this.batcherShader.setUniformi("u_texture", 0); - this.batcher.begin(this.batcherShader); - this.activeRenderer = this.batcher; - } - else if (renderer instanceof webgl.ShapeRenderer) { - this.shapesShader.bind(); - this.shapesShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); - this.shapes.begin(this.shapesShader); - this.activeRenderer = this.shapes; - } - else { - this.activeRenderer = this.skeletonDebugRenderer; - } - }; - SceneRenderer.prototype.dispose = function () { - this.batcher.dispose(); - this.batcherShader.dispose(); - this.shapes.dispose(); - this.shapesShader.dispose(); - this.skeletonDebugRenderer.dispose(); - }; - return SceneRenderer; - }()); - webgl.SceneRenderer = SceneRenderer; - (function (ResizeMode) { - ResizeMode[ResizeMode["Stretch"] = 0] = "Stretch"; - ResizeMode[ResizeMode["Expand"] = 1] = "Expand"; - ResizeMode[ResizeMode["Fit"] = 2] = "Fit"; - })(webgl.ResizeMode || (webgl.ResizeMode = {})); - var ResizeMode = webgl.ResizeMode; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var SceneRenderer = (function () { + function SceneRenderer(canvas, context, twoColorTint) { + if (twoColorTint === void 0) { twoColorTint = true; } + this.twoColorTint = false; + this.activeRenderer = null; + this.QUAD = [ + 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, + ]; + this.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + this.WHITE = new spine.Color(1, 1, 1, 1); + this.canvas = canvas; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.twoColorTint = twoColorTint; + this.camera = new webgl.OrthoCamera(canvas.width, canvas.height); + this.batcherShader = twoColorTint ? webgl.Shader.newTwoColoredTextured(this.context) : webgl.Shader.newColoredTextured(this.context); + this.batcher = new webgl.PolygonBatcher(this.context, twoColorTint); + this.shapesShader = webgl.Shader.newColored(this.context); + this.shapes = new webgl.ShapeRenderer(this.context); + this.skeletonRenderer = new webgl.SkeletonRenderer(this.context, twoColorTint); + this.skeletonDebugRenderer = new webgl.SkeletonDebugRenderer(this.context); + } + SceneRenderer.prototype.begin = function () { + this.camera.update(); + this.enableRenderer(this.batcher); + }; + SceneRenderer.prototype.drawSkeleton = function (skeleton, premultipliedAlpha) { + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + this.enableRenderer(this.batcher); + this.skeletonRenderer.premultipliedAlpha = premultipliedAlpha; + this.skeletonRenderer.draw(this.batcher, skeleton); + }; + SceneRenderer.prototype.drawSkeletonDebug = function (skeleton, premultipliedAlpha, ignoredBones) { + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + if (ignoredBones === void 0) { ignoredBones = null; } + this.enableRenderer(this.shapes); + this.skeletonDebugRenderer.premultipliedAlpha = premultipliedAlpha; + this.skeletonDebugRenderer.draw(this.shapes, skeleton, ignoredBones); + }; + SceneRenderer.prototype.drawTexture = function (texture, x, y, width, height, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.batcher); + if (color === null) + color = this.WHITE; + var quad = this.QUAD; + var i = 0; + quad[i++] = x; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); + }; + SceneRenderer.prototype.drawTextureRotated = function (texture, x, y, width, height, pivotX, pivotY, angle, color, premultipliedAlpha) { + if (color === void 0) { color = null; } + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + this.enableRenderer(this.batcher); + if (color === null) + color = this.WHITE; + var quad = this.QUAD; + var worldOriginX = x + pivotX; + var worldOriginY = y + pivotY; + var fx = -pivotX; + var fy = -pivotY; + var fx2 = width - pivotX; + var fy2 = height - pivotY; + var p1x = fx; + var p1y = fy; + var p2x = fx; + var p2y = fy2; + var p3x = fx2; + var p3y = fy2; + var p4x = fx2; + var p4y = fy; + var x1 = 0; + var y1 = 0; + var x2 = 0; + var y2 = 0; + var x3 = 0; + var y3 = 0; + var x4 = 0; + var y4 = 0; + if (angle != 0) { + var cos = spine.MathUtils.cosDeg(angle); + var sin = spine.MathUtils.sinDeg(angle); + x1 = cos * p1x - sin * p1y; + y1 = sin * p1x + cos * p1y; + x4 = cos * p2x - sin * p2y; + y4 = sin * p2x + cos * p2y; + x3 = cos * p3x - sin * p3y; + y3 = sin * p3x + cos * p3y; + x2 = x3 + (x1 - x4); + y2 = y3 + (y1 - y4); + } + else { + x1 = p1x; + y1 = p1y; + x4 = p2x; + y4 = p2y; + x3 = p3x; + y3 = p3y; + x2 = p4x; + y2 = p4y; + } + x1 += worldOriginX; + y1 += worldOriginY; + x2 += worldOriginX; + y2 += worldOriginY; + x3 += worldOriginX; + y3 += worldOriginY; + x4 += worldOriginX; + y4 += worldOriginY; + var i = 0; + quad[i++] = x1; + quad[i++] = y1; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x2; + quad[i++] = y2; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x3; + quad[i++] = y3; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x4; + quad[i++] = y4; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); + }; + SceneRenderer.prototype.drawRegion = function (region, x, y, width, height, color, premultipliedAlpha) { + if (color === void 0) { color = null; } + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + this.enableRenderer(this.batcher); + if (color === null) + color = this.WHITE; + var quad = this.QUAD; + var i = 0; + quad[i++] = x; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u; + quad[i++] = region.v2; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u2; + quad[i++] = region.v2; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u2; + quad[i++] = region.v; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u; + quad[i++] = region.v; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + this.batcher.draw(region.texture, quad, this.QUAD_TRIANGLES); + }; + SceneRenderer.prototype.line = function (x, y, x2, y2, color, color2) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + this.enableRenderer(this.shapes); + this.shapes.line(x, y, x2, y2, color); + }; + SceneRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + this.enableRenderer(this.shapes); + this.shapes.triangle(filled, x, y, x2, y2, x3, y3, color, color2, color3); + }; + SceneRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + if (color4 === void 0) { color4 = null; } + this.enableRenderer(this.shapes); + this.shapes.quad(filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4); + }; + SceneRenderer.prototype.rect = function (filled, x, y, width, height, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.rect(filled, x, y, width, height, color); + }; + SceneRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.rectLine(filled, x1, y1, x2, y2, width, color); + }; + SceneRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.polygon(polygonVertices, offset, count, color); + }; + SceneRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { + if (color === void 0) { color = null; } + if (segments === void 0) { segments = 0; } + this.enableRenderer(this.shapes); + this.shapes.circle(filled, x, y, radius, color, segments); + }; + SceneRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color); + }; + SceneRenderer.prototype.end = function () { + if (this.activeRenderer === this.batcher) + this.batcher.end(); + else if (this.activeRenderer === this.shapes) + this.shapes.end(); + this.activeRenderer = null; + }; + SceneRenderer.prototype.resize = function (resizeMode) { + var canvas = this.canvas; + var w = canvas.clientWidth; + var h = canvas.clientHeight; + if (canvas.width != w || canvas.height != h) { + canvas.width = w; + canvas.height = h; + } + this.context.gl.viewport(0, 0, canvas.width, canvas.height); + if (resizeMode === ResizeMode.Stretch) { + } + else if (resizeMode === ResizeMode.Expand) { + this.camera.setViewport(w, h); + } + else if (resizeMode === ResizeMode.Fit) { + var sourceWidth = canvas.width, sourceHeight = canvas.height; + var targetWidth = this.camera.viewportWidth, targetHeight = this.camera.viewportHeight; + var targetRatio = targetHeight / targetWidth; + var sourceRatio = sourceHeight / sourceWidth; + var scale = targetRatio < sourceRatio ? targetWidth / sourceWidth : targetHeight / sourceHeight; + this.camera.viewportWidth = sourceWidth * scale; + this.camera.viewportHeight = sourceHeight * scale; + } + this.camera.update(); + }; + SceneRenderer.prototype.enableRenderer = function (renderer) { + if (this.activeRenderer === renderer) + return; + this.end(); + if (renderer instanceof webgl.PolygonBatcher) { + this.batcherShader.bind(); + this.batcherShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); + this.batcherShader.setUniformi("u_texture", 0); + this.batcher.begin(this.batcherShader); + this.activeRenderer = this.batcher; + } + else if (renderer instanceof webgl.ShapeRenderer) { + this.shapesShader.bind(); + this.shapesShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); + this.shapes.begin(this.shapesShader); + this.activeRenderer = this.shapes; + } + else { + this.activeRenderer = this.skeletonDebugRenderer; + } + }; + SceneRenderer.prototype.dispose = function () { + this.batcher.dispose(); + this.batcherShader.dispose(); + this.shapes.dispose(); + this.shapesShader.dispose(); + this.skeletonDebugRenderer.dispose(); + }; + return SceneRenderer; + }()); + webgl.SceneRenderer = SceneRenderer; + (function (ResizeMode) { + ResizeMode[ResizeMode["Stretch"] = 0] = "Stretch"; + ResizeMode[ResizeMode["Expand"] = 1] = "Expand"; + ResizeMode[ResizeMode["Fit"] = 2] = "Fit"; + })(webgl.ResizeMode || (webgl.ResizeMode = {})); + var ResizeMode = webgl.ResizeMode; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Shader = (function () { - function Shader(context, vertexShader, fragmentShader) { - this.vertexShader = vertexShader; - this.fragmentShader = fragmentShader; - this.vs = null; - this.fs = null; - this.program = null; - this.tmp2x2 = new Float32Array(2 * 2); - this.tmp3x3 = new Float32Array(3 * 3); - this.tmp4x4 = new Float32Array(4 * 4); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.context.addRestorable(this); - this.compile(); - } - Shader.prototype.getProgram = function () { return this.program; }; - Shader.prototype.getVertexShader = function () { return this.vertexShader; }; - Shader.prototype.getFragmentShader = function () { return this.fragmentShader; }; - Shader.prototype.compile = function () { - var gl = this.context.gl; - try { - this.vs = this.compileShader(gl.VERTEX_SHADER, this.vertexShader); - this.fs = this.compileShader(gl.FRAGMENT_SHADER, this.fragmentShader); - this.program = this.compileProgram(this.vs, this.fs); - } - catch (e) { - this.dispose(); - throw e; - } - }; - Shader.prototype.compileShader = function (type, source) { - var gl = this.context.gl; - var shader = gl.createShader(type); - gl.shaderSource(shader, source); - gl.compileShader(shader); - if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { - var error = "Couldn't compile shader: " + gl.getShaderInfoLog(shader); - gl.deleteShader(shader); - if (!gl.isContextLost()) - throw new Error(error); - } - return shader; - }; - Shader.prototype.compileProgram = function (vs, fs) { - var gl = this.context.gl; - var program = gl.createProgram(); - gl.attachShader(program, vs); - gl.attachShader(program, fs); - gl.linkProgram(program); - if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { - var error = "Couldn't compile shader program: " + gl.getProgramInfoLog(program); - gl.deleteProgram(program); - if (!gl.isContextLost()) - throw new Error(error); - } - return program; - }; - Shader.prototype.restore = function () { - this.compile(); - }; - Shader.prototype.bind = function () { - this.context.gl.useProgram(this.program); - }; - Shader.prototype.unbind = function () { - this.context.gl.useProgram(null); - }; - Shader.prototype.setUniformi = function (uniform, value) { - this.context.gl.uniform1i(this.getUniformLocation(uniform), value); - }; - Shader.prototype.setUniformf = function (uniform, value) { - this.context.gl.uniform1f(this.getUniformLocation(uniform), value); - }; - Shader.prototype.setUniform2f = function (uniform, value, value2) { - this.context.gl.uniform2f(this.getUniformLocation(uniform), value, value2); - }; - Shader.prototype.setUniform3f = function (uniform, value, value2, value3) { - this.context.gl.uniform3f(this.getUniformLocation(uniform), value, value2, value3); - }; - Shader.prototype.setUniform4f = function (uniform, value, value2, value3, value4) { - this.context.gl.uniform4f(this.getUniformLocation(uniform), value, value2, value3, value4); - }; - Shader.prototype.setUniform2x2f = function (uniform, value) { - var gl = this.context.gl; - this.tmp2x2.set(value); - gl.uniformMatrix2fv(this.getUniformLocation(uniform), false, this.tmp2x2); - }; - Shader.prototype.setUniform3x3f = function (uniform, value) { - var gl = this.context.gl; - this.tmp3x3.set(value); - gl.uniformMatrix3fv(this.getUniformLocation(uniform), false, this.tmp3x3); - }; - Shader.prototype.setUniform4x4f = function (uniform, value) { - var gl = this.context.gl; - this.tmp4x4.set(value); - gl.uniformMatrix4fv(this.getUniformLocation(uniform), false, this.tmp4x4); - }; - Shader.prototype.getUniformLocation = function (uniform) { - var gl = this.context.gl; - var location = gl.getUniformLocation(this.program, uniform); - if (!location && !gl.isContextLost()) - throw new Error("Couldn't find location for uniform " + uniform); - return location; - }; - Shader.prototype.getAttributeLocation = function (attribute) { - var gl = this.context.gl; - var location = gl.getAttribLocation(this.program, attribute); - if (location == -1 && !gl.isContextLost()) - throw new Error("Couldn't find location for attribute " + attribute); - return location; - }; - Shader.prototype.dispose = function () { - this.context.removeRestorable(this); - var gl = this.context.gl; - if (this.vs) { - gl.deleteShader(this.vs); - this.vs = null; - } - if (this.fs) { - gl.deleteShader(this.fs); - this.fs = null; - } - if (this.program) { - gl.deleteProgram(this.program); - this.program = null; - } - }; - Shader.newColoredTextured = function (context) { - var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; - var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color * texture2D(u_texture, v_texCoords);\n\t\t\t\t}\n\t\t\t"; - return new Shader(context, vs, fs); - }; - Shader.newTwoColoredTextured = function (context) { - var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR2 + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_light;\n\t\t\t\tvarying vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_light = " + Shader.COLOR + ";\n\t\t\t\t\tv_dark = " + Shader.COLOR2 + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; - var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_light;\n\t\t\t\tvarying LOWP vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tvec4 texColor = texture2D(u_texture, v_texCoords);\n\t\t\t\t\tfloat alpha = texColor.a * v_light.a;\n\t\t\t\t\tgl_FragColor.a = alpha;\n\t\t\t\t\tgl_FragColor.rgb = (1.0 - texColor.rgb) * v_dark.rgb * alpha + texColor.rgb * v_light.rgb;\n\t\t\t\t}\n\t\t\t"; - return new Shader(context, vs, fs); - }; - Shader.newColored = function (context) { - var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; - var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color;\n\t\t\t\t}\n\t\t\t"; - return new Shader(context, vs, fs); - }; - Shader.MVP_MATRIX = "u_projTrans"; - Shader.POSITION = "a_position"; - Shader.COLOR = "a_color"; - Shader.COLOR2 = "a_color2"; - Shader.TEXCOORDS = "a_texCoords"; - Shader.SAMPLER = "u_texture"; - return Shader; - }()); - webgl.Shader = Shader; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Shader = (function () { + function Shader(context, vertexShader, fragmentShader) { + this.vertexShader = vertexShader; + this.fragmentShader = fragmentShader; + this.vs = null; + this.fs = null; + this.program = null; + this.tmp2x2 = new Float32Array(2 * 2); + this.tmp3x3 = new Float32Array(3 * 3); + this.tmp4x4 = new Float32Array(4 * 4); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.context.addRestorable(this); + this.compile(); + } + Shader.prototype.getProgram = function () { return this.program; }; + Shader.prototype.getVertexShader = function () { return this.vertexShader; }; + Shader.prototype.getFragmentShader = function () { return this.fragmentShader; }; + Shader.prototype.compile = function () { + var gl = this.context.gl; + try { + this.vs = this.compileShader(gl.VERTEX_SHADER, this.vertexShader); + this.fs = this.compileShader(gl.FRAGMENT_SHADER, this.fragmentShader); + this.program = this.compileProgram(this.vs, this.fs); + } + catch (e) { + this.dispose(); + throw e; + } + }; + Shader.prototype.compileShader = function (type, source) { + var gl = this.context.gl; + var shader = gl.createShader(type); + gl.shaderSource(shader, source); + gl.compileShader(shader); + if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { + var error = "Couldn't compile shader: " + gl.getShaderInfoLog(shader); + gl.deleteShader(shader); + if (!gl.isContextLost()) + throw new Error(error); + } + return shader; + }; + Shader.prototype.compileProgram = function (vs, fs) { + var gl = this.context.gl; + var program = gl.createProgram(); + gl.attachShader(program, vs); + gl.attachShader(program, fs); + gl.linkProgram(program); + if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { + var error = "Couldn't compile shader program: " + gl.getProgramInfoLog(program); + gl.deleteProgram(program); + if (!gl.isContextLost()) + throw new Error(error); + } + return program; + }; + Shader.prototype.restore = function () { + this.compile(); + }; + Shader.prototype.bind = function () { + this.context.gl.useProgram(this.program); + }; + Shader.prototype.unbind = function () { + this.context.gl.useProgram(null); + }; + Shader.prototype.setUniformi = function (uniform, value) { + this.context.gl.uniform1i(this.getUniformLocation(uniform), value); + }; + Shader.prototype.setUniformf = function (uniform, value) { + this.context.gl.uniform1f(this.getUniformLocation(uniform), value); + }; + Shader.prototype.setUniform2f = function (uniform, value, value2) { + this.context.gl.uniform2f(this.getUniformLocation(uniform), value, value2); + }; + Shader.prototype.setUniform3f = function (uniform, value, value2, value3) { + this.context.gl.uniform3f(this.getUniformLocation(uniform), value, value2, value3); + }; + Shader.prototype.setUniform4f = function (uniform, value, value2, value3, value4) { + this.context.gl.uniform4f(this.getUniformLocation(uniform), value, value2, value3, value4); + }; + Shader.prototype.setUniform2x2f = function (uniform, value) { + var gl = this.context.gl; + this.tmp2x2.set(value); + gl.uniformMatrix2fv(this.getUniformLocation(uniform), false, this.tmp2x2); + }; + Shader.prototype.setUniform3x3f = function (uniform, value) { + var gl = this.context.gl; + this.tmp3x3.set(value); + gl.uniformMatrix3fv(this.getUniformLocation(uniform), false, this.tmp3x3); + }; + Shader.prototype.setUniform4x4f = function (uniform, value) { + var gl = this.context.gl; + this.tmp4x4.set(value); + gl.uniformMatrix4fv(this.getUniformLocation(uniform), false, this.tmp4x4); + }; + Shader.prototype.getUniformLocation = function (uniform) { + var gl = this.context.gl; + var location = gl.getUniformLocation(this.program, uniform); + if (!location && !gl.isContextLost()) + throw new Error("Couldn't find location for uniform " + uniform); + return location; + }; + Shader.prototype.getAttributeLocation = function (attribute) { + var gl = this.context.gl; + var location = gl.getAttribLocation(this.program, attribute); + if (location == -1 && !gl.isContextLost()) + throw new Error("Couldn't find location for attribute " + attribute); + return location; + }; + Shader.prototype.dispose = function () { + this.context.removeRestorable(this); + var gl = this.context.gl; + if (this.vs) { + gl.deleteShader(this.vs); + this.vs = null; + } + if (this.fs) { + gl.deleteShader(this.fs); + this.fs = null; + } + if (this.program) { + gl.deleteProgram(this.program); + this.program = null; + } + }; + Shader.newColoredTextured = function (context) { + var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; + var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color * texture2D(u_texture, v_texCoords);\n\t\t\t\t}\n\t\t\t"; + return new Shader(context, vs, fs); + }; + Shader.newTwoColoredTextured = function (context) { + var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR2 + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_light;\n\t\t\t\tvarying vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_light = " + Shader.COLOR + ";\n\t\t\t\t\tv_dark = " + Shader.COLOR2 + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; + var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_light;\n\t\t\t\tvarying LOWP vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tvec4 texColor = texture2D(u_texture, v_texCoords);\n\t\t\t\t\tfloat alpha = texColor.a * v_light.a;\n\t\t\t\t\tgl_FragColor.a = alpha;\n\t\t\t\t\tgl_FragColor.rgb = (1.0 - texColor.rgb) * v_dark.rgb * alpha + texColor.rgb * v_light.rgb;\n\t\t\t\t}\n\t\t\t"; + return new Shader(context, vs, fs); + }; + Shader.newColored = function (context) { + var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; + var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color;\n\t\t\t\t}\n\t\t\t"; + return new Shader(context, vs, fs); + }; + Shader.MVP_MATRIX = "u_projTrans"; + Shader.POSITION = "a_position"; + Shader.COLOR = "a_color"; + Shader.COLOR2 = "a_color2"; + Shader.TEXCOORDS = "a_texCoords"; + Shader.SAMPLER = "u_texture"; + return Shader; + }()); + webgl.Shader = Shader; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var ShapeRenderer = (function () { - function ShapeRenderer(context, maxVertices) { - if (maxVertices === void 0) { maxVertices = 10920; } - this.isDrawing = false; - this.shapeType = ShapeType.Filled; - this.color = new spine.Color(1, 1, 1, 1); - this.vertexIndex = 0; - this.tmp = new spine.Vector2(); - if (maxVertices > 10920) - throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.mesh = new webgl.Mesh(context, [new webgl.Position2Attribute(), new webgl.ColorAttribute()], maxVertices, 0); - this.srcBlend = this.context.gl.SRC_ALPHA; - this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; - } - ShapeRenderer.prototype.begin = function (shader) { - if (this.isDrawing) - throw new Error("ShapeRenderer.begin() has already been called"); - this.shader = shader; - this.vertexIndex = 0; - this.isDrawing = true; - var gl = this.context.gl; - gl.enable(gl.BLEND); - gl.blendFunc(this.srcBlend, this.dstBlend); - }; - ShapeRenderer.prototype.setBlendMode = function (srcBlend, dstBlend) { - var gl = this.context.gl; - this.srcBlend = srcBlend; - this.dstBlend = dstBlend; - if (this.isDrawing) { - this.flush(); - gl.blendFunc(this.srcBlend, this.dstBlend); - } - }; - ShapeRenderer.prototype.setColor = function (color) { - this.color.setFromColor(color); - }; - ShapeRenderer.prototype.setColorWith = function (r, g, b, a) { - this.color.set(r, g, b, a); - }; - ShapeRenderer.prototype.point = function (x, y, color) { - if (color === void 0) { color = null; } - this.check(ShapeType.Point, 1); - if (color === null) - color = this.color; - this.vertex(x, y, color); - }; - ShapeRenderer.prototype.line = function (x, y, x2, y2, color) { - if (color === void 0) { color = null; } - this.check(ShapeType.Line, 2); - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - if (color === null) - color = this.color; - this.vertex(x, y, color); - this.vertex(x2, y2, color); - }; - ShapeRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - if (color === null) - color = this.color; - if (color2 === null) - color2 = this.color; - if (color3 === null) - color3 = this.color; - if (filled) { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x3, y3, color3); - } - else { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x2, y2, color); - this.vertex(x3, y3, color2); - this.vertex(x3, y3, color); - this.vertex(x, y, color2); - } - }; - ShapeRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - if (color4 === void 0) { color4 = null; } - this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - if (color === null) - color = this.color; - if (color2 === null) - color2 = this.color; - if (color3 === null) - color3 = this.color; - if (color4 === null) - color4 = this.color; - if (filled) { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x3, y3, color3); - this.vertex(x3, y3, color3); - this.vertex(x4, y4, color4); - this.vertex(x, y, color); - } - else { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x2, y2, color2); - this.vertex(x3, y3, color3); - this.vertex(x3, y3, color3); - this.vertex(x4, y4, color4); - this.vertex(x4, y4, color4); - this.vertex(x, y, color); - } - }; - ShapeRenderer.prototype.rect = function (filled, x, y, width, height, color) { - if (color === void 0) { color = null; } - this.quad(filled, x, y, x + width, y, x + width, y + height, x, y + height, color, color, color, color); - }; - ShapeRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { - if (color === void 0) { color = null; } - this.check(filled ? ShapeType.Filled : ShapeType.Line, 8); - if (color === null) - color = this.color; - var t = this.tmp.set(y2 - y1, x1 - x2); - t.normalize(); - width *= 0.5; - var tx = t.x * width; - var ty = t.y * width; - if (!filled) { - this.vertex(x1 + tx, y1 + ty, color); - this.vertex(x1 - tx, y1 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x2 - tx, y2 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x1 + tx, y1 + ty, color); - this.vertex(x2 - tx, y2 - ty, color); - this.vertex(x1 - tx, y1 - ty, color); - } - else { - this.vertex(x1 + tx, y1 + ty, color); - this.vertex(x1 - tx, y1 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x2 - tx, y2 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x1 - tx, y1 - ty, color); - } - }; - ShapeRenderer.prototype.x = function (x, y, size) { - this.line(x - size, y - size, x + size, y + size); - this.line(x - size, y + size, x + size, y - size); - }; - ShapeRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { - if (color === void 0) { color = null; } - if (count < 3) - throw new Error("Polygon must contain at least 3 vertices"); - this.check(ShapeType.Line, count * 2); - if (color === null) - color = this.color; - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - offset <<= 1; - count <<= 1; - var firstX = polygonVertices[offset]; - var firstY = polygonVertices[offset + 1]; - var last = offset + count; - for (var i = offset, n = offset + count - 2; i < n; i += 2) { - var x1 = polygonVertices[i]; - var y1 = polygonVertices[i + 1]; - var x2 = 0; - var y2 = 0; - if (i + 2 >= last) { - x2 = firstX; - y2 = firstY; - } - else { - x2 = polygonVertices[i + 2]; - y2 = polygonVertices[i + 3]; - } - this.vertex(x1, y1, color); - this.vertex(x2, y2, color); - } - }; - ShapeRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { - if (color === void 0) { color = null; } - if (segments === void 0) { segments = 0; } - if (segments === 0) - segments = Math.max(1, (6 * spine.MathUtils.cbrt(radius)) | 0); - if (segments <= 0) - throw new Error("segments must be > 0."); - if (color === null) - color = this.color; - var angle = 2 * spine.MathUtils.PI / segments; - var cos = Math.cos(angle); - var sin = Math.sin(angle); - var cx = radius, cy = 0; - if (!filled) { - this.check(ShapeType.Line, segments * 2 + 2); - for (var i = 0; i < segments; i++) { - this.vertex(x + cx, y + cy, color); - var temp_1 = cx; - cx = cos * cx - sin * cy; - cy = sin * temp_1 + cos * cy; - this.vertex(x + cx, y + cy, color); - } - this.vertex(x + cx, y + cy, color); - } - else { - this.check(ShapeType.Filled, segments * 3 + 3); - segments--; - for (var i = 0; i < segments; i++) { - this.vertex(x, y, color); - this.vertex(x + cx, y + cy, color); - var temp_2 = cx; - cx = cos * cx - sin * cy; - cy = sin * temp_2 + cos * cy; - this.vertex(x + cx, y + cy, color); - } - this.vertex(x, y, color); - this.vertex(x + cx, y + cy, color); - } - var temp = cx; - cx = radius; - cy = 0; - this.vertex(x + cx, y + cy, color); - }; - ShapeRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { - if (color === void 0) { color = null; } - this.check(ShapeType.Line, segments * 2 + 2); - if (color === null) - color = this.color; - var subdiv_step = 1 / segments; - var subdiv_step2 = subdiv_step * subdiv_step; - var subdiv_step3 = subdiv_step * subdiv_step * subdiv_step; - var pre1 = 3 * subdiv_step; - var pre2 = 3 * subdiv_step2; - var pre4 = 6 * subdiv_step2; - var pre5 = 6 * subdiv_step3; - var tmp1x = x1 - cx1 * 2 + cx2; - var tmp1y = y1 - cy1 * 2 + cy2; - var tmp2x = (cx1 - cx2) * 3 - x1 + x2; - var tmp2y = (cy1 - cy2) * 3 - y1 + y2; - var fx = x1; - var fy = y1; - var dfx = (cx1 - x1) * pre1 + tmp1x * pre2 + tmp2x * subdiv_step3; - var dfy = (cy1 - y1) * pre1 + tmp1y * pre2 + tmp2y * subdiv_step3; - var ddfx = tmp1x * pre4 + tmp2x * pre5; - var ddfy = tmp1y * pre4 + tmp2y * pre5; - var dddfx = tmp2x * pre5; - var dddfy = tmp2y * pre5; - while (segments-- > 0) { - this.vertex(fx, fy, color); - fx += dfx; - fy += dfy; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - this.vertex(fx, fy, color); - } - this.vertex(fx, fy, color); - this.vertex(x2, y2, color); - }; - ShapeRenderer.prototype.vertex = function (x, y, color) { - var idx = this.vertexIndex; - var vertices = this.mesh.getVertices(); - vertices[idx++] = x; - vertices[idx++] = y; - vertices[idx++] = color.r; - vertices[idx++] = color.g; - vertices[idx++] = color.b; - vertices[idx++] = color.a; - this.vertexIndex = idx; - }; - ShapeRenderer.prototype.end = function () { - if (!this.isDrawing) - throw new Error("ShapeRenderer.begin() has not been called"); - this.flush(); - this.context.gl.disable(this.context.gl.BLEND); - this.isDrawing = false; - }; - ShapeRenderer.prototype.flush = function () { - if (this.vertexIndex == 0) - return; - this.mesh.setVerticesLength(this.vertexIndex); - this.mesh.draw(this.shader, this.shapeType); - this.vertexIndex = 0; - }; - ShapeRenderer.prototype.check = function (shapeType, numVertices) { - if (!this.isDrawing) - throw new Error("ShapeRenderer.begin() has not been called"); - if (this.shapeType == shapeType) { - if (this.mesh.maxVertices() - this.mesh.numVertices() < numVertices) - this.flush(); - else - return; - } - else { - this.flush(); - this.shapeType = shapeType; - } - }; - ShapeRenderer.prototype.dispose = function () { - this.mesh.dispose(); - }; - return ShapeRenderer; - }()); - webgl.ShapeRenderer = ShapeRenderer; - (function (ShapeType) { - ShapeType[ShapeType["Point"] = 0] = "Point"; - ShapeType[ShapeType["Line"] = 1] = "Line"; - ShapeType[ShapeType["Filled"] = 4] = "Filled"; - })(webgl.ShapeType || (webgl.ShapeType = {})); - var ShapeType = webgl.ShapeType; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var ShapeRenderer = (function () { + function ShapeRenderer(context, maxVertices) { + if (maxVertices === void 0) { maxVertices = 10920; } + this.isDrawing = false; + this.shapeType = ShapeType.Filled; + this.color = new spine.Color(1, 1, 1, 1); + this.vertexIndex = 0; + this.tmp = new spine.Vector2(); + if (maxVertices > 10920) + throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.mesh = new webgl.Mesh(context, [new webgl.Position2Attribute(), new webgl.ColorAttribute()], maxVertices, 0); + this.srcBlend = this.context.gl.SRC_ALPHA; + this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; + } + ShapeRenderer.prototype.begin = function (shader) { + if (this.isDrawing) + throw new Error("ShapeRenderer.begin() has already been called"); + this.shader = shader; + this.vertexIndex = 0; + this.isDrawing = true; + var gl = this.context.gl; + gl.enable(gl.BLEND); + gl.blendFunc(this.srcBlend, this.dstBlend); + }; + ShapeRenderer.prototype.setBlendMode = function (srcBlend, dstBlend) { + var gl = this.context.gl; + this.srcBlend = srcBlend; + this.dstBlend = dstBlend; + if (this.isDrawing) { + this.flush(); + gl.blendFunc(this.srcBlend, this.dstBlend); + } + }; + ShapeRenderer.prototype.setColor = function (color) { + this.color.setFromColor(color); + }; + ShapeRenderer.prototype.setColorWith = function (r, g, b, a) { + this.color.set(r, g, b, a); + }; + ShapeRenderer.prototype.point = function (x, y, color) { + if (color === void 0) { color = null; } + this.check(ShapeType.Point, 1); + if (color === null) + color = this.color; + this.vertex(x, y, color); + }; + ShapeRenderer.prototype.line = function (x, y, x2, y2, color) { + if (color === void 0) { color = null; } + this.check(ShapeType.Line, 2); + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + if (color === null) + color = this.color; + this.vertex(x, y, color); + this.vertex(x2, y2, color); + }; + ShapeRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + if (color === null) + color = this.color; + if (color2 === null) + color2 = this.color; + if (color3 === null) + color3 = this.color; + if (filled) { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x3, y3, color3); + } + else { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x2, y2, color); + this.vertex(x3, y3, color2); + this.vertex(x3, y3, color); + this.vertex(x, y, color2); + } + }; + ShapeRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + if (color4 === void 0) { color4 = null; } + this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + if (color === null) + color = this.color; + if (color2 === null) + color2 = this.color; + if (color3 === null) + color3 = this.color; + if (color4 === null) + color4 = this.color; + if (filled) { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x3, y3, color3); + this.vertex(x3, y3, color3); + this.vertex(x4, y4, color4); + this.vertex(x, y, color); + } + else { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x2, y2, color2); + this.vertex(x3, y3, color3); + this.vertex(x3, y3, color3); + this.vertex(x4, y4, color4); + this.vertex(x4, y4, color4); + this.vertex(x, y, color); + } + }; + ShapeRenderer.prototype.rect = function (filled, x, y, width, height, color) { + if (color === void 0) { color = null; } + this.quad(filled, x, y, x + width, y, x + width, y + height, x, y + height, color, color, color, color); + }; + ShapeRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { + if (color === void 0) { color = null; } + this.check(filled ? ShapeType.Filled : ShapeType.Line, 8); + if (color === null) + color = this.color; + var t = this.tmp.set(y2 - y1, x1 - x2); + t.normalize(); + width *= 0.5; + var tx = t.x * width; + var ty = t.y * width; + if (!filled) { + this.vertex(x1 + tx, y1 + ty, color); + this.vertex(x1 - tx, y1 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x2 - tx, y2 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x1 + tx, y1 + ty, color); + this.vertex(x2 - tx, y2 - ty, color); + this.vertex(x1 - tx, y1 - ty, color); + } + else { + this.vertex(x1 + tx, y1 + ty, color); + this.vertex(x1 - tx, y1 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x2 - tx, y2 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x1 - tx, y1 - ty, color); + } + }; + ShapeRenderer.prototype.x = function (x, y, size) { + this.line(x - size, y - size, x + size, y + size); + this.line(x - size, y + size, x + size, y - size); + }; + ShapeRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { + if (color === void 0) { color = null; } + if (count < 3) + throw new Error("Polygon must contain at least 3 vertices"); + this.check(ShapeType.Line, count * 2); + if (color === null) + color = this.color; + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + offset <<= 1; + count <<= 1; + var firstX = polygonVertices[offset]; + var firstY = polygonVertices[offset + 1]; + var last = offset + count; + for (var i = offset, n = offset + count - 2; i < n; i += 2) { + var x1 = polygonVertices[i]; + var y1 = polygonVertices[i + 1]; + var x2 = 0; + var y2 = 0; + if (i + 2 >= last) { + x2 = firstX; + y2 = firstY; + } + else { + x2 = polygonVertices[i + 2]; + y2 = polygonVertices[i + 3]; + } + this.vertex(x1, y1, color); + this.vertex(x2, y2, color); + } + }; + ShapeRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { + if (color === void 0) { color = null; } + if (segments === void 0) { segments = 0; } + if (segments === 0) + segments = Math.max(1, (6 * spine.MathUtils.cbrt(radius)) | 0); + if (segments <= 0) + throw new Error("segments must be > 0."); + if (color === null) + color = this.color; + var angle = 2 * spine.MathUtils.PI / segments; + var cos = Math.cos(angle); + var sin = Math.sin(angle); + var cx = radius, cy = 0; + if (!filled) { + this.check(ShapeType.Line, segments * 2 + 2); + for (var i = 0; i < segments; i++) { + this.vertex(x + cx, y + cy, color); + var temp_1 = cx; + cx = cos * cx - sin * cy; + cy = sin * temp_1 + cos * cy; + this.vertex(x + cx, y + cy, color); + } + this.vertex(x + cx, y + cy, color); + } + else { + this.check(ShapeType.Filled, segments * 3 + 3); + segments--; + for (var i = 0; i < segments; i++) { + this.vertex(x, y, color); + this.vertex(x + cx, y + cy, color); + var temp_2 = cx; + cx = cos * cx - sin * cy; + cy = sin * temp_2 + cos * cy; + this.vertex(x + cx, y + cy, color); + } + this.vertex(x, y, color); + this.vertex(x + cx, y + cy, color); + } + var temp = cx; + cx = radius; + cy = 0; + this.vertex(x + cx, y + cy, color); + }; + ShapeRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { + if (color === void 0) { color = null; } + this.check(ShapeType.Line, segments * 2 + 2); + if (color === null) + color = this.color; + var subdiv_step = 1 / segments; + var subdiv_step2 = subdiv_step * subdiv_step; + var subdiv_step3 = subdiv_step * subdiv_step * subdiv_step; + var pre1 = 3 * subdiv_step; + var pre2 = 3 * subdiv_step2; + var pre4 = 6 * subdiv_step2; + var pre5 = 6 * subdiv_step3; + var tmp1x = x1 - cx1 * 2 + cx2; + var tmp1y = y1 - cy1 * 2 + cy2; + var tmp2x = (cx1 - cx2) * 3 - x1 + x2; + var tmp2y = (cy1 - cy2) * 3 - y1 + y2; + var fx = x1; + var fy = y1; + var dfx = (cx1 - x1) * pre1 + tmp1x * pre2 + tmp2x * subdiv_step3; + var dfy = (cy1 - y1) * pre1 + tmp1y * pre2 + tmp2y * subdiv_step3; + var ddfx = tmp1x * pre4 + tmp2x * pre5; + var ddfy = tmp1y * pre4 + tmp2y * pre5; + var dddfx = tmp2x * pre5; + var dddfy = tmp2y * pre5; + while (segments-- > 0) { + this.vertex(fx, fy, color); + fx += dfx; + fy += dfy; + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + this.vertex(fx, fy, color); + } + this.vertex(fx, fy, color); + this.vertex(x2, y2, color); + }; + ShapeRenderer.prototype.vertex = function (x, y, color) { + var idx = this.vertexIndex; + var vertices = this.mesh.getVertices(); + vertices[idx++] = x; + vertices[idx++] = y; + vertices[idx++] = color.r; + vertices[idx++] = color.g; + vertices[idx++] = color.b; + vertices[idx++] = color.a; + this.vertexIndex = idx; + }; + ShapeRenderer.prototype.end = function () { + if (!this.isDrawing) + throw new Error("ShapeRenderer.begin() has not been called"); + this.flush(); + this.context.gl.disable(this.context.gl.BLEND); + this.isDrawing = false; + }; + ShapeRenderer.prototype.flush = function () { + if (this.vertexIndex == 0) + return; + this.mesh.setVerticesLength(this.vertexIndex); + this.mesh.draw(this.shader, this.shapeType); + this.vertexIndex = 0; + }; + ShapeRenderer.prototype.check = function (shapeType, numVertices) { + if (!this.isDrawing) + throw new Error("ShapeRenderer.begin() has not been called"); + if (this.shapeType == shapeType) { + if (this.mesh.maxVertices() - this.mesh.numVertices() < numVertices) + this.flush(); + else + return; + } + else { + this.flush(); + this.shapeType = shapeType; + } + }; + ShapeRenderer.prototype.dispose = function () { + this.mesh.dispose(); + }; + return ShapeRenderer; + }()); + webgl.ShapeRenderer = ShapeRenderer; + (function (ShapeType) { + ShapeType[ShapeType["Point"] = 0] = "Point"; + ShapeType[ShapeType["Line"] = 1] = "Line"; + ShapeType[ShapeType["Filled"] = 4] = "Filled"; + })(webgl.ShapeType || (webgl.ShapeType = {})); + var ShapeType = webgl.ShapeType; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var SkeletonDebugRenderer = (function () { - function SkeletonDebugRenderer(context) { - this.boneLineColor = new spine.Color(1, 0, 0, 1); - this.boneOriginColor = new spine.Color(0, 1, 0, 1); - this.attachmentLineColor = new spine.Color(0, 0, 1, 0.5); - this.triangleLineColor = new spine.Color(1, 0.64, 0, 0.5); - this.pathColor = new spine.Color().setFromString("FF7F00"); - this.clipColor = new spine.Color(0.8, 0, 0, 2); - this.aabbColor = new spine.Color(0, 1, 0, 0.5); - this.drawBones = true; - this.drawRegionAttachments = true; - this.drawBoundingBoxes = true; - this.drawMeshHull = true; - this.drawMeshTriangles = true; - this.drawPaths = true; - this.drawSkeletonXY = false; - this.drawClipping = true; - this.premultipliedAlpha = false; - this.scale = 1; - this.boneWidth = 2; - this.bounds = new spine.SkeletonBounds(); - this.temp = new Array(); - this.vertices = spine.Utils.newFloatArray(2 * 1024); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - } - SkeletonDebugRenderer.prototype.draw = function (shapes, skeleton, ignoredBones) { - if (ignoredBones === void 0) { ignoredBones = null; } - var skeletonX = skeleton.x; - var skeletonY = skeleton.y; - var gl = this.context.gl; - var srcFunc = this.premultipliedAlpha ? gl.ONE : gl.SRC_ALPHA; - shapes.setBlendMode(srcFunc, gl.ONE_MINUS_SRC_ALPHA); - var bones = skeleton.bones; - if (this.drawBones) { - shapes.setColor(this.boneLineColor); - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) - continue; - if (bone.parent == null) - continue; - var x = skeletonX + bone.data.length * bone.a + bone.worldX; - var y = skeletonY + bone.data.length * bone.c + bone.worldY; - shapes.rectLine(true, skeletonX + bone.worldX, skeletonY + bone.worldY, x, y, this.boneWidth * this.scale); - } - if (this.drawSkeletonXY) - shapes.x(skeletonX, skeletonY, 4 * this.scale); - } - if (this.drawRegionAttachments) { - shapes.setColor(this.attachmentLineColor); - var slots = skeleton.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.RegionAttachment) { - var regionAttachment = attachment; - var vertices = this.vertices; - regionAttachment.computeWorldVertices(slot.bone, vertices, 0, 2); - shapes.line(vertices[0], vertices[1], vertices[2], vertices[3]); - shapes.line(vertices[2], vertices[3], vertices[4], vertices[5]); - shapes.line(vertices[4], vertices[5], vertices[6], vertices[7]); - shapes.line(vertices[6], vertices[7], vertices[0], vertices[1]); - } - } - } - if (this.drawMeshHull || this.drawMeshTriangles) { - var slots = skeleton.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (!(attachment instanceof spine.MeshAttachment)) - continue; - var mesh = attachment; - var vertices = this.vertices; - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, 2); - var triangles = mesh.triangles; - var hullLength = mesh.hullLength; - if (this.drawMeshTriangles) { - shapes.setColor(this.triangleLineColor); - for (var ii = 0, nn = triangles.length; ii < nn; ii += 3) { - var v1 = triangles[ii] * 2, v2 = triangles[ii + 1] * 2, v3 = triangles[ii + 2] * 2; - shapes.triangle(false, vertices[v1], vertices[v1 + 1], vertices[v2], vertices[v2 + 1], vertices[v3], vertices[v3 + 1]); - } - } - if (this.drawMeshHull && hullLength > 0) { - shapes.setColor(this.attachmentLineColor); - hullLength = (hullLength >> 1) * 2; - var lastX = vertices[hullLength - 2], lastY = vertices[hullLength - 1]; - for (var ii = 0, nn = hullLength; ii < nn; ii += 2) { - var x = vertices[ii], y = vertices[ii + 1]; - shapes.line(x, y, lastX, lastY); - lastX = x; - lastY = y; - } - } - } - } - if (this.drawBoundingBoxes) { - var bounds = this.bounds; - bounds.update(skeleton, true); - shapes.setColor(this.aabbColor); - shapes.rect(false, bounds.minX, bounds.minY, bounds.getWidth(), bounds.getHeight()); - var polygons = bounds.polygons; - var boxes = bounds.boundingBoxes; - for (var i = 0, n = polygons.length; i < n; i++) { - var polygon = polygons[i]; - shapes.setColor(boxes[i].color); - shapes.polygon(polygon, 0, polygon.length); - } - } - if (this.drawPaths) { - var slots = skeleton.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (!(attachment instanceof spine.PathAttachment)) - continue; - var path = attachment; - var nn = path.worldVerticesLength; - var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); - path.computeWorldVertices(slot, 0, nn, world, 0, 2); - var color = this.pathColor; - var x1 = world[2], y1 = world[3], x2 = 0, y2 = 0; - if (path.closed) { - shapes.setColor(color); - var cx1 = world[0], cy1 = world[1], cx2 = world[nn - 2], cy2 = world[nn - 1]; - x2 = world[nn - 4]; - y2 = world[nn - 3]; - shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); - shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); - shapes.line(x1, y1, cx1, cy1); - shapes.line(x2, y2, cx2, cy2); - } - nn -= 4; - for (var ii = 4; ii < nn; ii += 6) { - var cx1 = world[ii], cy1 = world[ii + 1], cx2 = world[ii + 2], cy2 = world[ii + 3]; - x2 = world[ii + 4]; - y2 = world[ii + 5]; - shapes.setColor(color); - shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); - shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); - shapes.line(x1, y1, cx1, cy1); - shapes.line(x2, y2, cx2, cy2); - x1 = x2; - y1 = y2; - } - } - } - if (this.drawBones) { - shapes.setColor(this.boneOriginColor); - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) - continue; - shapes.circle(true, skeletonX + bone.worldX, skeletonY + bone.worldY, 3 * this.scale, SkeletonDebugRenderer.GREEN, 8); - } - } - if (this.drawClipping) { - var slots = skeleton.slots; - shapes.setColor(this.clipColor); - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (!(attachment instanceof spine.ClippingAttachment)) - continue; - var clip = attachment; - var nn = clip.worldVerticesLength; - var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); - clip.computeWorldVertices(slot, 0, nn, world, 0, 2); - for (var i_5 = 0, n_3 = world.length; i_5 < n_3; i_5 += 2) { - var x = world[i_5]; - var y = world[i_5 + 1]; - var x2 = world[(i_5 + 2) % world.length]; - var y2 = world[(i_5 + 3) % world.length]; - shapes.line(x, y, x2, y2); - } - } - } - }; - SkeletonDebugRenderer.prototype.dispose = function () { - }; - SkeletonDebugRenderer.LIGHT_GRAY = new spine.Color(192 / 255, 192 / 255, 192 / 255, 1); - SkeletonDebugRenderer.GREEN = new spine.Color(0, 1, 0, 1); - return SkeletonDebugRenderer; - }()); - webgl.SkeletonDebugRenderer = SkeletonDebugRenderer; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var SkeletonDebugRenderer = (function () { + function SkeletonDebugRenderer(context) { + this.boneLineColor = new spine.Color(1, 0, 0, 1); + this.boneOriginColor = new spine.Color(0, 1, 0, 1); + this.attachmentLineColor = new spine.Color(0, 0, 1, 0.5); + this.triangleLineColor = new spine.Color(1, 0.64, 0, 0.5); + this.pathColor = new spine.Color().setFromString("FF7F00"); + this.clipColor = new spine.Color(0.8, 0, 0, 2); + this.aabbColor = new spine.Color(0, 1, 0, 0.5); + this.drawBones = true; + this.drawRegionAttachments = true; + this.drawBoundingBoxes = true; + this.drawMeshHull = true; + this.drawMeshTriangles = true; + this.drawPaths = true; + this.drawSkeletonXY = false; + this.drawClipping = true; + this.premultipliedAlpha = false; + this.scale = 1; + this.boneWidth = 2; + this.bounds = new spine.SkeletonBounds(); + this.temp = new Array(); + this.vertices = spine.Utils.newFloatArray(2 * 1024); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + } + SkeletonDebugRenderer.prototype.draw = function (shapes, skeleton, ignoredBones) { + if (ignoredBones === void 0) { ignoredBones = null; } + var skeletonX = skeleton.x; + var skeletonY = skeleton.y; + var gl = this.context.gl; + var srcFunc = this.premultipliedAlpha ? gl.ONE : gl.SRC_ALPHA; + shapes.setBlendMode(srcFunc, gl.ONE_MINUS_SRC_ALPHA); + var bones = skeleton.bones; + if (this.drawBones) { + shapes.setColor(this.boneLineColor); + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) + continue; + if (bone.parent == null) + continue; + var x = skeletonX + bone.data.length * bone.a + bone.worldX; + var y = skeletonY + bone.data.length * bone.c + bone.worldY; + shapes.rectLine(true, skeletonX + bone.worldX, skeletonY + bone.worldY, x, y, this.boneWidth * this.scale); + } + if (this.drawSkeletonXY) + shapes.x(skeletonX, skeletonY, 4 * this.scale); + } + if (this.drawRegionAttachments) { + shapes.setColor(this.attachmentLineColor); + var slots = skeleton.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.RegionAttachment) { + var regionAttachment = attachment; + var vertices = this.vertices; + regionAttachment.computeWorldVertices(slot.bone, vertices, 0, 2); + shapes.line(vertices[0], vertices[1], vertices[2], vertices[3]); + shapes.line(vertices[2], vertices[3], vertices[4], vertices[5]); + shapes.line(vertices[4], vertices[5], vertices[6], vertices[7]); + shapes.line(vertices[6], vertices[7], vertices[0], vertices[1]); + } + } + } + if (this.drawMeshHull || this.drawMeshTriangles) { + var slots = skeleton.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (!(attachment instanceof spine.MeshAttachment)) + continue; + var mesh = attachment; + var vertices = this.vertices; + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, 2); + var triangles = mesh.triangles; + var hullLength = mesh.hullLength; + if (this.drawMeshTriangles) { + shapes.setColor(this.triangleLineColor); + for (var ii = 0, nn = triangles.length; ii < nn; ii += 3) { + var v1 = triangles[ii] * 2, v2 = triangles[ii + 1] * 2, v3 = triangles[ii + 2] * 2; + shapes.triangle(false, vertices[v1], vertices[v1 + 1], vertices[v2], vertices[v2 + 1], vertices[v3], vertices[v3 + 1]); + } + } + if (this.drawMeshHull && hullLength > 0) { + shapes.setColor(this.attachmentLineColor); + hullLength = (hullLength >> 1) * 2; + var lastX = vertices[hullLength - 2], lastY = vertices[hullLength - 1]; + for (var ii = 0, nn = hullLength; ii < nn; ii += 2) { + var x = vertices[ii], y = vertices[ii + 1]; + shapes.line(x, y, lastX, lastY); + lastX = x; + lastY = y; + } + } + } + } + if (this.drawBoundingBoxes) { + var bounds = this.bounds; + bounds.update(skeleton, true); + shapes.setColor(this.aabbColor); + shapes.rect(false, bounds.minX, bounds.minY, bounds.getWidth(), bounds.getHeight()); + var polygons = bounds.polygons; + var boxes = bounds.boundingBoxes; + for (var i = 0, n = polygons.length; i < n; i++) { + var polygon = polygons[i]; + shapes.setColor(boxes[i].color); + shapes.polygon(polygon, 0, polygon.length); + } + } + if (this.drawPaths) { + var slots = skeleton.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (!(attachment instanceof spine.PathAttachment)) + continue; + var path = attachment; + var nn = path.worldVerticesLength; + var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); + path.computeWorldVertices(slot, 0, nn, world, 0, 2); + var color = this.pathColor; + var x1 = world[2], y1 = world[3], x2 = 0, y2 = 0; + if (path.closed) { + shapes.setColor(color); + var cx1 = world[0], cy1 = world[1], cx2 = world[nn - 2], cy2 = world[nn - 1]; + x2 = world[nn - 4]; + y2 = world[nn - 3]; + shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); + shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); + shapes.line(x1, y1, cx1, cy1); + shapes.line(x2, y2, cx2, cy2); + } + nn -= 4; + for (var ii = 4; ii < nn; ii += 6) { + var cx1 = world[ii], cy1 = world[ii + 1], cx2 = world[ii + 2], cy2 = world[ii + 3]; + x2 = world[ii + 4]; + y2 = world[ii + 5]; + shapes.setColor(color); + shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); + shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); + shapes.line(x1, y1, cx1, cy1); + shapes.line(x2, y2, cx2, cy2); + x1 = x2; + y1 = y2; + } + } + } + if (this.drawBones) { + shapes.setColor(this.boneOriginColor); + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) + continue; + shapes.circle(true, skeletonX + bone.worldX, skeletonY + bone.worldY, 3 * this.scale, SkeletonDebugRenderer.GREEN, 8); + } + } + if (this.drawClipping) { + var slots = skeleton.slots; + shapes.setColor(this.clipColor); + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (!(attachment instanceof spine.ClippingAttachment)) + continue; + var clip = attachment; + var nn = clip.worldVerticesLength; + var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); + clip.computeWorldVertices(slot, 0, nn, world, 0, 2); + for (var i_5 = 0, n_3 = world.length; i_5 < n_3; i_5 += 2) { + var x = world[i_5]; + var y = world[i_5 + 1]; + var x2 = world[(i_5 + 2) % world.length]; + var y2 = world[(i_5 + 3) % world.length]; + shapes.line(x, y, x2, y2); + } + } + } + }; + SkeletonDebugRenderer.prototype.dispose = function () { + }; + SkeletonDebugRenderer.LIGHT_GRAY = new spine.Color(192 / 255, 192 / 255, 192 / 255, 1); + SkeletonDebugRenderer.GREEN = new spine.Color(0, 1, 0, 1); + return SkeletonDebugRenderer; + }()); + webgl.SkeletonDebugRenderer = SkeletonDebugRenderer; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Renderable = (function () { - function Renderable(vertices, numVertices, numFloats) { - this.vertices = vertices; - this.numVertices = numVertices; - this.numFloats = numFloats; - } - return Renderable; - }()); - ; - var SkeletonRenderer = (function () { - function SkeletonRenderer(context, twoColorTint) { - if (twoColorTint === void 0) { twoColorTint = true; } - this.premultipliedAlpha = false; - this.tempColor = new spine.Color(); - this.tempColor2 = new spine.Color(); - this.vertexSize = 2 + 2 + 4; - this.twoColorTint = false; - this.renderable = new Renderable(null, 0, 0); - this.clipper = new spine.SkeletonClipping(); - this.twoColorTint = twoColorTint; - if (twoColorTint) - this.vertexSize += 4; - this.vertices = spine.Utils.newFloatArray(this.vertexSize * 1024); - } - SkeletonRenderer.prototype.draw = function (batcher, skeleton) { - var clipper = this.clipper; - var premultipliedAlpha = this.premultipliedAlpha; - var twoColorTint = this.twoColorTint; - var blendMode = null; - var renderable = this.renderable; - var uvs = null; - var triangles = null; - var drawOrder = skeleton.drawOrder; - var attachmentColor = null; - var skeletonColor = skeleton.color; - var vertexSize = twoColorTint ? 12 : 8; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var clippedVertexSize = clipper.isClipping() ? 2 : vertexSize; - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var texture = null; - if (attachment instanceof spine.RegionAttachment) { - var region = attachment; - renderable.vertices = this.vertices; - renderable.numVertices = 4; - renderable.numFloats = clippedVertexSize << 2; - region.computeWorldVertices(slot.bone, renderable.vertices, 0, clippedVertexSize); - triangles = SkeletonRenderer.QUAD_TRIANGLES; - uvs = region.uvs; - texture = region.region.renderObject.texture; - attachmentColor = region.color; - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - renderable.vertices = this.vertices; - renderable.numVertices = (mesh.worldVerticesLength >> 1); - renderable.numFloats = renderable.numVertices * clippedVertexSize; - if (renderable.numFloats > renderable.vertices.length) { - renderable.vertices = this.vertices = spine.Utils.newFloatArray(renderable.numFloats); - } - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, renderable.vertices, 0, clippedVertexSize); - triangles = mesh.triangles; - texture = mesh.region.renderObject.texture; - uvs = mesh.uvs; - attachmentColor = mesh.color; - } - else if (attachment instanceof spine.ClippingAttachment) { - var clip = (attachment); - clipper.clipStart(slot, clip); - continue; - } - else - continue; - if (texture != null) { - var slotColor = slot.color; - var finalColor = this.tempColor; - finalColor.r = skeletonColor.r * slotColor.r * attachmentColor.r; - finalColor.g = skeletonColor.g * slotColor.g * attachmentColor.g; - finalColor.b = skeletonColor.b * slotColor.b * attachmentColor.b; - finalColor.a = skeletonColor.a * slotColor.a * attachmentColor.a; - if (premultipliedAlpha) { - finalColor.r *= finalColor.a; - finalColor.g *= finalColor.a; - finalColor.b *= finalColor.a; - } - var darkColor = this.tempColor2; - if (slot.darkColor == null) - darkColor.set(0, 0, 0, 1); - else - darkColor.setFromColor(slot.darkColor); - var slotBlendMode = slot.data.blendMode; - if (slotBlendMode != blendMode) { - blendMode = slotBlendMode; - batcher.setBlendMode(webgl.WebGLBlendModeConverter.getSourceGLBlendMode(blendMode, premultipliedAlpha), webgl.WebGLBlendModeConverter.getDestGLBlendMode(blendMode)); - } - if (clipper.isClipping()) { - clipper.clipTriangles(renderable.vertices, renderable.numFloats, triangles, triangles.length, uvs, finalColor, darkColor, twoColorTint); - var clippedVertices = new Float32Array(clipper.clippedVertices); - var clippedTriangles = clipper.clippedTriangles; - batcher.draw(texture, clippedVertices, clippedTriangles); - } - else { - var verts = renderable.vertices; - if (!twoColorTint) { - for (var v = 2, u = 0, n_4 = renderable.numFloats; v < n_4; v += vertexSize, u += 2) { - verts[v] = finalColor.r; - verts[v + 1] = finalColor.g; - verts[v + 2] = finalColor.b; - verts[v + 3] = finalColor.a; - verts[v + 4] = uvs[u]; - verts[v + 5] = uvs[u + 1]; - } - } - else { - for (var v = 2, u = 0, n_5 = renderable.numFloats; v < n_5; v += vertexSize, u += 2) { - verts[v] = finalColor.r; - verts[v + 1] = finalColor.g; - verts[v + 2] = finalColor.b; - verts[v + 3] = finalColor.a; - verts[v + 4] = uvs[u]; - verts[v + 5] = uvs[u + 1]; - verts[v + 6] = darkColor.r; - verts[v + 7] = darkColor.g; - verts[v + 8] = darkColor.b; - verts[v + 9] = darkColor.a; - } - } - var view = renderable.vertices.subarray(0, renderable.numFloats); - batcher.draw(texture, view, triangles); - } - } - clipper.clipEndWithSlot(slot); - } - clipper.clipEnd(); - }; - SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - return SkeletonRenderer; - }()); - webgl.SkeletonRenderer = SkeletonRenderer; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Renderable = (function () { + function Renderable(vertices, numVertices, numFloats) { + this.vertices = vertices; + this.numVertices = numVertices; + this.numFloats = numFloats; + } + return Renderable; + }()); + ; + var SkeletonRenderer = (function () { + function SkeletonRenderer(context, twoColorTint) { + if (twoColorTint === void 0) { twoColorTint = true; } + this.premultipliedAlpha = false; + this.tempColor = new spine.Color(); + this.tempColor2 = new spine.Color(); + this.vertexSize = 2 + 2 + 4; + this.twoColorTint = false; + this.renderable = new Renderable(null, 0, 0); + this.clipper = new spine.SkeletonClipping(); + this.twoColorTint = twoColorTint; + if (twoColorTint) + this.vertexSize += 4; + this.vertices = spine.Utils.newFloatArray(this.vertexSize * 1024); + } + SkeletonRenderer.prototype.draw = function (batcher, skeleton) { + var clipper = this.clipper; + var premultipliedAlpha = this.premultipliedAlpha; + var twoColorTint = this.twoColorTint; + var blendMode = null; + var renderable = this.renderable; + var uvs = null; + var triangles = null; + var drawOrder = skeleton.drawOrder; + var attachmentColor = null; + var skeletonColor = skeleton.color; + var vertexSize = twoColorTint ? 12 : 8; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var clippedVertexSize = clipper.isClipping() ? 2 : vertexSize; + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var texture = null; + if (attachment instanceof spine.RegionAttachment) { + var region = attachment; + renderable.vertices = this.vertices; + renderable.numVertices = 4; + renderable.numFloats = clippedVertexSize << 2; + region.computeWorldVertices(slot.bone, renderable.vertices, 0, clippedVertexSize); + triangles = SkeletonRenderer.QUAD_TRIANGLES; + uvs = region.uvs; + texture = region.region.renderObject.texture; + attachmentColor = region.color; + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + renderable.vertices = this.vertices; + renderable.numVertices = (mesh.worldVerticesLength >> 1); + renderable.numFloats = renderable.numVertices * clippedVertexSize; + if (renderable.numFloats > renderable.vertices.length) { + renderable.vertices = this.vertices = spine.Utils.newFloatArray(renderable.numFloats); + } + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, renderable.vertices, 0, clippedVertexSize); + triangles = mesh.triangles; + texture = mesh.region.renderObject.texture; + uvs = mesh.uvs; + attachmentColor = mesh.color; + } + else if (attachment instanceof spine.ClippingAttachment) { + var clip = (attachment); + clipper.clipStart(slot, clip); + continue; + } + else + continue; + if (texture != null) { + var slotColor = slot.color; + var finalColor = this.tempColor; + finalColor.r = skeletonColor.r * slotColor.r * attachmentColor.r; + finalColor.g = skeletonColor.g * slotColor.g * attachmentColor.g; + finalColor.b = skeletonColor.b * slotColor.b * attachmentColor.b; + finalColor.a = skeletonColor.a * slotColor.a * attachmentColor.a; + if (premultipliedAlpha) { + finalColor.r *= finalColor.a; + finalColor.g *= finalColor.a; + finalColor.b *= finalColor.a; + } + var darkColor = this.tempColor2; + if (slot.darkColor == null) + darkColor.set(0, 0, 0, 1); + else + darkColor.setFromColor(slot.darkColor); + var slotBlendMode = slot.data.blendMode; + if (slotBlendMode != blendMode) { + blendMode = slotBlendMode; + batcher.setBlendMode(webgl.WebGLBlendModeConverter.getSourceGLBlendMode(blendMode, premultipliedAlpha), webgl.WebGLBlendModeConverter.getDestGLBlendMode(blendMode)); + } + if (clipper.isClipping()) { + clipper.clipTriangles(renderable.vertices, renderable.numFloats, triangles, triangles.length, uvs, finalColor, darkColor, twoColorTint); + var clippedVertices = new Float32Array(clipper.clippedVertices); + var clippedTriangles = clipper.clippedTriangles; + batcher.draw(texture, clippedVertices, clippedTriangles); + } + else { + var verts = renderable.vertices; + if (!twoColorTint) { + for (var v = 2, u = 0, n_4 = renderable.numFloats; v < n_4; v += vertexSize, u += 2) { + verts[v] = finalColor.r; + verts[v + 1] = finalColor.g; + verts[v + 2] = finalColor.b; + verts[v + 3] = finalColor.a; + verts[v + 4] = uvs[u]; + verts[v + 5] = uvs[u + 1]; + } + } + else { + for (var v = 2, u = 0, n_5 = renderable.numFloats; v < n_5; v += vertexSize, u += 2) { + verts[v] = finalColor.r; + verts[v + 1] = finalColor.g; + verts[v + 2] = finalColor.b; + verts[v + 3] = finalColor.a; + verts[v + 4] = uvs[u]; + verts[v + 5] = uvs[u + 1]; + verts[v + 6] = darkColor.r; + verts[v + 7] = darkColor.g; + verts[v + 8] = darkColor.b; + verts[v + 9] = darkColor.a; + } + } + var view = renderable.vertices.subarray(0, renderable.numFloats); + batcher.draw(texture, view, triangles); + } + } + clipper.clipEndWithSlot(slot); + } + clipper.clipEnd(); + }; + SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + return SkeletonRenderer; + }()); + webgl.SkeletonRenderer = SkeletonRenderer; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Vector3 = (function () { - function Vector3(x, y, z) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - if (z === void 0) { z = 0; } - this.x = 0; - this.y = 0; - this.z = 0; - this.x = x; - this.y = y; - this.z = z; - } - Vector3.prototype.setFrom = function (v) { - this.x = v.x; - this.y = v.y; - this.z = v.z; - return this; - }; - Vector3.prototype.set = function (x, y, z) { - this.x = x; - this.y = y; - this.z = z; - return this; - }; - Vector3.prototype.add = function (v) { - this.x += v.x; - this.y += v.y; - this.z += v.z; - return this; - }; - Vector3.prototype.sub = function (v) { - this.x -= v.x; - this.y -= v.y; - this.z -= v.z; - return this; - }; - Vector3.prototype.scale = function (s) { - this.x *= s; - this.y *= s; - this.z *= s; - return this; - }; - Vector3.prototype.normalize = function () { - var len = this.length(); - if (len == 0) - return this; - len = 1 / len; - this.x *= len; - this.y *= len; - this.z *= len; - return this; - }; - Vector3.prototype.cross = function (v) { - return this.set(this.y * v.z - this.z * v.y, this.z * v.x - this.x * v.z, this.x * v.y - this.y * v.x); - }; - Vector3.prototype.multiply = function (matrix) { - var l_mat = matrix.values; - return this.set(this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03], this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13], this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]); - }; - Vector3.prototype.project = function (matrix) { - var l_mat = matrix.values; - var l_w = 1 / (this.x * l_mat[webgl.M30] + this.y * l_mat[webgl.M31] + this.z * l_mat[webgl.M32] + l_mat[webgl.M33]); - return this.set((this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03]) * l_w, (this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13]) * l_w, (this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]) * l_w); - }; - Vector3.prototype.dot = function (v) { - return this.x * v.x + this.y * v.y + this.z * v.z; - }; - Vector3.prototype.length = function () { - return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); - }; - Vector3.prototype.distance = function (v) { - var a = v.x - this.x; - var b = v.y - this.y; - var c = v.z - this.z; - return Math.sqrt(a * a + b * b + c * c); - }; - return Vector3; - }()); - webgl.Vector3 = Vector3; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Vector3 = (function () { + function Vector3(x, y, z) { + if (x === void 0) { x = 0; } + if (y === void 0) { y = 0; } + if (z === void 0) { z = 0; } + this.x = 0; + this.y = 0; + this.z = 0; + this.x = x; + this.y = y; + this.z = z; + } + Vector3.prototype.setFrom = function (v) { + this.x = v.x; + this.y = v.y; + this.z = v.z; + return this; + }; + Vector3.prototype.set = function (x, y, z) { + this.x = x; + this.y = y; + this.z = z; + return this; + }; + Vector3.prototype.add = function (v) { + this.x += v.x; + this.y += v.y; + this.z += v.z; + return this; + }; + Vector3.prototype.sub = function (v) { + this.x -= v.x; + this.y -= v.y; + this.z -= v.z; + return this; + }; + Vector3.prototype.scale = function (s) { + this.x *= s; + this.y *= s; + this.z *= s; + return this; + }; + Vector3.prototype.normalize = function () { + var len = this.length(); + if (len == 0) + return this; + len = 1 / len; + this.x *= len; + this.y *= len; + this.z *= len; + return this; + }; + Vector3.prototype.cross = function (v) { + return this.set(this.y * v.z - this.z * v.y, this.z * v.x - this.x * v.z, this.x * v.y - this.y * v.x); + }; + Vector3.prototype.multiply = function (matrix) { + var l_mat = matrix.values; + return this.set(this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03], this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13], this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]); + }; + Vector3.prototype.project = function (matrix) { + var l_mat = matrix.values; + var l_w = 1 / (this.x * l_mat[webgl.M30] + this.y * l_mat[webgl.M31] + this.z * l_mat[webgl.M32] + l_mat[webgl.M33]); + return this.set((this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03]) * l_w, (this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13]) * l_w, (this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]) * l_w); + }; + Vector3.prototype.dot = function (v) { + return this.x * v.x + this.y * v.y + this.z * v.z; + }; + Vector3.prototype.length = function () { + return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); + }; + Vector3.prototype.distance = function (v) { + var a = v.x - this.x; + var b = v.y - this.y; + var c = v.z - this.z; + return Math.sqrt(a * a + b * b + c * c); + }; + return Vector3; + }()); + webgl.Vector3 = Vector3; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var ManagedWebGLRenderingContext = (function () { - function ManagedWebGLRenderingContext(canvasOrContext, contextConfig) { - var _this = this; - if (contextConfig === void 0) { contextConfig = { alpha: "true" }; } - this.restorables = new Array(); - if (canvasOrContext instanceof HTMLCanvasElement) { - var canvas_1 = canvasOrContext; - this.gl = (canvas_1.getContext("webgl", contextConfig) || canvas_1.getContext("experimental-webgl", contextConfig)); - this.canvas = canvas_1; - canvas_1.addEventListener("webglcontextlost", function (e) { - var event = e; - if (e) { - e.preventDefault(); - } - }); - canvas_1.addEventListener("webglcontextrestored", function (e) { - for (var i = 0, n = _this.restorables.length; i < n; i++) { - _this.restorables[i].restore(); - } - }); - } - else { - this.gl = canvasOrContext; - this.canvas = this.gl.canvas; - } - } - ManagedWebGLRenderingContext.prototype.addRestorable = function (restorable) { - this.restorables.push(restorable); - }; - ManagedWebGLRenderingContext.prototype.removeRestorable = function (restorable) { - var index = this.restorables.indexOf(restorable); - if (index > -1) - this.restorables.splice(index, 1); - }; - return ManagedWebGLRenderingContext; - }()); - webgl.ManagedWebGLRenderingContext = ManagedWebGLRenderingContext; - var WebGLBlendModeConverter = (function () { - function WebGLBlendModeConverter() { - } - WebGLBlendModeConverter.getDestGLBlendMode = function (blendMode) { - switch (blendMode) { - case spine.BlendMode.Normal: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; - case spine.BlendMode.Additive: return WebGLBlendModeConverter.ONE; - case spine.BlendMode.Multiply: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; - case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; - default: throw new Error("Unknown blend mode: " + blendMode); - } - }; - WebGLBlendModeConverter.getSourceGLBlendMode = function (blendMode, premultipliedAlpha) { - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - switch (blendMode) { - case spine.BlendMode.Normal: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; - case spine.BlendMode.Additive: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; - case spine.BlendMode.Multiply: return WebGLBlendModeConverter.DST_COLOR; - case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE; - default: throw new Error("Unknown blend mode: " + blendMode); - } - }; - WebGLBlendModeConverter.ZERO = 0; - WebGLBlendModeConverter.ONE = 1; - WebGLBlendModeConverter.SRC_COLOR = 0x0300; - WebGLBlendModeConverter.ONE_MINUS_SRC_COLOR = 0x0301; - WebGLBlendModeConverter.SRC_ALPHA = 0x0302; - WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA = 0x0303; - WebGLBlendModeConverter.DST_ALPHA = 0x0304; - WebGLBlendModeConverter.ONE_MINUS_DST_ALPHA = 0x0305; - WebGLBlendModeConverter.DST_COLOR = 0x0306; - return WebGLBlendModeConverter; - }()); - webgl.WebGLBlendModeConverter = WebGLBlendModeConverter; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var ManagedWebGLRenderingContext = (function () { + function ManagedWebGLRenderingContext(canvasOrContext, contextConfig) { + var _this = this; + if (contextConfig === void 0) { contextConfig = { alpha: "true" }; } + this.restorables = new Array(); + if (canvasOrContext instanceof HTMLCanvasElement) { + var canvas_1 = canvasOrContext; + this.gl = (canvas_1.getContext("webgl", contextConfig) || canvas_1.getContext("experimental-webgl", contextConfig)); + this.canvas = canvas_1; + canvas_1.addEventListener("webglcontextlost", function (e) { + var event = e; + if (e) { + e.preventDefault(); + } + }); + canvas_1.addEventListener("webglcontextrestored", function (e) { + for (var i = 0, n = _this.restorables.length; i < n; i++) { + _this.restorables[i].restore(); + } + }); + } + else { + this.gl = canvasOrContext; + this.canvas = this.gl.canvas; + } + } + ManagedWebGLRenderingContext.prototype.addRestorable = function (restorable) { + this.restorables.push(restorable); + }; + ManagedWebGLRenderingContext.prototype.removeRestorable = function (restorable) { + var index = this.restorables.indexOf(restorable); + if (index > -1) + this.restorables.splice(index, 1); + }; + return ManagedWebGLRenderingContext; + }()); + webgl.ManagedWebGLRenderingContext = ManagedWebGLRenderingContext; + var WebGLBlendModeConverter = (function () { + function WebGLBlendModeConverter() { + } + WebGLBlendModeConverter.getDestGLBlendMode = function (blendMode) { + switch (blendMode) { + case spine.BlendMode.Normal: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; + case spine.BlendMode.Additive: return WebGLBlendModeConverter.ONE; + case spine.BlendMode.Multiply: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; + case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; + default: throw new Error("Unknown blend mode: " + blendMode); + } + }; + WebGLBlendModeConverter.getSourceGLBlendMode = function (blendMode, premultipliedAlpha) { + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + switch (blendMode) { + case spine.BlendMode.Normal: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; + case spine.BlendMode.Additive: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; + case spine.BlendMode.Multiply: return WebGLBlendModeConverter.DST_COLOR; + case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE; + default: throw new Error("Unknown blend mode: " + blendMode); + } + }; + WebGLBlendModeConverter.ZERO = 0; + WebGLBlendModeConverter.ONE = 1; + WebGLBlendModeConverter.SRC_COLOR = 0x0300; + WebGLBlendModeConverter.ONE_MINUS_SRC_COLOR = 0x0301; + WebGLBlendModeConverter.SRC_ALPHA = 0x0302; + WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA = 0x0303; + WebGLBlendModeConverter.DST_ALPHA = 0x0304; + WebGLBlendModeConverter.ONE_MINUS_DST_ALPHA = 0x0305; + WebGLBlendModeConverter.DST_COLOR = 0x0306; + return WebGLBlendModeConverter; + }()); + webgl.WebGLBlendModeConverter = WebGLBlendModeConverter; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var SpineWidget = (function () { - function SpineWidget(element, config) { - var _this = this; - this.mvp = new spine.webgl.Matrix4(); - this.paused = false; - this.lastFrameTime = Date.now() / 1000.0; - this.backgroundColor = new spine.Color(); - this.loaded = false; - this.bounds = { offset: new spine.Vector2(), size: new spine.Vector2() }; - if (!element) - throw new Error("Please provide a DOM element, e.g. document.getElementById('myelement')"); - if (!config) - throw new Error("Please provide a configuration, specifying at least the json file, atlas file and animation name"); - var elementId = element; - if (typeof (element) === "string") - element = document.getElementById(element); - if (element == null) - throw new Error("Element " + elementId + " does not exist"); - this.validateConfig(config); - var existingCanvas = element.children[0]; - var canvas = this.canvas = existingCanvas || document.createElement("canvas"); - canvas.style.width = "100%"; - canvas.style.height = "100%"; - if (!existingCanvas) { - element.appendChild(canvas); - } - canvas.width = element.clientWidth; - canvas.height = element.clientHeight; - var webglConfig = { alpha: config.alpha }; - this.context = new spine.webgl.ManagedWebGLRenderingContext(canvas, webglConfig); - this.shader = spine.webgl.Shader.newTwoColoredTextured(this.context); - this.batcher = new spine.webgl.PolygonBatcher(this.context); - this.mvp.ortho2d(0, 0, canvas.width - 1, canvas.height - 1); - this.skeletonRenderer = new spine.webgl.SkeletonRenderer(this.context); - this.debugShader = spine.webgl.Shader.newColored(this.context); - this.debugRenderer = new spine.webgl.SkeletonDebugRenderer(this.context); - this.shapes = new spine.webgl.ShapeRenderer(this.context); - var assets = this.assetManager = new spine.webgl.AssetManager(this.context, config.imagesPath ? config.imagesPath : ""); - if (!config.atlasContent) { - assets.loadText(config.atlas); - } - if (!config.jsonContent) { - assets.loadText(config.json); - } - if (config.atlasPages == null) { - if (config.atlas) { - var atlasPage = config.atlas.replace(".atlas", ".png"); - if (atlasPage.lastIndexOf(config.imagesPath) == 0) { - atlasPage = atlasPage.substr(config.imagesPath.length); - } - assets.loadTexture(atlasPage); - } - else { - var firstLine = config.atlasContent.trim().split("\n")[0]; - assets.loadTexture(firstLine); - } - } - else { - for (var i = 0; i < config.atlasPages.length; i++) { - if (config.atlasPagesContent && config.atlasPagesContent[i]) { - assets.loadTextureData(config.atlasPages[i], config.atlasPagesContent[0]); - } - else { - assets.loadTexture(config.atlasPages[i]); - } - } - } - requestAnimationFrame(function () { _this.load(); }); - } - SpineWidget.prototype.validateConfig = function (config) { - if (!config.atlas && !config.atlasContent) - throw new Error("Please specify config.atlas or config.atlasContent"); - if (!config.json && !config.jsonContent) - throw new Error("Please specify config.json or config.jsonContent"); - if (!config.animation) - throw new Error("Please specify config.animationName"); - if (!config.scale) - config.scale = 1.0; - if (!config.skin) - config.skin = "default"; - if (config.loop === undefined) - config.loop = true; - if (!config.x) - config.x = 0; - if (!config.y) - config.y = 0; - if (config.fitToCanvas === undefined) - config.fitToCanvas = true; - if (!config.backgroundColor) - config.backgroundColor = "#555555"; - if (!config.imagesPath) { - if (config.atlas) { - var index = config.atlas.lastIndexOf("/"); - if (index != -1) { - config.imagesPath = config.atlas.substr(0, index) + "/"; - } - else { - config.imagesPath = ""; - } - } - else { - config.imagesPath = ""; - } - } - if (config.json && config.json.lastIndexOf(config.imagesPath) == 0) { - config.json = config.json.substr(config.imagesPath.length); - } - if (config.atlas && config.atlas.lastIndexOf(config.imagesPath) == 0) { - config.atlas = config.atlas.substr(config.imagesPath.length); - } - if (!config.premultipliedAlpha === undefined) - config.premultipliedAlpha = false; - if (!config.debug === undefined) - config.debug = false; - if (!config.alpha === undefined) - config.alpha = true; - this.backgroundColor.setFromString(config.backgroundColor); - this.config = config; - }; - SpineWidget.prototype.load = function () { - var _this = this; - var assetManager = this.assetManager; - var imagesPath = this.config.imagesPath; - var config = this.config; - if (assetManager.isLoadingComplete()) { - if (assetManager.hasErrors()) { - if (config.error) - config.error(this, "Failed to load assets: " + JSON.stringify(assetManager.getErrors())); - else - throw new Error("Failed to load assets: " + JSON.stringify(assetManager.getErrors())); - } - var atlasContent = config.atlasContent === undefined ? this.assetManager.get(this.config.atlas) : config.atlasContent; - var atlas = new spine.TextureAtlas(atlasContent, function (path) { - var texture = assetManager.get(path); - return texture; - }); - var atlasLoader = new spine.AtlasAttachmentLoader(atlas); - var skeletonJson = new spine.SkeletonJson(atlasLoader); - skeletonJson.scale = config.scale; - var jsonContent = config.jsonContent === undefined ? assetManager.get(config.json) : config.jsonContent; - var skeletonData = skeletonJson.readSkeletonData(jsonContent); - var skeleton = this.skeleton = new spine.Skeleton(skeletonData); - var bounds = this.bounds; - skeleton.setSkinByName(config.skin); - skeleton.setToSetupPose(); - skeleton.updateWorldTransform(); - skeleton.getBounds(bounds.offset, bounds.size, []); - if (!config.fitToCanvas) { - skeleton.x = config.x; - skeleton.y = config.y; - } - var animationState = this.state = new spine.AnimationState(new spine.AnimationStateData(skeleton.data)); - animationState.setAnimation(0, config.animation, config.loop); - this.loaded = true; - if (config.success) - config.success(this); - requestAnimationFrame(function () { _this.render(); }); - } - else - requestAnimationFrame(function () { _this.load(); }); - }; - SpineWidget.prototype.render = function () { - var _this = this; - var now = Date.now() / 1000; - var delta = now - this.lastFrameTime; - if (delta > 0.1) - delta = 0; - this.lastFrameTime = now; - var gl = this.context.gl; - var color = this.backgroundColor; - this.resize(); - gl.clearColor(color.r, color.g, color.b, color.a); - gl.clear(gl.COLOR_BUFFER_BIT); - var state = this.state; - var skeleton = this.skeleton; - var premultipliedAlpha = this.config.premultipliedAlpha; - state.update(delta); - state.apply(skeleton); - skeleton.updateWorldTransform(); - var shader = this.shader; - var batcher = this.batcher; - var skeletonRenderer = this.skeletonRenderer; - shader.bind(); - shader.setUniformi(spine.webgl.Shader.SAMPLER, 0); - shader.setUniform4x4f(spine.webgl.Shader.MVP_MATRIX, this.mvp.values); - batcher.begin(shader); - skeletonRenderer.premultipliedAlpha = premultipliedAlpha; - skeletonRenderer.draw(batcher, skeleton); - batcher.end(); - shader.unbind(); - if (this.config.debug) { - var shader_1 = this.debugShader; - var shapes = this.shapes; - var renderer = this.debugRenderer; - shader_1.bind(); - shader_1.setUniform4x4f(spine.webgl.Shader.MVP_MATRIX, this.mvp.values); - renderer.premultipliedAlpha = premultipliedAlpha; - shapes.begin(shader_1); - renderer.draw(shapes, skeleton); - shapes.end(); - shader_1.unbind(); - } - if (!this.paused) - requestAnimationFrame(function () { _this.render(); }); - }; - SpineWidget.prototype.resize = function () { - var canvas = this.canvas; - var w = canvas.clientWidth; - var h = canvas.clientHeight; - var bounds = this.bounds; - var devicePixelRatio = window.devicePixelRatio || 1; - if (canvas.width != Math.floor(w * devicePixelRatio) || canvas.height != Math.floor(h * devicePixelRatio)) { - canvas.width = Math.floor(w * devicePixelRatio); - canvas.height = Math.floor(h * devicePixelRatio); - } - if (this.config.fitToCanvas) { - var centerX = bounds.offset.x + bounds.size.x / 2; - var centerY = bounds.offset.y + bounds.size.y / 2; - var scaleX = bounds.size.x / w; - var scaleY = bounds.size.y / h; - var scale = Math.max(scaleX, scaleY) * 1.2; - if (scale < 1) - scale = 1; - var width = w * scale; - var height = h * scale; - this.skeleton.x = this.skeleton.y = 0; - this.mvp.ortho2d(centerX - width / 2, centerY - height / 2, width, height); - } - else { - this.mvp.ortho2d(0, 0, w - 1, h - 1); - } - this.context.gl.viewport(0, 0, canvas.width, canvas.height); - }; - SpineWidget.prototype.pause = function () { - this.paused = true; - }; - SpineWidget.prototype.play = function () { - var _this = this; - this.paused = false; - requestAnimationFrame(function () { _this.render(); }); - }; - SpineWidget.prototype.isPlaying = function () { - return !this.paused; - }; - SpineWidget.prototype.setAnimation = function (animationName, animationStateListener) { - if (animationStateListener === void 0) { animationStateListener = null; } - if (!this.loaded) - throw new Error("Widget isn't loaded yet"); - this.skeleton.setToSetupPose(); - var entry = this.state.setAnimation(0, animationName, this.config.loop); - entry.listener = animationStateListener; - }; - SpineWidget.loadWidgets = function () { - var widgets = document.getElementsByClassName("spine-widget"); - for (var i = 0; i < widgets.length; i++) { - SpineWidget.loadWidget(widgets[i]); - } - }; - SpineWidget.loadWidget = function (widget) { - var config = new SpineWidgetConfig(); - config.atlas = widget.getAttribute("data-atlas"); - config.json = widget.getAttribute("data-json"); - config.animation = widget.getAttribute("data-animation"); - if (widget.getAttribute("data-images-path")) - config.imagesPath = widget.getAttribute("data-images-path"); - if (widget.getAttribute("data-atlas-pages")) - config.atlasPages = widget.getAttribute("data-atlas-pages").split(","); - if (widget.getAttribute("data-skin")) - config.skin = widget.getAttribute("data-skin"); - if (widget.getAttribute("data-loop")) - config.loop = widget.getAttribute("data-loop") === "true"; - if (widget.getAttribute("data-scale")) - config.scale = parseFloat(widget.getAttribute("data-scale")); - if (widget.getAttribute("data-x")) - config.x = parseFloat(widget.getAttribute("data-x")); - if (widget.getAttribute("data-y")) - config.y = parseFloat(widget.getAttribute("data-y")); - if (widget.getAttribute("data-fit-to-canvas")) - config.fitToCanvas = widget.getAttribute("data-fit-to-canvas") === "true"; - if (widget.getAttribute("data-background-color")) - config.backgroundColor = widget.getAttribute("data-background-color"); - if (widget.getAttribute("data-premultiplied-alpha")) - config.premultipliedAlpha = widget.getAttribute("data-premultiplied-alpha") === "true"; - if (widget.getAttribute("data-debug")) - config.debug = widget.getAttribute("data-debug") === "true"; - if (widget.getAttribute("data-alpha")) - config.alpha = widget.getAttribute("data-alpha") === "true"; - new spine.SpineWidget(widget, config); - }; - SpineWidget.ready = function () { - if (SpineWidget.pageLoaded) - return; - SpineWidget.pageLoaded = true; - SpineWidget.loadWidgets(); - }; - SpineWidget.setupDOMListener = function () { - if (document.addEventListener) { - document.addEventListener("DOMContentLoaded", SpineWidget.ready, false); - window.addEventListener("load", SpineWidget.ready, false); - } - else { - document.attachEvent("onreadystatechange", function readyStateChange() { - if (document.readyState === "complete") - SpineWidget.ready(); - }); - window.attachEvent("onload", SpineWidget.ready); - } - }; - SpineWidget.pageLoaded = false; - return SpineWidget; - }()); - spine.SpineWidget = SpineWidget; - var SpineWidgetConfig = (function () { - function SpineWidgetConfig() { - this.skin = "default"; - this.loop = true; - this.scale = 1.0; - this.x = 0; - this.y = 0; - this.alpha = true; - this.fitToCanvas = true; - this.backgroundColor = "#555555"; - this.premultipliedAlpha = false; - this.debug = false; - } - return SpineWidgetConfig; - }()); - spine.SpineWidgetConfig = SpineWidgetConfig; + var SpineWidget = (function () { + function SpineWidget(element, config) { + var _this = this; + this.mvp = new spine.webgl.Matrix4(); + this.paused = false; + this.lastFrameTime = Date.now() / 1000.0; + this.backgroundColor = new spine.Color(); + this.loaded = false; + this.bounds = { offset: new spine.Vector2(), size: new spine.Vector2() }; + if (!element) + throw new Error("Please provide a DOM element, e.g. document.getElementById('myelement')"); + if (!config) + throw new Error("Please provide a configuration, specifying at least the json file, atlas file and animation name"); + var elementId = element; + if (typeof (element) === "string") + element = document.getElementById(element); + if (element == null) + throw new Error("Element " + elementId + " does not exist"); + this.validateConfig(config); + var existingCanvas = element.children[0]; + var canvas = this.canvas = existingCanvas || document.createElement("canvas"); + canvas.style.width = "100%"; + canvas.style.height = "100%"; + if (!existingCanvas) { + element.appendChild(canvas); + } + canvas.width = element.clientWidth; + canvas.height = element.clientHeight; + var webglConfig = { alpha: config.alpha }; + this.context = new spine.webgl.ManagedWebGLRenderingContext(canvas, webglConfig); + this.shader = spine.webgl.Shader.newTwoColoredTextured(this.context); + this.batcher = new spine.webgl.PolygonBatcher(this.context); + this.mvp.ortho2d(0, 0, canvas.width - 1, canvas.height - 1); + this.skeletonRenderer = new spine.webgl.SkeletonRenderer(this.context); + this.debugShader = spine.webgl.Shader.newColored(this.context); + this.debugRenderer = new spine.webgl.SkeletonDebugRenderer(this.context); + this.shapes = new spine.webgl.ShapeRenderer(this.context); + var assets = this.assetManager = new spine.webgl.AssetManager(this.context, config.imagesPath ? config.imagesPath : ""); + if (!config.atlasContent) { + assets.loadText(config.atlas); + } + if (!config.jsonContent) { + assets.loadText(config.json); + } + if (config.atlasPages == null) { + if (config.atlas) { + var atlasPage = config.atlas.replace(".atlas", ".png"); + if (atlasPage.lastIndexOf(config.imagesPath) == 0) { + atlasPage = atlasPage.substr(config.imagesPath.length); + } + assets.loadTexture(atlasPage); + } + else { + var firstLine = config.atlasContent.trim().split("\n")[0]; + assets.loadTexture(firstLine); + } + } + else { + for (var i = 0; i < config.atlasPages.length; i++) { + if (config.atlasPagesContent && config.atlasPagesContent[i]) { + assets.loadTextureData(config.atlasPages[i], config.atlasPagesContent[0]); + } + else { + assets.loadTexture(config.atlasPages[i]); + } + } + } + requestAnimationFrame(function () { _this.load(); }); + } + SpineWidget.prototype.validateConfig = function (config) { + if (!config.atlas && !config.atlasContent) + throw new Error("Please specify config.atlas or config.atlasContent"); + if (!config.json && !config.jsonContent) + throw new Error("Please specify config.json or config.jsonContent"); + if (!config.animation) + throw new Error("Please specify config.animationName"); + if (!config.scale) + config.scale = 1.0; + if (!config.skin) + config.skin = "default"; + if (config.loop === undefined) + config.loop = true; + if (!config.x) + config.x = 0; + if (!config.y) + config.y = 0; + if (config.fitToCanvas === undefined) + config.fitToCanvas = true; + if (!config.backgroundColor) + config.backgroundColor = "#555555"; + if (!config.imagesPath) { + if (config.atlas) { + var index = config.atlas.lastIndexOf("/"); + if (index != -1) { + config.imagesPath = config.atlas.substr(0, index) + "/"; + } + else { + config.imagesPath = ""; + } + } + else { + config.imagesPath = ""; + } + } + if (config.json && config.json.lastIndexOf(config.imagesPath) == 0) { + config.json = config.json.substr(config.imagesPath.length); + } + if (config.atlas && config.atlas.lastIndexOf(config.imagesPath) == 0) { + config.atlas = config.atlas.substr(config.imagesPath.length); + } + if (!config.premultipliedAlpha === undefined) + config.premultipliedAlpha = false; + if (!config.debug === undefined) + config.debug = false; + if (!config.alpha === undefined) + config.alpha = true; + this.backgroundColor.setFromString(config.backgroundColor); + this.config = config; + }; + SpineWidget.prototype.load = function () { + var _this = this; + var assetManager = this.assetManager; + var imagesPath = this.config.imagesPath; + var config = this.config; + if (assetManager.isLoadingComplete()) { + if (assetManager.hasErrors()) { + if (config.error) + config.error(this, "Failed to load assets: " + JSON.stringify(assetManager.getErrors())); + else + throw new Error("Failed to load assets: " + JSON.stringify(assetManager.getErrors())); + } + var atlasContent = config.atlasContent === undefined ? this.assetManager.get(this.config.atlas) : config.atlasContent; + var atlas = new spine.TextureAtlas(atlasContent, function (path) { + var texture = assetManager.get(path); + return texture; + }); + var atlasLoader = new spine.AtlasAttachmentLoader(atlas); + var skeletonJson = new spine.SkeletonJson(atlasLoader); + skeletonJson.scale = config.scale; + var jsonContent = config.jsonContent === undefined ? assetManager.get(config.json) : config.jsonContent; + var skeletonData = skeletonJson.readSkeletonData(jsonContent); + var skeleton = this.skeleton = new spine.Skeleton(skeletonData); + var bounds = this.bounds; + skeleton.setSkinByName(config.skin); + skeleton.setToSetupPose(); + skeleton.updateWorldTransform(); + skeleton.getBounds(bounds.offset, bounds.size, []); + if (!config.fitToCanvas) { + skeleton.x = config.x; + skeleton.y = config.y; + } + var animationState = this.state = new spine.AnimationState(new spine.AnimationStateData(skeleton.data)); + animationState.setAnimation(0, config.animation, config.loop); + this.loaded = true; + if (config.success) + config.success(this); + requestAnimationFrame(function () { _this.render(); }); + } + else + requestAnimationFrame(function () { _this.load(); }); + }; + SpineWidget.prototype.render = function () { + var _this = this; + var now = Date.now() / 1000; + var delta = now - this.lastFrameTime; + if (delta > 0.1) + delta = 0; + this.lastFrameTime = now; + var gl = this.context.gl; + var color = this.backgroundColor; + this.resize(); + gl.clearColor(color.r, color.g, color.b, color.a); + gl.clear(gl.COLOR_BUFFER_BIT); + var state = this.state; + var skeleton = this.skeleton; + var premultipliedAlpha = this.config.premultipliedAlpha; + state.update(delta); + state.apply(skeleton); + skeleton.updateWorldTransform(); + var shader = this.shader; + var batcher = this.batcher; + var skeletonRenderer = this.skeletonRenderer; + shader.bind(); + shader.setUniformi(spine.webgl.Shader.SAMPLER, 0); + shader.setUniform4x4f(spine.webgl.Shader.MVP_MATRIX, this.mvp.values); + batcher.begin(shader); + skeletonRenderer.premultipliedAlpha = premultipliedAlpha; + skeletonRenderer.draw(batcher, skeleton); + batcher.end(); + shader.unbind(); + if (this.config.debug) { + var shader_1 = this.debugShader; + var shapes = this.shapes; + var renderer = this.debugRenderer; + shader_1.bind(); + shader_1.setUniform4x4f(spine.webgl.Shader.MVP_MATRIX, this.mvp.values); + renderer.premultipliedAlpha = premultipliedAlpha; + shapes.begin(shader_1); + renderer.draw(shapes, skeleton); + shapes.end(); + shader_1.unbind(); + } + if (!this.paused) + requestAnimationFrame(function () { _this.render(); }); + }; + SpineWidget.prototype.resize = function () { + var canvas = this.canvas; + var w = canvas.clientWidth; + var h = canvas.clientHeight; + var bounds = this.bounds; + var devicePixelRatio = window.devicePixelRatio || 1; + if (canvas.width != Math.floor(w * devicePixelRatio) || canvas.height != Math.floor(h * devicePixelRatio)) { + canvas.width = Math.floor(w * devicePixelRatio); + canvas.height = Math.floor(h * devicePixelRatio); + } + if (this.config.fitToCanvas) { + var centerX = bounds.offset.x + bounds.size.x / 2; + var centerY = bounds.offset.y + bounds.size.y / 2; + var scaleX = bounds.size.x / w; + var scaleY = bounds.size.y / h; + var scale = Math.max(scaleX, scaleY) * 1.2; + if (scale < 1) + scale = 1; + var width = w * scale; + var height = h * scale; + this.skeleton.x = this.skeleton.y = 0; + this.mvp.ortho2d(centerX - width / 2, centerY - height / 2, width, height); + } + else { + this.mvp.ortho2d(0, 0, w - 1, h - 1); + } + this.context.gl.viewport(0, 0, canvas.width, canvas.height); + }; + SpineWidget.prototype.pause = function () { + this.paused = true; + }; + SpineWidget.prototype.play = function () { + var _this = this; + this.paused = false; + requestAnimationFrame(function () { _this.render(); }); + }; + SpineWidget.prototype.isPlaying = function () { + return !this.paused; + }; + SpineWidget.prototype.setAnimation = function (animationName, animationStateListener) { + if (animationStateListener === void 0) { animationStateListener = null; } + if (!this.loaded) + throw new Error("Widget isn't loaded yet"); + this.skeleton.setToSetupPose(); + var entry = this.state.setAnimation(0, animationName, this.config.loop); + entry.listener = animationStateListener; + }; + SpineWidget.loadWidgets = function () { + var widgets = document.getElementsByClassName("spine-widget"); + for (var i = 0; i < widgets.length; i++) { + SpineWidget.loadWidget(widgets[i]); + } + }; + SpineWidget.loadWidget = function (widget) { + var config = new SpineWidgetConfig(); + config.atlas = widget.getAttribute("data-atlas"); + config.json = widget.getAttribute("data-json"); + config.animation = widget.getAttribute("data-animation"); + if (widget.getAttribute("data-images-path")) + config.imagesPath = widget.getAttribute("data-images-path"); + if (widget.getAttribute("data-atlas-pages")) + config.atlasPages = widget.getAttribute("data-atlas-pages").split(","); + if (widget.getAttribute("data-skin")) + config.skin = widget.getAttribute("data-skin"); + if (widget.getAttribute("data-loop")) + config.loop = widget.getAttribute("data-loop") === "true"; + if (widget.getAttribute("data-scale")) + config.scale = parseFloat(widget.getAttribute("data-scale")); + if (widget.getAttribute("data-x")) + config.x = parseFloat(widget.getAttribute("data-x")); + if (widget.getAttribute("data-y")) + config.y = parseFloat(widget.getAttribute("data-y")); + if (widget.getAttribute("data-fit-to-canvas")) + config.fitToCanvas = widget.getAttribute("data-fit-to-canvas") === "true"; + if (widget.getAttribute("data-background-color")) + config.backgroundColor = widget.getAttribute("data-background-color"); + if (widget.getAttribute("data-premultiplied-alpha")) + config.premultipliedAlpha = widget.getAttribute("data-premultiplied-alpha") === "true"; + if (widget.getAttribute("data-debug")) + config.debug = widget.getAttribute("data-debug") === "true"; + if (widget.getAttribute("data-alpha")) + config.alpha = widget.getAttribute("data-alpha") === "true"; + new spine.SpineWidget(widget, config); + }; + SpineWidget.ready = function () { + if (SpineWidget.pageLoaded) + return; + SpineWidget.pageLoaded = true; + SpineWidget.loadWidgets(); + }; + SpineWidget.setupDOMListener = function () { + if (document.addEventListener) { + document.addEventListener("DOMContentLoaded", SpineWidget.ready, false); + window.addEventListener("load", SpineWidget.ready, false); + } + else { + document.attachEvent("onreadystatechange", function readyStateChange() { + if (document.readyState === "complete") + SpineWidget.ready(); + }); + window.attachEvent("onload", SpineWidget.ready); + } + }; + SpineWidget.pageLoaded = false; + return SpineWidget; + }()); + spine.SpineWidget = SpineWidget; + var SpineWidgetConfig = (function () { + function SpineWidgetConfig() { + this.skin = "default"; + this.loop = true; + this.scale = 1.0; + this.x = 0; + this.y = 0; + this.alpha = true; + this.fitToCanvas = true; + this.backgroundColor = "#555555"; + this.premultipliedAlpha = false; + this.debug = false; + } + return SpineWidgetConfig; + }()); + spine.SpineWidgetConfig = SpineWidgetConfig; })(spine || (spine = {})); spine.SpineWidget.setupDOMListener(); //# sourceMappingURL=spine-all.js.map \ No newline at end of file diff --git a/spine-ts/build/spine-all.js.map b/spine-ts/build/spine-all.js.map index 18643aaeb..273854ada 100644 --- a/spine-ts/build/spine-all.js.map +++ b/spine-ts/build/spine-all.js.map @@ -1 +1 @@ -{"version":3,"file":"spine-all.js","sourceRoot":"","sources":["../core/src/AssetManager.ts","../canvas/src/AssetManager.ts","../core/src/Texture.ts","../canvas/src/CanvasTexture.ts","../canvas/src/SkeletonRenderer.ts","../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../threejs/src/AssetManager.ts","../threejs/src/MeshBatcher.ts","../threejs/src/SkeletonMesh.ts","../threejs/src/ThreeJsTexture.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts","../widget/src/Widget.ts"],"names":[],"mappings":"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AC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,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C,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChH,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC3G,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,G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AG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,C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"} \ No newline at end of file +{"version":3,"file":"spine-all.js","sourceRoot":"","sources":["../core/src/AssetManager.ts","../canvas/src/AssetManager.ts","../core/src/Texture.ts","../canvas/src/CanvasTexture.ts","../canvas/src/SkeletonRenderer.ts","../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../threejs/src/AssetManager.ts","../threejs/src/MeshBatcher.ts","../threejs/src/SkeletonMesh.ts","../threejs/src/ThreeJsTexture.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts","../widget/src/Widget.ts"],"names":[],"mappings":"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AC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,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C,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChH,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC3G,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,C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AC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CA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"} \ No newline at end of file diff --git a/spine-ts/build/spine-canvas.d.ts b/spine-ts/build/spine-canvas.d.ts index 77ec668d4..a01d5fd9b 100644 --- a/spine-ts/build/spine-canvas.d.ts +++ b/spine-ts/build/spine-canvas.d.ts @@ -1,1191 +1,1191 @@ declare module spine { - class AssetManager implements Disposable { - private pathPrefix; - private textureLoader; - private assets; - private errors; - private toLoad; - private loaded; - constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); - loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; - loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - get(path: string): any; - remove(path: string): void; - removeAll(): void; - isLoadingComplete(): boolean; - getToLoad(): number; - getLoaded(): number; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class AssetManager implements Disposable { + private pathPrefix; + private textureLoader; + private assets; + private errors; + private toLoad; + private loaded; + constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); + loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; + loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + get(path: string): any; + remove(path: string): void; + removeAll(): void; + isLoadingComplete(): boolean; + getToLoad(): number; + getLoaded(): number; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine.canvas { - class AssetManager extends spine.AssetManager { - constructor(pathPrefix?: string); - } + class AssetManager extends spine.AssetManager { + constructor(pathPrefix?: string); + } } declare module spine { - abstract class Texture { - protected _image: HTMLImageElement; - constructor(image: HTMLImageElement); - getImage(): HTMLImageElement; - abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - abstract dispose(): void; - static filterFromString(text: string): TextureFilter; - static wrapFromString(text: string): TextureWrap; - } - enum TextureFilter { - Nearest = 9728, - Linear = 9729, - MipMap = 9987, - MipMapNearestNearest = 9984, - MipMapLinearNearest = 9985, - MipMapNearestLinear = 9986, - MipMapLinearLinear = 9987, - } - enum TextureWrap { - MirroredRepeat = 33648, - ClampToEdge = 33071, - Repeat = 10497, - } - class TextureRegion { - renderObject: any; - u: number; - v: number; - u2: number; - v2: number; - width: number; - height: number; - rotate: boolean; - offsetX: number; - offsetY: number; - originalWidth: number; - originalHeight: number; - } + abstract class Texture { + protected _image: HTMLImageElement; + constructor(image: HTMLImageElement); + getImage(): HTMLImageElement; + abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + abstract dispose(): void; + static filterFromString(text: string): TextureFilter; + static wrapFromString(text: string): TextureWrap; + } + enum TextureFilter { + Nearest = 9728, + Linear = 9729, + MipMap = 9987, + MipMapNearestNearest = 9984, + MipMapLinearNearest = 9985, + MipMapNearestLinear = 9986, + MipMapLinearLinear = 9987, + } + enum TextureWrap { + MirroredRepeat = 33648, + ClampToEdge = 33071, + Repeat = 10497, + } + class TextureRegion { + renderObject: any; + u: number; + v: number; + u2: number; + v2: number; + width: number; + height: number; + rotate: boolean; + offsetX: number; + offsetY: number; + originalWidth: number; + originalHeight: number; + } } declare module spine.canvas { - class CanvasTexture extends Texture { - constructor(image: HTMLImageElement); - setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - dispose(): void; - } + class CanvasTexture extends Texture { + constructor(image: HTMLImageElement); + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + dispose(): void; + } } declare module spine.canvas { - class SkeletonRenderer { - static QUAD_TRIANGLES: number[]; - static VERTEX_SIZE: number; - private ctx; - triangleRendering: boolean; - debugRendering: boolean; - private vertices; - private tempColor; - constructor(context: CanvasRenderingContext2D); - draw(skeleton: Skeleton): void; - private drawImages(skeleton); - private drawTriangles(skeleton); - private drawTriangle(img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); - private computeRegionVertices(slot, region, pma); - private computeMeshVertices(slot, mesh, pma); - } + class SkeletonRenderer { + static QUAD_TRIANGLES: number[]; + static VERTEX_SIZE: number; + private ctx; + triangleRendering: boolean; + debugRendering: boolean; + private vertices; + private tempColor; + constructor(context: CanvasRenderingContext2D); + draw(skeleton: Skeleton): void; + private drawImages(skeleton); + private drawTriangles(skeleton); + private drawTriangle(img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); + private computeRegionVertices(slot, region, pma); + private computeMeshVertices(slot, mesh, pma); + } } declare module spine { - class Animation { - name: string; - timelines: Array; - duration: number; - constructor(name: string, timelines: Array, duration: number); - apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - static binarySearch(values: ArrayLike, target: number, step?: number): number; - static linearSearch(values: ArrayLike, target: number, step: number): number; - } - interface Timeline { - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - getPropertyId(): number; - } - enum TimelineType { - rotate = 0, - translate = 1, - scale = 2, - shear = 3, - attachment = 4, - color = 5, - deform = 6, - event = 7, - drawOrder = 8, - ikConstraint = 9, - transformConstraint = 10, - pathConstraintPosition = 11, - pathConstraintSpacing = 12, - pathConstraintMix = 13, - twoColor = 14, - } - abstract class CurveTimeline implements Timeline { - static LINEAR: number; - static STEPPED: number; - static BEZIER: number; - static BEZIER_SIZE: number; - private curves; - abstract getPropertyId(): number; - constructor(frameCount: number); - getFrameCount(): number; - setLinear(frameIndex: number): void; - setStepped(frameIndex: number): void; - getCurveType(frameIndex: number): number; - setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; - getCurvePercent(frameIndex: number, percent: number): number; - abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class RotateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATION: number; - static ROTATION: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, degrees: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TranslateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_X: number; - static PREV_Y: number; - static X: number; - static Y: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, x: number, y: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ScaleTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ShearTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static R: number; - static G: number; - static B: number; - static A: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TwoColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static PREV_R2: number; - static PREV_G2: number; - static PREV_B2: number; - static R: number; - static G: number; - static B: number; - static A: number; - static R2: number; - static G2: number; - static B2: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class AttachmentTimeline implements Timeline { - slotIndex: number; - frames: ArrayLike; - attachmentNames: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, attachmentName: string): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DeformTimeline extends CurveTimeline { - slotIndex: number; - attachment: VertexAttachment; - frames: ArrayLike; - frameVertices: Array>; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class EventTimeline implements Timeline { - frames: ArrayLike; - events: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, event: Event): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DrawOrderTimeline implements Timeline { - frames: ArrayLike; - drawOrders: Array>; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, drawOrder: Array): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class IkConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_MIX: number; - static PREV_BEND_DIRECTION: number; - static MIX: number; - static BEND_DIRECTION: number; - ikConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TransformConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static PREV_SCALE: number; - static PREV_SHEAR: number; - static ROTATE: number; - static TRANSLATE: number; - static SCALE: number; - static SHEAR: number; - transformConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintPositionTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_VALUE: number; - static VALUE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, value: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintMixTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static ROTATE: number; - static TRANSLATE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } + class Animation { + name: string; + timelines: Array; + duration: number; + constructor(name: string, timelines: Array, duration: number); + apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + static binarySearch(values: ArrayLike, target: number, step?: number): number; + static linearSearch(values: ArrayLike, target: number, step: number): number; + } + interface Timeline { + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + getPropertyId(): number; + } + enum TimelineType { + rotate = 0, + translate = 1, + scale = 2, + shear = 3, + attachment = 4, + color = 5, + deform = 6, + event = 7, + drawOrder = 8, + ikConstraint = 9, + transformConstraint = 10, + pathConstraintPosition = 11, + pathConstraintSpacing = 12, + pathConstraintMix = 13, + twoColor = 14, + } + abstract class CurveTimeline implements Timeline { + static LINEAR: number; + static STEPPED: number; + static BEZIER: number; + static BEZIER_SIZE: number; + private curves; + abstract getPropertyId(): number; + constructor(frameCount: number); + getFrameCount(): number; + setLinear(frameIndex: number): void; + setStepped(frameIndex: number): void; + getCurveType(frameIndex: number): number; + setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; + getCurvePercent(frameIndex: number, percent: number): number; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class RotateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATION: number; + static ROTATION: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, degrees: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TranslateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_X: number; + static PREV_Y: number; + static X: number; + static Y: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, x: number, y: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ScaleTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ShearTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static R: number; + static G: number; + static B: number; + static A: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TwoColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static PREV_R2: number; + static PREV_G2: number; + static PREV_B2: number; + static R: number; + static G: number; + static B: number; + static A: number; + static R2: number; + static G2: number; + static B2: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class AttachmentTimeline implements Timeline { + slotIndex: number; + frames: ArrayLike; + attachmentNames: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, attachmentName: string): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DeformTimeline extends CurveTimeline { + slotIndex: number; + attachment: VertexAttachment; + frames: ArrayLike; + frameVertices: Array>; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class EventTimeline implements Timeline { + frames: ArrayLike; + events: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, event: Event): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DrawOrderTimeline implements Timeline { + frames: ArrayLike; + drawOrders: Array>; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, drawOrder: Array): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class IkConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_MIX: number; + static PREV_BEND_DIRECTION: number; + static MIX: number; + static BEND_DIRECTION: number; + ikConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TransformConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static PREV_SCALE: number; + static PREV_SHEAR: number; + static ROTATE: number; + static TRANSLATE: number; + static SCALE: number; + static SHEAR: number; + transformConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintPositionTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_VALUE: number; + static VALUE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, value: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintMixTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static ROTATE: number; + static TRANSLATE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } } declare module spine { - class AnimationState { - static emptyAnimation: Animation; - static SUBSEQUENT: number; - static FIRST: number; - static DIP: number; - static DIP_MIX: number; - data: AnimationStateData; - tracks: TrackEntry[]; - events: Event[]; - listeners: AnimationStateListener2[]; - queue: EventQueue; - propertyIDs: IntSet; - mixingTo: TrackEntry[]; - animationsChanged: boolean; - timeScale: number; - trackEntryPool: Pool; - constructor(data: AnimationStateData); - update(delta: number): void; - updateMixingFrom(to: TrackEntry, delta: number): boolean; - apply(skeleton: Skeleton): boolean; - applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; - applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; - queueEvents(entry: TrackEntry, animationTime: number): void; - clearTracks(): void; - clearTrack(trackIndex: number): void; - setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; - setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; - setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; - addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; - addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; - setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; - addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; - setEmptyAnimations(mixDuration: number): void; - expandToIndex(index: number): TrackEntry; - trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; - disposeNext(entry: TrackEntry): void; - _animationsChanged(): void; - getCurrent(trackIndex: number): TrackEntry; - addListener(listener: AnimationStateListener2): void; - removeListener(listener: AnimationStateListener2): void; - clearListeners(): void; - clearListenerNotifications(): void; - } - class TrackEntry { - animation: Animation; - next: TrackEntry; - mixingFrom: TrackEntry; - listener: AnimationStateListener2; - trackIndex: number; - loop: boolean; - eventThreshold: number; - attachmentThreshold: number; - drawOrderThreshold: number; - animationStart: number; - animationEnd: number; - animationLast: number; - nextAnimationLast: number; - delay: number; - trackTime: number; - trackLast: number; - nextTrackLast: number; - trackEnd: number; - timeScale: number; - alpha: number; - mixTime: number; - mixDuration: number; - interruptAlpha: number; - totalAlpha: number; - timelineData: number[]; - timelineDipMix: TrackEntry[]; - timelinesRotation: number[]; - reset(): void; - setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; - hasTimeline(id: number): boolean; - getAnimationTime(): number; - setAnimationLast(animationLast: number): void; - isComplete(): boolean; - resetRotationDirections(): void; - } - class EventQueue { - objects: Array; - drainDisabled: boolean; - animState: AnimationState; - constructor(animState: AnimationState); - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - drain(): void; - clear(): void; - } - enum EventType { - start = 0, - interrupt = 1, - end = 2, - dispose = 3, - complete = 4, - event = 5, - } - interface AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } - abstract class AnimationStateAdapter2 implements AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } + class AnimationState { + static emptyAnimation: Animation; + static SUBSEQUENT: number; + static FIRST: number; + static DIP: number; + static DIP_MIX: number; + data: AnimationStateData; + tracks: TrackEntry[]; + events: Event[]; + listeners: AnimationStateListener2[]; + queue: EventQueue; + propertyIDs: IntSet; + mixingTo: TrackEntry[]; + animationsChanged: boolean; + timeScale: number; + trackEntryPool: Pool; + constructor(data: AnimationStateData); + update(delta: number): void; + updateMixingFrom(to: TrackEntry, delta: number): boolean; + apply(skeleton: Skeleton): boolean; + applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; + applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; + queueEvents(entry: TrackEntry, animationTime: number): void; + clearTracks(): void; + clearTrack(trackIndex: number): void; + setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; + setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; + setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; + addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; + addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; + setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; + addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; + setEmptyAnimations(mixDuration: number): void; + expandToIndex(index: number): TrackEntry; + trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; + disposeNext(entry: TrackEntry): void; + _animationsChanged(): void; + getCurrent(trackIndex: number): TrackEntry; + addListener(listener: AnimationStateListener2): void; + removeListener(listener: AnimationStateListener2): void; + clearListeners(): void; + clearListenerNotifications(): void; + } + class TrackEntry { + animation: Animation; + next: TrackEntry; + mixingFrom: TrackEntry; + listener: AnimationStateListener2; + trackIndex: number; + loop: boolean; + eventThreshold: number; + attachmentThreshold: number; + drawOrderThreshold: number; + animationStart: number; + animationEnd: number; + animationLast: number; + nextAnimationLast: number; + delay: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; + timeScale: number; + alpha: number; + mixTime: number; + mixDuration: number; + interruptAlpha: number; + totalAlpha: number; + timelineData: number[]; + timelineDipMix: TrackEntry[]; + timelinesRotation: number[]; + reset(): void; + setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; + hasTimeline(id: number): boolean; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; + isComplete(): boolean; + resetRotationDirections(): void; + } + class EventQueue { + objects: Array; + drainDisabled: boolean; + animState: AnimationState; + constructor(animState: AnimationState); + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + drain(): void; + clear(): void; + } + enum EventType { + start = 0, + interrupt = 1, + end = 2, + dispose = 3, + complete = 4, + event = 5, + } + interface AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } + abstract class AnimationStateAdapter2 implements AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } } declare module spine { - class AnimationStateData { - skeletonData: SkeletonData; - animationToMixTime: Map; - defaultMix: number; - constructor(skeletonData: SkeletonData); - setMix(fromName: string, toName: string, duration: number): void; - setMixWith(from: Animation, to: Animation, duration: number): void; - getMix(from: Animation, to: Animation): number; - } + class AnimationStateData { + skeletonData: SkeletonData; + animationToMixTime: Map; + defaultMix: number; + constructor(skeletonData: SkeletonData); + setMix(fromName: string, toName: string, duration: number): void; + setMixWith(from: Animation, to: Animation, duration: number): void; + getMix(from: Animation, to: Animation): number; + } } declare module spine { - class AtlasAttachmentLoader implements AttachmentLoader { - atlas: TextureAtlas; - constructor(atlas: TextureAtlas); - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + class AtlasAttachmentLoader implements AttachmentLoader { + atlas: TextureAtlas; + constructor(atlas: TextureAtlas); + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - abstract class Attachment { - name: string; - constructor(name: string); - } - abstract class VertexAttachment extends Attachment { - bones: Array; - vertices: ArrayLike; - worldVerticesLength: number; - constructor(name: string); - computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - } + abstract class Attachment { + name: string; + constructor(name: string); + } + abstract class VertexAttachment extends Attachment { + bones: Array; + vertices: ArrayLike; + worldVerticesLength: number; + constructor(name: string); + computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + } } declare module spine { - interface AttachmentLoader { - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + interface AttachmentLoader { + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - enum AttachmentType { - Region = 0, - BoundingBox = 1, - Mesh = 2, - LinkedMesh = 3, - Path = 4, - Point = 5, - } + enum AttachmentType { + Region = 0, + BoundingBox = 1, + Mesh = 2, + LinkedMesh = 3, + Path = 4, + Point = 5, + } } declare module spine { - class BoundingBoxAttachment extends VertexAttachment { - color: Color; - constructor(name: string); - } + class BoundingBoxAttachment extends VertexAttachment { + color: Color; + constructor(name: string); + } } declare module spine { - class ClippingAttachment extends VertexAttachment { - endSlot: SlotData; - color: Color; - constructor(name: string); - } + class ClippingAttachment extends VertexAttachment { + endSlot: SlotData; + color: Color; + constructor(name: string); + } } declare module spine { - class MeshAttachment extends VertexAttachment { - region: TextureRegion; - path: string; - regionUVs: ArrayLike; - uvs: ArrayLike; - triangles: Array; - color: Color; - hullLength: number; - private parentMesh; - inheritDeform: boolean; - tempColor: Color; - constructor(name: string); - updateUVs(): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - getParentMesh(): MeshAttachment; - setParentMesh(parentMesh: MeshAttachment): void; - } + class MeshAttachment extends VertexAttachment { + region: TextureRegion; + path: string; + regionUVs: ArrayLike; + uvs: ArrayLike; + triangles: Array; + color: Color; + hullLength: number; + private parentMesh; + inheritDeform: boolean; + tempColor: Color; + constructor(name: string); + updateUVs(): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + getParentMesh(): MeshAttachment; + setParentMesh(parentMesh: MeshAttachment): void; + } } declare module spine { - class PathAttachment extends VertexAttachment { - lengths: Array; - closed: boolean; - constantSpeed: boolean; - color: Color; - constructor(name: string); - } + class PathAttachment extends VertexAttachment { + lengths: Array; + closed: boolean; + constantSpeed: boolean; + color: Color; + constructor(name: string); + } } declare module spine { - class PointAttachment extends VertexAttachment { - x: number; - y: number; - rotation: number; - color: Color; - constructor(name: string); - computeWorldPosition(bone: Bone, point: Vector2): Vector2; - computeWorldRotation(bone: Bone): number; - } + class PointAttachment extends VertexAttachment { + x: number; + y: number; + rotation: number; + color: Color; + constructor(name: string); + computeWorldPosition(bone: Bone, point: Vector2): Vector2; + computeWorldRotation(bone: Bone): number; + } } declare module spine { - class RegionAttachment extends Attachment { - static OX1: number; - static OY1: number; - static OX2: number; - static OY2: number; - static OX3: number; - static OY3: number; - static OX4: number; - static OY4: number; - static X1: number; - static Y1: number; - static C1R: number; - static C1G: number; - static C1B: number; - static C1A: number; - static U1: number; - static V1: number; - static X2: number; - static Y2: number; - static C2R: number; - static C2G: number; - static C2B: number; - static C2A: number; - static U2: number; - static V2: number; - static X3: number; - static Y3: number; - static C3R: number; - static C3G: number; - static C3B: number; - static C3A: number; - static U3: number; - static V3: number; - static X4: number; - static Y4: number; - static C4R: number; - static C4G: number; - static C4B: number; - static C4A: number; - static U4: number; - static V4: number; - x: number; - y: number; - scaleX: number; - scaleY: number; - rotation: number; - width: number; - height: number; - color: Color; - path: string; - rendererObject: any; - region: TextureRegion; - offset: ArrayLike; - uvs: ArrayLike; - tempColor: Color; - constructor(name: string); - updateOffset(): void; - setRegion(region: TextureRegion): void; - computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; - } + class RegionAttachment extends Attachment { + static OX1: number; + static OY1: number; + static OX2: number; + static OY2: number; + static OX3: number; + static OY3: number; + static OX4: number; + static OY4: number; + static X1: number; + static Y1: number; + static C1R: number; + static C1G: number; + static C1B: number; + static C1A: number; + static U1: number; + static V1: number; + static X2: number; + static Y2: number; + static C2R: number; + static C2G: number; + static C2B: number; + static C2A: number; + static U2: number; + static V2: number; + static X3: number; + static Y3: number; + static C3R: number; + static C3G: number; + static C3B: number; + static C3A: number; + static U3: number; + static V3: number; + static X4: number; + static Y4: number; + static C4R: number; + static C4G: number; + static C4B: number; + static C4A: number; + static U4: number; + static V4: number; + x: number; + y: number; + scaleX: number; + scaleY: number; + rotation: number; + width: number; + height: number; + color: Color; + path: string; + rendererObject: any; + region: TextureRegion; + offset: ArrayLike; + uvs: ArrayLike; + tempColor: Color; + constructor(name: string); + updateOffset(): void; + setRegion(region: TextureRegion): void; + computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; + } } declare module spine { - enum BlendMode { - Normal = 0, - Additive = 1, - Multiply = 2, - Screen = 3, - } + enum BlendMode { + Normal = 0, + Additive = 1, + Multiply = 2, + Screen = 3, + } } declare module spine { - class Bone implements Updatable { - data: BoneData; - skeleton: Skeleton; - parent: Bone; - children: Bone[]; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - ax: number; - ay: number; - arotation: number; - ascaleX: number; - ascaleY: number; - ashearX: number; - ashearY: number; - appliedValid: boolean; - a: number; - b: number; - worldX: number; - c: number; - d: number; - worldY: number; - sorted: boolean; - constructor(data: BoneData, skeleton: Skeleton, parent: Bone); - update(): void; - updateWorldTransform(): void; - updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; - setToSetupPose(): void; - getWorldRotationX(): number; - getWorldRotationY(): number; - getWorldScaleX(): number; - getWorldScaleY(): number; - updateAppliedTransform(): void; - worldToLocal(world: Vector2): Vector2; - localToWorld(local: Vector2): Vector2; - worldToLocalRotation(worldRotation: number): number; - localToWorldRotation(localRotation: number): number; - rotateWorld(degrees: number): void; - } + class Bone implements Updatable { + data: BoneData; + skeleton: Skeleton; + parent: Bone; + children: Bone[]; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + ax: number; + ay: number; + arotation: number; + ascaleX: number; + ascaleY: number; + ashearX: number; + ashearY: number; + appliedValid: boolean; + a: number; + b: number; + worldX: number; + c: number; + d: number; + worldY: number; + sorted: boolean; + constructor(data: BoneData, skeleton: Skeleton, parent: Bone); + update(): void; + updateWorldTransform(): void; + updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; + setToSetupPose(): void; + getWorldRotationX(): number; + getWorldRotationY(): number; + getWorldScaleX(): number; + getWorldScaleY(): number; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + worldToLocalRotation(worldRotation: number): number; + localToWorldRotation(localRotation: number): number; + rotateWorld(degrees: number): void; + } } declare module spine { - class BoneData { - index: number; - name: string; - parent: BoneData; - length: number; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - transformMode: TransformMode; - constructor(index: number, name: string, parent: BoneData); - } - enum TransformMode { - Normal = 0, - OnlyTranslation = 1, - NoRotationOrReflection = 2, - NoScale = 3, - NoScaleOrReflection = 4, - } + class BoneData { + index: number; + name: string; + parent: BoneData; + length: number; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + transformMode: TransformMode; + constructor(index: number, name: string, parent: BoneData); + } + enum TransformMode { + Normal = 0, + OnlyTranslation = 1, + NoRotationOrReflection = 2, + NoScale = 3, + NoScaleOrReflection = 4, + } } declare module spine { - interface Constraint extends Updatable { - getOrder(): number; - } + interface Constraint extends Updatable { + getOrder(): number; + } } declare module spine { - class Event { - data: EventData; - intValue: number; - floatValue: number; - stringValue: string; - time: number; - constructor(time: number, data: EventData); - } + class Event { + data: EventData; + intValue: number; + floatValue: number; + stringValue: string; + time: number; + constructor(time: number, data: EventData); + } } declare module spine { - class EventData { - name: string; - intValue: number; - floatValue: number; - stringValue: string; - constructor(name: string); - } + class EventData { + name: string; + intValue: number; + floatValue: number; + stringValue: string; + constructor(name: string); + } } declare module spine { - class IkConstraint implements Constraint { - data: IkConstraintData; - bones: Array; - target: Bone; - mix: number; - bendDirection: number; - constructor(data: IkConstraintData, skeleton: Skeleton); - getOrder(): number; - apply(): void; - update(): void; - apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; - apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; - } + class IkConstraint implements Constraint { + data: IkConstraintData; + bones: Array; + target: Bone; + mix: number; + bendDirection: number; + constructor(data: IkConstraintData, skeleton: Skeleton); + getOrder(): number; + apply(): void; + update(): void; + apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; + apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; + } } declare module spine { - class IkConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - bendDirection: number; - mix: number; - constructor(name: string); - } + class IkConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + bendDirection: number; + mix: number; + constructor(name: string); + } } declare module spine { - class PathConstraint implements Constraint { - static NONE: number; - static BEFORE: number; - static AFTER: number; - data: PathConstraintData; - bones: Array; - target: Slot; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - spaces: number[]; - positions: number[]; - world: number[]; - curves: number[]; - lengths: number[]; - segments: number[]; - constructor(data: PathConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; - addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; - getOrder(): number; - } + class PathConstraint implements Constraint { + static NONE: number; + static BEFORE: number; + static AFTER: number; + data: PathConstraintData; + bones: Array; + target: Slot; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + spaces: number[]; + positions: number[]; + world: number[]; + curves: number[]; + lengths: number[]; + segments: number[]; + constructor(data: PathConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; + addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; + getOrder(): number; + } } declare module spine { - class PathConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: SlotData; - positionMode: PositionMode; - spacingMode: SpacingMode; - rotateMode: RotateMode; - offsetRotation: number; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - constructor(name: string); - } - enum PositionMode { - Fixed = 0, - Percent = 1, - } - enum SpacingMode { - Length = 0, - Fixed = 1, - Percent = 2, - } - enum RotateMode { - Tangent = 0, - Chain = 1, - ChainScale = 2, - } + class PathConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: SlotData; + positionMode: PositionMode; + spacingMode: SpacingMode; + rotateMode: RotateMode; + offsetRotation: number; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + constructor(name: string); + } + enum PositionMode { + Fixed = 0, + Percent = 1, + } + enum SpacingMode { + Length = 0, + Fixed = 1, + Percent = 2, + } + enum RotateMode { + Tangent = 0, + Chain = 1, + ChainScale = 2, + } } declare module spine { - class SharedAssetManager implements Disposable { - private pathPrefix; - private clientAssets; - private queuedAssets; - private rawAssets; - private errors; - constructor(pathPrefix?: string); - private queueAsset(clientId, textureLoader, path); - loadText(clientId: string, path: string): void; - loadJson(clientId: string, path: string): void; - loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; - get(clientId: string, path: string): any; - private updateClientAssets(clientAssets); - isLoadingComplete(clientId: string): boolean; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class SharedAssetManager implements Disposable { + private pathPrefix; + private clientAssets; + private queuedAssets; + private rawAssets; + private errors; + constructor(pathPrefix?: string); + private queueAsset(clientId, textureLoader, path); + loadText(clientId: string, path: string): void; + loadJson(clientId: string, path: string): void; + loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; + get(clientId: string, path: string): any; + private updateClientAssets(clientAssets); + isLoadingComplete(clientId: string): boolean; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class Skeleton { - data: SkeletonData; - bones: Array; - slots: Array; - drawOrder: Array; - ikConstraints: Array; - transformConstraints: Array; - pathConstraints: Array; - _updateCache: Updatable[]; - updateCacheReset: Updatable[]; - skin: Skin; - color: Color; - time: number; - flipX: boolean; - flipY: boolean; - x: number; - y: number; - constructor(data: SkeletonData); - updateCache(): void; - sortIkConstraint(constraint: IkConstraint): void; - sortPathConstraint(constraint: PathConstraint): void; - sortTransformConstraint(constraint: TransformConstraint): void; - sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; - sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; - sortBone(bone: Bone): void; - sortReset(bones: Array): void; - updateWorldTransform(): void; - setToSetupPose(): void; - setBonesToSetupPose(): void; - setSlotsToSetupPose(): void; - getRootBone(): Bone; - findBone(boneName: string): Bone; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): Slot; - findSlotIndex(slotName: string): number; - setSkinByName(skinName: string): void; - setSkin(newSkin: Skin): void; - getAttachmentByName(slotName: string, attachmentName: string): Attachment; - getAttachment(slotIndex: number, attachmentName: string): Attachment; - setAttachment(slotName: string, attachmentName: string): void; - findIkConstraint(constraintName: string): IkConstraint; - findTransformConstraint(constraintName: string): TransformConstraint; - findPathConstraint(constraintName: string): PathConstraint; - getBounds(offset: Vector2, size: Vector2, temp: Array): void; - update(delta: number): void; - } + class Skeleton { + data: SkeletonData; + bones: Array; + slots: Array; + drawOrder: Array; + ikConstraints: Array; + transformConstraints: Array; + pathConstraints: Array; + _updateCache: Updatable[]; + updateCacheReset: Updatable[]; + skin: Skin; + color: Color; + time: number; + flipX: boolean; + flipY: boolean; + x: number; + y: number; + constructor(data: SkeletonData); + updateCache(): void; + sortIkConstraint(constraint: IkConstraint): void; + sortPathConstraint(constraint: PathConstraint): void; + sortTransformConstraint(constraint: TransformConstraint): void; + sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; + sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; + sortBone(bone: Bone): void; + sortReset(bones: Array): void; + updateWorldTransform(): void; + setToSetupPose(): void; + setBonesToSetupPose(): void; + setSlotsToSetupPose(): void; + getRootBone(): Bone; + findBone(boneName: string): Bone; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): Slot; + findSlotIndex(slotName: string): number; + setSkinByName(skinName: string): void; + setSkin(newSkin: Skin): void; + getAttachmentByName(slotName: string, attachmentName: string): Attachment; + getAttachment(slotIndex: number, attachmentName: string): Attachment; + setAttachment(slotName: string, attachmentName: string): void; + findIkConstraint(constraintName: string): IkConstraint; + findTransformConstraint(constraintName: string): TransformConstraint; + findPathConstraint(constraintName: string): PathConstraint; + getBounds(offset: Vector2, size: Vector2, temp: Array): void; + update(delta: number): void; + } } declare module spine { - class SkeletonBounds { - minX: number; - minY: number; - maxX: number; - maxY: number; - boundingBoxes: BoundingBoxAttachment[]; - polygons: ArrayLike[]; - private polygonPool; - update(skeleton: Skeleton, updateAabb: boolean): void; - aabbCompute(): void; - aabbContainsPoint(x: number, y: number): boolean; - aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; - aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; - containsPoint(x: number, y: number): BoundingBoxAttachment; - containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; - intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; - intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; - getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; - getWidth(): number; - getHeight(): number; - } + class SkeletonBounds { + minX: number; + minY: number; + maxX: number; + maxY: number; + boundingBoxes: BoundingBoxAttachment[]; + polygons: ArrayLike[]; + private polygonPool; + update(skeleton: Skeleton, updateAabb: boolean): void; + aabbCompute(): void; + aabbContainsPoint(x: number, y: number): boolean; + aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; + aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; + containsPoint(x: number, y: number): BoundingBoxAttachment; + containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; + intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; + intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; + getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; + getWidth(): number; + getHeight(): number; + } } declare module spine { - class SkeletonClipping { - private triangulator; - private clippingPolygon; - private clipOutput; - clippedVertices: number[]; - clippedTriangles: number[]; - private scratch; - private clipAttachment; - private clippingPolygons; - clipStart(slot: Slot, clip: ClippingAttachment): number; - clipEndWithSlot(slot: Slot): void; - clipEnd(): void; - isClipping(): boolean; - clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; - clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; - static makeClockwise(polygon: ArrayLike): void; - } + class SkeletonClipping { + private triangulator; + private clippingPolygon; + private clipOutput; + clippedVertices: number[]; + clippedTriangles: number[]; + private scratch; + private clipAttachment; + private clippingPolygons; + clipStart(slot: Slot, clip: ClippingAttachment): number; + clipEndWithSlot(slot: Slot): void; + clipEnd(): void; + isClipping(): boolean; + clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; + clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; + static makeClockwise(polygon: ArrayLike): void; + } } declare module spine { - class SkeletonData { - name: string; - bones: BoneData[]; - slots: SlotData[]; - skins: Skin[]; - defaultSkin: Skin; - events: EventData[]; - animations: Animation[]; - ikConstraints: IkConstraintData[]; - transformConstraints: TransformConstraintData[]; - pathConstraints: PathConstraintData[]; - width: number; - height: number; - version: string; - hash: string; - fps: number; - imagesPath: string; - findBone(boneName: string): BoneData; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): SlotData; - findSlotIndex(slotName: string): number; - findSkin(skinName: string): Skin; - findEvent(eventDataName: string): EventData; - findAnimation(animationName: string): Animation; - findIkConstraint(constraintName: string): IkConstraintData; - findTransformConstraint(constraintName: string): TransformConstraintData; - findPathConstraint(constraintName: string): PathConstraintData; - findPathConstraintIndex(pathConstraintName: string): number; - } + class SkeletonData { + name: string; + bones: BoneData[]; + slots: SlotData[]; + skins: Skin[]; + defaultSkin: Skin; + events: EventData[]; + animations: Animation[]; + ikConstraints: IkConstraintData[]; + transformConstraints: TransformConstraintData[]; + pathConstraints: PathConstraintData[]; + width: number; + height: number; + version: string; + hash: string; + fps: number; + imagesPath: string; + findBone(boneName: string): BoneData; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): SlotData; + findSlotIndex(slotName: string): number; + findSkin(skinName: string): Skin; + findEvent(eventDataName: string): EventData; + findAnimation(animationName: string): Animation; + findIkConstraint(constraintName: string): IkConstraintData; + findTransformConstraint(constraintName: string): TransformConstraintData; + findPathConstraint(constraintName: string): PathConstraintData; + findPathConstraintIndex(pathConstraintName: string): number; + } } declare module spine { - class SkeletonJson { - attachmentLoader: AttachmentLoader; - scale: number; - private linkedMeshes; - constructor(attachmentLoader: AttachmentLoader); - readSkeletonData(json: string | any): SkeletonData; - readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; - readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; - readAnimation(map: any, name: string, skeletonData: SkeletonData): void; - readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; - getValue(map: any, prop: string, defaultValue: any): any; - static blendModeFromString(str: string): BlendMode; - static positionModeFromString(str: string): PositionMode; - static spacingModeFromString(str: string): SpacingMode; - static rotateModeFromString(str: string): RotateMode; - static transformModeFromString(str: string): TransformMode; - } + class SkeletonJson { + attachmentLoader: AttachmentLoader; + scale: number; + private linkedMeshes; + constructor(attachmentLoader: AttachmentLoader); + readSkeletonData(json: string | any): SkeletonData; + readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; + readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; + readAnimation(map: any, name: string, skeletonData: SkeletonData): void; + readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; + getValue(map: any, prop: string, defaultValue: any): any; + static blendModeFromString(str: string): BlendMode; + static positionModeFromString(str: string): PositionMode; + static spacingModeFromString(str: string): SpacingMode; + static rotateModeFromString(str: string): RotateMode; + static transformModeFromString(str: string): TransformMode; + } } declare module spine { - class Skin { - name: string; - attachments: Map[]; - constructor(name: string); - addAttachment(slotIndex: number, name: string, attachment: Attachment): void; - getAttachment(slotIndex: number, name: string): Attachment; - attachAll(skeleton: Skeleton, oldSkin: Skin): void; - } + class Skin { + name: string; + attachments: Map[]; + constructor(name: string); + addAttachment(slotIndex: number, name: string, attachment: Attachment): void; + getAttachment(slotIndex: number, name: string): Attachment; + attachAll(skeleton: Skeleton, oldSkin: Skin): void; + } } declare module spine { - class Slot { - data: SlotData; - bone: Bone; - color: Color; - darkColor: Color; - private attachment; - private attachmentTime; - attachmentVertices: number[]; - constructor(data: SlotData, bone: Bone); - getAttachment(): Attachment; - setAttachment(attachment: Attachment): void; - setAttachmentTime(time: number): void; - getAttachmentTime(): number; - setToSetupPose(): void; - } + class Slot { + data: SlotData; + bone: Bone; + color: Color; + darkColor: Color; + private attachment; + private attachmentTime; + attachmentVertices: number[]; + constructor(data: SlotData, bone: Bone); + getAttachment(): Attachment; + setAttachment(attachment: Attachment): void; + setAttachmentTime(time: number): void; + getAttachmentTime(): number; + setToSetupPose(): void; + } } declare module spine { - class SlotData { - index: number; - name: string; - boneData: BoneData; - color: Color; - darkColor: Color; - attachmentName: string; - blendMode: BlendMode; - constructor(index: number, name: string, boneData: BoneData); - } + class SlotData { + index: number; + name: string; + boneData: BoneData; + color: Color; + darkColor: Color; + attachmentName: string; + blendMode: BlendMode; + constructor(index: number, name: string, boneData: BoneData); + } } declare module spine { - class TextureAtlas implements Disposable { - pages: TextureAtlasPage[]; - regions: TextureAtlasRegion[]; - constructor(atlasText: string, textureLoader: (path: string) => any); - private load(atlasText, textureLoader); - findRegion(name: string): TextureAtlasRegion; - dispose(): void; - } - class TextureAtlasPage { - name: string; - minFilter: TextureFilter; - magFilter: TextureFilter; - uWrap: TextureWrap; - vWrap: TextureWrap; - texture: Texture; - width: number; - height: number; - } - class TextureAtlasRegion extends TextureRegion { - page: TextureAtlasPage; - name: string; - x: number; - y: number; - index: number; - rotate: boolean; - texture: Texture; - } + class TextureAtlas implements Disposable { + pages: TextureAtlasPage[]; + regions: TextureAtlasRegion[]; + constructor(atlasText: string, textureLoader: (path: string) => any); + private load(atlasText, textureLoader); + findRegion(name: string): TextureAtlasRegion; + dispose(): void; + } + class TextureAtlasPage { + name: string; + minFilter: TextureFilter; + magFilter: TextureFilter; + uWrap: TextureWrap; + vWrap: TextureWrap; + texture: Texture; + width: number; + height: number; + } + class TextureAtlasRegion extends TextureRegion { + page: TextureAtlasPage; + name: string; + x: number; + y: number; + index: number; + rotate: boolean; + texture: Texture; + } } declare module spine { - class TransformConstraint implements Constraint { - data: TransformConstraintData; - bones: Array; - target: Bone; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - temp: Vector2; - constructor(data: TransformConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - applyAbsoluteWorld(): void; - applyRelativeWorld(): void; - applyAbsoluteLocal(): void; - applyRelativeLocal(): void; - getOrder(): number; - } + class TransformConstraint implements Constraint { + data: TransformConstraintData; + bones: Array; + target: Bone; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + temp: Vector2; + constructor(data: TransformConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + applyAbsoluteWorld(): void; + applyRelativeWorld(): void; + applyAbsoluteLocal(): void; + applyRelativeLocal(): void; + getOrder(): number; + } } declare module spine { - class TransformConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - offsetRotation: number; - offsetX: number; - offsetY: number; - offsetScaleX: number; - offsetScaleY: number; - offsetShearY: number; - relative: boolean; - local: boolean; - constructor(name: string); - } + class TransformConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + offsetRotation: number; + offsetX: number; + offsetY: number; + offsetScaleX: number; + offsetScaleY: number; + offsetShearY: number; + relative: boolean; + local: boolean; + constructor(name: string); + } } declare module spine { - class Triangulator { - private convexPolygons; - private convexPolygonsIndices; - private indicesArray; - private isConcaveArray; - private triangles; - private polygonPool; - private polygonIndicesPool; - triangulate(verticesArray: ArrayLike): Array; - decompose(verticesArray: Array, triangles: Array): Array>; - private static isConcave(index, vertexCount, vertices, indices); - private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); - private static winding(p1x, p1y, p2x, p2y, p3x, p3y); - } + class Triangulator { + private convexPolygons; + private convexPolygonsIndices; + private indicesArray; + private isConcaveArray; + private triangles; + private polygonPool; + private polygonIndicesPool; + triangulate(verticesArray: ArrayLike): Array; + decompose(verticesArray: Array, triangles: Array): Array>; + private static isConcave(index, vertexCount, vertices, indices); + private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); + private static winding(p1x, p1y, p2x, p2y, p3x, p3y); + } } declare module spine { - interface Updatable { - update(): void; - } + interface Updatable { + update(): void; + } } declare module spine { - interface Map { - [key: string]: T; - } - class IntSet { - array: number[]; - add(value: number): boolean; - contains(value: number): boolean; - remove(value: number): void; - clear(): void; - } - interface Disposable { - dispose(): void; - } - interface Restorable { - restore(): void; - } - class Color { - r: number; - g: number; - b: number; - a: number; - static WHITE: Color; - static RED: Color; - static GREEN: Color; - static BLUE: Color; - static MAGENTA: Color; - constructor(r?: number, g?: number, b?: number, a?: number); - set(r: number, g: number, b: number, a: number): this; - setFromColor(c: Color): this; - setFromString(hex: string): this; - add(r: number, g: number, b: number, a: number): this; - clamp(): this; - } - class MathUtils { - static PI: number; - static PI2: number; - static radiansToDegrees: number; - static radDeg: number; - static degreesToRadians: number; - static degRad: number; - static clamp(value: number, min: number, max: number): number; - static cosDeg(degrees: number): number; - static sinDeg(degrees: number): number; - static signum(value: number): number; - static toInt(x: number): number; - static cbrt(x: number): number; - } - class Utils { - static SUPPORTS_TYPED_ARRAYS: boolean; - static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; - static setArraySize(array: Array, size: number, value?: any): Array; - static ensureArrayCapacity(array: Array, size: number, value?: any): Array; - static newArray(size: number, defaultValue: T): Array; - static newFloatArray(size: number): ArrayLike; - static newShortArray(size: number): ArrayLike; - static toFloatArray(array: Array): number[] | Float32Array; - } - class DebugUtils { - static logBones(skeleton: Skeleton): void; - } - class Pool { - private items; - private instantiator; - constructor(instantiator: () => T); - obtain(): T; - free(item: T): void; - freeAll(items: ArrayLike): void; - clear(): void; - } - class Vector2 { - x: number; - y: number; - constructor(x?: number, y?: number); - set(x: number, y: number): Vector2; - length(): number; - normalize(): this; - } - class TimeKeeper { - maxDelta: number; - framesPerSecond: number; - delta: number; - totalTime: number; - private lastTime; - private frameCount; - private frameTime; - update(): void; - } - interface ArrayLike { - length: number; - [n: number]: T; - } - class WindowedMean { - values: Array; - addedValues: number; - lastValue: number; - mean: number; - dirty: boolean; - constructor(windowSize?: number); - hasEnoughData(): boolean; - addValue(value: number): void; - getMean(): number; - } + interface Map { + [key: string]: T; + } + class IntSet { + array: number[]; + add(value: number): boolean; + contains(value: number): boolean; + remove(value: number): void; + clear(): void; + } + interface Disposable { + dispose(): void; + } + interface Restorable { + restore(): void; + } + class Color { + r: number; + g: number; + b: number; + a: number; + static WHITE: Color; + static RED: Color; + static GREEN: Color; + static BLUE: Color; + static MAGENTA: Color; + constructor(r?: number, g?: number, b?: number, a?: number); + set(r: number, g: number, b: number, a: number): this; + setFromColor(c: Color): this; + setFromString(hex: string): this; + add(r: number, g: number, b: number, a: number): this; + clamp(): this; + } + class MathUtils { + static PI: number; + static PI2: number; + static radiansToDegrees: number; + static radDeg: number; + static degreesToRadians: number; + static degRad: number; + static clamp(value: number, min: number, max: number): number; + static cosDeg(degrees: number): number; + static sinDeg(degrees: number): number; + static signum(value: number): number; + static toInt(x: number): number; + static cbrt(x: number): number; + } + class Utils { + static SUPPORTS_TYPED_ARRAYS: boolean; + static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; + static setArraySize(array: Array, size: number, value?: any): Array; + static ensureArrayCapacity(array: Array, size: number, value?: any): Array; + static newArray(size: number, defaultValue: T): Array; + static newFloatArray(size: number): ArrayLike; + static newShortArray(size: number): ArrayLike; + static toFloatArray(array: Array): number[] | Float32Array; + } + class DebugUtils { + static logBones(skeleton: Skeleton): void; + } + class Pool { + private items; + private instantiator; + constructor(instantiator: () => T); + obtain(): T; + free(item: T): void; + freeAll(items: ArrayLike): void; + clear(): void; + } + class Vector2 { + x: number; + y: number; + constructor(x?: number, y?: number); + set(x: number, y: number): Vector2; + length(): number; + normalize(): this; + } + class TimeKeeper { + maxDelta: number; + framesPerSecond: number; + delta: number; + totalTime: number; + private lastTime; + private frameCount; + private frameTime; + update(): void; + } + interface ArrayLike { + length: number; + [n: number]: T; + } + class WindowedMean { + values: Array; + addedValues: number; + lastValue: number; + mean: number; + dirty: boolean; + constructor(windowSize?: number); + hasEnoughData(): boolean; + addValue(value: number): void; + getMean(): number; + } } diff --git a/spine-ts/build/spine-canvas.js b/spine-ts/build/spine-canvas.js index dc4dbd23f..e9d502438 100644 --- a/spine-ts/build/spine-canvas.js +++ b/spine-ts/build/spine-canvas.js @@ -1,6472 +1,6472 @@ var spine; (function (spine) { - var AssetManager = (function () { - function AssetManager(textureLoader, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.assets = {}; - this.errors = {}; - this.toLoad = 0; - this.loaded = 0; - this.textureLoader = textureLoader; - this.pathPrefix = pathPrefix; - } - AssetManager.prototype.loadText = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.assets[path] = request.responseText; - if (success) - success(path, request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - if (error) - error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); - } - _this.toLoad--; - _this.loaded++; - } - }; - request.open("GET", path, true); - request.send(); - }; - AssetManager.prototype.loadTexture = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = path; - }; - AssetManager.prototype.loadTextureData = function (path, data, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = data; - }; - AssetManager.prototype.get = function (path) { - path = this.pathPrefix + path; - return this.assets[path]; - }; - AssetManager.prototype.remove = function (path) { - path = this.pathPrefix + path; - var asset = this.assets[path]; - if (asset.dispose) - asset.dispose(); - this.assets[path] = null; - }; - AssetManager.prototype.removeAll = function () { - for (var key in this.assets) { - var asset = this.assets[key]; - if (asset.dispose) - asset.dispose(); - } - this.assets = {}; - }; - AssetManager.prototype.isLoadingComplete = function () { - return this.toLoad == 0; - }; - AssetManager.prototype.getToLoad = function () { - return this.toLoad; - }; - AssetManager.prototype.getLoaded = function () { - return this.loaded; - }; - AssetManager.prototype.dispose = function () { - this.removeAll(); - }; - AssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - AssetManager.prototype.getErrors = function () { - return this.errors; - }; - return AssetManager; - }()); - spine.AssetManager = AssetManager; + var AssetManager = (function () { + function AssetManager(textureLoader, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.assets = {}; + this.errors = {}; + this.toLoad = 0; + this.loaded = 0; + this.textureLoader = textureLoader; + this.pathPrefix = pathPrefix; + } + AssetManager.prototype.loadText = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.assets[path] = request.responseText; + if (success) + success(path, request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + if (error) + error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); + } + _this.toLoad--; + _this.loaded++; + } + }; + request.open("GET", path, true); + request.send(); + }; + AssetManager.prototype.loadTexture = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = path; + }; + AssetManager.prototype.loadTextureData = function (path, data, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = data; + }; + AssetManager.prototype.get = function (path) { + path = this.pathPrefix + path; + return this.assets[path]; + }; + AssetManager.prototype.remove = function (path) { + path = this.pathPrefix + path; + var asset = this.assets[path]; + if (asset.dispose) + asset.dispose(); + this.assets[path] = null; + }; + AssetManager.prototype.removeAll = function () { + for (var key in this.assets) { + var asset = this.assets[key]; + if (asset.dispose) + asset.dispose(); + } + this.assets = {}; + }; + AssetManager.prototype.isLoadingComplete = function () { + return this.toLoad == 0; + }; + AssetManager.prototype.getToLoad = function () { + return this.toLoad; + }; + AssetManager.prototype.getLoaded = function () { + return this.loaded; + }; + AssetManager.prototype.dispose = function () { + this.removeAll(); + }; + AssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + AssetManager.prototype.getErrors = function () { + return this.errors; + }; + return AssetManager; + }()); + spine.AssetManager = AssetManager; })(spine || (spine = {})); var __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var spine; (function (spine) { - var canvas; - (function (canvas) { - var AssetManager = (function (_super) { - __extends(AssetManager, _super); - function AssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - _super.call(this, function (image) { return new spine.canvas.CanvasTexture(image); }, pathPrefix); - } - return AssetManager; - }(spine.AssetManager)); - canvas.AssetManager = AssetManager; - })(canvas = spine.canvas || (spine.canvas = {})); + var canvas; + (function (canvas) { + var AssetManager = (function (_super) { + __extends(AssetManager, _super); + function AssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + _super.call(this, function (image) { return new spine.canvas.CanvasTexture(image); }, pathPrefix); + } + return AssetManager; + }(spine.AssetManager)); + canvas.AssetManager = AssetManager; + })(canvas = spine.canvas || (spine.canvas = {})); })(spine || (spine = {})); var spine; (function (spine) { - var Texture = (function () { - function Texture(image) { - this._image = image; - } - Texture.prototype.getImage = function () { - return this._image; - }; - Texture.filterFromString = function (text) { - switch (text.toLowerCase()) { - case "nearest": return TextureFilter.Nearest; - case "linear": return TextureFilter.Linear; - case "mipmap": return TextureFilter.MipMap; - case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; - case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; - case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; - case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; - default: throw new Error("Unknown texture filter " + text); - } - }; - Texture.wrapFromString = function (text) { - switch (text.toLowerCase()) { - case "mirroredtepeat": return TextureWrap.MirroredRepeat; - case "clamptoedge": return TextureWrap.ClampToEdge; - case "repeat": return TextureWrap.Repeat; - default: throw new Error("Unknown texture wrap " + text); - } - }; - return Texture; - }()); - spine.Texture = Texture; - (function (TextureFilter) { - TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; - TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; - TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; - TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; - TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; - TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; - TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; - })(spine.TextureFilter || (spine.TextureFilter = {})); - var TextureFilter = spine.TextureFilter; - (function (TextureWrap) { - TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; - TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; - TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; - })(spine.TextureWrap || (spine.TextureWrap = {})); - var TextureWrap = spine.TextureWrap; - var TextureRegion = (function () { - function TextureRegion() { - this.u = 0; - this.v = 0; - this.u2 = 0; - this.v2 = 0; - this.width = 0; - this.height = 0; - this.rotate = false; - this.offsetX = 0; - this.offsetY = 0; - this.originalWidth = 0; - this.originalHeight = 0; - } - return TextureRegion; - }()); - spine.TextureRegion = TextureRegion; + var Texture = (function () { + function Texture(image) { + this._image = image; + } + Texture.prototype.getImage = function () { + return this._image; + }; + Texture.filterFromString = function (text) { + switch (text.toLowerCase()) { + case "nearest": return TextureFilter.Nearest; + case "linear": return TextureFilter.Linear; + case "mipmap": return TextureFilter.MipMap; + case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; + case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; + case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; + case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; + default: throw new Error("Unknown texture filter " + text); + } + }; + Texture.wrapFromString = function (text) { + switch (text.toLowerCase()) { + case "mirroredtepeat": return TextureWrap.MirroredRepeat; + case "clamptoedge": return TextureWrap.ClampToEdge; + case "repeat": return TextureWrap.Repeat; + default: throw new Error("Unknown texture wrap " + text); + } + }; + return Texture; + }()); + spine.Texture = Texture; + (function (TextureFilter) { + TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; + TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; + TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; + TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; + TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; + TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; + TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; + })(spine.TextureFilter || (spine.TextureFilter = {})); + var TextureFilter = spine.TextureFilter; + (function (TextureWrap) { + TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; + TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; + TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; + })(spine.TextureWrap || (spine.TextureWrap = {})); + var TextureWrap = spine.TextureWrap; + var TextureRegion = (function () { + function TextureRegion() { + this.u = 0; + this.v = 0; + this.u2 = 0; + this.v2 = 0; + this.width = 0; + this.height = 0; + this.rotate = false; + this.offsetX = 0; + this.offsetY = 0; + this.originalWidth = 0; + this.originalHeight = 0; + } + return TextureRegion; + }()); + spine.TextureRegion = TextureRegion; })(spine || (spine = {})); var spine; (function (spine) { - var canvas; - (function (canvas) { - var CanvasTexture = (function (_super) { - __extends(CanvasTexture, _super); - function CanvasTexture(image) { - _super.call(this, image); - } - CanvasTexture.prototype.setFilters = function (minFilter, magFilter) { }; - CanvasTexture.prototype.setWraps = function (uWrap, vWrap) { }; - CanvasTexture.prototype.dispose = function () { }; - return CanvasTexture; - }(spine.Texture)); - canvas.CanvasTexture = CanvasTexture; - })(canvas = spine.canvas || (spine.canvas = {})); + var canvas; + (function (canvas) { + var CanvasTexture = (function (_super) { + __extends(CanvasTexture, _super); + function CanvasTexture(image) { + _super.call(this, image); + } + CanvasTexture.prototype.setFilters = function (minFilter, magFilter) { }; + CanvasTexture.prototype.setWraps = function (uWrap, vWrap) { }; + CanvasTexture.prototype.dispose = function () { }; + return CanvasTexture; + }(spine.Texture)); + canvas.CanvasTexture = CanvasTexture; + })(canvas = spine.canvas || (spine.canvas = {})); })(spine || (spine = {})); var spine; (function (spine) { - var canvas; - (function (canvas) { - var SkeletonRenderer = (function () { - function SkeletonRenderer(context) { - this.triangleRendering = false; - this.debugRendering = false; - this.vertices = spine.Utils.newFloatArray(8 * 1024); - this.tempColor = new spine.Color(); - this.ctx = context; - } - SkeletonRenderer.prototype.draw = function (skeleton) { - if (this.triangleRendering) - this.drawTriangles(skeleton); - else - this.drawImages(skeleton); - }; - SkeletonRenderer.prototype.drawImages = function (skeleton) { - var ctx = this.ctx; - var drawOrder = skeleton.drawOrder; - if (this.debugRendering) - ctx.strokeStyle = "green"; - ctx.save(); - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var regionAttachment = null; - var region = null; - var image = null; - if (attachment instanceof spine.RegionAttachment) { - regionAttachment = attachment; - region = regionAttachment.region; - image = region.texture.getImage(); - } - else - continue; - var skeleton_1 = slot.bone.skeleton; - var skeletonColor = skeleton_1.color; - var slotColor = slot.color; - var regionColor = regionAttachment.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * regionColor.r, skeletonColor.g * slotColor.g * regionColor.g, skeletonColor.b * slotColor.b * regionColor.b, alpha); - var att = attachment; - var bone = slot.bone; - var w = region.width; - var h = region.height; - ctx.save(); - ctx.transform(bone.a, bone.c, bone.b, bone.d, bone.worldX, bone.worldY); - ctx.translate(attachment.offset[0], attachment.offset[1]); - ctx.rotate(attachment.rotation * Math.PI / 180); - ctx.scale(attachment.scaleX, attachment.scaleY); - ctx.translate(w / 2, h / 2); - if (attachment.region.rotate) { - var t = w; - w = h; - h = t; - ctx.rotate(-Math.PI / 2); - } - ctx.scale(1, -1); - ctx.translate(-w / 2, -h / 2); - if (color.r != 1 || color.g != 1 || color.b != 1 || color.a != 1) { - ctx.globalAlpha = color.a; - } - ctx.drawImage(image, region.x, region.y, w, h, 0, 0, w, h); - if (this.debugRendering) - ctx.strokeRect(0, 0, w, h); - ctx.restore(); - } - ctx.restore(); - }; - SkeletonRenderer.prototype.drawTriangles = function (skeleton) { - var blendMode = null; - var vertices = this.vertices; - var triangles = null; - var drawOrder = skeleton.drawOrder; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var texture = null; - var region = null; - if (attachment instanceof spine.RegionAttachment) { - var regionAttachment = attachment; - vertices = this.computeRegionVertices(slot, regionAttachment, false); - triangles = SkeletonRenderer.QUAD_TRIANGLES; - region = regionAttachment.region; - texture = region.texture.getImage(); - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - vertices = this.computeMeshVertices(slot, mesh, false); - triangles = mesh.triangles; - texture = mesh.region.renderObject.texture.getImage(); - } - else - continue; - if (texture != null) { - var slotBlendMode = slot.data.blendMode; - if (slotBlendMode != blendMode) { - blendMode = slotBlendMode; - } - var ctx = this.ctx; - for (var j = 0; j < triangles.length; j += 3) { - var t1 = triangles[j] * 8, t2 = triangles[j + 1] * 8, t3 = triangles[j + 2] * 8; - var x0 = vertices[t1], y0 = vertices[t1 + 1], u0 = vertices[t1 + 6], v0 = vertices[t1 + 7]; - var x1 = vertices[t2], y1 = vertices[t2 + 1], u1 = vertices[t2 + 6], v1 = vertices[t2 + 7]; - var x2 = vertices[t3], y2 = vertices[t3 + 1], u2 = vertices[t3 + 6], v2 = vertices[t3 + 7]; - this.drawTriangle(texture, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); - if (this.debugRendering) { - ctx.strokeStyle = "green"; - ctx.beginPath(); - ctx.moveTo(x0, y0); - ctx.lineTo(x1, y1); - ctx.lineTo(x2, y2); - ctx.lineTo(x0, y0); - ctx.stroke(); - } - } - } - } - }; - SkeletonRenderer.prototype.drawTriangle = function (img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2) { - var ctx = this.ctx; - u0 *= img.width; - v0 *= img.height; - u1 *= img.width; - v1 *= img.height; - u2 *= img.width; - v2 *= img.height; - ctx.beginPath(); - ctx.moveTo(x0, y0); - ctx.lineTo(x1, y1); - ctx.lineTo(x2, y2); - ctx.closePath(); - x1 -= x0; - y1 -= y0; - x2 -= x0; - y2 -= y0; - u1 -= u0; - v1 -= v0; - u2 -= u0; - v2 -= v0; - var det = 1 / (u1 * v2 - u2 * v1), a = (v2 * x1 - v1 * x2) * det, b = (v2 * y1 - v1 * y2) * det, c = (u1 * x2 - u2 * x1) * det, d = (u1 * y2 - u2 * y1) * det, e = x0 - a * u0 - c * v0, f = y0 - b * u0 - d * v0; - ctx.save(); - ctx.transform(a, b, c, d, e, f); - ctx.clip(); - ctx.drawImage(img, 0, 0); - ctx.restore(); - }; - SkeletonRenderer.prototype.computeRegionVertices = function (slot, region, pma) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var regionColor = region.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var multiplier = pma ? alpha : 1; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); - region.computeWorldVertices(slot.bone, this.vertices, 0, SkeletonRenderer.VERTEX_SIZE); - var vertices = this.vertices; - var uvs = region.uvs; - vertices[spine.RegionAttachment.C1R] = color.r; - vertices[spine.RegionAttachment.C1G] = color.g; - vertices[spine.RegionAttachment.C1B] = color.b; - vertices[spine.RegionAttachment.C1A] = color.a; - vertices[spine.RegionAttachment.U1] = uvs[0]; - vertices[spine.RegionAttachment.V1] = uvs[1]; - vertices[spine.RegionAttachment.C2R] = color.r; - vertices[spine.RegionAttachment.C2G] = color.g; - vertices[spine.RegionAttachment.C2B] = color.b; - vertices[spine.RegionAttachment.C2A] = color.a; - vertices[spine.RegionAttachment.U2] = uvs[2]; - vertices[spine.RegionAttachment.V2] = uvs[3]; - vertices[spine.RegionAttachment.C3R] = color.r; - vertices[spine.RegionAttachment.C3G] = color.g; - vertices[spine.RegionAttachment.C3B] = color.b; - vertices[spine.RegionAttachment.C3A] = color.a; - vertices[spine.RegionAttachment.U3] = uvs[4]; - vertices[spine.RegionAttachment.V3] = uvs[5]; - vertices[spine.RegionAttachment.C4R] = color.r; - vertices[spine.RegionAttachment.C4G] = color.g; - vertices[spine.RegionAttachment.C4B] = color.b; - vertices[spine.RegionAttachment.C4A] = color.a; - vertices[spine.RegionAttachment.U4] = uvs[6]; - vertices[spine.RegionAttachment.V4] = uvs[7]; - return vertices; - }; - SkeletonRenderer.prototype.computeMeshVertices = function (slot, mesh, pma) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var regionColor = mesh.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var multiplier = pma ? alpha : 1; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); - var numVertices = mesh.worldVerticesLength / 2; - if (this.vertices.length < mesh.worldVerticesLength) { - this.vertices = spine.Utils.newFloatArray(mesh.worldVerticesLength); - } - var vertices = this.vertices; - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, SkeletonRenderer.VERTEX_SIZE); - var uvs = mesh.uvs; - for (var i = 0, n = numVertices, u = 0, v = 2; i < n; i++) { - vertices[v++] = color.r; - vertices[v++] = color.g; - vertices[v++] = color.b; - vertices[v++] = color.a; - vertices[v++] = uvs[u++]; - vertices[v++] = uvs[u++]; - v += 2; - } - return vertices; - }; - SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - SkeletonRenderer.VERTEX_SIZE = 2 + 2 + 4; - return SkeletonRenderer; - }()); - canvas.SkeletonRenderer = SkeletonRenderer; - })(canvas = spine.canvas || (spine.canvas = {})); + var canvas; + (function (canvas) { + var SkeletonRenderer = (function () { + function SkeletonRenderer(context) { + this.triangleRendering = false; + this.debugRendering = false; + this.vertices = spine.Utils.newFloatArray(8 * 1024); + this.tempColor = new spine.Color(); + this.ctx = context; + } + SkeletonRenderer.prototype.draw = function (skeleton) { + if (this.triangleRendering) + this.drawTriangles(skeleton); + else + this.drawImages(skeleton); + }; + SkeletonRenderer.prototype.drawImages = function (skeleton) { + var ctx = this.ctx; + var drawOrder = skeleton.drawOrder; + if (this.debugRendering) + ctx.strokeStyle = "green"; + ctx.save(); + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var regionAttachment = null; + var region = null; + var image = null; + if (attachment instanceof spine.RegionAttachment) { + regionAttachment = attachment; + region = regionAttachment.region; + image = region.texture.getImage(); + } + else + continue; + var skeleton_1 = slot.bone.skeleton; + var skeletonColor = skeleton_1.color; + var slotColor = slot.color; + var regionColor = regionAttachment.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * regionColor.r, skeletonColor.g * slotColor.g * regionColor.g, skeletonColor.b * slotColor.b * regionColor.b, alpha); + var att = attachment; + var bone = slot.bone; + var w = region.width; + var h = region.height; + ctx.save(); + ctx.transform(bone.a, bone.c, bone.b, bone.d, bone.worldX, bone.worldY); + ctx.translate(attachment.offset[0], attachment.offset[1]); + ctx.rotate(attachment.rotation * Math.PI / 180); + ctx.scale(attachment.scaleX, attachment.scaleY); + ctx.translate(w / 2, h / 2); + if (attachment.region.rotate) { + var t = w; + w = h; + h = t; + ctx.rotate(-Math.PI / 2); + } + ctx.scale(1, -1); + ctx.translate(-w / 2, -h / 2); + if (color.r != 1 || color.g != 1 || color.b != 1 || color.a != 1) { + ctx.globalAlpha = color.a; + } + ctx.drawImage(image, region.x, region.y, w, h, 0, 0, w, h); + if (this.debugRendering) + ctx.strokeRect(0, 0, w, h); + ctx.restore(); + } + ctx.restore(); + }; + SkeletonRenderer.prototype.drawTriangles = function (skeleton) { + var blendMode = null; + var vertices = this.vertices; + var triangles = null; + var drawOrder = skeleton.drawOrder; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var texture = null; + var region = null; + if (attachment instanceof spine.RegionAttachment) { + var regionAttachment = attachment; + vertices = this.computeRegionVertices(slot, regionAttachment, false); + triangles = SkeletonRenderer.QUAD_TRIANGLES; + region = regionAttachment.region; + texture = region.texture.getImage(); + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + vertices = this.computeMeshVertices(slot, mesh, false); + triangles = mesh.triangles; + texture = mesh.region.renderObject.texture.getImage(); + } + else + continue; + if (texture != null) { + var slotBlendMode = slot.data.blendMode; + if (slotBlendMode != blendMode) { + blendMode = slotBlendMode; + } + var ctx = this.ctx; + for (var j = 0; j < triangles.length; j += 3) { + var t1 = triangles[j] * 8, t2 = triangles[j + 1] * 8, t3 = triangles[j + 2] * 8; + var x0 = vertices[t1], y0 = vertices[t1 + 1], u0 = vertices[t1 + 6], v0 = vertices[t1 + 7]; + var x1 = vertices[t2], y1 = vertices[t2 + 1], u1 = vertices[t2 + 6], v1 = vertices[t2 + 7]; + var x2 = vertices[t3], y2 = vertices[t3 + 1], u2 = vertices[t3 + 6], v2 = vertices[t3 + 7]; + this.drawTriangle(texture, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); + if (this.debugRendering) { + ctx.strokeStyle = "green"; + ctx.beginPath(); + ctx.moveTo(x0, y0); + ctx.lineTo(x1, y1); + ctx.lineTo(x2, y2); + ctx.lineTo(x0, y0); + ctx.stroke(); + } + } + } + } + }; + SkeletonRenderer.prototype.drawTriangle = function (img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2) { + var ctx = this.ctx; + u0 *= img.width; + v0 *= img.height; + u1 *= img.width; + v1 *= img.height; + u2 *= img.width; + v2 *= img.height; + ctx.beginPath(); + ctx.moveTo(x0, y0); + ctx.lineTo(x1, y1); + ctx.lineTo(x2, y2); + ctx.closePath(); + x1 -= x0; + y1 -= y0; + x2 -= x0; + y2 -= y0; + u1 -= u0; + v1 -= v0; + u2 -= u0; + v2 -= v0; + var det = 1 / (u1 * v2 - u2 * v1), a = (v2 * x1 - v1 * x2) * det, b = (v2 * y1 - v1 * y2) * det, c = (u1 * x2 - u2 * x1) * det, d = (u1 * y2 - u2 * y1) * det, e = x0 - a * u0 - c * v0, f = y0 - b * u0 - d * v0; + ctx.save(); + ctx.transform(a, b, c, d, e, f); + ctx.clip(); + ctx.drawImage(img, 0, 0); + ctx.restore(); + }; + SkeletonRenderer.prototype.computeRegionVertices = function (slot, region, pma) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var regionColor = region.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var multiplier = pma ? alpha : 1; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); + region.computeWorldVertices(slot.bone, this.vertices, 0, SkeletonRenderer.VERTEX_SIZE); + var vertices = this.vertices; + var uvs = region.uvs; + vertices[spine.RegionAttachment.C1R] = color.r; + vertices[spine.RegionAttachment.C1G] = color.g; + vertices[spine.RegionAttachment.C1B] = color.b; + vertices[spine.RegionAttachment.C1A] = color.a; + vertices[spine.RegionAttachment.U1] = uvs[0]; + vertices[spine.RegionAttachment.V1] = uvs[1]; + vertices[spine.RegionAttachment.C2R] = color.r; + vertices[spine.RegionAttachment.C2G] = color.g; + vertices[spine.RegionAttachment.C2B] = color.b; + vertices[spine.RegionAttachment.C2A] = color.a; + vertices[spine.RegionAttachment.U2] = uvs[2]; + vertices[spine.RegionAttachment.V2] = uvs[3]; + vertices[spine.RegionAttachment.C3R] = color.r; + vertices[spine.RegionAttachment.C3G] = color.g; + vertices[spine.RegionAttachment.C3B] = color.b; + vertices[spine.RegionAttachment.C3A] = color.a; + vertices[spine.RegionAttachment.U3] = uvs[4]; + vertices[spine.RegionAttachment.V3] = uvs[5]; + vertices[spine.RegionAttachment.C4R] = color.r; + vertices[spine.RegionAttachment.C4G] = color.g; + vertices[spine.RegionAttachment.C4B] = color.b; + vertices[spine.RegionAttachment.C4A] = color.a; + vertices[spine.RegionAttachment.U4] = uvs[6]; + vertices[spine.RegionAttachment.V4] = uvs[7]; + return vertices; + }; + SkeletonRenderer.prototype.computeMeshVertices = function (slot, mesh, pma) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var regionColor = mesh.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var multiplier = pma ? alpha : 1; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); + var numVertices = mesh.worldVerticesLength / 2; + if (this.vertices.length < mesh.worldVerticesLength) { + this.vertices = spine.Utils.newFloatArray(mesh.worldVerticesLength); + } + var vertices = this.vertices; + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, SkeletonRenderer.VERTEX_SIZE); + var uvs = mesh.uvs; + for (var i = 0, n = numVertices, u = 0, v = 2; i < n; i++) { + vertices[v++] = color.r; + vertices[v++] = color.g; + vertices[v++] = color.b; + vertices[v++] = color.a; + vertices[v++] = uvs[u++]; + vertices[v++] = uvs[u++]; + v += 2; + } + return vertices; + }; + SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + SkeletonRenderer.VERTEX_SIZE = 2 + 2 + 4; + return SkeletonRenderer; + }()); + canvas.SkeletonRenderer = SkeletonRenderer; + })(canvas = spine.canvas || (spine.canvas = {})); })(spine || (spine = {})); var spine; (function (spine) { - var Animation = (function () { - function Animation(name, timelines, duration) { - if (name == null) - throw new Error("name cannot be null."); - if (timelines == null) - throw new Error("timelines cannot be null."); - this.name = name; - this.timelines = timelines; - this.duration = duration; - } - Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (loop && this.duration != 0) { - time %= this.duration; - if (lastTime > 0) - lastTime %= this.duration; - } - var timelines = this.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); - }; - Animation.binarySearch = function (values, target, step) { - if (step === void 0) { step = 1; } - var low = 0; - var high = values.length / step - 2; - if (high == 0) - return step; - var current = high >>> 1; - while (true) { - if (values[(current + 1) * step] <= target) - low = current + 1; - else - high = current; - if (low == high) - return (low + 1) * step; - current = (low + high) >>> 1; - } - }; - Animation.linearSearch = function (values, target, step) { - for (var i = 0, last = values.length - step; i <= last; i += step) - if (values[i] > target) - return i; - return -1; - }; - return Animation; - }()); - spine.Animation = Animation; - (function (TimelineType) { - TimelineType[TimelineType["rotate"] = 0] = "rotate"; - TimelineType[TimelineType["translate"] = 1] = "translate"; - TimelineType[TimelineType["scale"] = 2] = "scale"; - TimelineType[TimelineType["shear"] = 3] = "shear"; - TimelineType[TimelineType["attachment"] = 4] = "attachment"; - TimelineType[TimelineType["color"] = 5] = "color"; - TimelineType[TimelineType["deform"] = 6] = "deform"; - TimelineType[TimelineType["event"] = 7] = "event"; - TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; - TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; - TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; - TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; - TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; - TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; - TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; - })(spine.TimelineType || (spine.TimelineType = {})); - var TimelineType = spine.TimelineType; - var CurveTimeline = (function () { - function CurveTimeline(frameCount) { - if (frameCount <= 0) - throw new Error("frameCount must be > 0: " + frameCount); - this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); - } - CurveTimeline.prototype.getFrameCount = function () { - return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; - }; - CurveTimeline.prototype.setLinear = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; - }; - CurveTimeline.prototype.setStepped = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; - }; - CurveTimeline.prototype.getCurveType = function (frameIndex) { - var index = frameIndex * CurveTimeline.BEZIER_SIZE; - if (index == this.curves.length) - return CurveTimeline.LINEAR; - var type = this.curves[index]; - if (type == CurveTimeline.LINEAR) - return CurveTimeline.LINEAR; - if (type == CurveTimeline.STEPPED) - return CurveTimeline.STEPPED; - return CurveTimeline.BEZIER; - }; - CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { - var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; - var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; - var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; - var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var curves = this.curves; - curves[i++] = CurveTimeline.BEZIER; - var x = dfx, y = dfy; - for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - curves[i] = x; - curves[i + 1] = y; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - x += dfx; - y += dfy; - } - }; - CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { - percent = spine.MathUtils.clamp(percent, 0, 1); - var curves = this.curves; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var type = curves[i]; - if (type == CurveTimeline.LINEAR) - return percent; - if (type == CurveTimeline.STEPPED) - return 0; - i++; - var x = 0; - for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - x = curves[i]; - if (x >= percent) { - var prevX = void 0, prevY = void 0; - if (i == start) { - prevX = 0; - prevY = 0; - } - else { - prevX = curves[i - 2]; - prevY = curves[i - 1]; - } - return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); - } - } - var y = curves[i - 1]; - return y + (1 - y) * (percent - x) / (1 - x); - }; - CurveTimeline.LINEAR = 0; - CurveTimeline.STEPPED = 1; - CurveTimeline.BEZIER = 2; - CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; - return CurveTimeline; - }()); - spine.CurveTimeline = CurveTimeline; - var RotateTimeline = (function (_super) { - __extends(RotateTimeline, _super); - function RotateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount << 1); - } - RotateTimeline.prototype.getPropertyId = function () { - return (TimelineType.rotate << 24) + this.boneIndex; - }; - RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { - frameIndex <<= 1; - this.frames[frameIndex] = time; - this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; - }; - RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { - if (setupPose) - bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; - else { - var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; - r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; - bone.rotation += r_1 * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); - var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); - var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - r = prevRotation + r * percent; - if (setupPose) { - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation = bone.data.rotation + r * alpha; - } - else { - r = bone.data.rotation + r - bone.rotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation += r * alpha; - } - }; - RotateTimeline.ENTRIES = 2; - RotateTimeline.PREV_TIME = -2; - RotateTimeline.PREV_ROTATION = -1; - RotateTimeline.ROTATION = 1; - return RotateTimeline; - }(CurveTimeline)); - spine.RotateTimeline = RotateTimeline; - var TranslateTimeline = (function (_super) { - __extends(TranslateTimeline, _super); - function TranslateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); - } - TranslateTimeline.prototype.getPropertyId = function () { - return (TimelineType.translate << 24) + this.boneIndex; - }; - TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { - frameIndex *= TranslateTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TranslateTimeline.X] = x; - this.frames[frameIndex + TranslateTimeline.Y] = y; - }; - TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.x = bone.data.x; - bone.y = bone.data.y; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { - x = frames[frames.length + TranslateTimeline.PREV_X]; - y = frames[frames.length + TranslateTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - x = frames[frame + TranslateTimeline.PREV_X]; - y = frames[frame + TranslateTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); - x += (frames[frame + TranslateTimeline.X] - x) * percent; - y += (frames[frame + TranslateTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.x = bone.data.x + x * alpha; - bone.y = bone.data.y + y * alpha; - } - else { - bone.x += (bone.data.x + x - bone.x) * alpha; - bone.y += (bone.data.y + y - bone.y) * alpha; - } - }; - TranslateTimeline.ENTRIES = 3; - TranslateTimeline.PREV_TIME = -3; - TranslateTimeline.PREV_X = -2; - TranslateTimeline.PREV_Y = -1; - TranslateTimeline.X = 1; - TranslateTimeline.Y = 2; - return TranslateTimeline; - }(CurveTimeline)); - spine.TranslateTimeline = TranslateTimeline; - var ScaleTimeline = (function (_super) { - __extends(ScaleTimeline, _super); - function ScaleTimeline(frameCount) { - _super.call(this, frameCount); - } - ScaleTimeline.prototype.getPropertyId = function () { - return (TimelineType.scale << 24) + this.boneIndex; - }; - ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.scaleX = bone.data.scaleX; - bone.scaleY = bone.data.scaleY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { - x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; - y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; - } - else { - var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - x = frames[frame + ScaleTimeline.PREV_X]; - y = frames[frame + ScaleTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); - x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; - y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; - } - if (alpha == 1) { - bone.scaleX = x; - bone.scaleY = y; - } - else { - var bx = 0, by = 0; - if (setupPose) { - bx = bone.data.scaleX; - by = bone.data.scaleY; - } - else { - bx = bone.scaleX; - by = bone.scaleY; - } - if (mixingOut) { - x = Math.abs(x) * spine.MathUtils.signum(bx); - y = Math.abs(y) * spine.MathUtils.signum(by); - } - else { - bx = Math.abs(bx) * spine.MathUtils.signum(x); - by = Math.abs(by) * spine.MathUtils.signum(y); - } - bone.scaleX = bx + (x - bx) * alpha; - bone.scaleY = by + (y - by) * alpha; - } - }; - return ScaleTimeline; - }(TranslateTimeline)); - spine.ScaleTimeline = ScaleTimeline; - var ShearTimeline = (function (_super) { - __extends(ShearTimeline, _super); - function ShearTimeline(frameCount) { - _super.call(this, frameCount); - } - ShearTimeline.prototype.getPropertyId = function () { - return (TimelineType.shear << 24) + this.boneIndex; - }; - ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.shearX = bone.data.shearX; - bone.shearY = bone.data.shearY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { - x = frames[frames.length + ShearTimeline.PREV_X]; - y = frames[frames.length + ShearTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - x = frames[frame + ShearTimeline.PREV_X]; - y = frames[frame + ShearTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); - x = x + (frames[frame + ShearTimeline.X] - x) * percent; - y = y + (frames[frame + ShearTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.shearX = bone.data.shearX + x * alpha; - bone.shearY = bone.data.shearY + y * alpha; - } - else { - bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; - } - }; - return ShearTimeline; - }(TranslateTimeline)); - spine.ShearTimeline = ShearTimeline; - var ColorTimeline = (function (_super) { - __extends(ColorTimeline, _super); - function ColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); - } - ColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.color << 24) + this.slotIndex; - }; - ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { - frameIndex *= ColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + ColorTimeline.R] = r; - this.frames[frameIndex + ColorTimeline.G] = g; - this.frames[frameIndex + ColorTimeline.B] = b; - this.frames[frameIndex + ColorTimeline.A] = a; - }; - ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - slot.color.setFromColor(slot.data.color); - return; - } - var r = 0, g = 0, b = 0, a = 0; - if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + ColorTimeline.PREV_R]; - g = frames[i + ColorTimeline.PREV_G]; - b = frames[i + ColorTimeline.PREV_B]; - a = frames[i + ColorTimeline.PREV_A]; - } - else { - var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); - r = frames[frame + ColorTimeline.PREV_R]; - g = frames[frame + ColorTimeline.PREV_G]; - b = frames[frame + ColorTimeline.PREV_B]; - a = frames[frame + ColorTimeline.PREV_A]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + ColorTimeline.R] - r) * percent; - g += (frames[frame + ColorTimeline.G] - g) * percent; - b += (frames[frame + ColorTimeline.B] - b) * percent; - a += (frames[frame + ColorTimeline.A] - a) * percent; - } - if (alpha == 1) - slot.color.set(r, g, b, a); - else { - var color = slot.color; - if (setupPose) - color.setFromColor(slot.data.color); - color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); - } - }; - ColorTimeline.ENTRIES = 5; - ColorTimeline.PREV_TIME = -5; - ColorTimeline.PREV_R = -4; - ColorTimeline.PREV_G = -3; - ColorTimeline.PREV_B = -2; - ColorTimeline.PREV_A = -1; - ColorTimeline.R = 1; - ColorTimeline.G = 2; - ColorTimeline.B = 3; - ColorTimeline.A = 4; - return ColorTimeline; - }(CurveTimeline)); - spine.ColorTimeline = ColorTimeline; - var TwoColorTimeline = (function (_super) { - __extends(TwoColorTimeline, _super); - function TwoColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); - } - TwoColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.twoColor << 24) + this.slotIndex; - }; - TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { - frameIndex *= TwoColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TwoColorTimeline.R] = r; - this.frames[frameIndex + TwoColorTimeline.G] = g; - this.frames[frameIndex + TwoColorTimeline.B] = b; - this.frames[frameIndex + TwoColorTimeline.A] = a; - this.frames[frameIndex + TwoColorTimeline.R2] = r2; - this.frames[frameIndex + TwoColorTimeline.G2] = g2; - this.frames[frameIndex + TwoColorTimeline.B2] = b2; - }; - TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - slot.color.setFromColor(slot.data.color); - slot.darkColor.setFromColor(slot.data.darkColor); - } - return; - } - var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; - if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + TwoColorTimeline.PREV_R]; - g = frames[i + TwoColorTimeline.PREV_G]; - b = frames[i + TwoColorTimeline.PREV_B]; - a = frames[i + TwoColorTimeline.PREV_A]; - r2 = frames[i + TwoColorTimeline.PREV_R2]; - g2 = frames[i + TwoColorTimeline.PREV_G2]; - b2 = frames[i + TwoColorTimeline.PREV_B2]; - } - else { - var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); - r = frames[frame + TwoColorTimeline.PREV_R]; - g = frames[frame + TwoColorTimeline.PREV_G]; - b = frames[frame + TwoColorTimeline.PREV_B]; - a = frames[frame + TwoColorTimeline.PREV_A]; - r2 = frames[frame + TwoColorTimeline.PREV_R2]; - g2 = frames[frame + TwoColorTimeline.PREV_G2]; - b2 = frames[frame + TwoColorTimeline.PREV_B2]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + TwoColorTimeline.R] - r) * percent; - g += (frames[frame + TwoColorTimeline.G] - g) * percent; - b += (frames[frame + TwoColorTimeline.B] - b) * percent; - a += (frames[frame + TwoColorTimeline.A] - a) * percent; - r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; - g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; - b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; - } - if (alpha == 1) { - slot.color.set(r, g, b, a); - slot.darkColor.set(r2, g2, b2, 1); - } - else { - var light = slot.color; - var dark = slot.darkColor; - if (setupPose) { - light.setFromColor(slot.data.color); - dark.setFromColor(slot.data.darkColor); - } - light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); - dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); - } - }; - TwoColorTimeline.ENTRIES = 8; - TwoColorTimeline.PREV_TIME = -8; - TwoColorTimeline.PREV_R = -7; - TwoColorTimeline.PREV_G = -6; - TwoColorTimeline.PREV_B = -5; - TwoColorTimeline.PREV_A = -4; - TwoColorTimeline.PREV_R2 = -3; - TwoColorTimeline.PREV_G2 = -2; - TwoColorTimeline.PREV_B2 = -1; - TwoColorTimeline.R = 1; - TwoColorTimeline.G = 2; - TwoColorTimeline.B = 3; - TwoColorTimeline.A = 4; - TwoColorTimeline.R2 = 5; - TwoColorTimeline.G2 = 6; - TwoColorTimeline.B2 = 7; - return TwoColorTimeline; - }(CurveTimeline)); - spine.TwoColorTimeline = TwoColorTimeline; - var AttachmentTimeline = (function () { - function AttachmentTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.attachmentNames = new Array(frameCount); - } - AttachmentTimeline.prototype.getPropertyId = function () { - return (TimelineType.attachment << 24) + this.slotIndex; - }; - AttachmentTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { - this.frames[frameIndex] = time; - this.attachmentNames[frameIndex] = attachmentName; - }; - AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - if (mixingOut && setupPose) { - var attachmentName_1 = slot.data.attachmentName; - slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - var attachmentName_2 = slot.data.attachmentName; - slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); - } - return; - } - var frameIndex = 0; - if (time >= frames[frames.length - 1]) - frameIndex = frames.length - 1; - else - frameIndex = Animation.binarySearch(frames, time, 1) - 1; - var attachmentName = this.attachmentNames[frameIndex]; - skeleton.slots[this.slotIndex] - .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); - }; - return AttachmentTimeline; - }()); - spine.AttachmentTimeline = AttachmentTimeline; - var DeformTimeline = (function (_super) { - __extends(DeformTimeline, _super); - function DeformTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount); - this.frameVertices = new Array(frameCount); - } - DeformTimeline.prototype.getPropertyId = function () { - return (TimelineType.deform << 24) + this.slotIndex; - }; - DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { - this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; - }; - DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var slotAttachment = slot.getAttachment(); - if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) - return; - var frames = this.frames; - var verticesArray = slot.attachmentVertices; - if (time < frames[0]) { - if (setupPose) - spine.Utils.setArraySize(verticesArray, 0); - return; - } - var frameVertices = this.frameVertices; - var vertexCount = frameVertices[0].length; - if (verticesArray.length != vertexCount) - alpha = 1; - var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); - if (time >= frames[frames.length - 1]) { - var lastVertices = frameVertices[frames.length - 1]; - if (alpha == 1) { - spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var setup = setupVertices[i]; - vertices[i] = setup + (lastVertices[i] - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] = lastVertices[i] * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time); - var prevVertices = frameVertices[frame - 1]; - var nextVertices = frameVertices[frame]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); - if (alpha == 1) { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i], setup = setupVertices[i]; - vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; - } - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; - } - } - }; - return DeformTimeline; - }(CurveTimeline)); - spine.DeformTimeline = DeformTimeline; - var EventTimeline = (function () { - function EventTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.events = new Array(frameCount); - } - EventTimeline.prototype.getPropertyId = function () { - return TimelineType.event << 24; - }; - EventTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - EventTimeline.prototype.setFrame = function (frameIndex, event) { - this.frames[frameIndex] = event.time; - this.events[frameIndex] = event; - }; - EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - if (firedEvents == null) - return; - var frames = this.frames; - var frameCount = this.frames.length; - if (lastTime > time) { - this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); - lastTime = -1; - } - else if (lastTime >= frames[frameCount - 1]) - return; - if (time < frames[0]) - return; - var frame = 0; - if (lastTime < frames[0]) - frame = 0; - else { - frame = Animation.binarySearch(frames, lastTime); - var frameTime = frames[frame]; - while (frame > 0) { - if (frames[frame - 1] != frameTime) - break; - frame--; - } - } - for (; frame < frameCount && time >= frames[frame]; frame++) - firedEvents.push(this.events[frame]); - }; - return EventTimeline; - }()); - spine.EventTimeline = EventTimeline; - var DrawOrderTimeline = (function () { - function DrawOrderTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.drawOrders = new Array(frameCount); - } - DrawOrderTimeline.prototype.getPropertyId = function () { - return TimelineType.drawOrder << 24; - }; - DrawOrderTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { - this.frames[frameIndex] = time; - this.drawOrders[frameIndex] = drawOrder; - }; - DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var drawOrder = skeleton.drawOrder; - var slots = skeleton.slots; - if (mixingOut && setupPose) { - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frame = 0; - if (time >= frames[frames.length - 1]) - frame = frames.length - 1; - else - frame = Animation.binarySearch(frames, time) - 1; - var drawOrderToSetupIndex = this.drawOrders[frame]; - if (drawOrderToSetupIndex == null) - spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); - else { - for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) - drawOrder[i] = slots[drawOrderToSetupIndex[i]]; - } - }; - return DrawOrderTimeline; - }()); - spine.DrawOrderTimeline = DrawOrderTimeline; - var IkConstraintTimeline = (function (_super) { - __extends(IkConstraintTimeline, _super); - function IkConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); - } - IkConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; - }; - IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { - frameIndex *= IkConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; - this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; - }; - IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.mix = constraint.data.mix; - constraint.bendDirection = constraint.data.bendDirection; - } - return; - } - if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { - if (setupPose) { - constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection - : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - return; - } - var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); - var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); - if (setupPose) { - constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - }; - IkConstraintTimeline.ENTRIES = 3; - IkConstraintTimeline.PREV_TIME = -3; - IkConstraintTimeline.PREV_MIX = -2; - IkConstraintTimeline.PREV_BEND_DIRECTION = -1; - IkConstraintTimeline.MIX = 1; - IkConstraintTimeline.BEND_DIRECTION = 2; - return IkConstraintTimeline; - }(CurveTimeline)); - spine.IkConstraintTimeline = IkConstraintTimeline; - var TransformConstraintTimeline = (function (_super) { - __extends(TransformConstraintTimeline, _super); - function TransformConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); - } - TransformConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; - }; - TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { - frameIndex *= TransformConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; - this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; - this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; - }; - TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.rotateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - return; - } - var rotate = 0, translate = 0, scale = 0, shear = 0; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { - var i = frames.length; - rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; - } - else { - var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; - scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; - shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; - } - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; - constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; - constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; - constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - constraint.scaleMix += (scale - constraint.scaleMix) * alpha; - constraint.shearMix += (shear - constraint.shearMix) * alpha; - } - }; - TransformConstraintTimeline.ENTRIES = 5; - TransformConstraintTimeline.PREV_TIME = -5; - TransformConstraintTimeline.PREV_ROTATE = -4; - TransformConstraintTimeline.PREV_TRANSLATE = -3; - TransformConstraintTimeline.PREV_SCALE = -2; - TransformConstraintTimeline.PREV_SHEAR = -1; - TransformConstraintTimeline.ROTATE = 1; - TransformConstraintTimeline.TRANSLATE = 2; - TransformConstraintTimeline.SCALE = 3; - TransformConstraintTimeline.SHEAR = 4; - return TransformConstraintTimeline; - }(CurveTimeline)); - spine.TransformConstraintTimeline = TransformConstraintTimeline; - var PathConstraintPositionTimeline = (function (_super) { - __extends(PathConstraintPositionTimeline, _super); - function PathConstraintPositionTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); - } - PathConstraintPositionTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; - }; - PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { - frameIndex *= PathConstraintPositionTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; - }; - PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.position = constraint.data.position; - return; - } - var position = 0; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) - position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); - position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; - } - if (setupPose) - constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; - else - constraint.position += (position - constraint.position) * alpha; - }; - PathConstraintPositionTimeline.ENTRIES = 2; - PathConstraintPositionTimeline.PREV_TIME = -2; - PathConstraintPositionTimeline.PREV_VALUE = -1; - PathConstraintPositionTimeline.VALUE = 1; - return PathConstraintPositionTimeline; - }(CurveTimeline)); - spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; - var PathConstraintSpacingTimeline = (function (_super) { - __extends(PathConstraintSpacingTimeline, _super); - function PathConstraintSpacingTimeline(frameCount) { - _super.call(this, frameCount); - } - PathConstraintSpacingTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; - }; - PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.spacing = constraint.data.spacing; - return; - } - var spacing = 0; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) - spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); - spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; - } - if (setupPose) - constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; - else - constraint.spacing += (spacing - constraint.spacing) * alpha; - }; - return PathConstraintSpacingTimeline; - }(PathConstraintPositionTimeline)); - spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; - var PathConstraintMixTimeline = (function (_super) { - __extends(PathConstraintMixTimeline, _super); - function PathConstraintMixTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); - } - PathConstraintMixTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; - }; - PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { - frameIndex *= PathConstraintMixTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; - }; - PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix; - constraint.translateMix = constraint.data.translateMix; - } - return; - } - var rotate = 0, translate = 0; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { - rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; - } - else { - var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; - } - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; - constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - } - }; - PathConstraintMixTimeline.ENTRIES = 3; - PathConstraintMixTimeline.PREV_TIME = -3; - PathConstraintMixTimeline.PREV_ROTATE = -2; - PathConstraintMixTimeline.PREV_TRANSLATE = -1; - PathConstraintMixTimeline.ROTATE = 1; - PathConstraintMixTimeline.TRANSLATE = 2; - return PathConstraintMixTimeline; - }(CurveTimeline)); - spine.PathConstraintMixTimeline = PathConstraintMixTimeline; + var Animation = (function () { + function Animation(name, timelines, duration) { + if (name == null) + throw new Error("name cannot be null."); + if (timelines == null) + throw new Error("timelines cannot be null."); + this.name = name; + this.timelines = timelines; + this.duration = duration; + } + Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (loop && this.duration != 0) { + time %= this.duration; + if (lastTime > 0) + lastTime %= this.duration; + } + var timelines = this.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); + }; + Animation.binarySearch = function (values, target, step) { + if (step === void 0) { step = 1; } + var low = 0; + var high = values.length / step - 2; + if (high == 0) + return step; + var current = high >>> 1; + while (true) { + if (values[(current + 1) * step] <= target) + low = current + 1; + else + high = current; + if (low == high) + return (low + 1) * step; + current = (low + high) >>> 1; + } + }; + Animation.linearSearch = function (values, target, step) { + for (var i = 0, last = values.length - step; i <= last; i += step) + if (values[i] > target) + return i; + return -1; + }; + return Animation; + }()); + spine.Animation = Animation; + (function (TimelineType) { + TimelineType[TimelineType["rotate"] = 0] = "rotate"; + TimelineType[TimelineType["translate"] = 1] = "translate"; + TimelineType[TimelineType["scale"] = 2] = "scale"; + TimelineType[TimelineType["shear"] = 3] = "shear"; + TimelineType[TimelineType["attachment"] = 4] = "attachment"; + TimelineType[TimelineType["color"] = 5] = "color"; + TimelineType[TimelineType["deform"] = 6] = "deform"; + TimelineType[TimelineType["event"] = 7] = "event"; + TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; + TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; + TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; + TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; + TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; + TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; + TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; + var CurveTimeline = (function () { + function CurveTimeline(frameCount) { + if (frameCount <= 0) + throw new Error("frameCount must be > 0: " + frameCount); + this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); + } + CurveTimeline.prototype.getFrameCount = function () { + return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; + }; + CurveTimeline.prototype.setLinear = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; + }; + CurveTimeline.prototype.setStepped = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; + }; + CurveTimeline.prototype.getCurveType = function (frameIndex) { + var index = frameIndex * CurveTimeline.BEZIER_SIZE; + if (index == this.curves.length) + return CurveTimeline.LINEAR; + var type = this.curves[index]; + if (type == CurveTimeline.LINEAR) + return CurveTimeline.LINEAR; + if (type == CurveTimeline.STEPPED) + return CurveTimeline.STEPPED; + return CurveTimeline.BEZIER; + }; + CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { + var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; + var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; + var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; + var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var curves = this.curves; + curves[i++] = CurveTimeline.BEZIER; + var x = dfx, y = dfy; + for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + curves[i] = x; + curves[i + 1] = y; + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + x += dfx; + y += dfy; + } + }; + CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { + percent = spine.MathUtils.clamp(percent, 0, 1); + var curves = this.curves; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var type = curves[i]; + if (type == CurveTimeline.LINEAR) + return percent; + if (type == CurveTimeline.STEPPED) + return 0; + i++; + var x = 0; + for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + x = curves[i]; + if (x >= percent) { + var prevX = void 0, prevY = void 0; + if (i == start) { + prevX = 0; + prevY = 0; + } + else { + prevX = curves[i - 2]; + prevY = curves[i - 1]; + } + return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); + } + } + var y = curves[i - 1]; + return y + (1 - y) * (percent - x) / (1 - x); + }; + CurveTimeline.LINEAR = 0; + CurveTimeline.STEPPED = 1; + CurveTimeline.BEZIER = 2; + CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; + return CurveTimeline; + }()); + spine.CurveTimeline = CurveTimeline; + var RotateTimeline = (function (_super) { + __extends(RotateTimeline, _super); + function RotateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount << 1); + } + RotateTimeline.prototype.getPropertyId = function () { + return (TimelineType.rotate << 24) + this.boneIndex; + }; + RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { + frameIndex <<= 1; + this.frames[frameIndex] = time; + this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; + }; + RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { + if (setupPose) + bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; + else { + var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; + r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; + bone.rotation += r_1 * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); + var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); + var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + r = prevRotation + r * percent; + if (setupPose) { + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation = bone.data.rotation + r * alpha; + } + else { + r = bone.data.rotation + r - bone.rotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation += r * alpha; + } + }; + RotateTimeline.ENTRIES = 2; + RotateTimeline.PREV_TIME = -2; + RotateTimeline.PREV_ROTATION = -1; + RotateTimeline.ROTATION = 1; + return RotateTimeline; + }(CurveTimeline)); + spine.RotateTimeline = RotateTimeline; + var TranslateTimeline = (function (_super) { + __extends(TranslateTimeline, _super); + function TranslateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); + } + TranslateTimeline.prototype.getPropertyId = function () { + return (TimelineType.translate << 24) + this.boneIndex; + }; + TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { + frameIndex *= TranslateTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TranslateTimeline.X] = x; + this.frames[frameIndex + TranslateTimeline.Y] = y; + }; + TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { + x = frames[frames.length + TranslateTimeline.PREV_X]; + y = frames[frames.length + TranslateTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); + x = frames[frame + TranslateTimeline.PREV_X]; + y = frames[frame + TranslateTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); + x += (frames[frame + TranslateTimeline.X] - x) * percent; + y += (frames[frame + TranslateTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.x = bone.data.x + x * alpha; + bone.y = bone.data.y + y * alpha; + } + else { + bone.x += (bone.data.x + x - bone.x) * alpha; + bone.y += (bone.data.y + y - bone.y) * alpha; + } + }; + TranslateTimeline.ENTRIES = 3; + TranslateTimeline.PREV_TIME = -3; + TranslateTimeline.PREV_X = -2; + TranslateTimeline.PREV_Y = -1; + TranslateTimeline.X = 1; + TranslateTimeline.Y = 2; + return TranslateTimeline; + }(CurveTimeline)); + spine.TranslateTimeline = TranslateTimeline; + var ScaleTimeline = (function (_super) { + __extends(ScaleTimeline, _super); + function ScaleTimeline(frameCount) { + _super.call(this, frameCount); + } + ScaleTimeline.prototype.getPropertyId = function () { + return (TimelineType.scale << 24) + this.boneIndex; + }; + ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { + x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; + y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; + } + else { + var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); + x = frames[frame + ScaleTimeline.PREV_X]; + y = frames[frame + ScaleTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); + x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; + y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; + } + if (alpha == 1) { + bone.scaleX = x; + bone.scaleY = y; + } + else { + var bx = 0, by = 0; + if (setupPose) { + bx = bone.data.scaleX; + by = bone.data.scaleY; + } + else { + bx = bone.scaleX; + by = bone.scaleY; + } + if (mixingOut) { + x = Math.abs(x) * spine.MathUtils.signum(bx); + y = Math.abs(y) * spine.MathUtils.signum(by); + } + else { + bx = Math.abs(bx) * spine.MathUtils.signum(x); + by = Math.abs(by) * spine.MathUtils.signum(y); + } + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + } + }; + return ScaleTimeline; + }(TranslateTimeline)); + spine.ScaleTimeline = ScaleTimeline; + var ShearTimeline = (function (_super) { + __extends(ShearTimeline, _super); + function ShearTimeline(frameCount) { + _super.call(this, frameCount); + } + ShearTimeline.prototype.getPropertyId = function () { + return (TimelineType.shear << 24) + this.boneIndex; + }; + ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { + x = frames[frames.length + ShearTimeline.PREV_X]; + y = frames[frames.length + ShearTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); + x = frames[frame + ShearTimeline.PREV_X]; + y = frames[frame + ShearTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); + x = x + (frames[frame + ShearTimeline.X] - x) * percent; + y = y + (frames[frame + ShearTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.shearX = bone.data.shearX + x * alpha; + bone.shearY = bone.data.shearY + y * alpha; + } + else { + bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; + bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; + } + }; + return ShearTimeline; + }(TranslateTimeline)); + spine.ShearTimeline = ShearTimeline; + var ColorTimeline = (function (_super) { + __extends(ColorTimeline, _super); + function ColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); + } + ColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.color << 24) + this.slotIndex; + }; + ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { + frameIndex *= ColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + ColorTimeline.R] = r; + this.frames[frameIndex + ColorTimeline.G] = g; + this.frames[frameIndex + ColorTimeline.B] = b; + this.frames[frameIndex + ColorTimeline.A] = a; + }; + ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + slot.color.setFromColor(slot.data.color); + return; + } + var r = 0, g = 0, b = 0, a = 0; + if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + ColorTimeline.PREV_R]; + g = frames[i + ColorTimeline.PREV_G]; + b = frames[i + ColorTimeline.PREV_B]; + a = frames[i + ColorTimeline.PREV_A]; + } + else { + var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); + r = frames[frame + ColorTimeline.PREV_R]; + g = frames[frame + ColorTimeline.PREV_G]; + b = frames[frame + ColorTimeline.PREV_B]; + a = frames[frame + ColorTimeline.PREV_A]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + ColorTimeline.R] - r) * percent; + g += (frames[frame + ColorTimeline.G] - g) * percent; + b += (frames[frame + ColorTimeline.B] - b) * percent; + a += (frames[frame + ColorTimeline.A] - a) * percent; + } + if (alpha == 1) + slot.color.set(r, g, b, a); + else { + var color = slot.color; + if (setupPose) + color.setFromColor(slot.data.color); + color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); + } + }; + ColorTimeline.ENTRIES = 5; + ColorTimeline.PREV_TIME = -5; + ColorTimeline.PREV_R = -4; + ColorTimeline.PREV_G = -3; + ColorTimeline.PREV_B = -2; + ColorTimeline.PREV_A = -1; + ColorTimeline.R = 1; + ColorTimeline.G = 2; + ColorTimeline.B = 3; + ColorTimeline.A = 4; + return ColorTimeline; + }(CurveTimeline)); + spine.ColorTimeline = ColorTimeline; + var TwoColorTimeline = (function (_super) { + __extends(TwoColorTimeline, _super); + function TwoColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); + } + TwoColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.twoColor << 24) + this.slotIndex; + }; + TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { + frameIndex *= TwoColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TwoColorTimeline.R] = r; + this.frames[frameIndex + TwoColorTimeline.G] = g; + this.frames[frameIndex + TwoColorTimeline.B] = b; + this.frames[frameIndex + TwoColorTimeline.A] = a; + this.frames[frameIndex + TwoColorTimeline.R2] = r2; + this.frames[frameIndex + TwoColorTimeline.G2] = g2; + this.frames[frameIndex + TwoColorTimeline.B2] = b2; + }; + TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + slot.color.setFromColor(slot.data.color); + slot.darkColor.setFromColor(slot.data.darkColor); + } + return; + } + var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; + if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + TwoColorTimeline.PREV_R]; + g = frames[i + TwoColorTimeline.PREV_G]; + b = frames[i + TwoColorTimeline.PREV_B]; + a = frames[i + TwoColorTimeline.PREV_A]; + r2 = frames[i + TwoColorTimeline.PREV_R2]; + g2 = frames[i + TwoColorTimeline.PREV_G2]; + b2 = frames[i + TwoColorTimeline.PREV_B2]; + } + else { + var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); + r = frames[frame + TwoColorTimeline.PREV_R]; + g = frames[frame + TwoColorTimeline.PREV_G]; + b = frames[frame + TwoColorTimeline.PREV_B]; + a = frames[frame + TwoColorTimeline.PREV_A]; + r2 = frames[frame + TwoColorTimeline.PREV_R2]; + g2 = frames[frame + TwoColorTimeline.PREV_G2]; + b2 = frames[frame + TwoColorTimeline.PREV_B2]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + TwoColorTimeline.R] - r) * percent; + g += (frames[frame + TwoColorTimeline.G] - g) * percent; + b += (frames[frame + TwoColorTimeline.B] - b) * percent; + a += (frames[frame + TwoColorTimeline.A] - a) * percent; + r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; + g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; + b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; + } + if (alpha == 1) { + slot.color.set(r, g, b, a); + slot.darkColor.set(r2, g2, b2, 1); + } + else { + var light = slot.color; + var dark = slot.darkColor; + if (setupPose) { + light.setFromColor(slot.data.color); + dark.setFromColor(slot.data.darkColor); + } + light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); + dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); + } + }; + TwoColorTimeline.ENTRIES = 8; + TwoColorTimeline.PREV_TIME = -8; + TwoColorTimeline.PREV_R = -7; + TwoColorTimeline.PREV_G = -6; + TwoColorTimeline.PREV_B = -5; + TwoColorTimeline.PREV_A = -4; + TwoColorTimeline.PREV_R2 = -3; + TwoColorTimeline.PREV_G2 = -2; + TwoColorTimeline.PREV_B2 = -1; + TwoColorTimeline.R = 1; + TwoColorTimeline.G = 2; + TwoColorTimeline.B = 3; + TwoColorTimeline.A = 4; + TwoColorTimeline.R2 = 5; + TwoColorTimeline.G2 = 6; + TwoColorTimeline.B2 = 7; + return TwoColorTimeline; + }(CurveTimeline)); + spine.TwoColorTimeline = TwoColorTimeline; + var AttachmentTimeline = (function () { + function AttachmentTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.attachmentNames = new Array(frameCount); + } + AttachmentTimeline.prototype.getPropertyId = function () { + return (TimelineType.attachment << 24) + this.slotIndex; + }; + AttachmentTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { + this.frames[frameIndex] = time; + this.attachmentNames[frameIndex] = attachmentName; + }; + AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + if (mixingOut && setupPose) { + var attachmentName_1 = slot.data.attachmentName; + slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + var attachmentName_2 = slot.data.attachmentName; + slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); + } + return; + } + var frameIndex = 0; + if (time >= frames[frames.length - 1]) + frameIndex = frames.length - 1; + else + frameIndex = Animation.binarySearch(frames, time, 1) - 1; + var attachmentName = this.attachmentNames[frameIndex]; + skeleton.slots[this.slotIndex] + .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); + }; + return AttachmentTimeline; + }()); + spine.AttachmentTimeline = AttachmentTimeline; + var DeformTimeline = (function (_super) { + __extends(DeformTimeline, _super); + function DeformTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount); + this.frameVertices = new Array(frameCount); + } + DeformTimeline.prototype.getPropertyId = function () { + return (TimelineType.deform << 24) + this.slotIndex; + }; + DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { + this.frames[frameIndex] = time; + this.frameVertices[frameIndex] = vertices; + }; + DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var slotAttachment = slot.getAttachment(); + if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) + return; + var frames = this.frames; + var verticesArray = slot.attachmentVertices; + if (time < frames[0]) { + if (setupPose) + spine.Utils.setArraySize(verticesArray, 0); + return; + } + var frameVertices = this.frameVertices; + var vertexCount = frameVertices[0].length; + if (verticesArray.length != vertexCount && !setupPose) + alpha = 1; + var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); + if (time >= frames[frames.length - 1]) { + var lastVertices = frameVertices[frames.length - 1]; + if (alpha == 1) { + spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var setup = setupVertices[i]; + vertices[i] = setup + (lastVertices[i] - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] = lastVertices[i] * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] += (lastVertices[i] - vertices[i]) * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time); + var prevVertices = frameVertices[frame - 1]; + var nextVertices = frameVertices[frame]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); + if (alpha == 1) { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = prev + (nextVertices[i] - prev) * percent; + } + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i], setup = setupVertices[i]; + vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; + } + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; + } + } + }; + return DeformTimeline; + }(CurveTimeline)); + spine.DeformTimeline = DeformTimeline; + var EventTimeline = (function () { + function EventTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.events = new Array(frameCount); + } + EventTimeline.prototype.getPropertyId = function () { + return TimelineType.event << 24; + }; + EventTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + EventTimeline.prototype.setFrame = function (frameIndex, event) { + this.frames[frameIndex] = event.time; + this.events[frameIndex] = event; + }; + EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + if (firedEvents == null) + return; + var frames = this.frames; + var frameCount = this.frames.length; + if (lastTime > time) { + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); + lastTime = -1; + } + else if (lastTime >= frames[frameCount - 1]) + return; + if (time < frames[0]) + return; + var frame = 0; + if (lastTime < frames[0]) + frame = 0; + else { + frame = Animation.binarySearch(frames, lastTime); + var frameTime = frames[frame]; + while (frame > 0) { + if (frames[frame - 1] != frameTime) + break; + frame--; + } + } + for (; frame < frameCount && time >= frames[frame]; frame++) + firedEvents.push(this.events[frame]); + }; + return EventTimeline; + }()); + spine.EventTimeline = EventTimeline; + var DrawOrderTimeline = (function () { + function DrawOrderTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.drawOrders = new Array(frameCount); + } + DrawOrderTimeline.prototype.getPropertyId = function () { + return TimelineType.drawOrder << 24; + }; + DrawOrderTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { + this.frames[frameIndex] = time; + this.drawOrders[frameIndex] = drawOrder; + }; + DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var drawOrder = skeleton.drawOrder; + var slots = skeleton.slots; + if (mixingOut && setupPose) { + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frame = 0; + if (time >= frames[frames.length - 1]) + frame = frames.length - 1; + else + frame = Animation.binarySearch(frames, time) - 1; + var drawOrderToSetupIndex = this.drawOrders[frame]; + if (drawOrderToSetupIndex == null) + spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); + else { + for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) + drawOrder[i] = slots[drawOrderToSetupIndex[i]]; + } + }; + return DrawOrderTimeline; + }()); + spine.DrawOrderTimeline = DrawOrderTimeline; + var IkConstraintTimeline = (function (_super) { + __extends(IkConstraintTimeline, _super); + function IkConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); + } + IkConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; + }; + IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { + frameIndex *= IkConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; + this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; + }; + IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.mix = constraint.data.mix; + constraint.bendDirection = constraint.data.bendDirection; + } + return; + } + if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { + if (setupPose) { + constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection + : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + return; + } + var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); + var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); + if (setupPose) { + constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + }; + IkConstraintTimeline.ENTRIES = 3; + IkConstraintTimeline.PREV_TIME = -3; + IkConstraintTimeline.PREV_MIX = -2; + IkConstraintTimeline.PREV_BEND_DIRECTION = -1; + IkConstraintTimeline.MIX = 1; + IkConstraintTimeline.BEND_DIRECTION = 2; + return IkConstraintTimeline; + }(CurveTimeline)); + spine.IkConstraintTimeline = IkConstraintTimeline; + var TransformConstraintTimeline = (function (_super) { + __extends(TransformConstraintTimeline, _super); + function TransformConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); + } + TransformConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; + }; + TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { + frameIndex *= TransformConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; + this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; + this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; + }; + TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.rotateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + return; + } + var rotate = 0, translate = 0, scale = 0, shear = 0; + if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { + var i = frames.length; + rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; + } + else { + var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); + rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; + scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; + shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; + } + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; + constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; + constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; + constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + constraint.scaleMix += (scale - constraint.scaleMix) * alpha; + constraint.shearMix += (shear - constraint.shearMix) * alpha; + } + }; + TransformConstraintTimeline.ENTRIES = 5; + TransformConstraintTimeline.PREV_TIME = -5; + TransformConstraintTimeline.PREV_ROTATE = -4; + TransformConstraintTimeline.PREV_TRANSLATE = -3; + TransformConstraintTimeline.PREV_SCALE = -2; + TransformConstraintTimeline.PREV_SHEAR = -1; + TransformConstraintTimeline.ROTATE = 1; + TransformConstraintTimeline.TRANSLATE = 2; + TransformConstraintTimeline.SCALE = 3; + TransformConstraintTimeline.SHEAR = 4; + return TransformConstraintTimeline; + }(CurveTimeline)); + spine.TransformConstraintTimeline = TransformConstraintTimeline; + var PathConstraintPositionTimeline = (function (_super) { + __extends(PathConstraintPositionTimeline, _super); + function PathConstraintPositionTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); + } + PathConstraintPositionTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; + }; + PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { + frameIndex *= PathConstraintPositionTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; + }; + PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.position = constraint.data.position; + return; + } + var position = 0; + if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) + position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); + position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); + position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; + } + if (setupPose) + constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; + else + constraint.position += (position - constraint.position) * alpha; + }; + PathConstraintPositionTimeline.ENTRIES = 2; + PathConstraintPositionTimeline.PREV_TIME = -2; + PathConstraintPositionTimeline.PREV_VALUE = -1; + PathConstraintPositionTimeline.VALUE = 1; + return PathConstraintPositionTimeline; + }(CurveTimeline)); + spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; + var PathConstraintSpacingTimeline = (function (_super) { + __extends(PathConstraintSpacingTimeline, _super); + function PathConstraintSpacingTimeline(frameCount) { + _super.call(this, frameCount); + } + PathConstraintSpacingTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; + }; + PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.spacing = constraint.data.spacing; + return; + } + var spacing = 0; + if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) + spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); + spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); + spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; + } + if (setupPose) + constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; + else + constraint.spacing += (spacing - constraint.spacing) * alpha; + }; + return PathConstraintSpacingTimeline; + }(PathConstraintPositionTimeline)); + spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; + var PathConstraintMixTimeline = (function (_super) { + __extends(PathConstraintMixTimeline, _super); + function PathConstraintMixTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); + } + PathConstraintMixTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; + }; + PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { + frameIndex *= PathConstraintMixTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; + }; + PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } + return; + } + var rotate = 0, translate = 0; + if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { + rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; + } + else { + var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); + rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; + } + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; + constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + } + }; + PathConstraintMixTimeline.ENTRIES = 3; + PathConstraintMixTimeline.PREV_TIME = -3; + PathConstraintMixTimeline.PREV_ROTATE = -2; + PathConstraintMixTimeline.PREV_TRANSLATE = -1; + PathConstraintMixTimeline.ROTATE = 1; + PathConstraintMixTimeline.TRANSLATE = 2; + return PathConstraintMixTimeline; + }(CurveTimeline)); + spine.PathConstraintMixTimeline = PathConstraintMixTimeline; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationState = (function () { - function AnimationState(data) { - this.tracks = new Array(); - this.events = new Array(); - this.listeners = new Array(); - this.queue = new EventQueue(this); - this.propertyIDs = new spine.IntSet(); - this.mixingTo = new Array(); - this.animationsChanged = false; - this.timeScale = 1; - this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); - this.data = data; - } - AnimationState.prototype.update = function (delta) { - delta *= this.timeScale; - var tracks = this.tracks; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null) - continue; - current.animationLast = current.nextAnimationLast; - current.trackLast = current.nextTrackLast; - var currentDelta = delta * current.timeScale; - if (current.delay > 0) { - current.delay -= currentDelta; - if (current.delay > 0) - continue; - currentDelta = -current.delay; - current.delay = 0; - } - var next = current.next; - if (next != null) { - var nextTime = current.trackLast - next.delay; - if (nextTime >= 0) { - next.delay = 0; - next.trackTime = nextTime + delta * next.timeScale; - current.trackTime += currentDelta; - this.setCurrent(i, next, true); - while (next.mixingFrom != null) { - next.mixTime += currentDelta; - next = next.mixingFrom; - } - continue; - } - } - else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { - tracks[i] = null; - this.queue.end(current); - this.disposeNext(current); - continue; - } - if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { - var from = current.mixingFrom; - current.mixingFrom = null; - while (from != null) { - this.queue.end(from); - from = from.mixingFrom; - } - } - current.trackTime += currentDelta; - } - this.queue.drain(); - }; - AnimationState.prototype.updateMixingFrom = function (to, delta) { - var from = to.mixingFrom; - if (from == null) - return true; - var finished = this.updateMixingFrom(from, delta); - if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { - if (from.totalAlpha == 0) { - to.mixingFrom = from.mixingFrom; - to.interruptAlpha = from.interruptAlpha; - this.queue.end(from); - } - return finished; - } - from.animationLast = from.nextAnimationLast; - from.trackLast = from.nextTrackLast; - from.trackTime += delta * from.timeScale; - to.mixTime += delta * to.timeScale; - return false; - }; - AnimationState.prototype.apply = function (skeleton) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (this.animationsChanged) - this._animationsChanged(); - var events = this.events; - var tracks = this.tracks; - var applied = false; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null || current.delay > 0) - continue; - applied = true; - var mix = current.alpha; - if (current.mixingFrom != null) - mix *= this.applyMixingFrom(current, skeleton); - else if (current.trackTime >= current.trackEnd && current.next == null) - mix = 0; - var animationLast = current.animationLast, animationTime = current.getAnimationTime(); - var timelineCount = current.animation.timelines.length; - var timelines = current.animation.timelines; - if (mix == 1) { - for (var ii = 0; ii < timelineCount; ii++) - timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); - } - else { - var timelineData = current.timelineData; - var firstFrame = current.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = current.timelinesRotation; - for (var ii = 0; ii < timelineCount; ii++) { - var timeline = timelines[ii]; - if (timeline instanceof spine.RotateTimeline) { - this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); - } - else - timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); - } - } - this.queueEvents(current, animationTime); - events.length = 0; - current.nextAnimationLast = animationTime; - current.nextTrackLast = current.trackTime; - } - this.queue.drain(); - return applied; - }; - AnimationState.prototype.applyMixingFrom = function (to, skeleton) { - var from = to.mixingFrom; - if (from.mixingFrom != null) - this.applyMixingFrom(from, skeleton); - var mix = 0; - if (to.mixDuration == 0) - mix = 1; - else { - mix = to.mixTime / to.mixDuration; - if (mix > 1) - mix = 1; - } - var events = mix < from.eventThreshold ? this.events : null; - var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; - var animationLast = from.animationLast, animationTime = from.getAnimationTime(); - var timelineCount = from.animation.timelines.length; - var timelines = from.animation.timelines; - var timelineData = from.timelineData; - var timelineDipMix = from.timelineDipMix; - var firstFrame = from.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = from.timelinesRotation; - var first = false; - var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; - from.totalAlpha = 0; - for (var i = 0; i < timelineCount; i++) { - var timeline = timelines[i]; - switch (timelineData[i]) { - case AnimationState.SUBSEQUENT: - first = false; - alpha = alphaMix; - break; - case AnimationState.FIRST: - first = true; - alpha = alphaMix; - break; - case AnimationState.DIP: - first = true; - alpha = alphaDip; - break; - default: - first = true; - alpha = alphaDip; - var dipMix = timelineDipMix[i]; - alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); - break; - } - from.totalAlpha += alpha; - if (timeline instanceof spine.RotateTimeline) - this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); - else { - if (!first) { - if (!attachments && timeline instanceof spine.AttachmentTimeline) - continue; - if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) - continue; - } - timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); - } - } - if (to.mixDuration > 0) - this.queueEvents(from, animationTime); - this.events.length = 0; - from.nextAnimationLast = animationTime; - from.nextTrackLast = from.trackTime; - return mix; - }; - AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { - if (firstFrame) - timelinesRotation[i] = 0; - if (alpha == 1) { - timeline.apply(skeleton, 0, time, null, 1, setupPose, false); - return; - } - var rotateTimeline = timeline; - var frames = rotateTimeline.frames; - var bone = skeleton.bones[rotateTimeline.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - var r2 = 0; - if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) - r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; - else { - var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); - var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); - r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - r2 = prevRotation + r2 * percent + bone.data.rotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - } - var r1 = setupPose ? bone.data.rotation : bone.rotation; - var total = 0, diff = r2 - r1; - if (diff == 0) { - total = timelinesRotation[i]; - } - else { - diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; - var lastTotal = 0, lastDiff = 0; - if (firstFrame) { - lastTotal = 0; - lastDiff = diff; - } - else { - lastTotal = timelinesRotation[i]; - lastDiff = timelinesRotation[i + 1]; - } - var current = diff > 0, dir = lastTotal >= 0; - if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { - if (Math.abs(lastTotal) > 180) - lastTotal += 360 * spine.MathUtils.signum(lastTotal); - dir = current; - } - total = diff + lastTotal - lastTotal % 360; - if (dir != current) - total += 360 * spine.MathUtils.signum(lastTotal); - timelinesRotation[i] = total; - } - timelinesRotation[i + 1] = diff; - r1 += total * alpha; - bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; - }; - AnimationState.prototype.queueEvents = function (entry, animationTime) { - var animationStart = entry.animationStart, animationEnd = entry.animationEnd; - var duration = animationEnd - animationStart; - var trackLastWrapped = entry.trackLast % duration; - var events = this.events; - var i = 0, n = events.length; - for (; i < n; i++) { - var event_1 = events[i]; - if (event_1.time < trackLastWrapped) - break; - if (event_1.time > animationEnd) - continue; - this.queue.event(entry, event_1); - } - if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) - : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { - this.queue.complete(entry); - } - for (; i < n; i++) { - var event_2 = events[i]; - if (event_2.time < animationStart) - continue; - this.queue.event(entry, events[i]); - } - }; - AnimationState.prototype.clearTracks = function () { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) - this.clearTrack(i); - this.tracks.length = 0; - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.clearTrack = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return; - var current = this.tracks[trackIndex]; - if (current == null) - return; - this.queue.end(current); - this.disposeNext(current); - var entry = current; - while (true) { - var from = entry.mixingFrom; - if (from == null) - break; - this.queue.end(from); - entry.mixingFrom = null; - entry = from; - } - this.tracks[current.trackIndex] = null; - this.queue.drain(); - }; - AnimationState.prototype.setCurrent = function (index, current, interrupt) { - var from = this.expandToIndex(index); - this.tracks[index] = current; - if (from != null) { - if (interrupt) - this.queue.interrupt(from); - current.mixingFrom = from; - current.mixTime = 0; - if (from.mixingFrom != null && from.mixDuration > 0) - current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); - from.timelinesRotation.length = 0; - } - this.queue.start(current); - }; - AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.setAnimationWith(trackIndex, animation, loop); - }; - AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { - if (animation == null) - throw new Error("animation cannot be null."); - var interrupt = true; - var current = this.expandToIndex(trackIndex); - if (current != null) { - if (current.nextTrackLast == -1) { - this.tracks[trackIndex] = current.mixingFrom; - this.queue.interrupt(current); - this.queue.end(current); - this.disposeNext(current); - current = current.mixingFrom; - interrupt = false; - } - else - this.disposeNext(current); - } - var entry = this.trackEntry(trackIndex, animation, loop, current); - this.setCurrent(trackIndex, entry, interrupt); - this.queue.drain(); - return entry; - }; - AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.addAnimationWith(trackIndex, animation, loop, delay); - }; - AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { - if (animation == null) - throw new Error("animation cannot be null."); - var last = this.expandToIndex(trackIndex); - if (last != null) { - while (last.next != null) - last = last.next; - } - var entry = this.trackEntry(trackIndex, animation, loop, last); - if (last == null) { - this.setCurrent(trackIndex, entry, true); - this.queue.drain(); - } - else { - last.next = entry; - if (delay <= 0) { - var duration = last.animationEnd - last.animationStart; - if (duration != 0) - delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); - else - delay = 0; - } - } - entry.delay = delay; - return entry; - }; - AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { - var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { - if (delay <= 0) - delay -= mixDuration; - var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.setEmptyAnimations = function (mixDuration) { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var current = this.tracks[i]; - if (current != null) - this.setEmptyAnimation(current.trackIndex, mixDuration); - } - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.expandToIndex = function (index) { - if (index < this.tracks.length) - return this.tracks[index]; - spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); - this.tracks.length = index + 1; - return null; - }; - AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { - var entry = this.trackEntryPool.obtain(); - entry.trackIndex = trackIndex; - entry.animation = animation; - entry.loop = loop; - entry.eventThreshold = 0; - entry.attachmentThreshold = 0; - entry.drawOrderThreshold = 0; - entry.animationStart = 0; - entry.animationEnd = animation.duration; - entry.animationLast = -1; - entry.nextAnimationLast = -1; - entry.delay = 0; - entry.trackTime = 0; - entry.trackLast = -1; - entry.nextTrackLast = -1; - entry.trackEnd = Number.MAX_VALUE; - entry.timeScale = 1; - entry.alpha = 1; - entry.interruptAlpha = 1; - entry.mixTime = 0; - entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); - return entry; - }; - AnimationState.prototype.disposeNext = function (entry) { - var next = entry.next; - while (next != null) { - this.queue.dispose(next); - next = next.next; - } - entry.next = null; - }; - AnimationState.prototype._animationsChanged = function () { - this.animationsChanged = false; - var propertyIDs = this.propertyIDs; - propertyIDs.clear(); - var mixingTo = this.mixingTo; - var lastEntry = null; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var entry = this.tracks[i]; - if (entry != null) { - entry.setTimelineData(lastEntry, mixingTo, propertyIDs); - lastEntry = entry; - } - } - }; - AnimationState.prototype.getCurrent = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return null; - return this.tracks[trackIndex]; - }; - AnimationState.prototype.addListener = function (listener) { - if (listener == null) - throw new Error("listener cannot be null."); - this.listeners.push(listener); - }; - AnimationState.prototype.removeListener = function (listener) { - var index = this.listeners.indexOf(listener); - if (index >= 0) - this.listeners.splice(index, 1); - }; - AnimationState.prototype.clearListeners = function () { - this.listeners.length = 0; - }; - AnimationState.prototype.clearListenerNotifications = function () { - this.queue.clear(); - }; - AnimationState.emptyAnimation = new spine.Animation("", [], 0); - AnimationState.SUBSEQUENT = 0; - AnimationState.FIRST = 1; - AnimationState.DIP = 2; - AnimationState.DIP_MIX = 3; - return AnimationState; - }()); - spine.AnimationState = AnimationState; - var TrackEntry = (function () { - function TrackEntry() { - this.timelineData = new Array(); - this.timelineDipMix = new Array(); - this.timelinesRotation = new Array(); - } - TrackEntry.prototype.reset = function () { - this.next = null; - this.mixingFrom = null; - this.animation = null; - this.listener = null; - this.timelineData.length = 0; - this.timelineDipMix.length = 0; - this.timelinesRotation.length = 0; - }; - TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { - if (to != null) - mixingToArray.push(to); - var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; - if (to != null) - mixingToArray.pop(); - var mixingTo = mixingToArray; - var mixingToLast = mixingToArray.length - 1; - var timelines = this.animation.timelines; - var timelinesCount = this.animation.timelines.length; - var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); - this.timelineDipMix.length = 0; - var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); - outer: for (var i = 0; i < timelinesCount; i++) { - var id = timelines[i].getPropertyId(); - if (!propertyIDs.add(id)) - timelineData[i] = AnimationState.SUBSEQUENT; - else if (to == null || !to.hasTimeline(id)) - timelineData[i] = AnimationState.FIRST; - else { - for (var ii = mixingToLast; ii >= 0; ii--) { - var entry = mixingTo[ii]; - if (!entry.hasTimeline(id)) { - if (entry.mixDuration > 0) { - timelineData[i] = AnimationState.DIP_MIX; - timelineDipMix[i] = entry; - continue outer; - } - } - } - timelineData[i] = AnimationState.DIP; - } - } - return lastEntry; - }; - TrackEntry.prototype.hasTimeline = function (id) { - var timelines = this.animation.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - if (timelines[i].getPropertyId() == id) - return true; - return false; - }; - TrackEntry.prototype.getAnimationTime = function () { - if (this.loop) { - var duration = this.animationEnd - this.animationStart; - if (duration == 0) - return this.animationStart; - return (this.trackTime % duration) + this.animationStart; - } - return Math.min(this.trackTime + this.animationStart, this.animationEnd); - }; - TrackEntry.prototype.setAnimationLast = function (animationLast) { - this.animationLast = animationLast; - this.nextAnimationLast = animationLast; - }; - TrackEntry.prototype.isComplete = function () { - return this.trackTime >= this.animationEnd - this.animationStart; - }; - TrackEntry.prototype.resetRotationDirections = function () { - this.timelinesRotation.length = 0; - }; - return TrackEntry; - }()); - spine.TrackEntry = TrackEntry; - var EventQueue = (function () { - function EventQueue(animState) { - this.objects = []; - this.drainDisabled = false; - this.animState = animState; - } - EventQueue.prototype.start = function (entry) { - this.objects.push(EventType.start); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.interrupt = function (entry) { - this.objects.push(EventType.interrupt); - this.objects.push(entry); - }; - EventQueue.prototype.end = function (entry) { - this.objects.push(EventType.end); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.dispose = function (entry) { - this.objects.push(EventType.dispose); - this.objects.push(entry); - }; - EventQueue.prototype.complete = function (entry) { - this.objects.push(EventType.complete); - this.objects.push(entry); - }; - EventQueue.prototype.event = function (entry, event) { - this.objects.push(EventType.event); - this.objects.push(entry); - this.objects.push(event); - }; - EventQueue.prototype.drain = function () { - if (this.drainDisabled) - return; - this.drainDisabled = true; - var objects = this.objects; - var listeners = this.animState.listeners; - for (var i = 0; i < objects.length; i += 2) { - var type = objects[i]; - var entry = objects[i + 1]; - switch (type) { - case EventType.start: - if (entry.listener != null && entry.listener.start) - entry.listener.start(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].start) - listeners[ii].start(entry); - break; - case EventType.interrupt: - if (entry.listener != null && entry.listener.interrupt) - entry.listener.interrupt(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].interrupt) - listeners[ii].interrupt(entry); - break; - case EventType.end: - if (entry.listener != null && entry.listener.end) - entry.listener.end(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].end) - listeners[ii].end(entry); - case EventType.dispose: - if (entry.listener != null && entry.listener.dispose) - entry.listener.dispose(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].dispose) - listeners[ii].dispose(entry); - this.animState.trackEntryPool.free(entry); - break; - case EventType.complete: - if (entry.listener != null && entry.listener.complete) - entry.listener.complete(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].complete) - listeners[ii].complete(entry); - break; - case EventType.event: - var event_3 = objects[i++ + 2]; - if (entry.listener != null && entry.listener.event) - entry.listener.event(entry, event_3); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].event) - listeners[ii].event(entry, event_3); - break; - } - } - this.clear(); - this.drainDisabled = false; - }; - EventQueue.prototype.clear = function () { - this.objects.length = 0; - }; - return EventQueue; - }()); - spine.EventQueue = EventQueue; - (function (EventType) { - EventType[EventType["start"] = 0] = "start"; - EventType[EventType["interrupt"] = 1] = "interrupt"; - EventType[EventType["end"] = 2] = "end"; - EventType[EventType["dispose"] = 3] = "dispose"; - EventType[EventType["complete"] = 4] = "complete"; - EventType[EventType["event"] = 5] = "event"; - })(spine.EventType || (spine.EventType = {})); - var EventType = spine.EventType; - var AnimationStateAdapter2 = (function () { - function AnimationStateAdapter2() { - } - AnimationStateAdapter2.prototype.start = function (entry) { - }; - AnimationStateAdapter2.prototype.interrupt = function (entry) { - }; - AnimationStateAdapter2.prototype.end = function (entry) { - }; - AnimationStateAdapter2.prototype.dispose = function (entry) { - }; - AnimationStateAdapter2.prototype.complete = function (entry) { - }; - AnimationStateAdapter2.prototype.event = function (entry, event) { - }; - return AnimationStateAdapter2; - }()); - spine.AnimationStateAdapter2 = AnimationStateAdapter2; + var AnimationState = (function () { + function AnimationState(data) { + this.tracks = new Array(); + this.events = new Array(); + this.listeners = new Array(); + this.queue = new EventQueue(this); + this.propertyIDs = new spine.IntSet(); + this.mixingTo = new Array(); + this.animationsChanged = false; + this.timeScale = 1; + this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); + this.data = data; + } + AnimationState.prototype.update = function (delta) { + delta *= this.timeScale; + var tracks = this.tracks; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null) + continue; + current.animationLast = current.nextAnimationLast; + current.trackLast = current.nextTrackLast; + var currentDelta = delta * current.timeScale; + if (current.delay > 0) { + current.delay -= currentDelta; + if (current.delay > 0) + continue; + currentDelta = -current.delay; + current.delay = 0; + } + var next = current.next; + if (next != null) { + var nextTime = current.trackLast - next.delay; + if (nextTime >= 0) { + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; + this.setCurrent(i, next, true); + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + } + else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; + } + if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { + var from = current.mixingFrom; + current.mixingFrom = null; + while (from != null) { + this.queue.end(from); + from = from.mixingFrom; + } + } + current.trackTime += currentDelta; + } + this.queue.drain(); + }; + AnimationState.prototype.updateMixingFrom = function (to, delta) { + var from = to.mixingFrom; + if (from == null) + return true; + var finished = this.updateMixingFrom(from, delta); + if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { + if (from.totalAlpha == 0) { + to.mixingFrom = from.mixingFrom; + to.interruptAlpha = from.interruptAlpha; + this.queue.end(from); + } + return finished; + } + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + from.trackTime += delta * from.timeScale; + to.mixTime += delta * to.timeScale; + return false; + }; + AnimationState.prototype.apply = function (skeleton) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (this.animationsChanged) + this._animationsChanged(); + var events = this.events; + var tracks = this.tracks; + var applied = false; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null || current.delay > 0) + continue; + applied = true; + var mix = current.alpha; + if (current.mixingFrom != null) + mix *= this.applyMixingFrom(current, skeleton); + else if (current.trackTime >= current.trackEnd && current.next == null) + mix = 0; + var animationLast = current.animationLast, animationTime = current.getAnimationTime(); + var timelineCount = current.animation.timelines.length; + var timelines = current.animation.timelines; + if (mix == 1) { + for (var ii = 0; ii < timelineCount; ii++) + timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); + } + else { + var timelineData = current.timelineData; + var firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = current.timelinesRotation; + for (var ii = 0; ii < timelineCount; ii++) { + var timeline = timelines[ii]; + if (timeline instanceof spine.RotateTimeline) { + this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); + } + else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); + } + } + this.queueEvents(current, animationTime); + events.length = 0; + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; + } + this.queue.drain(); + return applied; + }; + AnimationState.prototype.applyMixingFrom = function (to, skeleton) { + var from = to.mixingFrom; + if (from.mixingFrom != null) + this.applyMixingFrom(from, skeleton); + var mix = 0; + if (to.mixDuration == 0) + mix = 1; + else { + mix = to.mixTime / to.mixDuration; + if (mix > 1) + mix = 1; + } + var events = mix < from.eventThreshold ? this.events : null; + var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; + var animationLast = from.animationLast, animationTime = from.getAnimationTime(); + var timelineCount = from.animation.timelines.length; + var timelines = from.animation.timelines; + var timelineData = from.timelineData; + var timelineDipMix = from.timelineDipMix; + var firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = from.timelinesRotation; + var first = false; + var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; + from.totalAlpha = 0; + for (var i = 0; i < timelineCount; i++) { + var timeline = timelines[i]; + switch (timelineData[i]) { + case AnimationState.SUBSEQUENT: + first = false; + alpha = alphaMix; + break; + case AnimationState.FIRST: + first = true; + alpha = alphaMix; + break; + case AnimationState.DIP: + first = true; + alpha = alphaDip; + break; + default: + first = true; + alpha = alphaDip; + var dipMix = timelineDipMix[i]; + alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); + break; + } + from.totalAlpha += alpha; + if (timeline instanceof spine.RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); + else { + if (!first) { + if (!attachments && timeline instanceof spine.AttachmentTimeline) + continue; + if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) + continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); + } + } + if (to.mixDuration > 0) + this.queueEvents(from, animationTime); + this.events.length = 0; + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + }; + AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { + if (firstFrame) + timelinesRotation[i] = 0; + if (alpha == 1) { + timeline.apply(skeleton, 0, time, null, 1, setupPose, false); + return; + } + var rotateTimeline = timeline; + var frames = rotateTimeline.frames; + var bone = skeleton.bones[rotateTimeline.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + var r2 = 0; + if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) + r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; + else { + var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); + var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); + r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + r2 = prevRotation + r2 * percent + bone.data.rotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + } + var r1 = setupPose ? bone.data.rotation : bone.rotation; + var total = 0, diff = r2 - r1; + if (diff == 0) { + total = timelinesRotation[i]; + } + else { + diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; + var lastTotal = 0, lastDiff = 0; + if (firstFrame) { + lastTotal = 0; + lastDiff = diff; + } + else { + lastTotal = timelinesRotation[i]; + lastDiff = timelinesRotation[i + 1]; + } + var current = diff > 0, dir = lastTotal >= 0; + if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { + if (Math.abs(lastTotal) > 180) + lastTotal += 360 * spine.MathUtils.signum(lastTotal); + dir = current; + } + total = diff + lastTotal - lastTotal % 360; + if (dir != current) + total += 360 * spine.MathUtils.signum(lastTotal); + timelinesRotation[i] = total; + } + timelinesRotation[i + 1] = diff; + r1 += total * alpha; + bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; + }; + AnimationState.prototype.queueEvents = function (entry, animationTime) { + var animationStart = entry.animationStart, animationEnd = entry.animationEnd; + var duration = animationEnd - animationStart; + var trackLastWrapped = entry.trackLast % duration; + var events = this.events; + var i = 0, n = events.length; + for (; i < n; i++) { + var event_1 = events[i]; + if (event_1.time < trackLastWrapped) + break; + if (event_1.time > animationEnd) + continue; + this.queue.event(entry, event_1); + } + if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) + : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { + this.queue.complete(entry); + } + for (; i < n; i++) { + var event_2 = events[i]; + if (event_2.time < animationStart) + continue; + this.queue.event(entry, events[i]); + } + }; + AnimationState.prototype.clearTracks = function () { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) + this.clearTrack(i); + this.tracks.length = 0; + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.clearTrack = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return; + var current = this.tracks[trackIndex]; + if (current == null) + return; + this.queue.end(current); + this.disposeNext(current); + var entry = current; + while (true) { + var from = entry.mixingFrom; + if (from == null) + break; + this.queue.end(from); + entry.mixingFrom = null; + entry = from; + } + this.tracks[current.trackIndex] = null; + this.queue.drain(); + }; + AnimationState.prototype.setCurrent = function (index, current, interrupt) { + var from = this.expandToIndex(index); + this.tracks[index] = current; + if (from != null) { + if (interrupt) + this.queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + if (from.mixingFrom != null && from.mixDuration > 0) + current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); + from.timelinesRotation.length = 0; + } + this.queue.start(current); + }; + AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.setAnimationWith(trackIndex, animation, loop); + }; + AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { + if (animation == null) + throw new Error("animation cannot be null."); + var interrupt = true; + var current = this.expandToIndex(trackIndex); + if (current != null) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = current.mixingFrom; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = current.mixingFrom; + interrupt = false; + } + else + this.disposeNext(current); + } + var entry = this.trackEntry(trackIndex, animation, loop, current); + this.setCurrent(trackIndex, entry, interrupt); + this.queue.drain(); + return entry; + }; + AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.addAnimationWith(trackIndex, animation, loop, delay); + }; + AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { + if (animation == null) + throw new Error("animation cannot be null."); + var last = this.expandToIndex(trackIndex); + if (last != null) { + while (last.next != null) + last = last.next; + } + var entry = this.trackEntry(trackIndex, animation, loop, last); + if (last == null) { + this.setCurrent(trackIndex, entry, true); + this.queue.drain(); + } + else { + last.next = entry; + if (delay <= 0) { + var duration = last.animationEnd - last.animationStart; + if (duration != 0) + delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); + else + delay = 0; + } + } + entry.delay = delay; + return entry; + }; + AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { + var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { + if (delay <= 0) + delay -= mixDuration; + var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.setEmptyAnimations = function (mixDuration) { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var current = this.tracks[i]; + if (current != null) + this.setEmptyAnimation(current.trackIndex, mixDuration); + } + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.expandToIndex = function (index) { + if (index < this.tracks.length) + return this.tracks[index]; + spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); + this.tracks.length = index + 1; + return null; + }; + AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { + var entry = this.trackEntryPool.obtain(); + entry.trackIndex = trackIndex; + entry.animation = animation; + entry.loop = loop; + entry.eventThreshold = 0; + entry.attachmentThreshold = 0; + entry.drawOrderThreshold = 0; + entry.animationStart = 0; + entry.animationEnd = animation.duration; + entry.animationLast = -1; + entry.nextAnimationLast = -1; + entry.delay = 0; + entry.trackTime = 0; + entry.trackLast = -1; + entry.nextTrackLast = -1; + entry.trackEnd = Number.MAX_VALUE; + entry.timeScale = 1; + entry.alpha = 1; + entry.interruptAlpha = 1; + entry.mixTime = 0; + entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); + return entry; + }; + AnimationState.prototype.disposeNext = function (entry) { + var next = entry.next; + while (next != null) { + this.queue.dispose(next); + next = next.next; + } + entry.next = null; + }; + AnimationState.prototype._animationsChanged = function () { + this.animationsChanged = false; + var propertyIDs = this.propertyIDs; + propertyIDs.clear(); + var mixingTo = this.mixingTo; + var lastEntry = null; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var entry = this.tracks[i]; + if (entry != null) { + entry.setTimelineData(lastEntry, mixingTo, propertyIDs); + lastEntry = entry; + } + } + }; + AnimationState.prototype.getCurrent = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return null; + return this.tracks[trackIndex]; + }; + AnimationState.prototype.addListener = function (listener) { + if (listener == null) + throw new Error("listener cannot be null."); + this.listeners.push(listener); + }; + AnimationState.prototype.removeListener = function (listener) { + var index = this.listeners.indexOf(listener); + if (index >= 0) + this.listeners.splice(index, 1); + }; + AnimationState.prototype.clearListeners = function () { + this.listeners.length = 0; + }; + AnimationState.prototype.clearListenerNotifications = function () { + this.queue.clear(); + }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); + AnimationState.SUBSEQUENT = 0; + AnimationState.FIRST = 1; + AnimationState.DIP = 2; + AnimationState.DIP_MIX = 3; + return AnimationState; + }()); + spine.AnimationState = AnimationState; + var TrackEntry = (function () { + function TrackEntry() { + this.timelineData = new Array(); + this.timelineDipMix = new Array(); + this.timelinesRotation = new Array(); + } + TrackEntry.prototype.reset = function () { + this.next = null; + this.mixingFrom = null; + this.animation = null; + this.listener = null; + this.timelineData.length = 0; + this.timelineDipMix.length = 0; + this.timelinesRotation.length = 0; + }; + TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { + if (to != null) + mixingToArray.push(to); + var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; + if (to != null) + mixingToArray.pop(); + var mixingTo = mixingToArray; + var mixingToLast = mixingToArray.length - 1; + var timelines = this.animation.timelines; + var timelinesCount = this.animation.timelines.length; + var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); + this.timelineDipMix.length = 0; + var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); + outer: for (var i = 0; i < timelinesCount; i++) { + var id = timelines[i].getPropertyId(); + if (!propertyIDs.add(id)) + timelineData[i] = AnimationState.SUBSEQUENT; + else if (to == null || !to.hasTimeline(id)) + timelineData[i] = AnimationState.FIRST; + else { + for (var ii = mixingToLast; ii >= 0; ii--) { + var entry = mixingTo[ii]; + if (!entry.hasTimeline(id)) { + if (entry.mixDuration > 0) { + timelineData[i] = AnimationState.DIP_MIX; + timelineDipMix[i] = entry; + continue outer; + } + } + } + timelineData[i] = AnimationState.DIP; + } + } + return lastEntry; + }; + TrackEntry.prototype.hasTimeline = function (id) { + var timelines = this.animation.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + if (timelines[i].getPropertyId() == id) + return true; + return false; + }; + TrackEntry.prototype.getAnimationTime = function () { + if (this.loop) { + var duration = this.animationEnd - this.animationStart; + if (duration == 0) + return this.animationStart; + return (this.trackTime % duration) + this.animationStart; + } + return Math.min(this.trackTime + this.animationStart, this.animationEnd); + }; + TrackEntry.prototype.setAnimationLast = function (animationLast) { + this.animationLast = animationLast; + this.nextAnimationLast = animationLast; + }; + TrackEntry.prototype.isComplete = function () { + return this.trackTime >= this.animationEnd - this.animationStart; + }; + TrackEntry.prototype.resetRotationDirections = function () { + this.timelinesRotation.length = 0; + }; + return TrackEntry; + }()); + spine.TrackEntry = TrackEntry; + var EventQueue = (function () { + function EventQueue(animState) { + this.objects = []; + this.drainDisabled = false; + this.animState = animState; + } + EventQueue.prototype.start = function (entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.interrupt = function (entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); + }; + EventQueue.prototype.end = function (entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.dispose = function (entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); + }; + EventQueue.prototype.complete = function (entry) { + this.objects.push(EventType.complete); + this.objects.push(entry); + }; + EventQueue.prototype.event = function (entry, event) { + this.objects.push(EventType.event); + this.objects.push(entry); + this.objects.push(event); + }; + EventQueue.prototype.drain = function () { + if (this.drainDisabled) + return; + this.drainDisabled = true; + var objects = this.objects; + var listeners = this.animState.listeners; + for (var i = 0; i < objects.length; i += 2) { + var type = objects[i]; + var entry = objects[i + 1]; + switch (type) { + case EventType.start: + if (entry.listener != null && entry.listener.start) + entry.listener.start(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].start) + listeners[ii].start(entry); + break; + case EventType.interrupt: + if (entry.listener != null && entry.listener.interrupt) + entry.listener.interrupt(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].interrupt) + listeners[ii].interrupt(entry); + break; + case EventType.end: + if (entry.listener != null && entry.listener.end) + entry.listener.end(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].end) + listeners[ii].end(entry); + case EventType.dispose: + if (entry.listener != null && entry.listener.dispose) + entry.listener.dispose(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].dispose) + listeners[ii].dispose(entry); + this.animState.trackEntryPool.free(entry); + break; + case EventType.complete: + if (entry.listener != null && entry.listener.complete) + entry.listener.complete(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].complete) + listeners[ii].complete(entry); + break; + case EventType.event: + var event_3 = objects[i++ + 2]; + if (entry.listener != null && entry.listener.event) + entry.listener.event(entry, event_3); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].event) + listeners[ii].event(entry, event_3); + break; + } + } + this.clear(); + this.drainDisabled = false; + }; + EventQueue.prototype.clear = function () { + this.objects.length = 0; + }; + return EventQueue; + }()); + spine.EventQueue = EventQueue; + (function (EventType) { + EventType[EventType["start"] = 0] = "start"; + EventType[EventType["interrupt"] = 1] = "interrupt"; + EventType[EventType["end"] = 2] = "end"; + EventType[EventType["dispose"] = 3] = "dispose"; + EventType[EventType["complete"] = 4] = "complete"; + EventType[EventType["event"] = 5] = "event"; + })(spine.EventType || (spine.EventType = {})); + var EventType = spine.EventType; + var AnimationStateAdapter2 = (function () { + function AnimationStateAdapter2() { + } + AnimationStateAdapter2.prototype.start = function (entry) { + }; + AnimationStateAdapter2.prototype.interrupt = function (entry) { + }; + AnimationStateAdapter2.prototype.end = function (entry) { + }; + AnimationStateAdapter2.prototype.dispose = function (entry) { + }; + AnimationStateAdapter2.prototype.complete = function (entry) { + }; + AnimationStateAdapter2.prototype.event = function (entry, event) { + }; + return AnimationStateAdapter2; + }()); + spine.AnimationStateAdapter2 = AnimationStateAdapter2; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationStateData = (function () { - function AnimationStateData(skeletonData) { - this.animationToMixTime = {}; - this.defaultMix = 0; - if (skeletonData == null) - throw new Error("skeletonData cannot be null."); - this.skeletonData = skeletonData; - } - AnimationStateData.prototype.setMix = function (fromName, toName, duration) { - var from = this.skeletonData.findAnimation(fromName); - if (from == null) - throw new Error("Animation not found: " + fromName); - var to = this.skeletonData.findAnimation(toName); - if (to == null) - throw new Error("Animation not found: " + toName); - this.setMixWith(from, to, duration); - }; - AnimationStateData.prototype.setMixWith = function (from, to, duration) { - if (from == null) - throw new Error("from cannot be null."); - if (to == null) - throw new Error("to cannot be null."); - var key = from.name + to.name; - this.animationToMixTime[key] = duration; - }; - AnimationStateData.prototype.getMix = function (from, to) { - var key = from.name + to.name; - var value = this.animationToMixTime[key]; - return value === undefined ? this.defaultMix : value; - }; - return AnimationStateData; - }()); - spine.AnimationStateData = AnimationStateData; + var AnimationStateData = (function () { + function AnimationStateData(skeletonData) { + this.animationToMixTime = {}; + this.defaultMix = 0; + if (skeletonData == null) + throw new Error("skeletonData cannot be null."); + this.skeletonData = skeletonData; + } + AnimationStateData.prototype.setMix = function (fromName, toName, duration) { + var from = this.skeletonData.findAnimation(fromName); + if (from == null) + throw new Error("Animation not found: " + fromName); + var to = this.skeletonData.findAnimation(toName); + if (to == null) + throw new Error("Animation not found: " + toName); + this.setMixWith(from, to, duration); + }; + AnimationStateData.prototype.setMixWith = function (from, to, duration) { + if (from == null) + throw new Error("from cannot be null."); + if (to == null) + throw new Error("to cannot be null."); + var key = from.name + to.name; + this.animationToMixTime[key] = duration; + }; + AnimationStateData.prototype.getMix = function (from, to) { + var key = from.name + to.name; + var value = this.animationToMixTime[key]; + return value === undefined ? this.defaultMix : value; + }; + return AnimationStateData; + }()); + spine.AnimationStateData = AnimationStateData; })(spine || (spine = {})); var spine; (function (spine) { - var AtlasAttachmentLoader = (function () { - function AtlasAttachmentLoader(atlas) { - this.atlas = atlas; - } - AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.RegionAttachment(name); - attachment.setRegion(region); - return attachment; - }; - AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.MeshAttachment(name); - attachment.region = region; - return attachment; - }; - AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { - return new spine.BoundingBoxAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { - return new spine.PathAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { - return new spine.PointAttachment(name); - }; - AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { - return new spine.ClippingAttachment(name); - }; - return AtlasAttachmentLoader; - }()); - spine.AtlasAttachmentLoader = AtlasAttachmentLoader; + var AtlasAttachmentLoader = (function () { + function AtlasAttachmentLoader(atlas) { + this.atlas = atlas; + } + AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.RegionAttachment(name); + attachment.setRegion(region); + return attachment; + }; + AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.MeshAttachment(name); + attachment.region = region; + return attachment; + }; + AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { + return new spine.BoundingBoxAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { + return new spine.PathAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { + return new spine.PointAttachment(name); + }; + AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { + return new spine.ClippingAttachment(name); + }; + return AtlasAttachmentLoader; + }()); + spine.AtlasAttachmentLoader = AtlasAttachmentLoader; })(spine || (spine = {})); var spine; (function (spine) { - var Attachment = (function () { - function Attachment(name) { - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return Attachment; - }()); - spine.Attachment = Attachment; - var VertexAttachment = (function (_super) { - __extends(VertexAttachment, _super); - function VertexAttachment(name) { - _super.call(this, name); - this.worldVerticesLength = 0; - } - VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { - count = offset + (count >> 1) * stride; - var skeleton = slot.bone.skeleton; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices; - var bones = this.bones; - if (bones == null) { - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - var x = bone.worldX; - var y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { - var vx = vertices[v_1], vy = vertices[v_1 + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - } - return; - } - var v = 0, skip = 0; - for (var i = 0; i < start; i += 2) { - var n = bones[v]; - v += n + 1; - skip += n; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = offset, b = skip * 3; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - else { - var deform = deformArray; - for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3, f += 2) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - }; - VertexAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment; - }; - return VertexAttachment; - }(Attachment)); - spine.VertexAttachment = VertexAttachment; + var Attachment = (function () { + function Attachment(name) { + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return Attachment; + }()); + spine.Attachment = Attachment; + var VertexAttachment = (function (_super) { + __extends(VertexAttachment, _super); + function VertexAttachment(name) { + _super.call(this, name); + this.worldVerticesLength = 0; + } + VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { + count = offset + (count >> 1) * stride; + var skeleton = slot.bone.skeleton; + var deformArray = slot.attachmentVertices; + var vertices = this.vertices; + var bones = this.bones; + if (bones == null) { + if (deformArray.length > 0) + vertices = deformArray; + var bone = slot.bone; + var x = bone.worldX; + var y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { + var vx = vertices[v_1], vy = vertices[v_1 + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + } + return; + } + var v = 0, skip = 0; + for (var i = 0; i < start; i += 2) { + var n = bones[v]; + v += n + 1; + skip += n; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = offset, b = skip * 3; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + else { + var deform = deformArray; + for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3, f += 2) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + }; + VertexAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment; + }; + return VertexAttachment; + }(Attachment)); + spine.VertexAttachment = VertexAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (AttachmentType) { - AttachmentType[AttachmentType["Region"] = 0] = "Region"; - AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; - AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; - AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; - AttachmentType[AttachmentType["Path"] = 4] = "Path"; - AttachmentType[AttachmentType["Point"] = 5] = "Point"; - })(spine.AttachmentType || (spine.AttachmentType = {})); - var AttachmentType = spine.AttachmentType; + (function (AttachmentType) { + AttachmentType[AttachmentType["Region"] = 0] = "Region"; + AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; + AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; + AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; + AttachmentType[AttachmentType["Path"] = 4] = "Path"; + AttachmentType[AttachmentType["Point"] = 5] = "Point"; + })(spine.AttachmentType || (spine.AttachmentType = {})); + var AttachmentType = spine.AttachmentType; })(spine || (spine = {})); var spine; (function (spine) { - var BoundingBoxAttachment = (function (_super) { - __extends(BoundingBoxAttachment, _super); - function BoundingBoxAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - } - return BoundingBoxAttachment; - }(spine.VertexAttachment)); - spine.BoundingBoxAttachment = BoundingBoxAttachment; + var BoundingBoxAttachment = (function (_super) { + __extends(BoundingBoxAttachment, _super); + function BoundingBoxAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + } + return BoundingBoxAttachment; + }(spine.VertexAttachment)); + spine.BoundingBoxAttachment = BoundingBoxAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var ClippingAttachment = (function (_super) { - __extends(ClippingAttachment, _super); - function ClippingAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); - } - return ClippingAttachment; - }(spine.VertexAttachment)); - spine.ClippingAttachment = ClippingAttachment; + var ClippingAttachment = (function (_super) { + __extends(ClippingAttachment, _super); + function ClippingAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); + } + return ClippingAttachment; + }(spine.VertexAttachment)); + spine.ClippingAttachment = ClippingAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var MeshAttachment = (function (_super) { - __extends(MeshAttachment, _super); - function MeshAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - this.inheritDeform = false; - this.tempColor = new spine.Color(0, 0, 0, 0); - } - MeshAttachment.prototype.updateUVs = function () { - var u = 0, v = 0, width = 0, height = 0; - if (this.region == null) { - u = v = 0; - width = height = 1; - } - else { - u = this.region.u; - v = this.region.v; - width = this.region.u2 - u; - height = this.region.v2 - v; - } - var regionUVs = this.regionUVs; - if (this.uvs == null || this.uvs.length != regionUVs.length) - this.uvs = spine.Utils.newFloatArray(regionUVs.length); - var uvs = this.uvs; - if (this.region.rotate) { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i + 1] * width; - uvs[i + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i] * width; - uvs[i + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); - }; - MeshAttachment.prototype.getParentMesh = function () { - return this.parentMesh; - }; - MeshAttachment.prototype.setParentMesh = function (parentMesh) { - this.parentMesh = parentMesh; - if (parentMesh != null) { - this.bones = parentMesh.bones; - this.vertices = parentMesh.vertices; - this.worldVerticesLength = parentMesh.worldVerticesLength; - this.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - this.worldVerticesLength = parentMesh.worldVerticesLength; - } - }; - return MeshAttachment; - }(spine.VertexAttachment)); - spine.MeshAttachment = MeshAttachment; + var MeshAttachment = (function (_super) { + __extends(MeshAttachment, _super); + function MeshAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + this.inheritDeform = false; + this.tempColor = new spine.Color(0, 0, 0, 0); + } + MeshAttachment.prototype.updateUVs = function () { + var u = 0, v = 0, width = 0, height = 0; + if (this.region == null) { + u = v = 0; + width = height = 1; + } + else { + u = this.region.u; + v = this.region.v; + width = this.region.u2 - u; + height = this.region.v2 - v; + } + var regionUVs = this.regionUVs; + if (this.uvs == null || this.uvs.length != regionUVs.length) + this.uvs = spine.Utils.newFloatArray(regionUVs.length); + var uvs = this.uvs; + if (this.region.rotate) { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); + }; + MeshAttachment.prototype.getParentMesh = function () { + return this.parentMesh; + }; + MeshAttachment.prototype.setParentMesh = function (parentMesh) { + this.parentMesh = parentMesh; + if (parentMesh != null) { + this.bones = parentMesh.bones; + this.vertices = parentMesh.vertices; + this.worldVerticesLength = parentMesh.worldVerticesLength; + this.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + this.worldVerticesLength = parentMesh.worldVerticesLength; + } + }; + return MeshAttachment; + }(spine.VertexAttachment)); + spine.MeshAttachment = MeshAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PathAttachment = (function (_super) { - __extends(PathAttachment, _super); - function PathAttachment(name) { - _super.call(this, name); - this.closed = false; - this.constantSpeed = false; - this.color = new spine.Color(1, 1, 1, 1); - } - return PathAttachment; - }(spine.VertexAttachment)); - spine.PathAttachment = PathAttachment; + var PathAttachment = (function (_super) { + __extends(PathAttachment, _super); + function PathAttachment(name) { + _super.call(this, name); + this.closed = false; + this.constantSpeed = false; + this.color = new spine.Color(1, 1, 1, 1); + } + return PathAttachment; + }(spine.VertexAttachment)); + spine.PathAttachment = PathAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PointAttachment = (function (_super) { - __extends(PointAttachment, _super); - function PointAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.38, 0.94, 0, 1); - } - PointAttachment.prototype.computeWorldPosition = function (bone, point) { - point.x = this.x * bone.a + this.y * bone.b + bone.worldX; - point.y = this.x * bone.c + this.y * bone.d + bone.worldY; - return point; - }; - PointAttachment.prototype.computeWorldRotation = function (bone) { - var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); - var x = cos * bone.a + sin * bone.b; - var y = cos * bone.c + sin * bone.d; - return Math.atan2(y, x) * spine.MathUtils.radDeg; - }; - return PointAttachment; - }(spine.VertexAttachment)); - spine.PointAttachment = PointAttachment; + var PointAttachment = (function (_super) { + __extends(PointAttachment, _super); + function PointAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.38, 0.94, 0, 1); + } + PointAttachment.prototype.computeWorldPosition = function (bone, point) { + point.x = this.x * bone.a + this.y * bone.b + bone.worldX; + point.y = this.x * bone.c + this.y * bone.d + bone.worldY; + return point; + }; + PointAttachment.prototype.computeWorldRotation = function (bone) { + var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); + var x = cos * bone.a + sin * bone.b; + var y = cos * bone.c + sin * bone.d; + return Math.atan2(y, x) * spine.MathUtils.radDeg; + }; + return PointAttachment; + }(spine.VertexAttachment)); + spine.PointAttachment = PointAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var RegionAttachment = (function (_super) { - __extends(RegionAttachment, _super); - function RegionAttachment(name) { - _super.call(this, name); - this.x = 0; - this.y = 0; - this.scaleX = 1; - this.scaleY = 1; - this.rotation = 0; - this.width = 0; - this.height = 0; - this.color = new spine.Color(1, 1, 1, 1); - this.offset = spine.Utils.newFloatArray(8); - this.uvs = spine.Utils.newFloatArray(8); - this.tempColor = new spine.Color(1, 1, 1, 1); - } - RegionAttachment.prototype.updateOffset = function () { - var regionScaleX = this.width / this.region.originalWidth * this.scaleX; - var regionScaleY = this.height / this.region.originalHeight * this.scaleY; - var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; - var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; - var localX2 = localX + this.region.width * regionScaleX; - var localY2 = localY + this.region.height * regionScaleY; - var radians = this.rotation * Math.PI / 180; - var cos = Math.cos(radians); - var sin = Math.sin(radians); - var localXCos = localX * cos + this.x; - var localXSin = localX * sin; - var localYCos = localY * cos + this.y; - var localYSin = localY * sin; - var localX2Cos = localX2 * cos + this.x; - var localX2Sin = localX2 * sin; - var localY2Cos = localY2 * cos + this.y; - var localY2Sin = localY2 * sin; - var offset = this.offset; - offset[RegionAttachment.OX1] = localXCos - localYSin; - offset[RegionAttachment.OY1] = localYCos + localXSin; - offset[RegionAttachment.OX2] = localXCos - localY2Sin; - offset[RegionAttachment.OY2] = localY2Cos + localXSin; - offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; - offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; - offset[RegionAttachment.OX4] = localX2Cos - localYSin; - offset[RegionAttachment.OY4] = localYCos + localX2Sin; - }; - RegionAttachment.prototype.setRegion = function (region) { - this.region = region; - var uvs = this.uvs; - if (region.rotate) { - uvs[2] = region.u; - uvs[3] = region.v2; - uvs[4] = region.u; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v; - uvs[0] = region.u2; - uvs[1] = region.v2; - } - else { - uvs[0] = region.u; - uvs[1] = region.v2; - uvs[2] = region.u; - uvs[3] = region.v; - uvs[4] = region.u2; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v2; - } - }; - RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { - var vertexOffset = this.offset; - var x = bone.worldX, y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = vertexOffset[RegionAttachment.OX1]; - offsetY = vertexOffset[RegionAttachment.OY1]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX2]; - offsetY = vertexOffset[RegionAttachment.OY2]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX3]; - offsetY = vertexOffset[RegionAttachment.OY3]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX4]; - offsetY = vertexOffset[RegionAttachment.OY4]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - }; - RegionAttachment.OX1 = 0; - RegionAttachment.OY1 = 1; - RegionAttachment.OX2 = 2; - RegionAttachment.OY2 = 3; - RegionAttachment.OX3 = 4; - RegionAttachment.OY3 = 5; - RegionAttachment.OX4 = 6; - RegionAttachment.OY4 = 7; - RegionAttachment.X1 = 0; - RegionAttachment.Y1 = 1; - RegionAttachment.C1R = 2; - RegionAttachment.C1G = 3; - RegionAttachment.C1B = 4; - RegionAttachment.C1A = 5; - RegionAttachment.U1 = 6; - RegionAttachment.V1 = 7; - RegionAttachment.X2 = 8; - RegionAttachment.Y2 = 9; - RegionAttachment.C2R = 10; - RegionAttachment.C2G = 11; - RegionAttachment.C2B = 12; - RegionAttachment.C2A = 13; - RegionAttachment.U2 = 14; - RegionAttachment.V2 = 15; - RegionAttachment.X3 = 16; - RegionAttachment.Y3 = 17; - RegionAttachment.C3R = 18; - RegionAttachment.C3G = 19; - RegionAttachment.C3B = 20; - RegionAttachment.C3A = 21; - RegionAttachment.U3 = 22; - RegionAttachment.V3 = 23; - RegionAttachment.X4 = 24; - RegionAttachment.Y4 = 25; - RegionAttachment.C4R = 26; - RegionAttachment.C4G = 27; - RegionAttachment.C4B = 28; - RegionAttachment.C4A = 29; - RegionAttachment.U4 = 30; - RegionAttachment.V4 = 31; - return RegionAttachment; - }(spine.Attachment)); - spine.RegionAttachment = RegionAttachment; + var RegionAttachment = (function (_super) { + __extends(RegionAttachment, _super); + function RegionAttachment(name) { + _super.call(this, name); + this.x = 0; + this.y = 0; + this.scaleX = 1; + this.scaleY = 1; + this.rotation = 0; + this.width = 0; + this.height = 0; + this.color = new spine.Color(1, 1, 1, 1); + this.offset = spine.Utils.newFloatArray(8); + this.uvs = spine.Utils.newFloatArray(8); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.updateOffset = function () { + var regionScaleX = this.width / this.region.originalWidth * this.scaleX; + var regionScaleY = this.height / this.region.originalHeight * this.scaleY; + var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; + var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; + var localX2 = localX + this.region.width * regionScaleX; + var localY2 = localY + this.region.height * regionScaleY; + var radians = this.rotation * Math.PI / 180; + var cos = Math.cos(radians); + var sin = Math.sin(radians); + var localXCos = localX * cos + this.x; + var localXSin = localX * sin; + var localYCos = localY * cos + this.y; + var localYSin = localY * sin; + var localX2Cos = localX2 * cos + this.x; + var localX2Sin = localX2 * sin; + var localY2Cos = localY2 * cos + this.y; + var localY2Sin = localY2 * sin; + var offset = this.offset; + offset[RegionAttachment.OX1] = localXCos - localYSin; + offset[RegionAttachment.OY1] = localYCos + localXSin; + offset[RegionAttachment.OX2] = localXCos - localY2Sin; + offset[RegionAttachment.OY2] = localY2Cos + localXSin; + offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; + offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; + offset[RegionAttachment.OX4] = localX2Cos - localYSin; + offset[RegionAttachment.OY4] = localYCos + localX2Sin; + }; + RegionAttachment.prototype.setRegion = function (region) { + this.region = region; + var uvs = this.uvs; + if (region.rotate) { + uvs[2] = region.u; + uvs[3] = region.v2; + uvs[4] = region.u; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v; + uvs[0] = region.u2; + uvs[1] = region.v2; + } + else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; + } + }; + RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { + var vertexOffset = this.offset; + var x = bone.worldX, y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var offsetX = 0, offsetY = 0; + offsetX = vertexOffset[RegionAttachment.OX1]; + offsetY = vertexOffset[RegionAttachment.OY1]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX2]; + offsetY = vertexOffset[RegionAttachment.OY2]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX3]; + offsetY = vertexOffset[RegionAttachment.OY3]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX4]; + offsetY = vertexOffset[RegionAttachment.OY4]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + }; + RegionAttachment.OX1 = 0; + RegionAttachment.OY1 = 1; + RegionAttachment.OX2 = 2; + RegionAttachment.OY2 = 3; + RegionAttachment.OX3 = 4; + RegionAttachment.OY3 = 5; + RegionAttachment.OX4 = 6; + RegionAttachment.OY4 = 7; + RegionAttachment.X1 = 0; + RegionAttachment.Y1 = 1; + RegionAttachment.C1R = 2; + RegionAttachment.C1G = 3; + RegionAttachment.C1B = 4; + RegionAttachment.C1A = 5; + RegionAttachment.U1 = 6; + RegionAttachment.V1 = 7; + RegionAttachment.X2 = 8; + RegionAttachment.Y2 = 9; + RegionAttachment.C2R = 10; + RegionAttachment.C2G = 11; + RegionAttachment.C2B = 12; + RegionAttachment.C2A = 13; + RegionAttachment.U2 = 14; + RegionAttachment.V2 = 15; + RegionAttachment.X3 = 16; + RegionAttachment.Y3 = 17; + RegionAttachment.C3R = 18; + RegionAttachment.C3G = 19; + RegionAttachment.C3B = 20; + RegionAttachment.C3A = 21; + RegionAttachment.U3 = 22; + RegionAttachment.V3 = 23; + RegionAttachment.X4 = 24; + RegionAttachment.Y4 = 25; + RegionAttachment.C4R = 26; + RegionAttachment.C4G = 27; + RegionAttachment.C4B = 28; + RegionAttachment.C4A = 29; + RegionAttachment.U4 = 30; + RegionAttachment.V4 = 31; + return RegionAttachment; + }(spine.Attachment)); + spine.RegionAttachment = RegionAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (BlendMode) { - BlendMode[BlendMode["Normal"] = 0] = "Normal"; - BlendMode[BlendMode["Additive"] = 1] = "Additive"; - BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; - BlendMode[BlendMode["Screen"] = 3] = "Screen"; - })(spine.BlendMode || (spine.BlendMode = {})); - var BlendMode = spine.BlendMode; + (function (BlendMode) { + BlendMode[BlendMode["Normal"] = 0] = "Normal"; + BlendMode[BlendMode["Additive"] = 1] = "Additive"; + BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; + BlendMode[BlendMode["Screen"] = 3] = "Screen"; + })(spine.BlendMode || (spine.BlendMode = {})); + var BlendMode = spine.BlendMode; })(spine || (spine = {})); var spine; (function (spine) { - var Bone = (function () { - function Bone(data, skeleton, parent) { - this.children = new Array(); - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 0; - this.scaleY = 0; - this.shearX = 0; - this.shearY = 0; - this.ax = 0; - this.ay = 0; - this.arotation = 0; - this.ascaleX = 0; - this.ascaleY = 0; - this.ashearX = 0; - this.ashearY = 0; - this.appliedValid = false; - this.a = 0; - this.b = 0; - this.worldX = 0; - this.c = 0; - this.d = 0; - this.worldY = 0; - this.sorted = false; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.skeleton = skeleton; - this.parent = parent; - this.setToSetupPose(); - } - Bone.prototype.update = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransform = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { - this.ax = x; - this.ay = y; - this.arotation = rotation; - this.ascaleX = scaleX; - this.ascaleY = scaleY; - this.ashearX = shearX; - this.ashearY = shearY; - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - var skeleton = this.skeleton; - if (skeleton.flipX) { - x = -x; - la = -la; - lb = -lb; - } - if (skeleton.flipY) { - y = -y; - lc = -lc; - ld = -ld; - } - this.a = la; - this.b = lb; - this.c = lc; - this.d = ld; - this.worldX = x + skeleton.x; - this.worldY = y + skeleton.y; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - this.worldX = pa * x + pb * y + parent.worldX; - this.worldY = pc * x + pd * y + parent.worldY; - switch (this.data.transformMode) { - case spine.TransformMode.Normal: { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - return; - } - case spine.TransformMode.OnlyTranslation: { - var rotationY = rotation + 90 + shearY; - this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; - this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; - break; - } - case spine.TransformMode.NoRotationOrReflection: { - var s = pa * pa + pc * pc; - var prx = 0; - if (s > 0.0001) { - s = Math.abs(pa * pd - pb * pc) / s; - pb = pc * s; - pd = pa * s; - prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; - } - else { - pa = 0; - pc = 0; - prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; - } - var rx = rotation + shearX - prx; - var ry = rotation + shearY - prx + 90; - var la = spine.MathUtils.cosDeg(rx) * scaleX; - var lb = spine.MathUtils.cosDeg(ry) * scaleY; - var lc = spine.MathUtils.sinDeg(rx) * scaleX; - var ld = spine.MathUtils.sinDeg(ry) * scaleY; - this.a = pa * la - pb * lc; - this.b = pa * lb - pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - break; - } - case spine.TransformMode.NoScale: - case spine.TransformMode.NoScaleOrReflection: { - var cos = spine.MathUtils.cosDeg(rotation); - var sin = spine.MathUtils.sinDeg(rotation); - var za = pa * cos + pb * sin; - var zc = pc * cos + pd * sin; - var s = Math.sqrt(za * za + zc * zc); - if (s > 0.00001) - s = 1 / s; - za *= s; - zc *= s; - s = Math.sqrt(za * za + zc * zc); - var r = Math.PI / 2 + Math.atan2(zc, za); - var zb = Math.cos(r) * s; - var zd = Math.sin(r) * s; - var la = spine.MathUtils.cosDeg(shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; - var lc = spine.MathUtils.sinDeg(shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; - this.a = za * la + zb * lc; - this.b = za * lb + zb * ld; - this.c = zc * la + zd * lc; - this.d = zc * lb + zd * ld; - if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { - this.b = -this.b; - this.d = -this.d; - } - return; - } - } - if (this.skeleton.flipX) { - this.a = -this.a; - this.b = -this.b; - } - if (this.skeleton.flipY) { - this.c = -this.c; - this.d = -this.d; - } - }; - Bone.prototype.setToSetupPose = function () { - var data = this.data; - this.x = data.x; - this.y = data.y; - this.rotation = data.rotation; - this.scaleX = data.scaleX; - this.scaleY = data.scaleY; - this.shearX = data.shearX; - this.shearY = data.shearY; - }; - Bone.prototype.getWorldRotationX = function () { - return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldRotationY = function () { - return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldScaleX = function () { - return Math.sqrt(this.a * this.a + this.c * this.c); - }; - Bone.prototype.getWorldScaleY = function () { - return Math.sqrt(this.b * this.b + this.d * this.d); - }; - Bone.prototype.updateAppliedTransform = function () { - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - this.ax = this.worldX; - this.ay = this.worldY; - this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); - this.ashearX = 0; - this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - var pid = 1 / (pa * pd - pb * pc); - var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; - this.ax = (dx * pd * pid - dy * pb * pid); - this.ay = (dy * pa * pid - dx * pc * pid); - var ia = pid * pd; - var id = pid * pa; - var ib = pid * pb; - var ic = pid * pc; - var ra = ia * this.a - ib * this.c; - var rb = ia * this.b - ib * this.d; - var rc = id * this.c - ic * this.a; - var rd = id * this.d - ic * this.b; - this.ashearX = 0; - this.ascaleX = Math.sqrt(ra * ra + rc * rc); - if (this.ascaleX > 0.0001) { - var det = ra * rd - rb * rc; - this.ascaleY = det / this.ascaleX; - this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; - this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; - } - else { - this.ascaleX = 0; - this.ascaleY = Math.sqrt(rb * rb + rd * rd); - this.ashearY = 0; - this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; - } - }; - Bone.prototype.worldToLocal = function (world) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var invDet = 1 / (a * d - b * c); - var x = world.x - this.worldX, y = world.y - this.worldY; - world.x = (x * d * invDet - y * b * invDet); - world.y = (y * a * invDet - x * c * invDet); - return world; - }; - Bone.prototype.localToWorld = function (local) { - var x = local.x, y = local.y; - local.x = x * this.a + y * this.b + this.worldX; - local.y = x * this.c + y * this.d + this.worldY; - return local; - }; - Bone.prototype.worldToLocalRotation = function (worldRotation) { - var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); - return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; - }; - Bone.prototype.localToWorldRotation = function (localRotation) { - var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); - return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.rotateWorld = function (degrees) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); - this.a = cos * a - sin * c; - this.b = cos * b - sin * d; - this.c = sin * a + cos * c; - this.d = sin * b + cos * d; - this.appliedValid = false; - }; - return Bone; - }()); - spine.Bone = Bone; + var Bone = (function () { + function Bone(data, skeleton, parent) { + this.children = new Array(); + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 0; + this.scaleY = 0; + this.shearX = 0; + this.shearY = 0; + this.ax = 0; + this.ay = 0; + this.arotation = 0; + this.ascaleX = 0; + this.ascaleY = 0; + this.ashearX = 0; + this.ashearY = 0; + this.appliedValid = false; + this.a = 0; + this.b = 0; + this.worldX = 0; + this.c = 0; + this.d = 0; + this.worldY = 0; + this.sorted = false; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.skeleton = skeleton; + this.parent = parent; + this.setToSetupPose(); + } + Bone.prototype.update = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransform = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { + this.ax = x; + this.ay = y; + this.arotation = rotation; + this.ascaleX = scaleX; + this.ascaleY = scaleY; + this.ashearX = shearX; + this.ashearY = shearY; + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + var skeleton = this.skeleton; + if (skeleton.flipX) { + x = -x; + la = -la; + lb = -lb; + } + if (skeleton.flipY) { + y = -y; + lc = -lc; + ld = -ld; + } + this.a = la; + this.b = lb; + this.c = lc; + this.d = ld; + this.worldX = x + skeleton.x; + this.worldY = y + skeleton.y; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + this.worldX = pa * x + pb * y + parent.worldX; + this.worldY = pc * x + pd * y + parent.worldY; + switch (this.data.transformMode) { + case spine.TransformMode.Normal: { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + this.a = pa * la + pb * lc; + this.b = pa * lb + pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + return; + } + case spine.TransformMode.OnlyTranslation: { + var rotationY = rotation + 90 + shearY; + this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; + this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; + break; + } + case spine.TransformMode.NoRotationOrReflection: { + var s = pa * pa + pc * pc; + var prx = 0; + if (s > 0.0001) { + s = Math.abs(pa * pd - pb * pc) / s; + pb = pc * s; + pd = pa * s; + prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; + } + else { + pa = 0; + pc = 0; + prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; + } + var rx = rotation + shearX - prx; + var ry = rotation + shearY - prx + 90; + var la = spine.MathUtils.cosDeg(rx) * scaleX; + var lb = spine.MathUtils.cosDeg(ry) * scaleY; + var lc = spine.MathUtils.sinDeg(rx) * scaleX; + var ld = spine.MathUtils.sinDeg(ry) * scaleY; + this.a = pa * la - pb * lc; + this.b = pa * lb - pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + break; + } + case spine.TransformMode.NoScale: + case spine.TransformMode.NoScaleOrReflection: { + var cos = spine.MathUtils.cosDeg(rotation); + var sin = spine.MathUtils.sinDeg(rotation); + var za = pa * cos + pb * sin; + var zc = pc * cos + pd * sin; + var s = Math.sqrt(za * za + zc * zc); + if (s > 0.00001) + s = 1 / s; + za *= s; + zc *= s; + s = Math.sqrt(za * za + zc * zc); + var r = Math.PI / 2 + Math.atan2(zc, za); + var zb = Math.cos(r) * s; + var zd = Math.sin(r) * s; + var la = spine.MathUtils.cosDeg(shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; + var lc = spine.MathUtils.sinDeg(shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; + this.a = za * la + zb * lc; + this.b = za * lb + zb * ld; + this.c = zc * la + zd * lc; + this.d = zc * lb + zd * ld; + if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { + this.b = -this.b; + this.d = -this.d; + } + return; + } + } + if (this.skeleton.flipX) { + this.a = -this.a; + this.b = -this.b; + } + if (this.skeleton.flipY) { + this.c = -this.c; + this.d = -this.d; + } + }; + Bone.prototype.setToSetupPose = function () { + var data = this.data; + this.x = data.x; + this.y = data.y; + this.rotation = data.rotation; + this.scaleX = data.scaleX; + this.scaleY = data.scaleY; + this.shearX = data.shearX; + this.shearY = data.shearY; + }; + Bone.prototype.getWorldRotationX = function () { + return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldRotationY = function () { + return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldScaleX = function () { + return Math.sqrt(this.a * this.a + this.c * this.c); + }; + Bone.prototype.getWorldScaleY = function () { + return Math.sqrt(this.b * this.b + this.d * this.d); + }; + Bone.prototype.updateAppliedTransform = function () { + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + this.ax = this.worldX; + this.ay = this.worldY; + this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); + this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); + this.ashearX = 0; + this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + var pid = 1 / (pa * pd - pb * pc); + var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; + this.ax = (dx * pd * pid - dy * pb * pid); + this.ay = (dy * pa * pid - dx * pc * pid); + var ia = pid * pd; + var id = pid * pa; + var ib = pid * pb; + var ic = pid * pc; + var ra = ia * this.a - ib * this.c; + var rb = ia * this.b - ib * this.d; + var rc = id * this.c - ic * this.a; + var rd = id * this.d - ic * this.b; + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { + var det = ra * rd - rb * rc; + this.ascaleY = det / this.ascaleX; + this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; + this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; + } + else { + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; + } + }; + Bone.prototype.worldToLocal = function (world) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var invDet = 1 / (a * d - b * c); + var x = world.x - this.worldX, y = world.y - this.worldY; + world.x = (x * d * invDet - y * b * invDet); + world.y = (y * a * invDet - x * c * invDet); + return world; + }; + Bone.prototype.localToWorld = function (local) { + var x = local.x, y = local.y; + local.x = x * this.a + y * this.b + this.worldX; + local.y = x * this.c + y * this.d + this.worldY; + return local; + }; + Bone.prototype.worldToLocalRotation = function (worldRotation) { + var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); + return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; + }; + Bone.prototype.localToWorldRotation = function (localRotation) { + var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); + return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.rotateWorld = function (degrees) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); + this.a = cos * a - sin * c; + this.b = cos * b - sin * d; + this.c = sin * a + cos * c; + this.d = sin * b + cos * d; + this.appliedValid = false; + }; + return Bone; + }()); + spine.Bone = Bone; })(spine || (spine = {})); var spine; (function (spine) { - var BoneData = (function () { - function BoneData(index, name, parent) { - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 1; - this.scaleY = 1; - this.shearX = 0; - this.shearY = 0; - this.transformMode = TransformMode.Normal; - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - this.index = index; - this.name = name; - this.parent = parent; - } - return BoneData; - }()); - spine.BoneData = BoneData; - (function (TransformMode) { - TransformMode[TransformMode["Normal"] = 0] = "Normal"; - TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; - TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; - TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; - TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; - })(spine.TransformMode || (spine.TransformMode = {})); - var TransformMode = spine.TransformMode; + var BoneData = (function () { + function BoneData(index, name, parent) { + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 1; + this.scaleY = 1; + this.shearX = 0; + this.shearY = 0; + this.transformMode = TransformMode.Normal; + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + this.index = index; + this.name = name; + this.parent = parent; + } + return BoneData; + }()); + spine.BoneData = BoneData; + (function (TransformMode) { + TransformMode[TransformMode["Normal"] = 0] = "Normal"; + TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; + TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; + TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; + TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; + })(spine.TransformMode || (spine.TransformMode = {})); + var TransformMode = spine.TransformMode; })(spine || (spine = {})); var spine; (function (spine) { - var Event = (function () { - function Event(time, data) { - if (data == null) - throw new Error("data cannot be null."); - this.time = time; - this.data = data; - } - return Event; - }()); - spine.Event = Event; + var Event = (function () { + function Event(time, data) { + if (data == null) + throw new Error("data cannot be null."); + this.time = time; + this.data = data; + } + return Event; + }()); + spine.Event = Event; })(spine || (spine = {})); var spine; (function (spine) { - var EventData = (function () { - function EventData(name) { - this.name = name; - } - return EventData; - }()); - spine.EventData = EventData; + var EventData = (function () { + function EventData(name) { + this.name = name; + } + return EventData; + }()); + spine.EventData = EventData; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraint = (function () { - function IkConstraint(data, skeleton) { - this.mix = 1; - this.bendDirection = 0; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.mix = data.mix; - this.bendDirection = data.bendDirection; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - IkConstraint.prototype.getOrder = function () { - return this.data.order; - }; - IkConstraint.prototype.apply = function () { - this.update(); - }; - IkConstraint.prototype.update = function () { - var target = this.target; - var bones = this.bones; - switch (bones.length) { - case 1: - this.apply1(bones[0], target.worldX, target.worldY, this.mix); - break; - case 2: - this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); - break; - } - }; - IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var p = bone.parent; - var id = 1 / (p.a * p.d - p.b * p.c); - var x = targetX - p.worldX, y = targetY - p.worldY; - var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; - var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; - if (bone.ascaleX < 0) - rotationIK += 180; - if (rotationIK > 180) - rotationIK -= 360; - else if (rotationIK < -180) - rotationIK += 360; - bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); - }; - IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { - if (alpha == 0) { - child.updateWorldTransform(); - return; - } - if (!parent.appliedValid) - parent.updateAppliedTransform(); - if (!child.appliedValid) - child.updateAppliedTransform(); - var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; - var os1 = 0, os2 = 0, s2 = 0; - if (psx < 0) { - psx = -psx; - os1 = 180; - s2 = -1; - } - else { - os1 = 0; - s2 = 1; - } - if (psy < 0) { - psy = -psy; - s2 = -s2; - } - if (csx < 0) { - csx = -csx; - os2 = 180; - } - else - os2 = 0; - var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; - var u = Math.abs(psx - psy) <= 0.0001; - if (!u) { - cy = 0; - cwx = a * cx + parent.worldX; - cwy = c * cx + parent.worldY; - } - else { - cy = child.ay; - cwx = a * cx + b * cy + parent.worldX; - cwy = c * cx + d * cy + parent.worldY; - } - var pp = parent.parent; - a = pp.a; - b = pp.b; - c = pp.c; - d = pp.d; - var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; - var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; - x = cwx - pp.worldX; - y = cwy - pp.worldY; - var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; - var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; - outer: if (u) { - l2 *= psx; - var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); - if (cos < -1) - cos = -1; - else if (cos > 1) - cos = 1; - a2 = Math.acos(cos) * bendDir; - a = l1 + l2 * cos; - b = l2 * Math.sin(a2); - a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); - } - else { - a = psx * l2; - b = psy * l2; - var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); - c = bb * l1 * l1 + aa * dd - aa * bb; - var c1 = -2 * bb * l1, c2 = bb - aa; - d = c1 * c1 - 4 * c2 * c; - if (d >= 0) { - var q = Math.sqrt(d); - if (c1 < 0) - q = -q; - q = -(c1 + q) / 2; - var r0 = q / c2, r1 = c / q; - var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; - if (r * r <= dd) { - y = Math.sqrt(dd - r * r) * bendDir; - a1 = ta - Math.atan2(y, r); - a2 = Math.atan2(y / psy, (r - l1) / psx); - break outer; - } - } - var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; - var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; - c = -a * l1 / (aa - bb); - if (c >= -1 && c <= 1) { - c = Math.acos(c); - x = a * Math.cos(c) + l1; - y = b * Math.sin(c); - d = x * x + y * y; - if (d < minDist) { - minAngle = c; - minDist = d; - minX = x; - minY = y; - } - if (d > maxDist) { - maxAngle = c; - maxDist = d; - maxX = x; - maxY = y; - } - } - if (dd <= (minDist + maxDist) / 2) { - a1 = ta - Math.atan2(minY * bendDir, minX); - a2 = minAngle * bendDir; - } - else { - a1 = ta - Math.atan2(maxY * bendDir, maxX); - a2 = maxAngle * bendDir; - } - } - var os = Math.atan2(cy, cx) * s2; - var rotation = parent.arotation; - a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; - if (a1 > 180) - a1 -= 360; - else if (a1 < -180) - a1 += 360; - parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); - rotation = child.arotation; - a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; - if (a2 > 180) - a2 -= 360; - else if (a2 < -180) - a2 += 360; - child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); - }; - return IkConstraint; - }()); - spine.IkConstraint = IkConstraint; + var IkConstraint = (function () { + function IkConstraint(data, skeleton) { + this.mix = 1; + this.bendDirection = 0; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.mix = data.mix; + this.bendDirection = data.bendDirection; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + IkConstraint.prototype.getOrder = function () { + return this.data.order; + }; + IkConstraint.prototype.apply = function () { + this.update(); + }; + IkConstraint.prototype.update = function () { + var target = this.target; + var bones = this.bones; + switch (bones.length) { + case 1: + this.apply1(bones[0], target.worldX, target.worldY, this.mix); + break; + case 2: + this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); + break; + } + }; + IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var p = bone.parent; + var id = 1 / (p.a * p.d - p.b * p.c); + var x = targetX - p.worldX, y = targetY - p.worldY; + var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; + var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; + if (bone.ascaleX < 0) + rotationIK += 180; + if (rotationIK > 180) + rotationIK -= 360; + else if (rotationIK < -180) + rotationIK += 360; + bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); + }; + IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { + if (alpha == 0) { + child.updateWorldTransform(); + return; + } + if (!parent.appliedValid) + parent.updateAppliedTransform(); + if (!child.appliedValid) + child.updateAppliedTransform(); + var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; + var os1 = 0, os2 = 0, s2 = 0; + if (psx < 0) { + psx = -psx; + os1 = 180; + s2 = -1; + } + else { + os1 = 0; + s2 = 1; + } + if (psy < 0) { + psy = -psy; + s2 = -s2; + } + if (csx < 0) { + csx = -csx; + os2 = 180; + } + else + os2 = 0; + var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + var u = Math.abs(psx - psy) <= 0.0001; + if (!u) { + cy = 0; + cwx = a * cx + parent.worldX; + cwy = c * cx + parent.worldY; + } + else { + cy = child.ay; + cwx = a * cx + b * cy + parent.worldX; + cwy = c * cx + d * cy + parent.worldY; + } + var pp = parent.parent; + a = pp.a; + b = pp.b; + c = pp.c; + d = pp.d; + var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; + var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; + x = cwx - pp.worldX; + y = cwy - pp.worldY; + var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; + var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; + outer: if (u) { + l2 *= psx; + var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); + if (cos < -1) + cos = -1; + else if (cos > 1) + cos = 1; + a2 = Math.acos(cos) * bendDir; + a = l1 + l2 * cos; + b = l2 * Math.sin(a2); + a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); + } + else { + a = psx * l2; + b = psy * l2; + var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); + c = bb * l1 * l1 + aa * dd - aa * bb; + var c1 = -2 * bb * l1, c2 = bb - aa; + d = c1 * c1 - 4 * c2 * c; + if (d >= 0) { + var q = Math.sqrt(d); + if (c1 < 0) + q = -q; + q = -(c1 + q) / 2; + var r0 = q / c2, r1 = c / q; + var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; + if (r * r <= dd) { + y = Math.sqrt(dd - r * r) * bendDir; + a1 = ta - Math.atan2(y, r); + a2 = Math.atan2(y / psy, (r - l1) / psx); + break outer; + } + } + var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; + var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } + } + if (dd <= (minDist + maxDist) / 2) { + a1 = ta - Math.atan2(minY * bendDir, minX); + a2 = minAngle * bendDir; + } + else { + a1 = ta - Math.atan2(maxY * bendDir, maxX); + a2 = maxAngle * bendDir; + } + } + var os = Math.atan2(cy, cx) * s2; + var rotation = parent.arotation; + a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; + if (a1 > 180) + a1 -= 360; + else if (a1 < -180) + a1 += 360; + parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); + rotation = child.arotation; + a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; + if (a2 > 180) + a2 -= 360; + else if (a2 < -180) + a2 += 360; + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); + }; + return IkConstraint; + }()); + spine.IkConstraint = IkConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraintData = (function () { - function IkConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.bendDirection = 1; - this.mix = 1; - this.name = name; - } - return IkConstraintData; - }()); - spine.IkConstraintData = IkConstraintData; + var IkConstraintData = (function () { + function IkConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.bendDirection = 1; + this.mix = 1; + this.name = name; + } + return IkConstraintData; + }()); + spine.IkConstraintData = IkConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraint = (function () { - function PathConstraint(data, skeleton) { - this.position = 0; - this.spacing = 0; - this.rotateMix = 0; - this.translateMix = 0; - this.spaces = new Array(); - this.positions = new Array(); - this.world = new Array(); - this.curves = new Array(); - this.lengths = new Array(); - this.segments = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0, n = data.bones.length; i < n; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findSlot(data.target.name); - this.position = data.position; - this.spacing = data.spacing; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - } - PathConstraint.prototype.apply = function () { - this.update(); - }; - PathConstraint.prototype.update = function () { - var attachment = this.target.getAttachment(); - if (!(attachment instanceof spine.PathAttachment)) - return; - var rotateMix = this.rotateMix, translateMix = this.translateMix; - var translate = translateMix > 0, rotate = rotateMix > 0; - if (!translate && !rotate) - return; - var data = this.data; - var spacingMode = data.spacingMode; - var lengthSpacing = spacingMode == spine.SpacingMode.Length; - var rotateMode = data.rotateMode; - var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; - var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; - var bones = this.bones; - var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; - var spacing = this.spacing; - if (scale || lengthSpacing) { - if (scale) - lengths = spine.Utils.setArraySize(this.lengths, boneCount); - for (var i = 0, n = spacesCount - 1; i < n;) { - var bone = bones[i]; - var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; - var length_1 = Math.sqrt(x * x + y * y); - if (scale) - lengths[i] = length_1; - spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; - } - } - else { - for (var i = 1; i < spacesCount; i++) - spaces[i] = spacing; - } - var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); - var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - var tip = false; - if (offsetRotation == 0) - tip = rotateMode == spine.RotateMode.Chain; - else { - tip = false; - var p = this.target.bone; - offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - } - for (var i = 0, p = 3; i < boneCount; i++, p += 3) { - var bone = bones[i]; - bone.worldX += (boneX - bone.worldX) * translateMix; - bone.worldY += (boneY - bone.worldY) * translateMix; - var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; - if (scale) { - var length_2 = lengths[i]; - if (length_2 != 0) { - var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; - bone.a *= s; - bone.c *= s; - } - } - boneX = x; - boneY = y; - if (rotate) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; - if (tangents) - r = positions[p - 1]; - else if (spaces[i + 1] == 0) - r = positions[p + 2]; - else - r = Math.atan2(dy, dx); - r -= Math.atan2(c, a); - if (tip) { - cos = Math.cos(r); - sin = Math.sin(r); - var length_3 = bone.data.length; - boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; - boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; - } - else { - r += offsetRotation; - } - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - cos = Math.cos(r); - sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - } - bone.appliedValid = false; - } - }; - PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { - var target = this.target; - var position = this.position; - var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; - var closed = path.closed; - var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; - if (!path.constantSpeed) { - var lengths = path.lengths; - curveCount -= closed ? 1 : 2; - var pathLength_1 = lengths[curveCount]; - if (percentPosition) - position *= pathLength_1; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength_1; - } - world = spine.Utils.setArraySize(this.world, 8); - for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength_1; - if (p < 0) - p += pathLength_1; - curve = 0; - } - else if (p < 0) { - if (prevCurve != PathConstraint.BEFORE) { - prevCurve = PathConstraint.BEFORE; - path.computeWorldVertices(target, 2, 4, world, 0, 2); - } - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength_1) { - if (prevCurve != PathConstraint.AFTER) { - prevCurve = PathConstraint.AFTER; - path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); - } - this.addAfterPosition(p - pathLength_1, world, 0, out, o); - continue; - } - for (;; curve++) { - var length_4 = lengths[curve]; - if (p > length_4) - continue; - if (curve == 0) - p /= length_4; - else { - var prev = lengths[curve - 1]; - p = (p - prev) / (length_4 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - if (closed && curve == curveCount) { - path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); - path.computeWorldVertices(target, 0, 4, world, 4, 2); - } - else - path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); - } - this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); - } - return out; - } - if (closed) { - verticesLength += 2; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); - path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); - world[verticesLength - 2] = world[0]; - world[verticesLength - 1] = world[1]; - } - else { - curveCount--; - verticesLength -= 4; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); - } - var curves = spine.Utils.setArraySize(this.curves, curveCount); - var pathLength = 0; - var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; - var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; - for (var i = 0, w = 2; i < curveCount; i++, w += 6) { - cx1 = world[w]; - cy1 = world[w + 1]; - cx2 = world[w + 2]; - cy2 = world[w + 3]; - x2 = world[w + 4]; - y2 = world[w + 5]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; - tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - curves[i] = pathLength; - x1 = x2; - y1 = y2; - } - if (percentPosition) - position *= pathLength; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength; - } - var segments = this.segments; - var curveLength = 0; - for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength; - if (p < 0) - p += pathLength; - curve = 0; - } - else if (p < 0) { - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength) { - this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); - continue; - } - for (;; curve++) { - var length_5 = curves[curve]; - if (p > length_5) - continue; - if (curve == 0) - p /= length_5; - else { - var prev = curves[curve - 1]; - p = (p - prev) / (length_5 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - var ii = curve * 6; - x1 = world[ii]; - y1 = world[ii + 1]; - cx1 = world[ii + 2]; - cy1 = world[ii + 3]; - cx2 = world[ii + 4]; - cy2 = world[ii + 5]; - x2 = world[ii + 6]; - y2 = world[ii + 7]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.03; - tmpy = (y1 - cy1 * 2 + cy2) * 0.03; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; - curveLength = Math.sqrt(dfx * dfx + dfy * dfy); - segments[0] = curveLength; - for (ii = 1; ii < 8; ii++) { - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[ii] = curveLength; - } - dfx += ddfx; - dfy += ddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[8] = curveLength; - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[9] = curveLength; - segment = 0; - } - p *= curveLength; - for (;; segment++) { - var length_6 = segments[segment]; - if (p > length_6) - continue; - if (segment == 0) - p /= length_6; - else { - var prev = segments[segment - 1]; - p = segment + (p - prev) / (length_6 - prev); - } - break; - } - this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); - } - return out; - }; - PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { - var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { - var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { - if (p == 0 || isNaN(p)) - p = 0.0001; - var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; - var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; - var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; - out[o] = x; - out[o + 1] = y; - if (tangents) - out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); - }; - PathConstraint.prototype.getOrder = function () { - return this.data.order; - }; - PathConstraint.NONE = -1; - PathConstraint.BEFORE = -2; - PathConstraint.AFTER = -3; - return PathConstraint; - }()); - spine.PathConstraint = PathConstraint; + var PathConstraint = (function () { + function PathConstraint(data, skeleton) { + this.position = 0; + this.spacing = 0; + this.rotateMix = 0; + this.translateMix = 0; + this.spaces = new Array(); + this.positions = new Array(); + this.world = new Array(); + this.curves = new Array(); + this.lengths = new Array(); + this.segments = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0, n = data.bones.length; i < n; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findSlot(data.target.name); + this.position = data.position; + this.spacing = data.spacing; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + } + PathConstraint.prototype.apply = function () { + this.update(); + }; + PathConstraint.prototype.update = function () { + var attachment = this.target.getAttachment(); + if (!(attachment instanceof spine.PathAttachment)) + return; + var rotateMix = this.rotateMix, translateMix = this.translateMix; + var translate = translateMix > 0, rotate = rotateMix > 0; + if (!translate && !rotate) + return; + var data = this.data; + var spacingMode = data.spacingMode; + var lengthSpacing = spacingMode == spine.SpacingMode.Length; + var rotateMode = data.rotateMode; + var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; + var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; + var bones = this.bones; + var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; + var spacing = this.spacing; + if (scale || lengthSpacing) { + if (scale) + lengths = spine.Utils.setArraySize(this.lengths, boneCount); + for (var i = 0, n = spacesCount - 1; i < n;) { + var bone = bones[i]; + var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; + var length_1 = Math.sqrt(x * x + y * y); + if (scale) + lengths[i] = length_1; + spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; + } + } + else { + for (var i = 1; i < spacesCount; i++) + spaces[i] = spacing; + } + var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); + var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; + var tip = false; + if (offsetRotation == 0) + tip = rotateMode == spine.RotateMode.Chain; + else { + tip = false; + var p = this.target.bone; + offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + } + for (var i = 0, p = 3; i < boneCount; i++, p += 3) { + var bone = bones[i]; + bone.worldX += (boneX - bone.worldX) * translateMix; + bone.worldY += (boneY - bone.worldY) * translateMix; + var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; + if (scale) { + var length_2 = lengths[i]; + if (length_2 != 0) { + var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; + bone.a *= s; + bone.c *= s; + } + } + boneX = x; + boneY = y; + if (rotate) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; + if (tangents) + r = positions[p - 1]; + else if (spaces[i + 1] == 0) + r = positions[p + 2]; + else + r = Math.atan2(dy, dx); + r -= Math.atan2(c, a); + if (tip) { + cos = Math.cos(r); + sin = Math.sin(r); + var length_3 = bone.data.length; + boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; + boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; + } + else { + r += offsetRotation; + } + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + cos = Math.cos(r); + sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + bone.appliedValid = false; + } + }; + PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { + var target = this.target; + var position = this.position; + var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; + var closed = path.closed; + var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; + if (!path.constantSpeed) { + var lengths = path.lengths; + curveCount -= closed ? 1 : 2; + var pathLength_1 = lengths[curveCount]; + if (percentPosition) + position *= pathLength_1; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength_1; + } + world = spine.Utils.setArraySize(this.world, 8); + for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength_1; + if (p < 0) + p += pathLength_1; + curve = 0; + } + else if (p < 0) { + if (prevCurve != PathConstraint.BEFORE) { + prevCurve = PathConstraint.BEFORE; + path.computeWorldVertices(target, 2, 4, world, 0, 2); + } + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength_1) { + if (prevCurve != PathConstraint.AFTER) { + prevCurve = PathConstraint.AFTER; + path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); + } + this.addAfterPosition(p - pathLength_1, world, 0, out, o); + continue; + } + for (;; curve++) { + var length_4 = lengths[curve]; + if (p > length_4) + continue; + if (curve == 0) + p /= length_4; + else { + var prev = lengths[curve - 1]; + p = (p - prev) / (length_4 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + if (closed && curve == curveCount) { + path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); + path.computeWorldVertices(target, 0, 4, world, 4, 2); + } + else + path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); + } + this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); + } + return out; + } + if (closed) { + verticesLength += 2; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); + path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); + world[verticesLength - 2] = world[0]; + world[verticesLength - 1] = world[1]; + } + else { + curveCount--; + verticesLength -= 4; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); + } + var curves = spine.Utils.setArraySize(this.curves, curveCount); + var pathLength = 0; + var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; + var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; + for (var i = 0, w = 2; i < curveCount; i++, w += 6) { + cx1 = world[w]; + cy1 = world[w + 1]; + cx2 = world[w + 2]; + cy2 = world[w + 3]; + x2 = world[w + 4]; + y2 = world[w + 5]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; + tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + curves[i] = pathLength; + x1 = x2; + y1 = y2; + } + if (percentPosition) + position *= pathLength; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength; + } + var segments = this.segments; + var curveLength = 0; + for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength; + if (p < 0) + p += pathLength; + curve = 0; + } + else if (p < 0) { + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength) { + this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); + continue; + } + for (;; curve++) { + var length_5 = curves[curve]; + if (p > length_5) + continue; + if (curve == 0) + p /= length_5; + else { + var prev = curves[curve - 1]; + p = (p - prev) / (length_5 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + var ii = curve * 6; + x1 = world[ii]; + y1 = world[ii + 1]; + cx1 = world[ii + 2]; + cy1 = world[ii + 3]; + cx2 = world[ii + 4]; + cy2 = world[ii + 5]; + x2 = world[ii + 6]; + y2 = world[ii + 7]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.03; + tmpy = (y1 - cy1 * 2 + cy2) * 0.03; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; + curveLength = Math.sqrt(dfx * dfx + dfy * dfy); + segments[0] = curveLength; + for (ii = 1; ii < 8; ii++) { + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[ii] = curveLength; + } + dfx += ddfx; + dfy += ddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[8] = curveLength; + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[9] = curveLength; + segment = 0; + } + p *= curveLength; + for (;; segment++) { + var length_6 = segments[segment]; + if (p > length_6) + continue; + if (segment == 0) + p /= length_6; + else { + var prev = segments[segment - 1]; + p = segment + (p - prev) / (length_6 - prev); + } + break; + } + this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); + } + return out; + }; + PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { + var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { + var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { + if (p == 0 || isNaN(p)) + p = 0.0001; + var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; + var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; + var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; + out[o] = x; + out[o + 1] = y; + if (tangents) + out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); + }; + PathConstraint.prototype.getOrder = function () { + return this.data.order; + }; + PathConstraint.NONE = -1; + PathConstraint.BEFORE = -2; + PathConstraint.AFTER = -3; + return PathConstraint; + }()); + spine.PathConstraint = PathConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraintData = (function () { - function PathConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.name = name; - } - return PathConstraintData; - }()); - spine.PathConstraintData = PathConstraintData; - (function (PositionMode) { - PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; - PositionMode[PositionMode["Percent"] = 1] = "Percent"; - })(spine.PositionMode || (spine.PositionMode = {})); - var PositionMode = spine.PositionMode; - (function (SpacingMode) { - SpacingMode[SpacingMode["Length"] = 0] = "Length"; - SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; - SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; - })(spine.SpacingMode || (spine.SpacingMode = {})); - var SpacingMode = spine.SpacingMode; - (function (RotateMode) { - RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; - RotateMode[RotateMode["Chain"] = 1] = "Chain"; - RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; - })(spine.RotateMode || (spine.RotateMode = {})); - var RotateMode = spine.RotateMode; + var PathConstraintData = (function () { + function PathConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.name = name; + } + return PathConstraintData; + }()); + spine.PathConstraintData = PathConstraintData; + (function (PositionMode) { + PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; + PositionMode[PositionMode["Percent"] = 1] = "Percent"; + })(spine.PositionMode || (spine.PositionMode = {})); + var PositionMode = spine.PositionMode; + (function (SpacingMode) { + SpacingMode[SpacingMode["Length"] = 0] = "Length"; + SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; + SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; + })(spine.SpacingMode || (spine.SpacingMode = {})); + var SpacingMode = spine.SpacingMode; + (function (RotateMode) { + RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; + RotateMode[RotateMode["Chain"] = 1] = "Chain"; + RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; + })(spine.RotateMode || (spine.RotateMode = {})); + var RotateMode = spine.RotateMode; })(spine || (spine = {})); var spine; (function (spine) { - var Assets = (function () { - function Assets(clientId) { - this.toLoad = new Array(); - this.assets = {}; - this.clientId = clientId; - } - Assets.prototype.loaded = function () { - var i = 0; - for (var v in this.assets) - i++; - return i; - }; - return Assets; - }()); - var SharedAssetManager = (function () { - function SharedAssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.clientAssets = {}; - this.queuedAssets = {}; - this.rawAssets = {}; - this.errors = {}; - this.pathPrefix = pathPrefix; - } - SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) { - clientAssets = new Assets(clientId); - this.clientAssets[clientId] = clientAssets; - } - if (textureLoader !== null) - clientAssets.textureLoader = textureLoader; - clientAssets.toLoad.push(path); - if (this.queuedAssets[path] === path) { - return false; - } - else { - this.queuedAssets[path] = path; - return true; - } - }; - SharedAssetManager.prototype.loadText = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = request.responseText; - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadJson = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = JSON.parse(request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, textureLoader, path)) - return; - var img = new Image(); - img.src = path; - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - _this.rawAssets[path] = img; - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - }; - }; - SharedAssetManager.prototype.get = function (clientId, path) { - path = this.pathPrefix + path; - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - return clientAssets.assets[path]; - }; - SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { - for (var i = 0; i < clientAssets.toLoad.length; i++) { - var path = clientAssets.toLoad[i]; - var asset = clientAssets.assets[path]; - if (asset === null || asset === undefined) { - var rawAsset = this.rawAssets[path]; - if (rawAsset === null || rawAsset === undefined) - continue; - if (rawAsset instanceof HTMLImageElement) { - clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); - } - else { - clientAssets.assets[path] = rawAsset; - } - } - } - }; - SharedAssetManager.prototype.isLoadingComplete = function (clientId) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - this.updateClientAssets(clientAssets); - return clientAssets.toLoad.length == clientAssets.loaded(); - }; - SharedAssetManager.prototype.dispose = function () { - }; - SharedAssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - SharedAssetManager.prototype.getErrors = function () { - return this.errors; - }; - return SharedAssetManager; - }()); - spine.SharedAssetManager = SharedAssetManager; + var Assets = (function () { + function Assets(clientId) { + this.toLoad = new Array(); + this.assets = {}; + this.clientId = clientId; + } + Assets.prototype.loaded = function () { + var i = 0; + for (var v in this.assets) + i++; + return i; + }; + return Assets; + }()); + var SharedAssetManager = (function () { + function SharedAssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.clientAssets = {}; + this.queuedAssets = {}; + this.rawAssets = {}; + this.errors = {}; + this.pathPrefix = pathPrefix; + } + SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) { + clientAssets = new Assets(clientId); + this.clientAssets[clientId] = clientAssets; + } + if (textureLoader !== null) + clientAssets.textureLoader = textureLoader; + clientAssets.toLoad.push(path); + if (this.queuedAssets[path] === path) { + return false; + } + else { + this.queuedAssets[path] = path; + return true; + } + }; + SharedAssetManager.prototype.loadText = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = request.responseText; + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadJson = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = JSON.parse(request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, textureLoader, path)) + return; + var img = new Image(); + img.src = path; + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + _this.rawAssets[path] = img; + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + }; + }; + SharedAssetManager.prototype.get = function (clientId, path) { + path = this.pathPrefix + path; + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + return clientAssets.assets[path]; + }; + SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { + for (var i = 0; i < clientAssets.toLoad.length; i++) { + var path = clientAssets.toLoad[i]; + var asset = clientAssets.assets[path]; + if (asset === null || asset === undefined) { + var rawAsset = this.rawAssets[path]; + if (rawAsset === null || rawAsset === undefined) + continue; + if (rawAsset instanceof HTMLImageElement) { + clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); + } + else { + clientAssets.assets[path] = rawAsset; + } + } + } + }; + SharedAssetManager.prototype.isLoadingComplete = function (clientId) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + this.updateClientAssets(clientAssets); + return clientAssets.toLoad.length == clientAssets.loaded(); + }; + SharedAssetManager.prototype.dispose = function () { + }; + SharedAssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + SharedAssetManager.prototype.getErrors = function () { + return this.errors; + }; + return SharedAssetManager; + }()); + spine.SharedAssetManager = SharedAssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var Skeleton = (function () { - function Skeleton(data) { - this._updateCache = new Array(); - this.updateCacheReset = new Array(); - this.time = 0; - this.flipX = false; - this.flipY = false; - this.x = 0; - this.y = 0; - if (data == null) - throw new Error("data cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) { - var boneData = data.bones[i]; - var bone = void 0; - if (boneData.parent == null) - bone = new spine.Bone(boneData, this, null); - else { - var parent_1 = this.bones[boneData.parent.index]; - bone = new spine.Bone(boneData, this, parent_1); - parent_1.children.push(bone); - } - this.bones.push(bone); - } - this.slots = new Array(); - this.drawOrder = new Array(); - for (var i = 0; i < data.slots.length; i++) { - var slotData = data.slots[i]; - var bone = this.bones[slotData.boneData.index]; - var slot = new spine.Slot(slotData, bone); - this.slots.push(slot); - this.drawOrder.push(slot); - } - this.ikConstraints = new Array(); - for (var i = 0; i < data.ikConstraints.length; i++) { - var ikConstraintData = data.ikConstraints[i]; - this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); - } - this.transformConstraints = new Array(); - for (var i = 0; i < data.transformConstraints.length; i++) { - var transformConstraintData = data.transformConstraints[i]; - this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); - } - this.pathConstraints = new Array(); - for (var i = 0; i < data.pathConstraints.length; i++) { - var pathConstraintData = data.pathConstraints[i]; - this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); - } - this.color = new spine.Color(1, 1, 1, 1); - this.updateCache(); - } - Skeleton.prototype.updateCache = function () { - var updateCache = this._updateCache; - updateCache.length = 0; - this.updateCacheReset.length = 0; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].sorted = false; - var ikConstraints = this.ikConstraints; - var transformConstraints = this.transformConstraints; - var pathConstraints = this.pathConstraints; - var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; - var constraintCount = ikCount + transformCount + pathCount; - outer: for (var i = 0; i < constraintCount; i++) { - for (var ii = 0; ii < ikCount; ii++) { - var constraint = ikConstraints[ii]; - if (constraint.data.order == i) { - this.sortIkConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < transformCount; ii++) { - var constraint = transformConstraints[ii]; - if (constraint.data.order == i) { - this.sortTransformConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < pathCount; ii++) { - var constraint = pathConstraints[ii]; - if (constraint.data.order == i) { - this.sortPathConstraint(constraint); - continue outer; - } - } - } - for (var i = 0, n = bones.length; i < n; i++) - this.sortBone(bones[i]); - }; - Skeleton.prototype.sortIkConstraint = function (constraint) { - var target = constraint.target; - this.sortBone(target); - var constrained = constraint.bones; - var parent = constrained[0]; - this.sortBone(parent); - if (constrained.length > 1) { - var child = constrained[constrained.length - 1]; - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - this._updateCache.push(constraint); - this.sortReset(parent.children); - constrained[constrained.length - 1].sorted = true; - }; - Skeleton.prototype.sortPathConstraint = function (constraint) { - var slot = constraint.target; - var slotIndex = slot.data.index; - var slotBone = slot.bone; - if (this.skin != null) - this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); - if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) - this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); - for (var i = 0, n = this.data.skins.length; i < n; i++) - this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); - var attachment = slot.getAttachment(); - if (attachment instanceof spine.PathAttachment) - this.sortPathConstraintAttachmentWith(attachment, slotBone); - var constrained = constraint.bones; - var boneCount = constrained.length; - for (var i = 0; i < boneCount; i++) - this.sortBone(constrained[i]); - this._updateCache.push(constraint); - for (var i = 0; i < boneCount; i++) - this.sortReset(constrained[i].children); - for (var i = 0; i < boneCount; i++) - constrained[i].sorted = true; - }; - Skeleton.prototype.sortTransformConstraint = function (constraint) { - this.sortBone(constraint.target); - var constrained = constraint.bones; - var boneCount = constrained.length; - if (constraint.data.local) { - for (var i = 0; i < boneCount; i++) { - var child = constrained[i]; - this.sortBone(child.parent); - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - } - else { - for (var i = 0; i < boneCount; i++) { - this.sortBone(constrained[i]); - } - } - this._updateCache.push(constraint); - for (var ii = 0; ii < boneCount; ii++) - this.sortReset(constrained[ii].children); - for (var ii = 0; ii < boneCount; ii++) - constrained[ii].sorted = true; - }; - Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { - var attachments = skin.attachments[slotIndex]; - if (!attachments) - return; - for (var key in attachments) { - this.sortPathConstraintAttachmentWith(attachments[key], slotBone); - } - }; - Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { - if (!(attachment instanceof spine.PathAttachment)) - return; - var pathBones = attachment.bones; - if (pathBones == null) - this.sortBone(slotBone); - else { - var bones = this.bones; - var i = 0; - while (i < pathBones.length) { - var boneCount = pathBones[i++]; - for (var n = i + boneCount; i < n; i++) { - var boneIndex = pathBones[i]; - this.sortBone(bones[boneIndex]); - } - } - } - }; - Skeleton.prototype.sortBone = function (bone) { - if (bone.sorted) - return; - var parent = bone.parent; - if (parent != null) - this.sortBone(parent); - bone.sorted = true; - this._updateCache.push(bone); - }; - Skeleton.prototype.sortReset = function (bones) { - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.sorted) - this.sortReset(bone.children); - bone.sorted = false; - } - }; - Skeleton.prototype.updateWorldTransform = function () { - var updateCacheReset = this.updateCacheReset; - for (var i = 0, n = updateCacheReset.length; i < n; i++) { - var bone = updateCacheReset[i]; - bone.ax = bone.x; - bone.ay = bone.y; - bone.arotation = bone.rotation; - bone.ascaleX = bone.scaleX; - bone.ascaleY = bone.scaleY; - bone.ashearX = bone.shearX; - bone.ashearY = bone.shearY; - bone.appliedValid = true; - } - var updateCache = this._updateCache; - for (var i = 0, n = updateCache.length; i < n; i++) - updateCache[i].update(); - }; - Skeleton.prototype.setToSetupPose = function () { - this.setBonesToSetupPose(); - this.setSlotsToSetupPose(); - }; - Skeleton.prototype.setBonesToSetupPose = function () { - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].setToSetupPose(); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - constraint.bendDirection = constraint.data.bendDirection; - constraint.mix = constraint.data.mix; - } - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - var data = constraint.data; - constraint.position = data.position; - constraint.spacing = data.spacing; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - } - }; - Skeleton.prototype.setSlotsToSetupPose = function () { - var slots = this.slots; - spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); - for (var i = 0, n = slots.length; i < n; i++) - slots[i].setToSetupPose(); - }; - Skeleton.prototype.getRootBone = function () { - if (this.bones.length == 0) - return null; - return this.bones[0]; - }; - Skeleton.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.data.name == boneName) - return bone; - } - return null; - }; - Skeleton.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].data.name == boneName) - return i; - return -1; - }; - Skeleton.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) - return slot; - } - return null; - }; - Skeleton.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].data.name == slotName) - return i; - return -1; - }; - Skeleton.prototype.setSkinByName = function (skinName) { - var skin = this.data.findSkin(skinName); - if (skin == null) - throw new Error("Skin not found: " + skinName); - this.setSkin(skin); - }; - Skeleton.prototype.setSkin = function (newSkin) { - if (newSkin != null) { - if (this.skin != null) - newSkin.attachAll(this, this.skin); - else { - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var name_1 = slot.data.attachmentName; - if (name_1 != null) { - var attachment = newSkin.getAttachment(i, name_1); - if (attachment != null) - slot.setAttachment(attachment); - } - } - } - } - this.skin = newSkin; - }; - Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { - return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); - }; - Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { - if (attachmentName == null) - throw new Error("attachmentName cannot be null."); - if (this.skin != null) { - var attachment = this.skin.getAttachment(slotIndex, attachmentName); - if (attachment != null) - return attachment; - } - if (this.data.defaultSkin != null) - return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); - return null; - }; - Skeleton.prototype.setAttachment = function (slotName, attachmentName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) { - var attachment = null; - if (attachmentName != null) { - attachment = this.getAttachment(i, attachmentName); - if (attachment == null) - throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); - } - slot.setAttachment(attachment); - return; - } - } - throw new Error("Slot not found: " + slotName); - }; - Skeleton.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var ikConstraint = ikConstraints[i]; - if (ikConstraint.data.name == constraintName) - return ikConstraint; - } - return null; - }; - Skeleton.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.getBounds = function (offset, size, temp) { - if (offset == null) - throw new Error("offset cannot be null."); - if (size == null) - throw new Error("size cannot be null."); - var drawOrder = this.drawOrder; - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var verticesLength = 0; - var vertices = null; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.RegionAttachment) { - verticesLength = 8; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - attachment.computeWorldVertices(slot.bone, vertices, 0, 2); - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - verticesLength = mesh.worldVerticesLength; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); - } - if (vertices != null) { - for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { - var x = vertices[ii], y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - } - offset.set(minX, minY); - size.set(maxX - minX, maxY - minY); - }; - Skeleton.prototype.update = function (delta) { - this.time += delta; - }; - return Skeleton; - }()); - spine.Skeleton = Skeleton; + var Skeleton = (function () { + function Skeleton(data) { + this._updateCache = new Array(); + this.updateCacheReset = new Array(); + this.time = 0; + this.flipX = false; + this.flipY = false; + this.x = 0; + this.y = 0; + if (data == null) + throw new Error("data cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) { + var boneData = data.bones[i]; + var bone = void 0; + if (boneData.parent == null) + bone = new spine.Bone(boneData, this, null); + else { + var parent_1 = this.bones[boneData.parent.index]; + bone = new spine.Bone(boneData, this, parent_1); + parent_1.children.push(bone); + } + this.bones.push(bone); + } + this.slots = new Array(); + this.drawOrder = new Array(); + for (var i = 0; i < data.slots.length; i++) { + var slotData = data.slots[i]; + var bone = this.bones[slotData.boneData.index]; + var slot = new spine.Slot(slotData, bone); + this.slots.push(slot); + this.drawOrder.push(slot); + } + this.ikConstraints = new Array(); + for (var i = 0; i < data.ikConstraints.length; i++) { + var ikConstraintData = data.ikConstraints[i]; + this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); + } + this.transformConstraints = new Array(); + for (var i = 0; i < data.transformConstraints.length; i++) { + var transformConstraintData = data.transformConstraints[i]; + this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); + } + this.pathConstraints = new Array(); + for (var i = 0; i < data.pathConstraints.length; i++) { + var pathConstraintData = data.pathConstraints[i]; + this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); + } + this.color = new spine.Color(1, 1, 1, 1); + this.updateCache(); + } + Skeleton.prototype.updateCache = function () { + var updateCache = this._updateCache; + updateCache.length = 0; + this.updateCacheReset.length = 0; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].sorted = false; + var ikConstraints = this.ikConstraints; + var transformConstraints = this.transformConstraints; + var pathConstraints = this.pathConstraints; + var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; + var constraintCount = ikCount + transformCount + pathCount; + outer: for (var i = 0; i < constraintCount; i++) { + for (var ii = 0; ii < ikCount; ii++) { + var constraint = ikConstraints[ii]; + if (constraint.data.order == i) { + this.sortIkConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < transformCount; ii++) { + var constraint = transformConstraints[ii]; + if (constraint.data.order == i) { + this.sortTransformConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < pathCount; ii++) { + var constraint = pathConstraints[ii]; + if (constraint.data.order == i) { + this.sortPathConstraint(constraint); + continue outer; + } + } + } + for (var i = 0, n = bones.length; i < n; i++) + this.sortBone(bones[i]); + }; + Skeleton.prototype.sortIkConstraint = function (constraint) { + var target = constraint.target; + this.sortBone(target); + var constrained = constraint.bones; + var parent = constrained[0]; + this.sortBone(parent); + if (constrained.length > 1) { + var child = constrained[constrained.length - 1]; + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + this._updateCache.push(constraint); + this.sortReset(parent.children); + constrained[constrained.length - 1].sorted = true; + }; + Skeleton.prototype.sortPathConstraint = function (constraint) { + var slot = constraint.target; + var slotIndex = slot.data.index; + var slotBone = slot.bone; + if (this.skin != null) + this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); + if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) + this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); + for (var i = 0, n = this.data.skins.length; i < n; i++) + this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); + var attachment = slot.getAttachment(); + if (attachment instanceof spine.PathAttachment) + this.sortPathConstraintAttachmentWith(attachment, slotBone); + var constrained = constraint.bones; + var boneCount = constrained.length; + for (var i = 0; i < boneCount; i++) + this.sortBone(constrained[i]); + this._updateCache.push(constraint); + for (var i = 0; i < boneCount; i++) + this.sortReset(constrained[i].children); + for (var i = 0; i < boneCount; i++) + constrained[i].sorted = true; + }; + Skeleton.prototype.sortTransformConstraint = function (constraint) { + this.sortBone(constraint.target); + var constrained = constraint.bones; + var boneCount = constrained.length; + if (constraint.data.local) { + for (var i = 0; i < boneCount; i++) { + var child = constrained[i]; + this.sortBone(child.parent); + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + } + else { + for (var i = 0; i < boneCount; i++) { + this.sortBone(constrained[i]); + } + } + this._updateCache.push(constraint); + for (var ii = 0; ii < boneCount; ii++) + this.sortReset(constrained[ii].children); + for (var ii = 0; ii < boneCount; ii++) + constrained[ii].sorted = true; + }; + Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { + var attachments = skin.attachments[slotIndex]; + if (!attachments) + return; + for (var key in attachments) { + this.sortPathConstraintAttachmentWith(attachments[key], slotBone); + } + }; + Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { + if (!(attachment instanceof spine.PathAttachment)) + return; + var pathBones = attachment.bones; + if (pathBones == null) + this.sortBone(slotBone); + else { + var bones = this.bones; + var i = 0; + while (i < pathBones.length) { + var boneCount = pathBones[i++]; + for (var n = i + boneCount; i < n; i++) { + var boneIndex = pathBones[i]; + this.sortBone(bones[boneIndex]); + } + } + } + }; + Skeleton.prototype.sortBone = function (bone) { + if (bone.sorted) + return; + var parent = bone.parent; + if (parent != null) + this.sortBone(parent); + bone.sorted = true; + this._updateCache.push(bone); + }; + Skeleton.prototype.sortReset = function (bones) { + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.sorted) + this.sortReset(bone.children); + bone.sorted = false; + } + }; + Skeleton.prototype.updateWorldTransform = function () { + var updateCacheReset = this.updateCacheReset; + for (var i = 0, n = updateCacheReset.length; i < n; i++) { + var bone = updateCacheReset[i]; + bone.ax = bone.x; + bone.ay = bone.y; + bone.arotation = bone.rotation; + bone.ascaleX = bone.scaleX; + bone.ascaleY = bone.scaleY; + bone.ashearX = bone.shearX; + bone.ashearY = bone.shearY; + bone.appliedValid = true; + } + var updateCache = this._updateCache; + for (var i = 0, n = updateCache.length; i < n; i++) + updateCache[i].update(); + }; + Skeleton.prototype.setToSetupPose = function () { + this.setBonesToSetupPose(); + this.setSlotsToSetupPose(); + }; + Skeleton.prototype.setBonesToSetupPose = function () { + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].setToSetupPose(); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + constraint.bendDirection = constraint.data.bendDirection; + constraint.mix = constraint.data.mix; + } + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + var data = constraint.data; + constraint.position = data.position; + constraint.spacing = data.spacing; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + } + }; + Skeleton.prototype.setSlotsToSetupPose = function () { + var slots = this.slots; + spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); + for (var i = 0, n = slots.length; i < n; i++) + slots[i].setToSetupPose(); + }; + Skeleton.prototype.getRootBone = function () { + if (this.bones.length == 0) + return null; + return this.bones[0]; + }; + Skeleton.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.data.name == boneName) + return bone; + } + return null; + }; + Skeleton.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].data.name == boneName) + return i; + return -1; + }; + Skeleton.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) + return slot; + } + return null; + }; + Skeleton.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].data.name == slotName) + return i; + return -1; + }; + Skeleton.prototype.setSkinByName = function (skinName) { + var skin = this.data.findSkin(skinName); + if (skin == null) + throw new Error("Skin not found: " + skinName); + this.setSkin(skin); + }; + Skeleton.prototype.setSkin = function (newSkin) { + if (newSkin != null) { + if (this.skin != null) + newSkin.attachAll(this, this.skin); + else { + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var name_1 = slot.data.attachmentName; + if (name_1 != null) { + var attachment = newSkin.getAttachment(i, name_1); + if (attachment != null) + slot.setAttachment(attachment); + } + } + } + } + this.skin = newSkin; + }; + Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { + return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); + }; + Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { + if (attachmentName == null) + throw new Error("attachmentName cannot be null."); + if (this.skin != null) { + var attachment = this.skin.getAttachment(slotIndex, attachmentName); + if (attachment != null) + return attachment; + } + if (this.data.defaultSkin != null) + return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); + return null; + }; + Skeleton.prototype.setAttachment = function (slotName, attachmentName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) { + var attachment = null; + if (attachmentName != null) { + attachment = this.getAttachment(i, attachmentName); + if (attachment == null) + throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); + } + slot.setAttachment(attachment); + return; + } + } + throw new Error("Slot not found: " + slotName); + }; + Skeleton.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var ikConstraint = ikConstraints[i]; + if (ikConstraint.data.name == constraintName) + return ikConstraint; + } + return null; + }; + Skeleton.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.getBounds = function (offset, size, temp) { + if (offset == null) + throw new Error("offset cannot be null."); + if (size == null) + throw new Error("size cannot be null."); + var drawOrder = this.drawOrder; + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var verticesLength = 0; + var vertices = null; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.RegionAttachment) { + verticesLength = 8; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + attachment.computeWorldVertices(slot.bone, vertices, 0, 2); + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + verticesLength = mesh.worldVerticesLength; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); + } + if (vertices != null) { + for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { + var x = vertices[ii], y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + } + offset.set(minX, minY); + size.set(maxX - minX, maxY - minY); + }; + Skeleton.prototype.update = function (delta) { + this.time += delta; + }; + return Skeleton; + }()); + spine.Skeleton = Skeleton; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonBounds = (function () { - function SkeletonBounds() { - this.minX = 0; - this.minY = 0; - this.maxX = 0; - this.maxY = 0; - this.boundingBoxes = new Array(); - this.polygons = new Array(); - this.polygonPool = new spine.Pool(function () { - return spine.Utils.newFloatArray(16); - }); - } - SkeletonBounds.prototype.update = function (skeleton, updateAabb) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - var boundingBoxes = this.boundingBoxes; - var polygons = this.polygons; - var polygonPool = this.polygonPool; - var slots = skeleton.slots; - var slotCount = slots.length; - boundingBoxes.length = 0; - polygonPool.freeAll(polygons); - polygons.length = 0; - for (var i = 0; i < slotCount; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.BoundingBoxAttachment) { - var boundingBox = attachment; - boundingBoxes.push(boundingBox); - var polygon = polygonPool.obtain(); - if (polygon.length != boundingBox.worldVerticesLength) { - polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); - } - polygons.push(polygon); - boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); - } - } - if (updateAabb) { - this.aabbCompute(); - } - else { - this.minX = Number.POSITIVE_INFINITY; - this.minY = Number.POSITIVE_INFINITY; - this.maxX = Number.NEGATIVE_INFINITY; - this.maxY = Number.NEGATIVE_INFINITY; - } - }; - SkeletonBounds.prototype.aabbCompute = function () { - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) { - var polygon = polygons[i]; - var vertices = polygon; - for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { - var x = vertices[ii]; - var y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - this.minX = minX; - this.minY = minY; - this.maxX = maxX; - this.maxY = maxY; - }; - SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { - return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; - }; - SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { - var minX = this.minX; - var minY = this.minY; - var maxX = this.maxX; - var maxY = this.maxY; - if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) - return false; - var m = (y2 - y1) / (x2 - x1); - var y = m * (minX - x1) + y1; - if (y > minY && y < maxY) - return true; - y = m * (maxX - x1) + y1; - if (y > minY && y < maxY) - return true; - var x = (minY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - x = (maxY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - return false; - }; - SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { - return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; - }; - SkeletonBounds.prototype.containsPoint = function (x, y) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.containsPointPolygon(polygons[i], x, y)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { - var vertices = polygon; - var nn = polygon.length; - var prevIndex = nn - 2; - var inside = false; - for (var ii = 0; ii < nn; ii += 2) { - var vertexY = vertices[ii + 1]; - var prevY = vertices[prevIndex + 1]; - if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { - var vertexX = vertices[ii]; - if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) - inside = !inside; - } - prevIndex = ii; - } - return inside; - }; - SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { - var vertices = polygon; - var nn = polygon.length; - var width12 = x1 - x2, height12 = y1 - y2; - var det1 = x1 * y2 - y1 * x2; - var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; - for (var ii = 0; ii < nn; ii += 2) { - var x4 = vertices[ii], y4 = vertices[ii + 1]; - var det2 = x3 * y4 - y3 * x4; - var width34 = x3 - x4, height34 = y3 - y4; - var det3 = width12 * height34 - height12 * width34; - var x = (det1 * width34 - width12 * det2) / det3; - if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { - var y = (det1 * height34 - height12 * det2) / det3; - if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) - return true; - } - x3 = x4; - y3 = y4; - } - return false; - }; - SkeletonBounds.prototype.getPolygon = function (boundingBox) { - if (boundingBox == null) - throw new Error("boundingBox cannot be null."); - var index = this.boundingBoxes.indexOf(boundingBox); - return index == -1 ? null : this.polygons[index]; - }; - SkeletonBounds.prototype.getWidth = function () { - return this.maxX - this.minX; - }; - SkeletonBounds.prototype.getHeight = function () { - return this.maxY - this.minY; - }; - return SkeletonBounds; - }()); - spine.SkeletonBounds = SkeletonBounds; + var SkeletonBounds = (function () { + function SkeletonBounds() { + this.minX = 0; + this.minY = 0; + this.maxX = 0; + this.maxY = 0; + this.boundingBoxes = new Array(); + this.polygons = new Array(); + this.polygonPool = new spine.Pool(function () { + return spine.Utils.newFloatArray(16); + }); + } + SkeletonBounds.prototype.update = function (skeleton, updateAabb) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + var boundingBoxes = this.boundingBoxes; + var polygons = this.polygons; + var polygonPool = this.polygonPool; + var slots = skeleton.slots; + var slotCount = slots.length; + boundingBoxes.length = 0; + polygonPool.freeAll(polygons); + polygons.length = 0; + for (var i = 0; i < slotCount; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.BoundingBoxAttachment) { + var boundingBox = attachment; + boundingBoxes.push(boundingBox); + var polygon = polygonPool.obtain(); + if (polygon.length != boundingBox.worldVerticesLength) { + polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); + } + polygons.push(polygon); + boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); + } + } + if (updateAabb) { + this.aabbCompute(); + } + else { + this.minX = Number.POSITIVE_INFINITY; + this.minY = Number.POSITIVE_INFINITY; + this.maxX = Number.NEGATIVE_INFINITY; + this.maxY = Number.NEGATIVE_INFINITY; + } + }; + SkeletonBounds.prototype.aabbCompute = function () { + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) { + var polygon = polygons[i]; + var vertices = polygon; + for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { + var x = vertices[ii]; + var y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + this.minX = minX; + this.minY = minY; + this.maxX = maxX; + this.maxY = maxY; + }; + SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { + return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; + }; + SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { + var minX = this.minX; + var minY = this.minY; + var maxX = this.maxX; + var maxY = this.maxY; + if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) + return false; + var m = (y2 - y1) / (x2 - x1); + var y = m * (minX - x1) + y1; + if (y > minY && y < maxY) + return true; + y = m * (maxX - x1) + y1; + if (y > minY && y < maxY) + return true; + var x = (minY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + x = (maxY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + return false; + }; + SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { + return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; + }; + SkeletonBounds.prototype.containsPoint = function (x, y) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.containsPointPolygon(polygons[i], x, y)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { + var vertices = polygon; + var nn = polygon.length; + var prevIndex = nn - 2; + var inside = false; + for (var ii = 0; ii < nn; ii += 2) { + var vertexY = vertices[ii + 1]; + var prevY = vertices[prevIndex + 1]; + if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { + var vertexX = vertices[ii]; + if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) + inside = !inside; + } + prevIndex = ii; + } + return inside; + }; + SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { + var vertices = polygon; + var nn = polygon.length; + var width12 = x1 - x2, height12 = y1 - y2; + var det1 = x1 * y2 - y1 * x2; + var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; + for (var ii = 0; ii < nn; ii += 2) { + var x4 = vertices[ii], y4 = vertices[ii + 1]; + var det2 = x3 * y4 - y3 * x4; + var width34 = x3 - x4, height34 = y3 - y4; + var det3 = width12 * height34 - height12 * width34; + var x = (det1 * width34 - width12 * det2) / det3; + if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { + var y = (det1 * height34 - height12 * det2) / det3; + if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) + return true; + } + x3 = x4; + y3 = y4; + } + return false; + }; + SkeletonBounds.prototype.getPolygon = function (boundingBox) { + if (boundingBox == null) + throw new Error("boundingBox cannot be null."); + var index = this.boundingBoxes.indexOf(boundingBox); + return index == -1 ? null : this.polygons[index]; + }; + SkeletonBounds.prototype.getWidth = function () { + return this.maxX - this.minX; + }; + SkeletonBounds.prototype.getHeight = function () { + return this.maxY - this.minY; + }; + return SkeletonBounds; + }()); + spine.SkeletonBounds = SkeletonBounds; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonClipping = (function () { - function SkeletonClipping() { - this.triangulator = new spine.Triangulator(); - this.clippingPolygon = new Array(); - this.clipOutput = new Array(); - this.clippedVertices = new Array(); - this.clippedTriangles = new Array(); - this.scratch = new Array(); - } - SkeletonClipping.prototype.clipStart = function (slot, clip) { - if (this.clipAttachment != null) - return 0; - this.clipAttachment = clip; - var n = clip.worldVerticesLength; - var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); - clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); - var clippingPolygon = this.clippingPolygon; - SkeletonClipping.makeClockwise(clippingPolygon); - var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); - for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { - var polygon = clippingPolygons[i]; - SkeletonClipping.makeClockwise(polygon); - polygon.push(polygon[0]); - polygon.push(polygon[1]); - } - return clippingPolygons.length; - }; - SkeletonClipping.prototype.clipEndWithSlot = function (slot) { - if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) - this.clipEnd(); - }; - SkeletonClipping.prototype.clipEnd = function () { - if (this.clipAttachment == null) - return; - this.clipAttachment = null; - this.clippingPolygons = null; - this.clippedVertices.length = 0; - this.clippedTriangles.length = 0; - this.clippingPolygon.length = 0; - }; - SkeletonClipping.prototype.isClipping = function () { - return this.clipAttachment != null; - }; - SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { - var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; - var clippedTriangles = this.clippedTriangles; - var polygons = this.clippingPolygons; - var polygonsCount = this.clippingPolygons.length; - var vertexSize = twoColor ? 12 : 8; - var index = 0; - clippedVertices.length = 0; - clippedTriangles.length = 0; - outer: for (var i = 0; i < trianglesLength; i += 3) { - var vertexOffset = triangles[i] << 1; - var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; - var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 1] << 1; - var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; - var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 2] << 1; - var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; - var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; - for (var p = 0; p < polygonsCount; p++) { - var s = clippedVertices.length; - if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { - var clipOutputLength = clipOutput.length; - if (clipOutputLength == 0) - continue; - var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; - var d = 1 / (d0 * d2 + d1 * (y1 - y3)); - var clipOutputCount = clipOutputLength >> 1; - var clipOutputItems = this.clipOutput; - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); - for (var ii = 0; ii < clipOutputLength; ii += 2) { - var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; - clippedVerticesItems[s] = x; - clippedVerticesItems[s + 1] = y; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - var c0 = x - x3, c1 = y - y3; - var a = (d0 * c0 + d1 * c1) * d; - var b = (d4 * c0 + d2 * c1) * d; - var c = 1 - a - b; - clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; - clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; - if (twoColor) { - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 8] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - } - s += vertexSize; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); - clipOutputCount--; - for (var ii = 1; ii < clipOutputCount; ii++) { - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + ii); - clippedTrianglesItems[s + 2] = (index + ii + 1); - s += 3; - } - index += clipOutputCount + 1; - } - else { - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); - clippedVerticesItems[s] = x1; - clippedVerticesItems[s + 1] = y1; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - if (!twoColor) { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = x2; - clippedVerticesItems[s + 9] = y2; - clippedVerticesItems[s + 10] = light.r; - clippedVerticesItems[s + 11] = light.g; - clippedVerticesItems[s + 12] = light.b; - clippedVerticesItems[s + 13] = light.a; - clippedVerticesItems[s + 14] = u2; - clippedVerticesItems[s + 15] = v2; - clippedVerticesItems[s + 16] = x3; - clippedVerticesItems[s + 17] = y3; - clippedVerticesItems[s + 18] = light.r; - clippedVerticesItems[s + 19] = light.g; - clippedVerticesItems[s + 20] = light.b; - clippedVerticesItems[s + 21] = light.a; - clippedVerticesItems[s + 22] = u3; - clippedVerticesItems[s + 23] = v3; - } - else { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 9] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - clippedVerticesItems[s + 12] = x2; - clippedVerticesItems[s + 13] = y2; - clippedVerticesItems[s + 14] = light.r; - clippedVerticesItems[s + 15] = light.g; - clippedVerticesItems[s + 16] = light.b; - clippedVerticesItems[s + 17] = light.a; - clippedVerticesItems[s + 18] = u2; - clippedVerticesItems[s + 19] = v2; - clippedVerticesItems[s + 20] = dark.r; - clippedVerticesItems[s + 21] = dark.g; - clippedVerticesItems[s + 22] = dark.b; - clippedVerticesItems[s + 23] = dark.a; - clippedVerticesItems[s + 24] = x3; - clippedVerticesItems[s + 25] = y3; - clippedVerticesItems[s + 26] = light.r; - clippedVerticesItems[s + 27] = light.g; - clippedVerticesItems[s + 28] = light.b; - clippedVerticesItems[s + 29] = light.a; - clippedVerticesItems[s + 30] = u3; - clippedVerticesItems[s + 31] = v3; - clippedVerticesItems[s + 32] = dark.r; - clippedVerticesItems[s + 33] = dark.g; - clippedVerticesItems[s + 34] = dark.b; - clippedVerticesItems[s + 35] = dark.a; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + 1); - clippedTrianglesItems[s + 2] = (index + 2); - index += 3; - continue outer; - } - } - } - }; - SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { - var originalOutput = output; - var clipped = false; - var input = null; - if (clippingArea.length % 4 >= 2) { - input = output; - output = this.scratch; - } - else - input = this.scratch; - input.length = 0; - input.push(x1); - input.push(y1); - input.push(x2); - input.push(y2); - input.push(x3); - input.push(y3); - input.push(x1); - input.push(y1); - output.length = 0; - var clippingVertices = clippingArea; - var clippingVerticesLast = clippingArea.length - 4; - for (var i = 0;; i += 2) { - var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; - var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; - var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; - var inputVertices = input; - var inputVerticesLength = input.length - 2, outputStart = output.length; - for (var ii = 0; ii < inputVerticesLength; ii += 2) { - var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; - var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; - var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; - if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { - if (side2) { - output.push(inputX2); - output.push(inputY2); - continue; - } - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - } - else if (side2) { - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - output.push(inputX2); - output.push(inputY2); - } - clipped = true; - } - if (outputStart == output.length) { - originalOutput.length = 0; - return true; - } - output.push(output[0]); - output.push(output[1]); - if (i == clippingVerticesLast) - break; - var temp = output; - output = input; - output.length = 0; - input = temp; - } - if (originalOutput != output) { - originalOutput.length = 0; - for (var i = 0, n = output.length - 2; i < n; i++) - originalOutput[i] = output[i]; - } - else - originalOutput.length = originalOutput.length - 2; - return clipped; - }; - SkeletonClipping.makeClockwise = function (polygon) { - var vertices = polygon; - var verticeslength = polygon.length; - var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; - for (var i = 0, n = verticeslength - 3; i < n; i += 2) { - p1x = vertices[i]; - p1y = vertices[i + 1]; - p2x = vertices[i + 2]; - p2y = vertices[i + 3]; - area += p1x * p2y - p2x * p1y; - } - if (area < 0) - return; - for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { - var x = vertices[i], y = vertices[i + 1]; - var other = lastX - i; - vertices[i] = vertices[other]; - vertices[i + 1] = vertices[other + 1]; - vertices[other] = x; - vertices[other + 1] = y; - } - }; - return SkeletonClipping; - }()); - spine.SkeletonClipping = SkeletonClipping; + var SkeletonClipping = (function () { + function SkeletonClipping() { + this.triangulator = new spine.Triangulator(); + this.clippingPolygon = new Array(); + this.clipOutput = new Array(); + this.clippedVertices = new Array(); + this.clippedTriangles = new Array(); + this.scratch = new Array(); + } + SkeletonClipping.prototype.clipStart = function (slot, clip) { + if (this.clipAttachment != null) + return 0; + this.clipAttachment = clip; + var n = clip.worldVerticesLength; + var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); + clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); + var clippingPolygon = this.clippingPolygon; + SkeletonClipping.makeClockwise(clippingPolygon); + var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); + for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { + var polygon = clippingPolygons[i]; + SkeletonClipping.makeClockwise(polygon); + polygon.push(polygon[0]); + polygon.push(polygon[1]); + } + return clippingPolygons.length; + }; + SkeletonClipping.prototype.clipEndWithSlot = function (slot) { + if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) + this.clipEnd(); + }; + SkeletonClipping.prototype.clipEnd = function () { + if (this.clipAttachment == null) + return; + this.clipAttachment = null; + this.clippingPolygons = null; + this.clippedVertices.length = 0; + this.clippedTriangles.length = 0; + this.clippingPolygon.length = 0; + }; + SkeletonClipping.prototype.isClipping = function () { + return this.clipAttachment != null; + }; + SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { + var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; + var clippedTriangles = this.clippedTriangles; + var polygons = this.clippingPolygons; + var polygonsCount = this.clippingPolygons.length; + var vertexSize = twoColor ? 12 : 8; + var index = 0; + clippedVertices.length = 0; + clippedTriangles.length = 0; + outer: for (var i = 0; i < trianglesLength; i += 3) { + var vertexOffset = triangles[i] << 1; + var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; + var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 1] << 1; + var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; + var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 2] << 1; + var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; + var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; + for (var p = 0; p < polygonsCount; p++) { + var s = clippedVertices.length; + if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { + var clipOutputLength = clipOutput.length; + if (clipOutputLength == 0) + continue; + var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; + var d = 1 / (d0 * d2 + d1 * (y1 - y3)); + var clipOutputCount = clipOutputLength >> 1; + var clipOutputItems = this.clipOutput; + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); + for (var ii = 0; ii < clipOutputLength; ii += 2) { + var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; + clippedVerticesItems[s] = x; + clippedVerticesItems[s + 1] = y; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + var c0 = x - x3, c1 = y - y3; + var a = (d0 * c0 + d1 * c1) * d; + var b = (d4 * c0 + d2 * c1) * d; + var c = 1 - a - b; + clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; + clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; + if (twoColor) { + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 8] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + } + s += vertexSize; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); + clipOutputCount--; + for (var ii = 1; ii < clipOutputCount; ii++) { + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + ii); + clippedTrianglesItems[s + 2] = (index + ii + 1); + s += 3; + } + index += clipOutputCount + 1; + } + else { + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); + clippedVerticesItems[s] = x1; + clippedVerticesItems[s + 1] = y1; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + if (!twoColor) { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = x2; + clippedVerticesItems[s + 9] = y2; + clippedVerticesItems[s + 10] = light.r; + clippedVerticesItems[s + 11] = light.g; + clippedVerticesItems[s + 12] = light.b; + clippedVerticesItems[s + 13] = light.a; + clippedVerticesItems[s + 14] = u2; + clippedVerticesItems[s + 15] = v2; + clippedVerticesItems[s + 16] = x3; + clippedVerticesItems[s + 17] = y3; + clippedVerticesItems[s + 18] = light.r; + clippedVerticesItems[s + 19] = light.g; + clippedVerticesItems[s + 20] = light.b; + clippedVerticesItems[s + 21] = light.a; + clippedVerticesItems[s + 22] = u3; + clippedVerticesItems[s + 23] = v3; + } + else { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 9] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + clippedVerticesItems[s + 12] = x2; + clippedVerticesItems[s + 13] = y2; + clippedVerticesItems[s + 14] = light.r; + clippedVerticesItems[s + 15] = light.g; + clippedVerticesItems[s + 16] = light.b; + clippedVerticesItems[s + 17] = light.a; + clippedVerticesItems[s + 18] = u2; + clippedVerticesItems[s + 19] = v2; + clippedVerticesItems[s + 20] = dark.r; + clippedVerticesItems[s + 21] = dark.g; + clippedVerticesItems[s + 22] = dark.b; + clippedVerticesItems[s + 23] = dark.a; + clippedVerticesItems[s + 24] = x3; + clippedVerticesItems[s + 25] = y3; + clippedVerticesItems[s + 26] = light.r; + clippedVerticesItems[s + 27] = light.g; + clippedVerticesItems[s + 28] = light.b; + clippedVerticesItems[s + 29] = light.a; + clippedVerticesItems[s + 30] = u3; + clippedVerticesItems[s + 31] = v3; + clippedVerticesItems[s + 32] = dark.r; + clippedVerticesItems[s + 33] = dark.g; + clippedVerticesItems[s + 34] = dark.b; + clippedVerticesItems[s + 35] = dark.a; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + 1); + clippedTrianglesItems[s + 2] = (index + 2); + index += 3; + continue outer; + } + } + } + }; + SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { + var originalOutput = output; + var clipped = false; + var input = null; + if (clippingArea.length % 4 >= 2) { + input = output; + output = this.scratch; + } + else + input = this.scratch; + input.length = 0; + input.push(x1); + input.push(y1); + input.push(x2); + input.push(y2); + input.push(x3); + input.push(y3); + input.push(x1); + input.push(y1); + output.length = 0; + var clippingVertices = clippingArea; + var clippingVerticesLast = clippingArea.length - 4; + for (var i = 0;; i += 2) { + var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; + var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; + var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; + var inputVertices = input; + var inputVerticesLength = input.length - 2, outputStart = output.length; + for (var ii = 0; ii < inputVerticesLength; ii += 2) { + var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; + var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; + var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; + if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { + if (side2) { + output.push(inputX2); + output.push(inputY2); + continue; + } + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + } + else if (side2) { + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + output.push(inputX2); + output.push(inputY2); + } + clipped = true; + } + if (outputStart == output.length) { + originalOutput.length = 0; + return true; + } + output.push(output[0]); + output.push(output[1]); + if (i == clippingVerticesLast) + break; + var temp = output; + output = input; + output.length = 0; + input = temp; + } + if (originalOutput != output) { + originalOutput.length = 0; + for (var i = 0, n = output.length - 2; i < n; i++) + originalOutput[i] = output[i]; + } + else + originalOutput.length = originalOutput.length - 2; + return clipped; + }; + SkeletonClipping.makeClockwise = function (polygon) { + var vertices = polygon; + var verticeslength = polygon.length; + var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; + for (var i = 0, n = verticeslength - 3; i < n; i += 2) { + p1x = vertices[i]; + p1y = vertices[i + 1]; + p2x = vertices[i + 2]; + p2y = vertices[i + 3]; + area += p1x * p2y - p2x * p1y; + } + if (area < 0) + return; + for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { + var x = vertices[i], y = vertices[i + 1]; + var other = lastX - i; + vertices[i] = vertices[other]; + vertices[i + 1] = vertices[other + 1]; + vertices[other] = x; + vertices[other + 1] = y; + } + }; + return SkeletonClipping; + }()); + spine.SkeletonClipping = SkeletonClipping; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonData = (function () { - function SkeletonData() { - this.bones = new Array(); - this.slots = new Array(); - this.skins = new Array(); - this.events = new Array(); - this.animations = new Array(); - this.ikConstraints = new Array(); - this.transformConstraints = new Array(); - this.pathConstraints = new Array(); - this.fps = 0; - } - SkeletonData.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.name == boneName) - return bone; - } - return null; - }; - SkeletonData.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].name == boneName) - return i; - return -1; - }; - SkeletonData.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.name == slotName) - return slot; - } - return null; - }; - SkeletonData.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].name == slotName) - return i; - return -1; - }; - SkeletonData.prototype.findSkin = function (skinName) { - if (skinName == null) - throw new Error("skinName cannot be null."); - var skins = this.skins; - for (var i = 0, n = skins.length; i < n; i++) { - var skin = skins[i]; - if (skin.name == skinName) - return skin; - } - return null; - }; - SkeletonData.prototype.findEvent = function (eventDataName) { - if (eventDataName == null) - throw new Error("eventDataName cannot be null."); - var events = this.events; - for (var i = 0, n = events.length; i < n; i++) { - var event_4 = events[i]; - if (event_4.name == eventDataName) - return event_4; - } - return null; - }; - SkeletonData.prototype.findAnimation = function (animationName) { - if (animationName == null) - throw new Error("animationName cannot be null."); - var animations = this.animations; - for (var i = 0, n = animations.length; i < n; i++) { - var animation = animations[i]; - if (animation.name == animationName) - return animation; - } - return null; - }; - SkeletonData.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { - if (pathConstraintName == null) - throw new Error("pathConstraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) - if (pathConstraints[i].name == pathConstraintName) - return i; - return -1; - }; - return SkeletonData; - }()); - spine.SkeletonData = SkeletonData; + var SkeletonData = (function () { + function SkeletonData() { + this.bones = new Array(); + this.slots = new Array(); + this.skins = new Array(); + this.events = new Array(); + this.animations = new Array(); + this.ikConstraints = new Array(); + this.transformConstraints = new Array(); + this.pathConstraints = new Array(); + this.fps = 0; + } + SkeletonData.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.name == boneName) + return bone; + } + return null; + }; + SkeletonData.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].name == boneName) + return i; + return -1; + }; + SkeletonData.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.name == slotName) + return slot; + } + return null; + }; + SkeletonData.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].name == slotName) + return i; + return -1; + }; + SkeletonData.prototype.findSkin = function (skinName) { + if (skinName == null) + throw new Error("skinName cannot be null."); + var skins = this.skins; + for (var i = 0, n = skins.length; i < n; i++) { + var skin = skins[i]; + if (skin.name == skinName) + return skin; + } + return null; + }; + SkeletonData.prototype.findEvent = function (eventDataName) { + if (eventDataName == null) + throw new Error("eventDataName cannot be null."); + var events = this.events; + for (var i = 0, n = events.length; i < n; i++) { + var event_4 = events[i]; + if (event_4.name == eventDataName) + return event_4; + } + return null; + }; + SkeletonData.prototype.findAnimation = function (animationName) { + if (animationName == null) + throw new Error("animationName cannot be null."); + var animations = this.animations; + for (var i = 0, n = animations.length; i < n; i++) { + var animation = animations[i]; + if (animation.name == animationName) + return animation; + } + return null; + }; + SkeletonData.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { + if (pathConstraintName == null) + throw new Error("pathConstraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) + if (pathConstraints[i].name == pathConstraintName) + return i; + return -1; + }; + return SkeletonData; + }()); + spine.SkeletonData = SkeletonData; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonJson = (function () { - function SkeletonJson(attachmentLoader) { - this.scale = 1; - this.linkedMeshes = new Array(); - this.attachmentLoader = attachmentLoader; - } - SkeletonJson.prototype.readSkeletonData = function (json) { - var scale = this.scale; - var skeletonData = new spine.SkeletonData(); - var root = typeof (json) === "string" ? JSON.parse(json) : json; - var skeletonMap = root.skeleton; - if (skeletonMap != null) { - skeletonData.hash = skeletonMap.hash; - skeletonData.version = skeletonMap.spine; - skeletonData.width = skeletonMap.width; - skeletonData.height = skeletonMap.height; - skeletonData.fps = skeletonMap.fps; - skeletonData.imagesPath = skeletonMap.images; - } - if (root.bones) { - for (var i = 0; i < root.bones.length; i++) { - var boneMap = root.bones[i]; - var parent_2 = null; - var parentName = this.getValue(boneMap, "parent", null); - if (parentName != null) { - parent_2 = skeletonData.findBone(parentName); - if (parent_2 == null) - throw new Error("Parent bone not found: " + parentName); - } - var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); - data.length = this.getValue(boneMap, "length", 0) * scale; - data.x = this.getValue(boneMap, "x", 0) * scale; - data.y = this.getValue(boneMap, "y", 0) * scale; - data.rotation = this.getValue(boneMap, "rotation", 0); - data.scaleX = this.getValue(boneMap, "scaleX", 1); - data.scaleY = this.getValue(boneMap, "scaleY", 1); - data.shearX = this.getValue(boneMap, "shearX", 0); - data.shearY = this.getValue(boneMap, "shearY", 0); - data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); - skeletonData.bones.push(data); - } - } - if (root.slots) { - for (var i = 0; i < root.slots.length; i++) { - var slotMap = root.slots[i]; - var slotName = slotMap.name; - var boneName = slotMap.bone; - var boneData = skeletonData.findBone(boneName); - if (boneData == null) - throw new Error("Slot bone not found: " + boneName); - var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); - var color = this.getValue(slotMap, "color", null); - if (color != null) - data.color.setFromString(color); - var dark = this.getValue(slotMap, "dark", null); - if (dark != null) { - data.darkColor = new spine.Color(1, 1, 1, 1); - data.darkColor.setFromString(dark); - } - data.attachmentName = this.getValue(slotMap, "attachment", null); - data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); - skeletonData.slots.push(data); - } - } - if (root.ik) { - for (var i = 0; i < root.ik.length; i++) { - var constraintMap = root.ik[i]; - var data = new spine.IkConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("IK bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("IK target bone not found: " + targetName); - data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; - data.mix = this.getValue(constraintMap, "mix", 1); - skeletonData.ikConstraints.push(data); - } - } - if (root.transform) { - for (var i = 0; i < root.transform.length; i++) { - var constraintMap = root.transform[i]; - var data = new spine.TransformConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("Transform constraint target bone not found: " + targetName); - data.local = this.getValue(constraintMap, "local", false); - data.relative = this.getValue(constraintMap, "relative", false); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.offsetX = this.getValue(constraintMap, "x", 0) * scale; - data.offsetY = this.getValue(constraintMap, "y", 0) * scale; - data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); - data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); - data.offsetShearY = this.getValue(constraintMap, "shearY", 0); - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); - data.shearMix = this.getValue(constraintMap, "shearMix", 1); - skeletonData.transformConstraints.push(data); - } - } - if (root.path) { - for (var i = 0; i < root.path.length; i++) { - var constraintMap = root.path[i]; - var data = new spine.PathConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findSlot(targetName); - if (data.target == null) - throw new Error("Path target slot not found: " + targetName); - data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); - data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); - data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.position = this.getValue(constraintMap, "position", 0); - if (data.positionMode == spine.PositionMode.Fixed) - data.position *= scale; - data.spacing = this.getValue(constraintMap, "spacing", 0); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - data.spacing *= scale; - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - skeletonData.pathConstraints.push(data); - } - } - if (root.skins) { - for (var skinName in root.skins) { - var skinMap = root.skins[skinName]; - var skin = new spine.Skin(skinName); - for (var slotName in skinMap) { - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - var slotMap = skinMap[slotName]; - for (var entryName in slotMap) { - var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); - if (attachment != null) - skin.addAttachment(slotIndex, entryName, attachment); - } - } - skeletonData.skins.push(skin); - if (skin.name == "default") - skeletonData.defaultSkin = skin; - } - } - for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { - var linkedMesh = this.linkedMeshes[i]; - var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); - if (skin == null) - throw new Error("Skin not found: " + linkedMesh.skin); - var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_3 == null) - throw new Error("Parent mesh not found: " + linkedMesh.parent); - linkedMesh.mesh.setParentMesh(parent_3); - linkedMesh.mesh.updateUVs(); - } - this.linkedMeshes.length = 0; - if (root.events) { - for (var eventName in root.events) { - var eventMap = root.events[eventName]; - var data = new spine.EventData(eventName); - data.intValue = this.getValue(eventMap, "int", 0); - data.floatValue = this.getValue(eventMap, "float", 0); - data.stringValue = this.getValue(eventMap, "string", ""); - skeletonData.events.push(data); - } - } - if (root.animations) { - for (var animationName in root.animations) { - var animationMap = root.animations[animationName]; - this.readAnimation(animationMap, animationName, skeletonData); - } - } - return skeletonData; - }; - SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { - var scale = this.scale; - name = this.getValue(map, "name", name); - var type = this.getValue(map, "type", "region"); - switch (type) { - case "region": { - var path = this.getValue(map, "path", name); - var region = this.attachmentLoader.newRegionAttachment(skin, name, path); - if (region == null) - return null; - region.path = path; - region.x = this.getValue(map, "x", 0) * scale; - region.y = this.getValue(map, "y", 0) * scale; - region.scaleX = this.getValue(map, "scaleX", 1); - region.scaleY = this.getValue(map, "scaleY", 1); - region.rotation = this.getValue(map, "rotation", 0); - region.width = map.width * scale; - region.height = map.height * scale; - var color = this.getValue(map, "color", null); - if (color != null) - region.color.setFromString(color); - region.updateOffset(); - return region; - } - case "boundingbox": { - var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); - if (box == null) - return null; - this.readVertices(map, box, map.vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - box.color.setFromString(color); - return box; - } - case "mesh": - case "linkedmesh": { - var path = this.getValue(map, "path", name); - var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); - if (mesh == null) - return null; - mesh.path = path; - var color = this.getValue(map, "color", null); - if (color != null) - mesh.color.setFromString(color); - var parent_4 = this.getValue(map, "parent", null); - if (parent_4 != null) { - mesh.inheritDeform = this.getValue(map, "deform", true); - this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); - return mesh; - } - var uvs = map.uvs; - this.readVertices(map, mesh, uvs.length); - mesh.triangles = map.triangles; - mesh.regionUVs = uvs; - mesh.updateUVs(); - mesh.hullLength = this.getValue(map, "hull", 0) * 2; - return mesh; - } - case "path": { - var path = this.attachmentLoader.newPathAttachment(skin, name); - if (path == null) - return null; - path.closed = this.getValue(map, "closed", false); - path.constantSpeed = this.getValue(map, "constantSpeed", true); - var vertexCount = map.vertexCount; - this.readVertices(map, path, vertexCount << 1); - var lengths = spine.Utils.newArray(vertexCount / 3, 0); - for (var i = 0; i < map.lengths.length; i++) - lengths[i++] = map.lengths[i] * scale; - path.lengths = lengths; - var color = this.getValue(map, "color", null); - if (color != null) - path.color.setFromString(color); - return path; - } - case "point": { - var point = this.attachmentLoader.newPointAttachment(skin, name); - if (point == null) - return null; - point.x = this.getValue(map, "x", 0) * scale; - point.y = this.getValue(map, "y", 0) * scale; - point.rotation = this.getValue(map, "rotation", 0); - var color = this.getValue(map, "color", null); - if (color != null) - point.color.setFromString(color); - return point; - } - case "clipping": { - var clip = this.attachmentLoader.newClippingAttachment(skin, name); - if (clip == null) - return null; - var end = this.getValue(map, "end", null); - if (end != null) { - var slot = skeletonData.findSlot(end); - if (slot == null) - throw new Error("Clipping end slot not found: " + end); - clip.endSlot = slot; - } - var vertexCount = map.vertexCount; - this.readVertices(map, clip, vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - clip.color.setFromString(color); - return clip; - } - } - return null; - }; - SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { - var scale = this.scale; - attachment.worldVerticesLength = verticesLength; - var vertices = map.vertices; - if (verticesLength == vertices.length) { - var scaledVertices = spine.Utils.toFloatArray(vertices); - if (scale != 1) { - for (var i = 0, n = vertices.length; i < n; i++) - scaledVertices[i] *= scale; - } - attachment.vertices = scaledVertices; - return; - } - var weights = new Array(); - var bones = new Array(); - for (var i = 0, n = vertices.length; i < n;) { - var boneCount = vertices[i++]; - bones.push(boneCount); - for (var nn = i + boneCount * 4; i < nn; i += 4) { - bones.push(vertices[i]); - weights.push(vertices[i + 1] * scale); - weights.push(vertices[i + 2] * scale); - weights.push(vertices[i + 3]); - } - } - attachment.bones = bones; - attachment.vertices = spine.Utils.toFloatArray(weights); - }; - SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { - var scale = this.scale; - var timelines = new Array(); - var duration = 0; - if (map.slots) { - for (var slotName in map.slots) { - var slotMap = map.slots[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - if (timelineName == "attachment") { - var timeline = new spine.AttachmentTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - else if (timelineName == "color") { - var timeline = new spine.ColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var color = new spine.Color(); - color.setFromString(valueMap.color); - timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); - } - else if (timelineName == "twoColor") { - var timeline = new spine.TwoColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var light = new spine.Color(); - var dark = new spine.Color(); - light.setFromString(valueMap.light); - dark.setFromString(valueMap.dark); - timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); - } - } - } - if (map.bones) { - for (var boneName in map.bones) { - var boneMap = map.bones[boneName]; - var boneIndex = skeletonData.findBoneIndex(boneName); - if (boneIndex == -1) - throw new Error("Bone not found: " + boneName); - for (var timelineName in boneMap) { - var timelineMap = boneMap[timelineName]; - if (timelineName === "rotate") { - var timeline = new spine.RotateTimeline(timelineMap.length); - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); - } - else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "scale") - timeline = new spine.ScaleTimeline(timelineMap.length); - else if (timelineName === "shear") - timeline = new spine.ShearTimeline(timelineMap.length); - else { - timeline = new spine.TranslateTimeline(timelineMap.length); - timelineScale = scale; - } - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); - timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); - } - } - } - if (map.ik) { - for (var constraintName in map.ik) { - var constraintMap = map.ik[constraintName]; - var constraint = skeletonData.findIkConstraint(constraintName); - var timeline = new spine.IkConstraintTimeline(constraintMap.length); - timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); - } - } - if (map.transform) { - for (var constraintName in map.transform) { - var constraintMap = map.transform[constraintName]; - var constraint = skeletonData.findTransformConstraint(constraintName); - var timeline = new spine.TransformConstraintTimeline(constraintMap.length); - timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); - } - } - if (map.paths) { - for (var constraintName in map.paths) { - var constraintMap = map.paths[constraintName]; - var index = skeletonData.findPathConstraintIndex(constraintName); - if (index == -1) - throw new Error("Path constraint not found: " + constraintName); - var data = skeletonData.pathConstraints[index]; - for (var timelineName in constraintMap) { - var timelineMap = constraintMap[timelineName]; - if (timelineName === "position" || timelineName === "spacing") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "spacing") { - timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - timelineScale = scale; - } - else { - timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); - if (data.positionMode == spine.PositionMode.Fixed) - timelineScale = scale; - } - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); - } - else if (timelineName === "mix") { - var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); - } - } - } - } - if (map.deform) { - for (var deformName in map.deform) { - var deformMap = map.deform[deformName]; - var skin = skeletonData.findSkin(deformName); - if (skin == null) - throw new Error("Skin not found: " + deformName); - for (var slotName in deformMap) { - var slotMap = deformMap[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotMap.name); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - var attachment = skin.getAttachment(slotIndex, timelineName); - if (attachment == null) - throw new Error("Deform attachment not found: " + timelineMap.name); - var weighted = attachment.bones != null; - var vertices = attachment.vertices; - var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; - var timeline = new spine.DeformTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - timeline.attachment = attachment; - var frameIndex = 0; - for (var j = 0; j < timelineMap.length; j++) { - var valueMap = timelineMap[j]; - var deform = void 0; - var verticesValue = this.getValue(valueMap, "vertices", null); - if (verticesValue == null) - deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; - else { - deform = spine.Utils.newFloatArray(deformLength); - var start = this.getValue(valueMap, "offset", 0); - spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); - if (scale != 1) { - for (var i = start, n = i + verticesValue.length; i < n; i++) - deform[i] *= scale; - } - if (!weighted) { - for (var i = 0; i < deformLength; i++) - deform[i] += vertices[i]; - } - } - timeline.setFrame(frameIndex, valueMap.time, deform); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - } - } - } - var drawOrderNode = map.drawOrder; - if (drawOrderNode == null) - drawOrderNode = map.draworder; - if (drawOrderNode != null) { - var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); - var slotCount = skeletonData.slots.length; - var frameIndex = 0; - for (var j = 0; j < drawOrderNode.length; j++) { - var drawOrderMap = drawOrderNode[j]; - var drawOrder = null; - var offsets = this.getValue(drawOrderMap, "offsets", null); - if (offsets != null) { - drawOrder = spine.Utils.newArray(slotCount, -1); - var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); - var originalIndex = 0, unchangedIndex = 0; - for (var i = 0; i < offsets.length; i++) { - var offsetMap = offsets[i]; - var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); - if (slotIndex == -1) - throw new Error("Slot not found: " + offsetMap.slot); - while (originalIndex != slotIndex) - unchanged[unchangedIndex++] = originalIndex++; - drawOrder[originalIndex + offsetMap.offset] = originalIndex++; - } - while (originalIndex < slotCount) - unchanged[unchangedIndex++] = originalIndex++; - for (var i = slotCount - 1; i >= 0; i--) - if (drawOrder[i] == -1) - drawOrder[i] = unchanged[--unchangedIndex]; - } - timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (map.events) { - var timeline = new spine.EventTimeline(map.events.length); - var frameIndex = 0; - for (var i = 0; i < map.events.length; i++) { - var eventMap = map.events[i]; - var eventData = skeletonData.findEvent(eventMap.name); - if (eventData == null) - throw new Error("Event not found: " + eventMap.name); - var event_5 = new spine.Event(eventMap.time, eventData); - event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); - event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); - event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); - timeline.setFrame(frameIndex++, event_5); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (isNaN(duration)) { - throw new Error("Error while parsing animation, duration is NaN"); - } - skeletonData.animations.push(new spine.Animation(name, timelines, duration)); - }; - SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { - if (!map.curve) - return; - if (map.curve === "stepped") - timeline.setStepped(frameIndex); - else if (Object.prototype.toString.call(map.curve) === '[object Array]') { - var curve = map.curve; - timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); - } - }; - SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { - return map[prop] !== undefined ? map[prop] : defaultValue; - }; - SkeletonJson.blendModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.BlendMode.Normal; - if (str == "additive") - return spine.BlendMode.Additive; - if (str == "multiply") - return spine.BlendMode.Multiply; - if (str == "screen") - return spine.BlendMode.Screen; - throw new Error("Unknown blend mode: " + str); - }; - SkeletonJson.positionModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "fixed") - return spine.PositionMode.Fixed; - if (str == "percent") - return spine.PositionMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.spacingModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "length") - return spine.SpacingMode.Length; - if (str == "fixed") - return spine.SpacingMode.Fixed; - if (str == "percent") - return spine.SpacingMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.rotateModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "tangent") - return spine.RotateMode.Tangent; - if (str == "chain") - return spine.RotateMode.Chain; - if (str == "chainscale") - return spine.RotateMode.ChainScale; - throw new Error("Unknown rotate mode: " + str); - }; - SkeletonJson.transformModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.TransformMode.Normal; - if (str == "onlytranslation") - return spine.TransformMode.OnlyTranslation; - if (str == "norotationorreflection") - return spine.TransformMode.NoRotationOrReflection; - if (str == "noscale") - return spine.TransformMode.NoScale; - if (str == "noscaleorreflection") - return spine.TransformMode.NoScaleOrReflection; - throw new Error("Unknown transform mode: " + str); - }; - return SkeletonJson; - }()); - spine.SkeletonJson = SkeletonJson; - var LinkedMesh = (function () { - function LinkedMesh(mesh, skin, slotIndex, parent) { - this.mesh = mesh; - this.skin = skin; - this.slotIndex = slotIndex; - this.parent = parent; - } - return LinkedMesh; - }()); + var SkeletonJson = (function () { + function SkeletonJson(attachmentLoader) { + this.scale = 1; + this.linkedMeshes = new Array(); + this.attachmentLoader = attachmentLoader; + } + SkeletonJson.prototype.readSkeletonData = function (json) { + var scale = this.scale; + var skeletonData = new spine.SkeletonData(); + var root = typeof (json) === "string" ? JSON.parse(json) : json; + var skeletonMap = root.skeleton; + if (skeletonMap != null) { + skeletonData.hash = skeletonMap.hash; + skeletonData.version = skeletonMap.spine; + skeletonData.width = skeletonMap.width; + skeletonData.height = skeletonMap.height; + skeletonData.fps = skeletonMap.fps; + skeletonData.imagesPath = skeletonMap.images; + } + if (root.bones) { + for (var i = 0; i < root.bones.length; i++) { + var boneMap = root.bones[i]; + var parent_2 = null; + var parentName = this.getValue(boneMap, "parent", null); + if (parentName != null) { + parent_2 = skeletonData.findBone(parentName); + if (parent_2 == null) + throw new Error("Parent bone not found: " + parentName); + } + var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); + data.length = this.getValue(boneMap, "length", 0) * scale; + data.x = this.getValue(boneMap, "x", 0) * scale; + data.y = this.getValue(boneMap, "y", 0) * scale; + data.rotation = this.getValue(boneMap, "rotation", 0); + data.scaleX = this.getValue(boneMap, "scaleX", 1); + data.scaleY = this.getValue(boneMap, "scaleY", 1); + data.shearX = this.getValue(boneMap, "shearX", 0); + data.shearY = this.getValue(boneMap, "shearY", 0); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); + skeletonData.bones.push(data); + } + } + if (root.slots) { + for (var i = 0; i < root.slots.length; i++) { + var slotMap = root.slots[i]; + var slotName = slotMap.name; + var boneName = slotMap.bone; + var boneData = skeletonData.findBone(boneName); + if (boneData == null) + throw new Error("Slot bone not found: " + boneName); + var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); + var color = this.getValue(slotMap, "color", null); + if (color != null) + data.color.setFromString(color); + var dark = this.getValue(slotMap, "dark", null); + if (dark != null) { + data.darkColor = new spine.Color(1, 1, 1, 1); + data.darkColor.setFromString(dark); + } + data.attachmentName = this.getValue(slotMap, "attachment", null); + data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); + skeletonData.slots.push(data); + } + } + if (root.ik) { + for (var i = 0; i < root.ik.length; i++) { + var constraintMap = root.ik[i]; + var data = new spine.IkConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("IK bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("IK target bone not found: " + targetName); + data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; + data.mix = this.getValue(constraintMap, "mix", 1); + skeletonData.ikConstraints.push(data); + } + } + if (root.transform) { + for (var i = 0; i < root.transform.length; i++) { + var constraintMap = root.transform[i]; + var data = new spine.TransformConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("Transform constraint target bone not found: " + targetName); + data.local = this.getValue(constraintMap, "local", false); + data.relative = this.getValue(constraintMap, "relative", false); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.offsetX = this.getValue(constraintMap, "x", 0) * scale; + data.offsetY = this.getValue(constraintMap, "y", 0) * scale; + data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); + data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); + data.offsetShearY = this.getValue(constraintMap, "shearY", 0); + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); + data.shearMix = this.getValue(constraintMap, "shearMix", 1); + skeletonData.transformConstraints.push(data); + } + } + if (root.path) { + for (var i = 0; i < root.path.length; i++) { + var constraintMap = root.path[i]; + var data = new spine.PathConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findSlot(targetName); + if (data.target == null) + throw new Error("Path target slot not found: " + targetName); + data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); + data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); + data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.position = this.getValue(constraintMap, "position", 0); + if (data.positionMode == spine.PositionMode.Fixed) + data.position *= scale; + data.spacing = this.getValue(constraintMap, "spacing", 0); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + data.spacing *= scale; + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + skeletonData.pathConstraints.push(data); + } + } + if (root.skins) { + for (var skinName in root.skins) { + var skinMap = root.skins[skinName]; + var skin = new spine.Skin(skinName); + for (var slotName in skinMap) { + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + var slotMap = skinMap[slotName]; + for (var entryName in slotMap) { + var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); + if (attachment != null) + skin.addAttachment(slotIndex, entryName, attachment); + } + } + skeletonData.skins.push(skin); + if (skin.name == "default") + skeletonData.defaultSkin = skin; + } + } + for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { + var linkedMesh = this.linkedMeshes[i]; + var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); + if (skin == null) + throw new Error("Skin not found: " + linkedMesh.skin); + var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); + if (parent_3 == null) + throw new Error("Parent mesh not found: " + linkedMesh.parent); + linkedMesh.mesh.setParentMesh(parent_3); + linkedMesh.mesh.updateUVs(); + } + this.linkedMeshes.length = 0; + if (root.events) { + for (var eventName in root.events) { + var eventMap = root.events[eventName]; + var data = new spine.EventData(eventName); + data.intValue = this.getValue(eventMap, "int", 0); + data.floatValue = this.getValue(eventMap, "float", 0); + data.stringValue = this.getValue(eventMap, "string", ""); + skeletonData.events.push(data); + } + } + if (root.animations) { + for (var animationName in root.animations) { + var animationMap = root.animations[animationName]; + this.readAnimation(animationMap, animationName, skeletonData); + } + } + return skeletonData; + }; + SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { + var scale = this.scale; + name = this.getValue(map, "name", name); + var type = this.getValue(map, "type", "region"); + switch (type) { + case "region": { + var path = this.getValue(map, "path", name); + var region = this.attachmentLoader.newRegionAttachment(skin, name, path); + if (region == null) + return null; + region.path = path; + region.x = this.getValue(map, "x", 0) * scale; + region.y = this.getValue(map, "y", 0) * scale; + region.scaleX = this.getValue(map, "scaleX", 1); + region.scaleY = this.getValue(map, "scaleY", 1); + region.rotation = this.getValue(map, "rotation", 0); + region.width = map.width * scale; + region.height = map.height * scale; + var color = this.getValue(map, "color", null); + if (color != null) + region.color.setFromString(color); + region.updateOffset(); + return region; + } + case "boundingbox": { + var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); + if (box == null) + return null; + this.readVertices(map, box, map.vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + box.color.setFromString(color); + return box; + } + case "mesh": + case "linkedmesh": { + var path = this.getValue(map, "path", name); + var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); + if (mesh == null) + return null; + mesh.path = path; + var color = this.getValue(map, "color", null); + if (color != null) + mesh.color.setFromString(color); + var parent_4 = this.getValue(map, "parent", null); + if (parent_4 != null) { + mesh.inheritDeform = this.getValue(map, "deform", true); + this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); + return mesh; + } + var uvs = map.uvs; + this.readVertices(map, mesh, uvs.length); + mesh.triangles = map.triangles; + mesh.regionUVs = uvs; + mesh.updateUVs(); + mesh.hullLength = this.getValue(map, "hull", 0) * 2; + return mesh; + } + case "path": { + var path = this.attachmentLoader.newPathAttachment(skin, name); + if (path == null) + return null; + path.closed = this.getValue(map, "closed", false); + path.constantSpeed = this.getValue(map, "constantSpeed", true); + var vertexCount = map.vertexCount; + this.readVertices(map, path, vertexCount << 1); + var lengths = spine.Utils.newArray(vertexCount / 3, 0); + for (var i = 0; i < map.lengths.length; i++) + lengths[i++] = map.lengths[i] * scale; + path.lengths = lengths; + var color = this.getValue(map, "color", null); + if (color != null) + path.color.setFromString(color); + return path; + } + case "point": { + var point = this.attachmentLoader.newPointAttachment(skin, name); + if (point == null) + return null; + point.x = this.getValue(map, "x", 0) * scale; + point.y = this.getValue(map, "y", 0) * scale; + point.rotation = this.getValue(map, "rotation", 0); + var color = this.getValue(map, "color", null); + if (color != null) + point.color.setFromString(color); + return point; + } + case "clipping": { + var clip = this.attachmentLoader.newClippingAttachment(skin, name); + if (clip == null) + return null; + var end = this.getValue(map, "end", null); + if (end != null) { + var slot = skeletonData.findSlot(end); + if (slot == null) + throw new Error("Clipping end slot not found: " + end); + clip.endSlot = slot; + } + var vertexCount = map.vertexCount; + this.readVertices(map, clip, vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + clip.color.setFromString(color); + return clip; + } + } + return null; + }; + SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { + var scale = this.scale; + attachment.worldVerticesLength = verticesLength; + var vertices = map.vertices; + if (verticesLength == vertices.length) { + var scaledVertices = spine.Utils.toFloatArray(vertices); + if (scale != 1) { + for (var i = 0, n = vertices.length; i < n; i++) + scaledVertices[i] *= scale; + } + attachment.vertices = scaledVertices; + return; + } + var weights = new Array(); + var bones = new Array(); + for (var i = 0, n = vertices.length; i < n;) { + var boneCount = vertices[i++]; + bones.push(boneCount); + for (var nn = i + boneCount * 4; i < nn; i += 4) { + bones.push(vertices[i]); + weights.push(vertices[i + 1] * scale); + weights.push(vertices[i + 2] * scale); + weights.push(vertices[i + 3]); + } + } + attachment.bones = bones; + attachment.vertices = spine.Utils.toFloatArray(weights); + }; + SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { + var scale = this.scale; + var timelines = new Array(); + var duration = 0; + if (map.slots) { + for (var slotName in map.slots) { + var slotMap = map.slots[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + if (timelineName == "attachment") { + var timeline = new spine.AttachmentTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + else if (timelineName == "color") { + var timeline = new spine.ColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var color = new spine.Color(); + color.setFromString(valueMap.color); + timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); + } + else if (timelineName == "twoColor") { + var timeline = new spine.TwoColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var light = new spine.Color(); + var dark = new spine.Color(); + light.setFromString(valueMap.light); + dark.setFromString(valueMap.dark); + timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); + } + } + } + if (map.bones) { + for (var boneName in map.bones) { + var boneMap = map.bones[boneName]; + var boneIndex = skeletonData.findBoneIndex(boneName); + if (boneIndex == -1) + throw new Error("Bone not found: " + boneName); + for (var timelineName in boneMap) { + var timelineMap = boneMap[timelineName]; + if (timelineName === "rotate") { + var timeline = new spine.RotateTimeline(timelineMap.length); + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); + } + else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "scale") + timeline = new spine.ScaleTimeline(timelineMap.length); + else if (timelineName === "shear") + timeline = new spine.ShearTimeline(timelineMap.length); + else { + timeline = new spine.TranslateTimeline(timelineMap.length); + timelineScale = scale; + } + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); + timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); + } + } + } + if (map.ik) { + for (var constraintName in map.ik) { + var constraintMap = map.ik[constraintName]; + var constraint = skeletonData.findIkConstraint(constraintName); + var timeline = new spine.IkConstraintTimeline(constraintMap.length); + timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); + } + } + if (map.transform) { + for (var constraintName in map.transform) { + var constraintMap = map.transform[constraintName]; + var constraint = skeletonData.findTransformConstraint(constraintName); + var timeline = new spine.TransformConstraintTimeline(constraintMap.length); + timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); + } + } + if (map.paths) { + for (var constraintName in map.paths) { + var constraintMap = map.paths[constraintName]; + var index = skeletonData.findPathConstraintIndex(constraintName); + if (index == -1) + throw new Error("Path constraint not found: " + constraintName); + var data = skeletonData.pathConstraints[index]; + for (var timelineName in constraintMap) { + var timelineMap = constraintMap[timelineName]; + if (timelineName === "position" || timelineName === "spacing") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "spacing") { + timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + timelineScale = scale; + } + else { + timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); + if (data.positionMode == spine.PositionMode.Fixed) + timelineScale = scale; + } + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); + } + else if (timelineName === "mix") { + var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); + } + } + } + } + if (map.deform) { + for (var deformName in map.deform) { + var deformMap = map.deform[deformName]; + var skin = skeletonData.findSkin(deformName); + if (skin == null) + throw new Error("Skin not found: " + deformName); + for (var slotName in deformMap) { + var slotMap = deformMap[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotMap.name); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + var attachment = skin.getAttachment(slotIndex, timelineName); + if (attachment == null) + throw new Error("Deform attachment not found: " + timelineMap.name); + var weighted = attachment.bones != null; + var vertices = attachment.vertices; + var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; + var timeline = new spine.DeformTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + timeline.attachment = attachment; + var frameIndex = 0; + for (var j = 0; j < timelineMap.length; j++) { + var valueMap = timelineMap[j]; + var deform = void 0; + var verticesValue = this.getValue(valueMap, "vertices", null); + if (verticesValue == null) + deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; + else { + deform = spine.Utils.newFloatArray(deformLength); + var start = this.getValue(valueMap, "offset", 0); + spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); + if (scale != 1) { + for (var i = start, n = i + verticesValue.length; i < n; i++) + deform[i] *= scale; + } + if (!weighted) { + for (var i = 0; i < deformLength; i++) + deform[i] += vertices[i]; + } + } + timeline.setFrame(frameIndex, valueMap.time, deform); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + } + } + } + var drawOrderNode = map.drawOrder; + if (drawOrderNode == null) + drawOrderNode = map.draworder; + if (drawOrderNode != null) { + var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); + var slotCount = skeletonData.slots.length; + var frameIndex = 0; + for (var j = 0; j < drawOrderNode.length; j++) { + var drawOrderMap = drawOrderNode[j]; + var drawOrder = null; + var offsets = this.getValue(drawOrderMap, "offsets", null); + if (offsets != null) { + drawOrder = spine.Utils.newArray(slotCount, -1); + var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); + var originalIndex = 0, unchangedIndex = 0; + for (var i = 0; i < offsets.length; i++) { + var offsetMap = offsets[i]; + var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); + if (slotIndex == -1) + throw new Error("Slot not found: " + offsetMap.slot); + while (originalIndex != slotIndex) + unchanged[unchangedIndex++] = originalIndex++; + drawOrder[originalIndex + offsetMap.offset] = originalIndex++; + } + while (originalIndex < slotCount) + unchanged[unchangedIndex++] = originalIndex++; + for (var i = slotCount - 1; i >= 0; i--) + if (drawOrder[i] == -1) + drawOrder[i] = unchanged[--unchangedIndex]; + } + timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (map.events) { + var timeline = new spine.EventTimeline(map.events.length); + var frameIndex = 0; + for (var i = 0; i < map.events.length; i++) { + var eventMap = map.events[i]; + var eventData = skeletonData.findEvent(eventMap.name); + if (eventData == null) + throw new Error("Event not found: " + eventMap.name); + var event_5 = new spine.Event(eventMap.time, eventData); + event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); + event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); + event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); + timeline.setFrame(frameIndex++, event_5); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (isNaN(duration)) { + throw new Error("Error while parsing animation, duration is NaN"); + } + skeletonData.animations.push(new spine.Animation(name, timelines, duration)); + }; + SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { + if (!map.curve) + return; + if (map.curve === "stepped") + timeline.setStepped(frameIndex); + else if (Object.prototype.toString.call(map.curve) === '[object Array]') { + var curve = map.curve; + timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); + } + }; + SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { + return map[prop] !== undefined ? map[prop] : defaultValue; + }; + SkeletonJson.blendModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.BlendMode.Normal; + if (str == "additive") + return spine.BlendMode.Additive; + if (str == "multiply") + return spine.BlendMode.Multiply; + if (str == "screen") + return spine.BlendMode.Screen; + throw new Error("Unknown blend mode: " + str); + }; + SkeletonJson.positionModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "fixed") + return spine.PositionMode.Fixed; + if (str == "percent") + return spine.PositionMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.spacingModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "length") + return spine.SpacingMode.Length; + if (str == "fixed") + return spine.SpacingMode.Fixed; + if (str == "percent") + return spine.SpacingMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.rotateModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "tangent") + return spine.RotateMode.Tangent; + if (str == "chain") + return spine.RotateMode.Chain; + if (str == "chainscale") + return spine.RotateMode.ChainScale; + throw new Error("Unknown rotate mode: " + str); + }; + SkeletonJson.transformModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.TransformMode.Normal; + if (str == "onlytranslation") + return spine.TransformMode.OnlyTranslation; + if (str == "norotationorreflection") + return spine.TransformMode.NoRotationOrReflection; + if (str == "noscale") + return spine.TransformMode.NoScale; + if (str == "noscaleorreflection") + return spine.TransformMode.NoScaleOrReflection; + throw new Error("Unknown transform mode: " + str); + }; + return SkeletonJson; + }()); + spine.SkeletonJson = SkeletonJson; + var LinkedMesh = (function () { + function LinkedMesh(mesh, skin, slotIndex, parent) { + this.mesh = mesh; + this.skin = skin; + this.slotIndex = slotIndex; + this.parent = parent; + } + return LinkedMesh; + }()); })(spine || (spine = {})); var spine; (function (spine) { - var Skin = (function () { - function Skin(name) { - this.attachments = new Array(); - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - Skin.prototype.addAttachment = function (slotIndex, name, attachment) { - if (attachment == null) - throw new Error("attachment cannot be null."); - var attachments = this.attachments; - if (slotIndex >= attachments.length) - attachments.length = slotIndex + 1; - if (!attachments[slotIndex]) - attachments[slotIndex] = {}; - attachments[slotIndex][name] = attachment; - }; - Skin.prototype.getAttachment = function (slotIndex, name) { - var dictionary = this.attachments[slotIndex]; - return dictionary ? dictionary[name] : null; - }; - Skin.prototype.attachAll = function (skeleton, oldSkin) { - var slotIndex = 0; - for (var i = 0; i < skeleton.slots.length; i++) { - var slot = skeleton.slots[i]; - var slotAttachment = slot.getAttachment(); - if (slotAttachment && slotIndex < oldSkin.attachments.length) { - var dictionary = oldSkin.attachments[slotIndex]; - for (var key in dictionary) { - var skinAttachment = dictionary[key]; - if (slotAttachment == skinAttachment) { - var attachment = this.getAttachment(slotIndex, key); - if (attachment != null) - slot.setAttachment(attachment); - break; - } - } - } - slotIndex++; - } - }; - return Skin; - }()); - spine.Skin = Skin; + var Skin = (function () { + function Skin(name) { + this.attachments = new Array(); + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + Skin.prototype.addAttachment = function (slotIndex, name, attachment) { + if (attachment == null) + throw new Error("attachment cannot be null."); + var attachments = this.attachments; + if (slotIndex >= attachments.length) + attachments.length = slotIndex + 1; + if (!attachments[slotIndex]) + attachments[slotIndex] = {}; + attachments[slotIndex][name] = attachment; + }; + Skin.prototype.getAttachment = function (slotIndex, name) { + var dictionary = this.attachments[slotIndex]; + return dictionary ? dictionary[name] : null; + }; + Skin.prototype.attachAll = function (skeleton, oldSkin) { + var slotIndex = 0; + for (var i = 0; i < skeleton.slots.length; i++) { + var slot = skeleton.slots[i]; + var slotAttachment = slot.getAttachment(); + if (slotAttachment && slotIndex < oldSkin.attachments.length) { + var dictionary = oldSkin.attachments[slotIndex]; + for (var key in dictionary) { + var skinAttachment = dictionary[key]; + if (slotAttachment == skinAttachment) { + var attachment = this.getAttachment(slotIndex, key); + if (attachment != null) + slot.setAttachment(attachment); + break; + } + } + } + slotIndex++; + } + }; + return Skin; + }()); + spine.Skin = Skin; })(spine || (spine = {})); var spine; (function (spine) { - var Slot = (function () { - function Slot(data, bone) { - this.attachmentVertices = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (bone == null) - throw new Error("bone cannot be null."); - this.data = data; - this.bone = bone; - this.color = new spine.Color(); - this.darkColor = data.darkColor == null ? null : new spine.Color(); - this.setToSetupPose(); - } - Slot.prototype.getAttachment = function () { - return this.attachment; - }; - Slot.prototype.setAttachment = function (attachment) { - if (this.attachment == attachment) - return; - this.attachment = attachment; - this.attachmentTime = this.bone.skeleton.time; - this.attachmentVertices.length = 0; - }; - Slot.prototype.setAttachmentTime = function (time) { - this.attachmentTime = this.bone.skeleton.time - time; - }; - Slot.prototype.getAttachmentTime = function () { - return this.bone.skeleton.time - this.attachmentTime; - }; - Slot.prototype.setToSetupPose = function () { - this.color.setFromColor(this.data.color); - if (this.darkColor != null) - this.darkColor.setFromColor(this.data.darkColor); - if (this.data.attachmentName == null) - this.attachment = null; - else { - this.attachment = null; - this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); - } - }; - return Slot; - }()); - spine.Slot = Slot; + var Slot = (function () { + function Slot(data, bone) { + this.attachmentVertices = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (bone == null) + throw new Error("bone cannot be null."); + this.data = data; + this.bone = bone; + this.color = new spine.Color(); + this.darkColor = data.darkColor == null ? null : new spine.Color(); + this.setToSetupPose(); + } + Slot.prototype.getAttachment = function () { + return this.attachment; + }; + Slot.prototype.setAttachment = function (attachment) { + if (this.attachment == attachment) + return; + this.attachment = attachment; + this.attachmentTime = this.bone.skeleton.time; + this.attachmentVertices.length = 0; + }; + Slot.prototype.setAttachmentTime = function (time) { + this.attachmentTime = this.bone.skeleton.time - time; + }; + Slot.prototype.getAttachmentTime = function () { + return this.bone.skeleton.time - this.attachmentTime; + }; + Slot.prototype.setToSetupPose = function () { + this.color.setFromColor(this.data.color); + if (this.darkColor != null) + this.darkColor.setFromColor(this.data.darkColor); + if (this.data.attachmentName == null) + this.attachment = null; + else { + this.attachment = null; + this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); + } + }; + return Slot; + }()); + spine.Slot = Slot; })(spine || (spine = {})); var spine; (function (spine) { - var SlotData = (function () { - function SlotData(index, name, boneData) { - this.color = new spine.Color(1, 1, 1, 1); - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - if (boneData == null) - throw new Error("boneData cannot be null."); - this.index = index; - this.name = name; - this.boneData = boneData; - } - return SlotData; - }()); - spine.SlotData = SlotData; + var SlotData = (function () { + function SlotData(index, name, boneData) { + this.color = new spine.Color(1, 1, 1, 1); + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + if (boneData == null) + throw new Error("boneData cannot be null."); + this.index = index; + this.name = name; + this.boneData = boneData; + } + return SlotData; + }()); + spine.SlotData = SlotData; })(spine || (spine = {})); var spine; (function (spine) { - var TextureAtlas = (function () { - function TextureAtlas(atlasText, textureLoader) { - this.pages = new Array(); - this.regions = new Array(); - this.load(atlasText, textureLoader); - } - TextureAtlas.prototype.load = function (atlasText, textureLoader) { - if (textureLoader == null) - throw new Error("textureLoader cannot be null."); - var reader = new TextureAtlasReader(atlasText); - var tuple = new Array(4); - var page = null; - while (true) { - var line = reader.readLine(); - if (line == null) - break; - line = line.trim(); - if (line.length == 0) - page = null; - else if (!page) { - page = new TextureAtlasPage(); - page.name = line; - if (reader.readTuple(tuple) == 2) { - page.width = parseInt(tuple[0]); - page.height = parseInt(tuple[1]); - reader.readTuple(tuple); - } - reader.readTuple(tuple); - page.minFilter = spine.Texture.filterFromString(tuple[0]); - page.magFilter = spine.Texture.filterFromString(tuple[1]); - var direction = reader.readValue(); - page.uWrap = spine.TextureWrap.ClampToEdge; - page.vWrap = spine.TextureWrap.ClampToEdge; - if (direction == "x") - page.uWrap = spine.TextureWrap.Repeat; - else if (direction == "y") - page.vWrap = spine.TextureWrap.Repeat; - else if (direction == "xy") - page.uWrap = page.vWrap = spine.TextureWrap.Repeat; - page.texture = textureLoader(line); - page.texture.setFilters(page.minFilter, page.magFilter); - page.texture.setWraps(page.uWrap, page.vWrap); - page.width = page.texture.getImage().width; - page.height = page.texture.getImage().height; - this.pages.push(page); - } - else { - var region = new TextureAtlasRegion(); - region.name = line; - region.page = page; - region.rotate = reader.readValue() == "true"; - reader.readTuple(tuple); - var x = parseInt(tuple[0]); - var y = parseInt(tuple[1]); - reader.readTuple(tuple); - var width = parseInt(tuple[0]); - var height = parseInt(tuple[1]); - region.u = x / page.width; - region.v = y / page.height; - if (region.rotate) { - region.u2 = (x + height) / page.width; - region.v2 = (y + width) / page.height; - } - else { - region.u2 = (x + width) / page.width; - region.v2 = (y + height) / page.height; - } - region.x = x; - region.y = y; - region.width = Math.abs(width); - region.height = Math.abs(height); - if (reader.readTuple(tuple) == 4) { - if (reader.readTuple(tuple) == 4) { - reader.readTuple(tuple); - } - } - region.originalWidth = parseInt(tuple[0]); - region.originalHeight = parseInt(tuple[1]); - reader.readTuple(tuple); - region.offsetX = parseInt(tuple[0]); - region.offsetY = parseInt(tuple[1]); - region.index = parseInt(reader.readValue()); - region.texture = page.texture; - this.regions.push(region); - } - } - }; - TextureAtlas.prototype.findRegion = function (name) { - for (var i = 0; i < this.regions.length; i++) { - if (this.regions[i].name == name) { - return this.regions[i]; - } - } - return null; - }; - TextureAtlas.prototype.dispose = function () { - for (var i = 0; i < this.pages.length; i++) { - this.pages[i].texture.dispose(); - } - }; - return TextureAtlas; - }()); - spine.TextureAtlas = TextureAtlas; - var TextureAtlasReader = (function () { - function TextureAtlasReader(text) { - this.index = 0; - this.lines = text.split(/\r\n|\r|\n/); - } - TextureAtlasReader.prototype.readLine = function () { - if (this.index >= this.lines.length) - return null; - return this.lines[this.index++]; - }; - TextureAtlasReader.prototype.readValue = function () { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - return line.substring(colon + 1).trim(); - }; - TextureAtlasReader.prototype.readTuple = function (tuple) { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - var i = 0, lastMatch = colon + 1; - for (; i < 3; i++) { - var comma = line.indexOf(",", lastMatch); - if (comma == -1) - break; - tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); - lastMatch = comma + 1; - } - tuple[i] = line.substring(lastMatch).trim(); - return i + 1; - }; - return TextureAtlasReader; - }()); - var TextureAtlasPage = (function () { - function TextureAtlasPage() { - } - return TextureAtlasPage; - }()); - spine.TextureAtlasPage = TextureAtlasPage; - var TextureAtlasRegion = (function (_super) { - __extends(TextureAtlasRegion, _super); - function TextureAtlasRegion() { - _super.apply(this, arguments); - } - return TextureAtlasRegion; - }(spine.TextureRegion)); - spine.TextureAtlasRegion = TextureAtlasRegion; + var TextureAtlas = (function () { + function TextureAtlas(atlasText, textureLoader) { + this.pages = new Array(); + this.regions = new Array(); + this.load(atlasText, textureLoader); + } + TextureAtlas.prototype.load = function (atlasText, textureLoader) { + if (textureLoader == null) + throw new Error("textureLoader cannot be null."); + var reader = new TextureAtlasReader(atlasText); + var tuple = new Array(4); + var page = null; + while (true) { + var line = reader.readLine(); + if (line == null) + break; + line = line.trim(); + if (line.length == 0) + page = null; + else if (!page) { + page = new TextureAtlasPage(); + page.name = line; + if (reader.readTuple(tuple) == 2) { + page.width = parseInt(tuple[0]); + page.height = parseInt(tuple[1]); + reader.readTuple(tuple); + } + reader.readTuple(tuple); + page.minFilter = spine.Texture.filterFromString(tuple[0]); + page.magFilter = spine.Texture.filterFromString(tuple[1]); + var direction = reader.readValue(); + page.uWrap = spine.TextureWrap.ClampToEdge; + page.vWrap = spine.TextureWrap.ClampToEdge; + if (direction == "x") + page.uWrap = spine.TextureWrap.Repeat; + else if (direction == "y") + page.vWrap = spine.TextureWrap.Repeat; + else if (direction == "xy") + page.uWrap = page.vWrap = spine.TextureWrap.Repeat; + page.texture = textureLoader(line); + page.texture.setFilters(page.minFilter, page.magFilter); + page.texture.setWraps(page.uWrap, page.vWrap); + page.width = page.texture.getImage().width; + page.height = page.texture.getImage().height; + this.pages.push(page); + } + else { + var region = new TextureAtlasRegion(); + region.name = line; + region.page = page; + region.rotate = reader.readValue() == "true"; + reader.readTuple(tuple); + var x = parseInt(tuple[0]); + var y = parseInt(tuple[1]); + reader.readTuple(tuple); + var width = parseInt(tuple[0]); + var height = parseInt(tuple[1]); + region.u = x / page.width; + region.v = y / page.height; + if (region.rotate) { + region.u2 = (x + height) / page.width; + region.v2 = (y + width) / page.height; + } + else { + region.u2 = (x + width) / page.width; + region.v2 = (y + height) / page.height; + } + region.x = x; + region.y = y; + region.width = Math.abs(width); + region.height = Math.abs(height); + if (reader.readTuple(tuple) == 4) { + if (reader.readTuple(tuple) == 4) { + reader.readTuple(tuple); + } + } + region.originalWidth = parseInt(tuple[0]); + region.originalHeight = parseInt(tuple[1]); + reader.readTuple(tuple); + region.offsetX = parseInt(tuple[0]); + region.offsetY = parseInt(tuple[1]); + region.index = parseInt(reader.readValue()); + region.texture = page.texture; + this.regions.push(region); + } + } + }; + TextureAtlas.prototype.findRegion = function (name) { + for (var i = 0; i < this.regions.length; i++) { + if (this.regions[i].name == name) { + return this.regions[i]; + } + } + return null; + }; + TextureAtlas.prototype.dispose = function () { + for (var i = 0; i < this.pages.length; i++) { + this.pages[i].texture.dispose(); + } + }; + return TextureAtlas; + }()); + spine.TextureAtlas = TextureAtlas; + var TextureAtlasReader = (function () { + function TextureAtlasReader(text) { + this.index = 0; + this.lines = text.split(/\r\n|\r|\n/); + } + TextureAtlasReader.prototype.readLine = function () { + if (this.index >= this.lines.length) + return null; + return this.lines[this.index++]; + }; + TextureAtlasReader.prototype.readValue = function () { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + return line.substring(colon + 1).trim(); + }; + TextureAtlasReader.prototype.readTuple = function (tuple) { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + var i = 0, lastMatch = colon + 1; + for (; i < 3; i++) { + var comma = line.indexOf(",", lastMatch); + if (comma == -1) + break; + tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); + lastMatch = comma + 1; + } + tuple[i] = line.substring(lastMatch).trim(); + return i + 1; + }; + return TextureAtlasReader; + }()); + var TextureAtlasPage = (function () { + function TextureAtlasPage() { + } + return TextureAtlasPage; + }()); + spine.TextureAtlasPage = TextureAtlasPage; + var TextureAtlasRegion = (function (_super) { + __extends(TextureAtlasRegion, _super); + function TextureAtlasRegion() { + _super.apply(this, arguments); + } + return TextureAtlasRegion; + }(spine.TextureRegion)); + spine.TextureAtlasRegion = TextureAtlasRegion; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraint = (function () { - function TransformConstraint(data, skeleton) { - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.temp = new spine.Vector2(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - this.scaleMix = data.scaleMix; - this.shearMix = data.shearMix; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - TransformConstraint.prototype.apply = function () { - this.update(); - }; - TransformConstraint.prototype.update = function () { - if (this.data.local) { - if (this.data.relative) - this.applyRelativeLocal(); - else - this.applyAbsoluteLocal(); - } - else { - if (this.data.relative) - this.applyRelativeWorld(); - else - this.applyAbsoluteWorld(); - } - }; - TransformConstraint.prototype.applyAbsoluteWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect; - var offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += (temp.x - bone.worldX) * translateMix; - bone.worldY += (temp.y - bone.worldY) * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); - var ts = Math.sqrt(ta * ta + tc * tc); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; - bone.a *= s; - bone.c *= s; - s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); - ts = Math.sqrt(tb * tb + td * td); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var b = bone.b, d = bone.d; - var by = Math.atan2(d, b); - var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r = by + (r + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyRelativeWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += temp.x * translateMix; - bone.worldY += temp.y * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; - bone.a *= s; - bone.c *= s; - s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var r = Math.atan2(td, tb) - Math.atan2(tc, ta); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - var b = bone.b, d = bone.d; - r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyAbsoluteLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) { - var r = target.arotation - rotation + this.data.offsetRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - rotation += r * rotateMix; - } - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax - x + this.data.offsetX) * translateMix; - y += (target.ay - y + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; - if (scaleY > 0.00001) - scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; - } - var shearY = bone.ashearY; - if (shearMix > 0) { - var r = target.ashearY - shearY + this.data.offsetShearY; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.shearY += r * shearMix; - } - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.applyRelativeLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) - rotation += (target.arotation + this.data.offsetRotation) * rotateMix; - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax + this.data.offsetX) * translateMix; - y += (target.ay + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; - if (scaleY > 0.00001) - scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; - } - var shearY = bone.ashearY; - if (shearMix > 0) - shearY += (target.ashearY + this.data.offsetShearY) * shearMix; - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.getOrder = function () { - return this.data.order; - }; - return TransformConstraint; - }()); - spine.TransformConstraint = TransformConstraint; + var TransformConstraint = (function () { + function TransformConstraint(data, skeleton) { + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.temp = new spine.Vector2(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + this.scaleMix = data.scaleMix; + this.shearMix = data.shearMix; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + TransformConstraint.prototype.apply = function () { + this.update(); + }; + TransformConstraint.prototype.update = function () { + if (this.data.local) { + if (this.data.relative) + this.applyRelativeLocal(); + else + this.applyAbsoluteLocal(); + } + else { + if (this.data.relative) + this.applyRelativeWorld(); + else + this.applyAbsoluteWorld(); + } + }; + TransformConstraint.prototype.applyAbsoluteWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect; + var offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += (temp.x - bone.worldX) * translateMix; + bone.worldY += (temp.y - bone.worldY) * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var ts = Math.sqrt(ta * ta + tc * tc); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; + bone.a *= s; + bone.c *= s; + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + ts = Math.sqrt(tb * tb + td * td); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var b = bone.b, d = bone.d; + var by = Math.atan2(d, b); + var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r = by + (r + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyRelativeWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += temp.x * translateMix; + bone.worldY += temp.y * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; + bone.a *= s; + bone.c *= s; + s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var r = Math.atan2(td, tb) - Math.atan2(tc, ta); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + var b = bone.b, d = bone.d; + r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyAbsoluteLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) { + var r = target.arotation - rotation + this.data.offsetRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + rotation += r * rotateMix; + } + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax - x + this.data.offsetX) * translateMix; + y += (target.ay - y + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; + if (scaleY > 0.00001) + scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; + } + var shearY = bone.ashearY; + if (shearMix > 0) { + var r = target.ashearY - shearY + this.data.offsetShearY; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.shearY += r * shearMix; + } + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.applyRelativeLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) + rotation += (target.arotation + this.data.offsetRotation) * rotateMix; + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax + this.data.offsetX) * translateMix; + y += (target.ay + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; + if (scaleY > 0.00001) + scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; + } + var shearY = bone.ashearY; + if (shearMix > 0) + shearY += (target.ashearY + this.data.offsetShearY) * shearMix; + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.getOrder = function () { + return this.data.order; + }; + return TransformConstraint; + }()); + spine.TransformConstraint = TransformConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraintData = (function () { - function TransformConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.offsetRotation = 0; - this.offsetX = 0; - this.offsetY = 0; - this.offsetScaleX = 0; - this.offsetScaleY = 0; - this.offsetShearY = 0; - this.relative = false; - this.local = false; - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return TransformConstraintData; - }()); - spine.TransformConstraintData = TransformConstraintData; + var TransformConstraintData = (function () { + function TransformConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.offsetRotation = 0; + this.offsetX = 0; + this.offsetY = 0; + this.offsetScaleX = 0; + this.offsetScaleY = 0; + this.offsetShearY = 0; + this.relative = false; + this.local = false; + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return TransformConstraintData; + }()); + spine.TransformConstraintData = TransformConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var Triangulator = (function () { - function Triangulator() { - this.convexPolygons = new Array(); - this.convexPolygonsIndices = new Array(); - this.indicesArray = new Array(); - this.isConcaveArray = new Array(); - this.triangles = new Array(); - this.polygonPool = new spine.Pool(function () { - return new Array(); - }); - this.polygonIndicesPool = new spine.Pool(function () { - return new Array(); - }); - } - Triangulator.prototype.triangulate = function (verticesArray) { - var vertices = verticesArray; - var vertexCount = verticesArray.length >> 1; - var indices = this.indicesArray; - indices.length = 0; - for (var i = 0; i < vertexCount; i++) - indices[i] = i; - var isConcave = this.isConcaveArray; - isConcave.length = 0; - for (var i = 0, n = vertexCount; i < n; ++i) - isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); - var triangles = this.triangles; - triangles.length = 0; - while (vertexCount > 3) { - var previous = vertexCount - 1, i = 0, next = 1; - while (true) { - outer: if (!isConcave[i]) { - var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; - var p1x = vertices[p1], p1y = vertices[p1 + 1]; - var p2x = vertices[p2], p2y = vertices[p2 + 1]; - var p3x = vertices[p3], p3y = vertices[p3 + 1]; - for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { - if (!isConcave[ii]) - continue; - var v = indices[ii] << 1; - var vx = vertices[v], vy = vertices[v + 1]; - if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { - if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { - if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) - break outer; - } - } - } - break; - } - if (next == 0) { - do { - if (!isConcave[i]) - break; - i--; - } while (i > 0); - break; - } - previous = i; - i = next; - next = (next + 1) % vertexCount; - } - triangles.push(indices[(vertexCount + i - 1) % vertexCount]); - triangles.push(indices[i]); - triangles.push(indices[(i + 1) % vertexCount]); - indices.splice(i, 1); - isConcave.splice(i, 1); - vertexCount--; - var previousIndex = (vertexCount + i - 1) % vertexCount; - var nextIndex = i == vertexCount ? 0 : i; - isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); - isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); - } - if (vertexCount == 3) { - triangles.push(indices[2]); - triangles.push(indices[0]); - triangles.push(indices[1]); - } - return triangles; - }; - Triangulator.prototype.decompose = function (verticesArray, triangles) { - var vertices = verticesArray; - var convexPolygons = this.convexPolygons; - this.polygonPool.freeAll(convexPolygons); - convexPolygons.length = 0; - var convexPolygonsIndices = this.convexPolygonsIndices; - this.polygonIndicesPool.freeAll(convexPolygonsIndices); - convexPolygonsIndices.length = 0; - var polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - var polygon = this.polygonPool.obtain(); - polygon.length = 0; - var fanBaseIndex = -1, lastWinding = 0; - for (var i = 0, n = triangles.length; i < n; i += 3) { - var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; - var x1 = vertices[t1], y1 = vertices[t1 + 1]; - var x2 = vertices[t2], y2 = vertices[t2 + 1]; - var x3 = vertices[t3], y3 = vertices[t3 + 1]; - var merged = false; - if (fanBaseIndex == t1) { - var o = polygon.length - 4; - var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); - var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); - if (winding1 == lastWinding && winding2 == lastWinding) { - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(t3); - merged = true; - } - } - if (!merged) { - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - else { - this.polygonPool.free(polygon); - this.polygonIndicesPool.free(polygonIndices); - } - polygon = this.polygonPool.obtain(); - polygon.length = 0; - polygon.push(x1); - polygon.push(y1); - polygon.push(x2); - polygon.push(y2); - polygon.push(x3); - polygon.push(y3); - polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - polygonIndices.push(t1); - polygonIndices.push(t2); - polygonIndices.push(t3); - lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); - fanBaseIndex = t1; - } - } - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - for (var i = 0, n = convexPolygons.length; i < n; i++) { - polygonIndices = convexPolygonsIndices[i]; - if (polygonIndices.length == 0) - continue; - var firstIndex = polygonIndices[0]; - var lastIndex = polygonIndices[polygonIndices.length - 1]; - polygon = convexPolygons[i]; - var o = polygon.length - 4; - var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; - var prevX = polygon[o + 2], prevY = polygon[o + 3]; - var firstX = polygon[0], firstY = polygon[1]; - var secondX = polygon[2], secondY = polygon[3]; - var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); - for (var ii = 0; ii < n; ii++) { - if (ii == i) - continue; - var otherIndices = convexPolygonsIndices[ii]; - if (otherIndices.length != 3) - continue; - var otherFirstIndex = otherIndices[0]; - var otherSecondIndex = otherIndices[1]; - var otherLastIndex = otherIndices[2]; - var otherPoly = convexPolygons[ii]; - var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; - if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) - continue; - var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); - var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); - if (winding1 == winding && winding2 == winding) { - otherPoly.length = 0; - otherIndices.length = 0; - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(otherLastIndex); - prevPrevX = prevX; - prevPrevY = prevY; - prevX = x3; - prevY = y3; - ii = 0; - } - } - } - for (var i = convexPolygons.length - 1; i >= 0; i--) { - polygon = convexPolygons[i]; - if (polygon.length == 0) { - convexPolygons.splice(i, 1); - this.polygonPool.free(polygon); - polygonIndices = convexPolygonsIndices[i]; - convexPolygonsIndices.splice(i, 1); - this.polygonIndicesPool.free(polygonIndices); - } - } - return convexPolygons; - }; - Triangulator.isConcave = function (index, vertexCount, vertices, indices) { - var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; - var current = indices[index] << 1; - var next = indices[(index + 1) % vertexCount] << 1; - return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); - }; - Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { - return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; - }; - Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { - var px = p2x - p1x, py = p2y - p1y; - return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; - }; - return Triangulator; - }()); - spine.Triangulator = Triangulator; + var Triangulator = (function () { + function Triangulator() { + this.convexPolygons = new Array(); + this.convexPolygonsIndices = new Array(); + this.indicesArray = new Array(); + this.isConcaveArray = new Array(); + this.triangles = new Array(); + this.polygonPool = new spine.Pool(function () { + return new Array(); + }); + this.polygonIndicesPool = new spine.Pool(function () { + return new Array(); + }); + } + Triangulator.prototype.triangulate = function (verticesArray) { + var vertices = verticesArray; + var vertexCount = verticesArray.length >> 1; + var indices = this.indicesArray; + indices.length = 0; + for (var i = 0; i < vertexCount; i++) + indices[i] = i; + var isConcave = this.isConcaveArray; + isConcave.length = 0; + for (var i = 0, n = vertexCount; i < n; ++i) + isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); + var triangles = this.triangles; + triangles.length = 0; + while (vertexCount > 3) { + var previous = vertexCount - 1, i = 0, next = 1; + while (true) { + outer: if (!isConcave[i]) { + var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; + var p1x = vertices[p1], p1y = vertices[p1 + 1]; + var p2x = vertices[p2], p2y = vertices[p2 + 1]; + var p3x = vertices[p3], p3y = vertices[p3 + 1]; + for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { + if (!isConcave[ii]) + continue; + var v = indices[ii] << 1; + var vx = vertices[v], vy = vertices[v + 1]; + if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { + if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { + if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) + break outer; + } + } + } + break; + } + if (next == 0) { + do { + if (!isConcave[i]) + break; + i--; + } while (i > 0); + break; + } + previous = i; + i = next; + next = (next + 1) % vertexCount; + } + triangles.push(indices[(vertexCount + i - 1) % vertexCount]); + triangles.push(indices[i]); + triangles.push(indices[(i + 1) % vertexCount]); + indices.splice(i, 1); + isConcave.splice(i, 1); + vertexCount--; + var previousIndex = (vertexCount + i - 1) % vertexCount; + var nextIndex = i == vertexCount ? 0 : i; + isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); + isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); + } + if (vertexCount == 3) { + triangles.push(indices[2]); + triangles.push(indices[0]); + triangles.push(indices[1]); + } + return triangles; + }; + Triangulator.prototype.decompose = function (verticesArray, triangles) { + var vertices = verticesArray; + var convexPolygons = this.convexPolygons; + this.polygonPool.freeAll(convexPolygons); + convexPolygons.length = 0; + var convexPolygonsIndices = this.convexPolygonsIndices; + this.polygonIndicesPool.freeAll(convexPolygonsIndices); + convexPolygonsIndices.length = 0; + var polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + var polygon = this.polygonPool.obtain(); + polygon.length = 0; + var fanBaseIndex = -1, lastWinding = 0; + for (var i = 0, n = triangles.length; i < n; i += 3) { + var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; + var x1 = vertices[t1], y1 = vertices[t1 + 1]; + var x2 = vertices[t2], y2 = vertices[t2 + 1]; + var x3 = vertices[t3], y3 = vertices[t3 + 1]; + var merged = false; + if (fanBaseIndex == t1) { + var o = polygon.length - 4; + var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); + var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); + if (winding1 == lastWinding && winding2 == lastWinding) { + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(t3); + merged = true; + } + } + if (!merged) { + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + else { + this.polygonPool.free(polygon); + this.polygonIndicesPool.free(polygonIndices); + } + polygon = this.polygonPool.obtain(); + polygon.length = 0; + polygon.push(x1); + polygon.push(y1); + polygon.push(x2); + polygon.push(y2); + polygon.push(x3); + polygon.push(y3); + polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + polygonIndices.push(t1); + polygonIndices.push(t2); + polygonIndices.push(t3); + lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); + fanBaseIndex = t1; + } + } + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + for (var i = 0, n = convexPolygons.length; i < n; i++) { + polygonIndices = convexPolygonsIndices[i]; + if (polygonIndices.length == 0) + continue; + var firstIndex = polygonIndices[0]; + var lastIndex = polygonIndices[polygonIndices.length - 1]; + polygon = convexPolygons[i]; + var o = polygon.length - 4; + var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; + var prevX = polygon[o + 2], prevY = polygon[o + 3]; + var firstX = polygon[0], firstY = polygon[1]; + var secondX = polygon[2], secondY = polygon[3]; + var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); + for (var ii = 0; ii < n; ii++) { + if (ii == i) + continue; + var otherIndices = convexPolygonsIndices[ii]; + if (otherIndices.length != 3) + continue; + var otherFirstIndex = otherIndices[0]; + var otherSecondIndex = otherIndices[1]; + var otherLastIndex = otherIndices[2]; + var otherPoly = convexPolygons[ii]; + var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; + if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) + continue; + var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); + var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); + if (winding1 == winding && winding2 == winding) { + otherPoly.length = 0; + otherIndices.length = 0; + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(otherLastIndex); + prevPrevX = prevX; + prevPrevY = prevY; + prevX = x3; + prevY = y3; + ii = 0; + } + } + } + for (var i = convexPolygons.length - 1; i >= 0; i--) { + polygon = convexPolygons[i]; + if (polygon.length == 0) { + convexPolygons.splice(i, 1); + this.polygonPool.free(polygon); + polygonIndices = convexPolygonsIndices[i]; + convexPolygonsIndices.splice(i, 1); + this.polygonIndicesPool.free(polygonIndices); + } + } + return convexPolygons; + }; + Triangulator.isConcave = function (index, vertexCount, vertices, indices) { + var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; + var current = indices[index] << 1; + var next = indices[(index + 1) % vertexCount] << 1; + return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); + }; + Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { + return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; + }; + Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { + var px = p2x - p1x, py = p2y - p1y; + return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; + }; + return Triangulator; + }()); + spine.Triangulator = Triangulator; })(spine || (spine = {})); var spine; (function (spine) { - var IntSet = (function () { - function IntSet() { - this.array = new Array(); - } - IntSet.prototype.add = function (value) { - var contains = this.contains(value); - this.array[value | 0] = value | 0; - return !contains; - }; - IntSet.prototype.contains = function (value) { - return this.array[value | 0] != undefined; - }; - IntSet.prototype.remove = function (value) { - this.array[value | 0] = undefined; - }; - IntSet.prototype.clear = function () { - this.array.length = 0; - }; - return IntSet; - }()); - spine.IntSet = IntSet; - var Color = (function () { - function Color(r, g, b, a) { - if (r === void 0) { r = 0; } - if (g === void 0) { g = 0; } - if (b === void 0) { b = 0; } - if (a === void 0) { a = 0; } - this.r = r; - this.g = g; - this.b = b; - this.a = a; - } - Color.prototype.set = function (r, g, b, a) { - this.r = r; - this.g = g; - this.b = b; - this.a = a; - this.clamp(); - return this; - }; - Color.prototype.setFromColor = function (c) { - this.r = c.r; - this.g = c.g; - this.b = c.b; - this.a = c.a; - return this; - }; - Color.prototype.setFromString = function (hex) { - hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; - this.r = parseInt(hex.substr(0, 2), 16) / 255.0; - this.g = parseInt(hex.substr(2, 2), 16) / 255.0; - this.b = parseInt(hex.substr(4, 2), 16) / 255.0; - this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; - return this; - }; - Color.prototype.add = function (r, g, b, a) { - this.r += r; - this.g += g; - this.b += b; - this.a += a; - this.clamp(); - return this; - }; - Color.prototype.clamp = function () { - if (this.r < 0) - this.r = 0; - else if (this.r > 1) - this.r = 1; - if (this.g < 0) - this.g = 0; - else if (this.g > 1) - this.g = 1; - if (this.b < 0) - this.b = 0; - else if (this.b > 1) - this.b = 1; - if (this.a < 0) - this.a = 0; - else if (this.a > 1) - this.a = 1; - return this; - }; - Color.WHITE = new Color(1, 1, 1, 1); - Color.RED = new Color(1, 0, 0, 1); - Color.GREEN = new Color(0, 1, 0, 1); - Color.BLUE = new Color(0, 0, 1, 1); - Color.MAGENTA = new Color(1, 0, 1, 1); - return Color; - }()); - spine.Color = Color; - var MathUtils = (function () { - function MathUtils() { - } - MathUtils.clamp = function (value, min, max) { - if (value < min) - return min; - if (value > max) - return max; - return value; - }; - MathUtils.cosDeg = function (degrees) { - return Math.cos(degrees * MathUtils.degRad); - }; - MathUtils.sinDeg = function (degrees) { - return Math.sin(degrees * MathUtils.degRad); - }; - MathUtils.signum = function (value) { - return value > 0 ? 1 : value < 0 ? -1 : 0; - }; - MathUtils.toInt = function (x) { - return x > 0 ? Math.floor(x) : Math.ceil(x); - }; - MathUtils.cbrt = function (x) { - var y = Math.pow(Math.abs(x), 1 / 3); - return x < 0 ? -y : y; - }; - MathUtils.PI = 3.1415927; - MathUtils.PI2 = MathUtils.PI * 2; - MathUtils.radiansToDegrees = 180 / MathUtils.PI; - MathUtils.radDeg = MathUtils.radiansToDegrees; - MathUtils.degreesToRadians = MathUtils.PI / 180; - MathUtils.degRad = MathUtils.degreesToRadians; - return MathUtils; - }()); - spine.MathUtils = MathUtils; - var Utils = (function () { - function Utils() { - } - Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { - for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { - dest[j] = source[i]; - } - }; - Utils.setArraySize = function (array, size, value) { - if (value === void 0) { value = 0; } - var oldSize = array.length; - if (oldSize == size) - return array; - array.length = size; - if (oldSize < size) { - for (var i = oldSize; i < size; i++) - array[i] = value; - } - return array; - }; - Utils.ensureArrayCapacity = function (array, size, value) { - if (value === void 0) { value = 0; } - if (array.length >= size) - return array; - return Utils.setArraySize(array, size, value); - }; - Utils.newArray = function (size, defaultValue) { - var array = new Array(size); - for (var i = 0; i < size; i++) - array[i] = defaultValue; - return array; - }; - Utils.newFloatArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Float32Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.newShortArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Int16Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.toFloatArray = function (array) { - return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; - }; - Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; - return Utils; - }()); - spine.Utils = Utils; - var DebugUtils = (function () { - function DebugUtils() { - } - DebugUtils.logBones = function (skeleton) { - for (var i = 0; i < skeleton.bones.length; i++) { - var bone = skeleton.bones[i]; - console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); - } - }; - return DebugUtils; - }()); - spine.DebugUtils = DebugUtils; - var Pool = (function () { - function Pool(instantiator) { - this.items = new Array(); - this.instantiator = instantiator; - } - Pool.prototype.obtain = function () { - return this.items.length > 0 ? this.items.pop() : this.instantiator(); - }; - Pool.prototype.free = function (item) { - if (item.reset) - item.reset(); - this.items.push(item); - }; - Pool.prototype.freeAll = function (items) { - for (var i = 0; i < items.length; i++) { - if (items[i].reset) - items[i].reset(); - this.items[i] = items[i]; - } - }; - Pool.prototype.clear = function () { - this.items.length = 0; - }; - return Pool; - }()); - spine.Pool = Pool; - var Vector2 = (function () { - function Vector2(x, y) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - this.x = x; - this.y = y; - } - Vector2.prototype.set = function (x, y) { - this.x = x; - this.y = y; - return this; - }; - Vector2.prototype.length = function () { - var x = this.x; - var y = this.y; - return Math.sqrt(x * x + y * y); - }; - Vector2.prototype.normalize = function () { - var len = this.length(); - if (len != 0) { - this.x /= len; - this.y /= len; - } - return this; - }; - return Vector2; - }()); - spine.Vector2 = Vector2; - var TimeKeeper = (function () { - function TimeKeeper() { - this.maxDelta = 0.064; - this.framesPerSecond = 0; - this.delta = 0; - this.totalTime = 0; - this.lastTime = Date.now() / 1000; - this.frameCount = 0; - this.frameTime = 0; - } - TimeKeeper.prototype.update = function () { - var now = Date.now() / 1000; - this.delta = now - this.lastTime; - this.frameTime += this.delta; - this.totalTime += this.delta; - if (this.delta > this.maxDelta) - this.delta = this.maxDelta; - this.lastTime = now; - this.frameCount++; - if (this.frameTime > 1) { - this.framesPerSecond = this.frameCount / this.frameTime; - this.frameTime = 0; - this.frameCount = 0; - } - }; - return TimeKeeper; - }()); - spine.TimeKeeper = TimeKeeper; - var WindowedMean = (function () { - function WindowedMean(windowSize) { - if (windowSize === void 0) { windowSize = 32; } - this.addedValues = 0; - this.lastValue = 0; - this.mean = 0; - this.dirty = true; - this.values = new Array(windowSize); - } - WindowedMean.prototype.hasEnoughData = function () { - return this.addedValues >= this.values.length; - }; - WindowedMean.prototype.addValue = function (value) { - if (this.addedValues < this.values.length) - this.addedValues++; - this.values[this.lastValue++] = value; - if (this.lastValue > this.values.length - 1) - this.lastValue = 0; - this.dirty = true; - }; - WindowedMean.prototype.getMean = function () { - if (this.hasEnoughData()) { - if (this.dirty) { - var mean = 0; - for (var i = 0; i < this.values.length; i++) { - mean += this.values[i]; - } - this.mean = mean / this.values.length; - this.dirty = false; - } - return this.mean; - } - else { - return 0; - } - }; - return WindowedMean; - }()); - spine.WindowedMean = WindowedMean; + var IntSet = (function () { + function IntSet() { + this.array = new Array(); + } + IntSet.prototype.add = function (value) { + var contains = this.contains(value); + this.array[value | 0] = value | 0; + return !contains; + }; + IntSet.prototype.contains = function (value) { + return this.array[value | 0] != undefined; + }; + IntSet.prototype.remove = function (value) { + this.array[value | 0] = undefined; + }; + IntSet.prototype.clear = function () { + this.array.length = 0; + }; + return IntSet; + }()); + spine.IntSet = IntSet; + var Color = (function () { + function Color(r, g, b, a) { + if (r === void 0) { r = 0; } + if (g === void 0) { g = 0; } + if (b === void 0) { b = 0; } + if (a === void 0) { a = 0; } + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + Color.prototype.set = function (r, g, b, a) { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + this.clamp(); + return this; + }; + Color.prototype.setFromColor = function (c) { + this.r = c.r; + this.g = c.g; + this.b = c.b; + this.a = c.a; + return this; + }; + Color.prototype.setFromString = function (hex) { + hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; + this.r = parseInt(hex.substr(0, 2), 16) / 255.0; + this.g = parseInt(hex.substr(2, 2), 16) / 255.0; + this.b = parseInt(hex.substr(4, 2), 16) / 255.0; + this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; + return this; + }; + Color.prototype.add = function (r, g, b, a) { + this.r += r; + this.g += g; + this.b += b; + this.a += a; + this.clamp(); + return this; + }; + Color.prototype.clamp = function () { + if (this.r < 0) + this.r = 0; + else if (this.r > 1) + this.r = 1; + if (this.g < 0) + this.g = 0; + else if (this.g > 1) + this.g = 1; + if (this.b < 0) + this.b = 0; + else if (this.b > 1) + this.b = 1; + if (this.a < 0) + this.a = 0; + else if (this.a > 1) + this.a = 1; + return this; + }; + Color.WHITE = new Color(1, 1, 1, 1); + Color.RED = new Color(1, 0, 0, 1); + Color.GREEN = new Color(0, 1, 0, 1); + Color.BLUE = new Color(0, 0, 1, 1); + Color.MAGENTA = new Color(1, 0, 1, 1); + return Color; + }()); + spine.Color = Color; + var MathUtils = (function () { + function MathUtils() { + } + MathUtils.clamp = function (value, min, max) { + if (value < min) + return min; + if (value > max) + return max; + return value; + }; + MathUtils.cosDeg = function (degrees) { + return Math.cos(degrees * MathUtils.degRad); + }; + MathUtils.sinDeg = function (degrees) { + return Math.sin(degrees * MathUtils.degRad); + }; + MathUtils.signum = function (value) { + return value > 0 ? 1 : value < 0 ? -1 : 0; + }; + MathUtils.toInt = function (x) { + return x > 0 ? Math.floor(x) : Math.ceil(x); + }; + MathUtils.cbrt = function (x) { + var y = Math.pow(Math.abs(x), 1 / 3); + return x < 0 ? -y : y; + }; + MathUtils.PI = 3.1415927; + MathUtils.PI2 = MathUtils.PI * 2; + MathUtils.radiansToDegrees = 180 / MathUtils.PI; + MathUtils.radDeg = MathUtils.radiansToDegrees; + MathUtils.degreesToRadians = MathUtils.PI / 180; + MathUtils.degRad = MathUtils.degreesToRadians; + return MathUtils; + }()); + spine.MathUtils = MathUtils; + var Utils = (function () { + function Utils() { + } + Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { + for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { + dest[j] = source[i]; + } + }; + Utils.setArraySize = function (array, size, value) { + if (value === void 0) { value = 0; } + var oldSize = array.length; + if (oldSize == size) + return array; + array.length = size; + if (oldSize < size) { + for (var i = oldSize; i < size; i++) + array[i] = value; + } + return array; + }; + Utils.ensureArrayCapacity = function (array, size, value) { + if (value === void 0) { value = 0; } + if (array.length >= size) + return array; + return Utils.setArraySize(array, size, value); + }; + Utils.newArray = function (size, defaultValue) { + var array = new Array(size); + for (var i = 0; i < size; i++) + array[i] = defaultValue; + return array; + }; + Utils.newFloatArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Float32Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.newShortArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Int16Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.toFloatArray = function (array) { + return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; + }; + Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; + return Utils; + }()); + spine.Utils = Utils; + var DebugUtils = (function () { + function DebugUtils() { + } + DebugUtils.logBones = function (skeleton) { + for (var i = 0; i < skeleton.bones.length; i++) { + var bone = skeleton.bones[i]; + console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); + } + }; + return DebugUtils; + }()); + spine.DebugUtils = DebugUtils; + var Pool = (function () { + function Pool(instantiator) { + this.items = new Array(); + this.instantiator = instantiator; + } + Pool.prototype.obtain = function () { + return this.items.length > 0 ? this.items.pop() : this.instantiator(); + }; + Pool.prototype.free = function (item) { + if (item.reset) + item.reset(); + this.items.push(item); + }; + Pool.prototype.freeAll = function (items) { + for (var i = 0; i < items.length; i++) { + if (items[i].reset) + items[i].reset(); + this.items[i] = items[i]; + } + }; + Pool.prototype.clear = function () { + this.items.length = 0; + }; + return Pool; + }()); + spine.Pool = Pool; + var Vector2 = (function () { + function Vector2(x, y) { + if (x === void 0) { x = 0; } + if (y === void 0) { y = 0; } + this.x = x; + this.y = y; + } + Vector2.prototype.set = function (x, y) { + this.x = x; + this.y = y; + return this; + }; + Vector2.prototype.length = function () { + var x = this.x; + var y = this.y; + return Math.sqrt(x * x + y * y); + }; + Vector2.prototype.normalize = function () { + var len = this.length(); + if (len != 0) { + this.x /= len; + this.y /= len; + } + return this; + }; + return Vector2; + }()); + spine.Vector2 = Vector2; + var TimeKeeper = (function () { + function TimeKeeper() { + this.maxDelta = 0.064; + this.framesPerSecond = 0; + this.delta = 0; + this.totalTime = 0; + this.lastTime = Date.now() / 1000; + this.frameCount = 0; + this.frameTime = 0; + } + TimeKeeper.prototype.update = function () { + var now = Date.now() / 1000; + this.delta = now - this.lastTime; + this.frameTime += this.delta; + this.totalTime += this.delta; + if (this.delta > this.maxDelta) + this.delta = this.maxDelta; + this.lastTime = now; + this.frameCount++; + if (this.frameTime > 1) { + this.framesPerSecond = this.frameCount / this.frameTime; + this.frameTime = 0; + this.frameCount = 0; + } + }; + return TimeKeeper; + }()); + spine.TimeKeeper = TimeKeeper; + var WindowedMean = (function () { + function WindowedMean(windowSize) { + if (windowSize === void 0) { windowSize = 32; } + this.addedValues = 0; + this.lastValue = 0; + this.mean = 0; + this.dirty = true; + this.values = new Array(windowSize); + } + WindowedMean.prototype.hasEnoughData = function () { + return this.addedValues >= this.values.length; + }; + WindowedMean.prototype.addValue = function (value) { + if (this.addedValues < this.values.length) + this.addedValues++; + this.values[this.lastValue++] = value; + if (this.lastValue > this.values.length - 1) + this.lastValue = 0; + this.dirty = true; + }; + WindowedMean.prototype.getMean = function () { + if (this.hasEnoughData()) { + if (this.dirty) { + var mean = 0; + for (var i = 0; i < this.values.length; i++) { + mean += this.values[i]; + } + this.mean = mean / this.values.length; + this.dirty = false; + } + return this.mean; + } + else { + return 0; + } + }; + return WindowedMean; + }()); + spine.WindowedMean = WindowedMean; })(spine || (spine = {})); //# sourceMappingURL=spine-canvas.js.map \ No newline at end of file diff --git a/spine-ts/build/spine-canvas.js.map b/spine-ts/build/spine-canvas.js.map index 28ef2ea43..04e273552 100644 --- a/spine-ts/build/spine-canvas.js.map +++ b/spine-ts/build/spine-canvas.js.map @@ -1 +1 @@ -{"version":3,"file":"spine-canvas.js","sourceRoot":"","sources":["../core/src/AssetManager.ts","../canvas/src/AssetManager.ts","../core/src/Texture.ts","../canvas/src/CanvasTexture.ts","../canvas/src/SkeletonRenderer.ts","../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts"],"names":[],"mappings":"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AC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,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"} \ No newline at end of file +{"version":3,"file":"spine-canvas.js","sourceRoot":"","sources":["../core/src/AssetManager.ts","../canvas/src/AssetManager.ts","../core/src/Texture.ts","../canvas/src/CanvasTexture.ts","../canvas/src/SkeletonRenderer.ts","../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts"],"names":[],"mappings":"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AC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,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"} \ No newline at end of file diff --git a/spine-ts/build/spine-core.d.ts b/spine-ts/build/spine-core.d.ts index b56595de1..2d00787aa 100644 --- a/spine-ts/build/spine-core.d.ts +++ b/spine-ts/build/spine-core.d.ts @@ -1,1160 +1,1160 @@ declare module spine { - class Animation { - name: string; - timelines: Array; - duration: number; - constructor(name: string, timelines: Array, duration: number); - apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - static binarySearch(values: ArrayLike, target: number, step?: number): number; - static linearSearch(values: ArrayLike, target: number, step: number): number; - } - interface Timeline { - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - getPropertyId(): number; - } - enum TimelineType { - rotate = 0, - translate = 1, - scale = 2, - shear = 3, - attachment = 4, - color = 5, - deform = 6, - event = 7, - drawOrder = 8, - ikConstraint = 9, - transformConstraint = 10, - pathConstraintPosition = 11, - pathConstraintSpacing = 12, - pathConstraintMix = 13, - twoColor = 14, - } - abstract class CurveTimeline implements Timeline { - static LINEAR: number; - static STEPPED: number; - static BEZIER: number; - static BEZIER_SIZE: number; - private curves; - abstract getPropertyId(): number; - constructor(frameCount: number); - getFrameCount(): number; - setLinear(frameIndex: number): void; - setStepped(frameIndex: number): void; - getCurveType(frameIndex: number): number; - setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; - getCurvePercent(frameIndex: number, percent: number): number; - abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class RotateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATION: number; - static ROTATION: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, degrees: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TranslateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_X: number; - static PREV_Y: number; - static X: number; - static Y: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, x: number, y: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ScaleTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ShearTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static R: number; - static G: number; - static B: number; - static A: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TwoColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static PREV_R2: number; - static PREV_G2: number; - static PREV_B2: number; - static R: number; - static G: number; - static B: number; - static A: number; - static R2: number; - static G2: number; - static B2: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class AttachmentTimeline implements Timeline { - slotIndex: number; - frames: ArrayLike; - attachmentNames: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, attachmentName: string): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DeformTimeline extends CurveTimeline { - slotIndex: number; - attachment: VertexAttachment; - frames: ArrayLike; - frameVertices: Array>; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class EventTimeline implements Timeline { - frames: ArrayLike; - events: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, event: Event): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DrawOrderTimeline implements Timeline { - frames: ArrayLike; - drawOrders: Array>; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, drawOrder: Array): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class IkConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_MIX: number; - static PREV_BEND_DIRECTION: number; - static MIX: number; - static BEND_DIRECTION: number; - ikConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TransformConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static PREV_SCALE: number; - static PREV_SHEAR: number; - static ROTATE: number; - static TRANSLATE: number; - static SCALE: number; - static SHEAR: number; - transformConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintPositionTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_VALUE: number; - static VALUE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, value: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintMixTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static ROTATE: number; - static TRANSLATE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } + class Animation { + name: string; + timelines: Array; + duration: number; + constructor(name: string, timelines: Array, duration: number); + apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + static binarySearch(values: ArrayLike, target: number, step?: number): number; + static linearSearch(values: ArrayLike, target: number, step: number): number; + } + interface Timeline { + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + getPropertyId(): number; + } + enum TimelineType { + rotate = 0, + translate = 1, + scale = 2, + shear = 3, + attachment = 4, + color = 5, + deform = 6, + event = 7, + drawOrder = 8, + ikConstraint = 9, + transformConstraint = 10, + pathConstraintPosition = 11, + pathConstraintSpacing = 12, + pathConstraintMix = 13, + twoColor = 14, + } + abstract class CurveTimeline implements Timeline { + static LINEAR: number; + static STEPPED: number; + static BEZIER: number; + static BEZIER_SIZE: number; + private curves; + abstract getPropertyId(): number; + constructor(frameCount: number); + getFrameCount(): number; + setLinear(frameIndex: number): void; + setStepped(frameIndex: number): void; + getCurveType(frameIndex: number): number; + setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; + getCurvePercent(frameIndex: number, percent: number): number; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class RotateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATION: number; + static ROTATION: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, degrees: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TranslateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_X: number; + static PREV_Y: number; + static X: number; + static Y: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, x: number, y: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ScaleTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ShearTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static R: number; + static G: number; + static B: number; + static A: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TwoColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static PREV_R2: number; + static PREV_G2: number; + static PREV_B2: number; + static R: number; + static G: number; + static B: number; + static A: number; + static R2: number; + static G2: number; + static B2: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class AttachmentTimeline implements Timeline { + slotIndex: number; + frames: ArrayLike; + attachmentNames: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, attachmentName: string): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DeformTimeline extends CurveTimeline { + slotIndex: number; + attachment: VertexAttachment; + frames: ArrayLike; + frameVertices: Array>; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class EventTimeline implements Timeline { + frames: ArrayLike; + events: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, event: Event): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DrawOrderTimeline implements Timeline { + frames: ArrayLike; + drawOrders: Array>; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, drawOrder: Array): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class IkConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_MIX: number; + static PREV_BEND_DIRECTION: number; + static MIX: number; + static BEND_DIRECTION: number; + ikConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TransformConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static PREV_SCALE: number; + static PREV_SHEAR: number; + static ROTATE: number; + static TRANSLATE: number; + static SCALE: number; + static SHEAR: number; + transformConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintPositionTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_VALUE: number; + static VALUE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, value: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintMixTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static ROTATE: number; + static TRANSLATE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } } declare module spine { - class AnimationState { - static emptyAnimation: Animation; - static SUBSEQUENT: number; - static FIRST: number; - static DIP: number; - static DIP_MIX: number; - data: AnimationStateData; - tracks: TrackEntry[]; - events: Event[]; - listeners: AnimationStateListener2[]; - queue: EventQueue; - propertyIDs: IntSet; - mixingTo: TrackEntry[]; - animationsChanged: boolean; - timeScale: number; - trackEntryPool: Pool; - constructor(data: AnimationStateData); - update(delta: number): void; - updateMixingFrom(to: TrackEntry, delta: number): boolean; - apply(skeleton: Skeleton): boolean; - applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; - applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; - queueEvents(entry: TrackEntry, animationTime: number): void; - clearTracks(): void; - clearTrack(trackIndex: number): void; - setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; - setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; - setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; - addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; - addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; - setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; - addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; - setEmptyAnimations(mixDuration: number): void; - expandToIndex(index: number): TrackEntry; - trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; - disposeNext(entry: TrackEntry): void; - _animationsChanged(): void; - getCurrent(trackIndex: number): TrackEntry; - addListener(listener: AnimationStateListener2): void; - removeListener(listener: AnimationStateListener2): void; - clearListeners(): void; - clearListenerNotifications(): void; - } - class TrackEntry { - animation: Animation; - next: TrackEntry; - mixingFrom: TrackEntry; - listener: AnimationStateListener2; - trackIndex: number; - loop: boolean; - eventThreshold: number; - attachmentThreshold: number; - drawOrderThreshold: number; - animationStart: number; - animationEnd: number; - animationLast: number; - nextAnimationLast: number; - delay: number; - trackTime: number; - trackLast: number; - nextTrackLast: number; - trackEnd: number; - timeScale: number; - alpha: number; - mixTime: number; - mixDuration: number; - interruptAlpha: number; - totalAlpha: number; - timelineData: number[]; - timelineDipMix: TrackEntry[]; - timelinesRotation: number[]; - reset(): void; - setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; - hasTimeline(id: number): boolean; - getAnimationTime(): number; - setAnimationLast(animationLast: number): void; - isComplete(): boolean; - resetRotationDirections(): void; - } - class EventQueue { - objects: Array; - drainDisabled: boolean; - animState: AnimationState; - constructor(animState: AnimationState); - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - drain(): void; - clear(): void; - } - enum EventType { - start = 0, - interrupt = 1, - end = 2, - dispose = 3, - complete = 4, - event = 5, - } - interface AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } - abstract class AnimationStateAdapter2 implements AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } + class AnimationState { + static emptyAnimation: Animation; + static SUBSEQUENT: number; + static FIRST: number; + static DIP: number; + static DIP_MIX: number; + data: AnimationStateData; + tracks: TrackEntry[]; + events: Event[]; + listeners: AnimationStateListener2[]; + queue: EventQueue; + propertyIDs: IntSet; + mixingTo: TrackEntry[]; + animationsChanged: boolean; + timeScale: number; + trackEntryPool: Pool; + constructor(data: AnimationStateData); + update(delta: number): void; + updateMixingFrom(to: TrackEntry, delta: number): boolean; + apply(skeleton: Skeleton): boolean; + applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; + applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; + queueEvents(entry: TrackEntry, animationTime: number): void; + clearTracks(): void; + clearTrack(trackIndex: number): void; + setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; + setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; + setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; + addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; + addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; + setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; + addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; + setEmptyAnimations(mixDuration: number): void; + expandToIndex(index: number): TrackEntry; + trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; + disposeNext(entry: TrackEntry): void; + _animationsChanged(): void; + getCurrent(trackIndex: number): TrackEntry; + addListener(listener: AnimationStateListener2): void; + removeListener(listener: AnimationStateListener2): void; + clearListeners(): void; + clearListenerNotifications(): void; + } + class TrackEntry { + animation: Animation; + next: TrackEntry; + mixingFrom: TrackEntry; + listener: AnimationStateListener2; + trackIndex: number; + loop: boolean; + eventThreshold: number; + attachmentThreshold: number; + drawOrderThreshold: number; + animationStart: number; + animationEnd: number; + animationLast: number; + nextAnimationLast: number; + delay: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; + timeScale: number; + alpha: number; + mixTime: number; + mixDuration: number; + interruptAlpha: number; + totalAlpha: number; + timelineData: number[]; + timelineDipMix: TrackEntry[]; + timelinesRotation: number[]; + reset(): void; + setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; + hasTimeline(id: number): boolean; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; + isComplete(): boolean; + resetRotationDirections(): void; + } + class EventQueue { + objects: Array; + drainDisabled: boolean; + animState: AnimationState; + constructor(animState: AnimationState); + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + drain(): void; + clear(): void; + } + enum EventType { + start = 0, + interrupt = 1, + end = 2, + dispose = 3, + complete = 4, + event = 5, + } + interface AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } + abstract class AnimationStateAdapter2 implements AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } } declare module spine { - class AnimationStateData { - skeletonData: SkeletonData; - animationToMixTime: Map; - defaultMix: number; - constructor(skeletonData: SkeletonData); - setMix(fromName: string, toName: string, duration: number): void; - setMixWith(from: Animation, to: Animation, duration: number): void; - getMix(from: Animation, to: Animation): number; - } + class AnimationStateData { + skeletonData: SkeletonData; + animationToMixTime: Map; + defaultMix: number; + constructor(skeletonData: SkeletonData); + setMix(fromName: string, toName: string, duration: number): void; + setMixWith(from: Animation, to: Animation, duration: number): void; + getMix(from: Animation, to: Animation): number; + } } declare module spine { - class AssetManager implements Disposable { - private pathPrefix; - private textureLoader; - private assets; - private errors; - private toLoad; - private loaded; - constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); - loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; - loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - get(path: string): any; - remove(path: string): void; - removeAll(): void; - isLoadingComplete(): boolean; - getToLoad(): number; - getLoaded(): number; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class AssetManager implements Disposable { + private pathPrefix; + private textureLoader; + private assets; + private errors; + private toLoad; + private loaded; + constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); + loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; + loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + get(path: string): any; + remove(path: string): void; + removeAll(): void; + isLoadingComplete(): boolean; + getToLoad(): number; + getLoaded(): number; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class AtlasAttachmentLoader implements AttachmentLoader { - atlas: TextureAtlas; - constructor(atlas: TextureAtlas); - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + class AtlasAttachmentLoader implements AttachmentLoader { + atlas: TextureAtlas; + constructor(atlas: TextureAtlas); + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - abstract class Attachment { - name: string; - constructor(name: string); - } - abstract class VertexAttachment extends Attachment { - bones: Array; - vertices: ArrayLike; - worldVerticesLength: number; - constructor(name: string); - computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - } + abstract class Attachment { + name: string; + constructor(name: string); + } + abstract class VertexAttachment extends Attachment { + bones: Array; + vertices: ArrayLike; + worldVerticesLength: number; + constructor(name: string); + computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + } } declare module spine { - interface AttachmentLoader { - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + interface AttachmentLoader { + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - enum AttachmentType { - Region = 0, - BoundingBox = 1, - Mesh = 2, - LinkedMesh = 3, - Path = 4, - Point = 5, - } + enum AttachmentType { + Region = 0, + BoundingBox = 1, + Mesh = 2, + LinkedMesh = 3, + Path = 4, + Point = 5, + } } declare module spine { - class BoundingBoxAttachment extends VertexAttachment { - color: Color; - constructor(name: string); - } + class BoundingBoxAttachment extends VertexAttachment { + color: Color; + constructor(name: string); + } } declare module spine { - class ClippingAttachment extends VertexAttachment { - endSlot: SlotData; - color: Color; - constructor(name: string); - } + class ClippingAttachment extends VertexAttachment { + endSlot: SlotData; + color: Color; + constructor(name: string); + } } declare module spine { - class MeshAttachment extends VertexAttachment { - region: TextureRegion; - path: string; - regionUVs: ArrayLike; - uvs: ArrayLike; - triangles: Array; - color: Color; - hullLength: number; - private parentMesh; - inheritDeform: boolean; - tempColor: Color; - constructor(name: string); - updateUVs(): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - getParentMesh(): MeshAttachment; - setParentMesh(parentMesh: MeshAttachment): void; - } + class MeshAttachment extends VertexAttachment { + region: TextureRegion; + path: string; + regionUVs: ArrayLike; + uvs: ArrayLike; + triangles: Array; + color: Color; + hullLength: number; + private parentMesh; + inheritDeform: boolean; + tempColor: Color; + constructor(name: string); + updateUVs(): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + getParentMesh(): MeshAttachment; + setParentMesh(parentMesh: MeshAttachment): void; + } } declare module spine { - class PathAttachment extends VertexAttachment { - lengths: Array; - closed: boolean; - constantSpeed: boolean; - color: Color; - constructor(name: string); - } + class PathAttachment extends VertexAttachment { + lengths: Array; + closed: boolean; + constantSpeed: boolean; + color: Color; + constructor(name: string); + } } declare module spine { - class PointAttachment extends VertexAttachment { - x: number; - y: number; - rotation: number; - color: Color; - constructor(name: string); - computeWorldPosition(bone: Bone, point: Vector2): Vector2; - computeWorldRotation(bone: Bone): number; - } + class PointAttachment extends VertexAttachment { + x: number; + y: number; + rotation: number; + color: Color; + constructor(name: string); + computeWorldPosition(bone: Bone, point: Vector2): Vector2; + computeWorldRotation(bone: Bone): number; + } } declare module spine { - class RegionAttachment extends Attachment { - static OX1: number; - static OY1: number; - static OX2: number; - static OY2: number; - static OX3: number; - static OY3: number; - static OX4: number; - static OY4: number; - static X1: number; - static Y1: number; - static C1R: number; - static C1G: number; - static C1B: number; - static C1A: number; - static U1: number; - static V1: number; - static X2: number; - static Y2: number; - static C2R: number; - static C2G: number; - static C2B: number; - static C2A: number; - static U2: number; - static V2: number; - static X3: number; - static Y3: number; - static C3R: number; - static C3G: number; - static C3B: number; - static C3A: number; - static U3: number; - static V3: number; - static X4: number; - static Y4: number; - static C4R: number; - static C4G: number; - static C4B: number; - static C4A: number; - static U4: number; - static V4: number; - x: number; - y: number; - scaleX: number; - scaleY: number; - rotation: number; - width: number; - height: number; - color: Color; - path: string; - rendererObject: any; - region: TextureRegion; - offset: ArrayLike; - uvs: ArrayLike; - tempColor: Color; - constructor(name: string); - updateOffset(): void; - setRegion(region: TextureRegion): void; - computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; - } + class RegionAttachment extends Attachment { + static OX1: number; + static OY1: number; + static OX2: number; + static OY2: number; + static OX3: number; + static OY3: number; + static OX4: number; + static OY4: number; + static X1: number; + static Y1: number; + static C1R: number; + static C1G: number; + static C1B: number; + static C1A: number; + static U1: number; + static V1: number; + static X2: number; + static Y2: number; + static C2R: number; + static C2G: number; + static C2B: number; + static C2A: number; + static U2: number; + static V2: number; + static X3: number; + static Y3: number; + static C3R: number; + static C3G: number; + static C3B: number; + static C3A: number; + static U3: number; + static V3: number; + static X4: number; + static Y4: number; + static C4R: number; + static C4G: number; + static C4B: number; + static C4A: number; + static U4: number; + static V4: number; + x: number; + y: number; + scaleX: number; + scaleY: number; + rotation: number; + width: number; + height: number; + color: Color; + path: string; + rendererObject: any; + region: TextureRegion; + offset: ArrayLike; + uvs: ArrayLike; + tempColor: Color; + constructor(name: string); + updateOffset(): void; + setRegion(region: TextureRegion): void; + computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; + } } declare module spine { - enum BlendMode { - Normal = 0, - Additive = 1, - Multiply = 2, - Screen = 3, - } + enum BlendMode { + Normal = 0, + Additive = 1, + Multiply = 2, + Screen = 3, + } } declare module spine { - class Bone implements Updatable { - data: BoneData; - skeleton: Skeleton; - parent: Bone; - children: Bone[]; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - ax: number; - ay: number; - arotation: number; - ascaleX: number; - ascaleY: number; - ashearX: number; - ashearY: number; - appliedValid: boolean; - a: number; - b: number; - worldX: number; - c: number; - d: number; - worldY: number; - sorted: boolean; - constructor(data: BoneData, skeleton: Skeleton, parent: Bone); - update(): void; - updateWorldTransform(): void; - updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; - setToSetupPose(): void; - getWorldRotationX(): number; - getWorldRotationY(): number; - getWorldScaleX(): number; - getWorldScaleY(): number; - updateAppliedTransform(): void; - worldToLocal(world: Vector2): Vector2; - localToWorld(local: Vector2): Vector2; - worldToLocalRotation(worldRotation: number): number; - localToWorldRotation(localRotation: number): number; - rotateWorld(degrees: number): void; - } + class Bone implements Updatable { + data: BoneData; + skeleton: Skeleton; + parent: Bone; + children: Bone[]; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + ax: number; + ay: number; + arotation: number; + ascaleX: number; + ascaleY: number; + ashearX: number; + ashearY: number; + appliedValid: boolean; + a: number; + b: number; + worldX: number; + c: number; + d: number; + worldY: number; + sorted: boolean; + constructor(data: BoneData, skeleton: Skeleton, parent: Bone); + update(): void; + updateWorldTransform(): void; + updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; + setToSetupPose(): void; + getWorldRotationX(): number; + getWorldRotationY(): number; + getWorldScaleX(): number; + getWorldScaleY(): number; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + worldToLocalRotation(worldRotation: number): number; + localToWorldRotation(localRotation: number): number; + rotateWorld(degrees: number): void; + } } declare module spine { - class BoneData { - index: number; - name: string; - parent: BoneData; - length: number; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - transformMode: TransformMode; - constructor(index: number, name: string, parent: BoneData); - } - enum TransformMode { - Normal = 0, - OnlyTranslation = 1, - NoRotationOrReflection = 2, - NoScale = 3, - NoScaleOrReflection = 4, - } + class BoneData { + index: number; + name: string; + parent: BoneData; + length: number; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + transformMode: TransformMode; + constructor(index: number, name: string, parent: BoneData); + } + enum TransformMode { + Normal = 0, + OnlyTranslation = 1, + NoRotationOrReflection = 2, + NoScale = 3, + NoScaleOrReflection = 4, + } } declare module spine { - interface Constraint extends Updatable { - getOrder(): number; - } + interface Constraint extends Updatable { + getOrder(): number; + } } declare module spine { - class Event { - data: EventData; - intValue: number; - floatValue: number; - stringValue: string; - time: number; - constructor(time: number, data: EventData); - } + class Event { + data: EventData; + intValue: number; + floatValue: number; + stringValue: string; + time: number; + constructor(time: number, data: EventData); + } } declare module spine { - class EventData { - name: string; - intValue: number; - floatValue: number; - stringValue: string; - constructor(name: string); - } + class EventData { + name: string; + intValue: number; + floatValue: number; + stringValue: string; + constructor(name: string); + } } declare module spine { - class IkConstraint implements Constraint { - data: IkConstraintData; - bones: Array; - target: Bone; - mix: number; - bendDirection: number; - constructor(data: IkConstraintData, skeleton: Skeleton); - getOrder(): number; - apply(): void; - update(): void; - apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; - apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; - } + class IkConstraint implements Constraint { + data: IkConstraintData; + bones: Array; + target: Bone; + mix: number; + bendDirection: number; + constructor(data: IkConstraintData, skeleton: Skeleton); + getOrder(): number; + apply(): void; + update(): void; + apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; + apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; + } } declare module spine { - class IkConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - bendDirection: number; - mix: number; - constructor(name: string); - } + class IkConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + bendDirection: number; + mix: number; + constructor(name: string); + } } declare module spine { - class PathConstraint implements Constraint { - static NONE: number; - static BEFORE: number; - static AFTER: number; - data: PathConstraintData; - bones: Array; - target: Slot; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - spaces: number[]; - positions: number[]; - world: number[]; - curves: number[]; - lengths: number[]; - segments: number[]; - constructor(data: PathConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; - addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; - getOrder(): number; - } + class PathConstraint implements Constraint { + static NONE: number; + static BEFORE: number; + static AFTER: number; + data: PathConstraintData; + bones: Array; + target: Slot; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + spaces: number[]; + positions: number[]; + world: number[]; + curves: number[]; + lengths: number[]; + segments: number[]; + constructor(data: PathConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; + addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; + getOrder(): number; + } } declare module spine { - class PathConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: SlotData; - positionMode: PositionMode; - spacingMode: SpacingMode; - rotateMode: RotateMode; - offsetRotation: number; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - constructor(name: string); - } - enum PositionMode { - Fixed = 0, - Percent = 1, - } - enum SpacingMode { - Length = 0, - Fixed = 1, - Percent = 2, - } - enum RotateMode { - Tangent = 0, - Chain = 1, - ChainScale = 2, - } + class PathConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: SlotData; + positionMode: PositionMode; + spacingMode: SpacingMode; + rotateMode: RotateMode; + offsetRotation: number; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + constructor(name: string); + } + enum PositionMode { + Fixed = 0, + Percent = 1, + } + enum SpacingMode { + Length = 0, + Fixed = 1, + Percent = 2, + } + enum RotateMode { + Tangent = 0, + Chain = 1, + ChainScale = 2, + } } declare module spine { - class SharedAssetManager implements Disposable { - private pathPrefix; - private clientAssets; - private queuedAssets; - private rawAssets; - private errors; - constructor(pathPrefix?: string); - private queueAsset(clientId, textureLoader, path); - loadText(clientId: string, path: string): void; - loadJson(clientId: string, path: string): void; - loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; - get(clientId: string, path: string): any; - private updateClientAssets(clientAssets); - isLoadingComplete(clientId: string): boolean; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class SharedAssetManager implements Disposable { + private pathPrefix; + private clientAssets; + private queuedAssets; + private rawAssets; + private errors; + constructor(pathPrefix?: string); + private queueAsset(clientId, textureLoader, path); + loadText(clientId: string, path: string): void; + loadJson(clientId: string, path: string): void; + loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; + get(clientId: string, path: string): any; + private updateClientAssets(clientAssets); + isLoadingComplete(clientId: string): boolean; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class Skeleton { - data: SkeletonData; - bones: Array; - slots: Array; - drawOrder: Array; - ikConstraints: Array; - transformConstraints: Array; - pathConstraints: Array; - _updateCache: Updatable[]; - updateCacheReset: Updatable[]; - skin: Skin; - color: Color; - time: number; - flipX: boolean; - flipY: boolean; - x: number; - y: number; - constructor(data: SkeletonData); - updateCache(): void; - sortIkConstraint(constraint: IkConstraint): void; - sortPathConstraint(constraint: PathConstraint): void; - sortTransformConstraint(constraint: TransformConstraint): void; - sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; - sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; - sortBone(bone: Bone): void; - sortReset(bones: Array): void; - updateWorldTransform(): void; - setToSetupPose(): void; - setBonesToSetupPose(): void; - setSlotsToSetupPose(): void; - getRootBone(): Bone; - findBone(boneName: string): Bone; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): Slot; - findSlotIndex(slotName: string): number; - setSkinByName(skinName: string): void; - setSkin(newSkin: Skin): void; - getAttachmentByName(slotName: string, attachmentName: string): Attachment; - getAttachment(slotIndex: number, attachmentName: string): Attachment; - setAttachment(slotName: string, attachmentName: string): void; - findIkConstraint(constraintName: string): IkConstraint; - findTransformConstraint(constraintName: string): TransformConstraint; - findPathConstraint(constraintName: string): PathConstraint; - getBounds(offset: Vector2, size: Vector2, temp: Array): void; - update(delta: number): void; - } + class Skeleton { + data: SkeletonData; + bones: Array; + slots: Array; + drawOrder: Array; + ikConstraints: Array; + transformConstraints: Array; + pathConstraints: Array; + _updateCache: Updatable[]; + updateCacheReset: Updatable[]; + skin: Skin; + color: Color; + time: number; + flipX: boolean; + flipY: boolean; + x: number; + y: number; + constructor(data: SkeletonData); + updateCache(): void; + sortIkConstraint(constraint: IkConstraint): void; + sortPathConstraint(constraint: PathConstraint): void; + sortTransformConstraint(constraint: TransformConstraint): void; + sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; + sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; + sortBone(bone: Bone): void; + sortReset(bones: Array): void; + updateWorldTransform(): void; + setToSetupPose(): void; + setBonesToSetupPose(): void; + setSlotsToSetupPose(): void; + getRootBone(): Bone; + findBone(boneName: string): Bone; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): Slot; + findSlotIndex(slotName: string): number; + setSkinByName(skinName: string): void; + setSkin(newSkin: Skin): void; + getAttachmentByName(slotName: string, attachmentName: string): Attachment; + getAttachment(slotIndex: number, attachmentName: string): Attachment; + setAttachment(slotName: string, attachmentName: string): void; + findIkConstraint(constraintName: string): IkConstraint; + findTransformConstraint(constraintName: string): TransformConstraint; + findPathConstraint(constraintName: string): PathConstraint; + getBounds(offset: Vector2, size: Vector2, temp: Array): void; + update(delta: number): void; + } } declare module spine { - class SkeletonBounds { - minX: number; - minY: number; - maxX: number; - maxY: number; - boundingBoxes: BoundingBoxAttachment[]; - polygons: ArrayLike[]; - private polygonPool; - update(skeleton: Skeleton, updateAabb: boolean): void; - aabbCompute(): void; - aabbContainsPoint(x: number, y: number): boolean; - aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; - aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; - containsPoint(x: number, y: number): BoundingBoxAttachment; - containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; - intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; - intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; - getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; - getWidth(): number; - getHeight(): number; - } + class SkeletonBounds { + minX: number; + minY: number; + maxX: number; + maxY: number; + boundingBoxes: BoundingBoxAttachment[]; + polygons: ArrayLike[]; + private polygonPool; + update(skeleton: Skeleton, updateAabb: boolean): void; + aabbCompute(): void; + aabbContainsPoint(x: number, y: number): boolean; + aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; + aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; + containsPoint(x: number, y: number): BoundingBoxAttachment; + containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; + intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; + intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; + getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; + getWidth(): number; + getHeight(): number; + } } declare module spine { - class SkeletonClipping { - private triangulator; - private clippingPolygon; - private clipOutput; - clippedVertices: number[]; - clippedTriangles: number[]; - private scratch; - private clipAttachment; - private clippingPolygons; - clipStart(slot: Slot, clip: ClippingAttachment): number; - clipEndWithSlot(slot: Slot): void; - clipEnd(): void; - isClipping(): boolean; - clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; - clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; - static makeClockwise(polygon: ArrayLike): void; - } + class SkeletonClipping { + private triangulator; + private clippingPolygon; + private clipOutput; + clippedVertices: number[]; + clippedTriangles: number[]; + private scratch; + private clipAttachment; + private clippingPolygons; + clipStart(slot: Slot, clip: ClippingAttachment): number; + clipEndWithSlot(slot: Slot): void; + clipEnd(): void; + isClipping(): boolean; + clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; + clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; + static makeClockwise(polygon: ArrayLike): void; + } } declare module spine { - class SkeletonData { - name: string; - bones: BoneData[]; - slots: SlotData[]; - skins: Skin[]; - defaultSkin: Skin; - events: EventData[]; - animations: Animation[]; - ikConstraints: IkConstraintData[]; - transformConstraints: TransformConstraintData[]; - pathConstraints: PathConstraintData[]; - width: number; - height: number; - version: string; - hash: string; - fps: number; - imagesPath: string; - findBone(boneName: string): BoneData; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): SlotData; - findSlotIndex(slotName: string): number; - findSkin(skinName: string): Skin; - findEvent(eventDataName: string): EventData; - findAnimation(animationName: string): Animation; - findIkConstraint(constraintName: string): IkConstraintData; - findTransformConstraint(constraintName: string): TransformConstraintData; - findPathConstraint(constraintName: string): PathConstraintData; - findPathConstraintIndex(pathConstraintName: string): number; - } + class SkeletonData { + name: string; + bones: BoneData[]; + slots: SlotData[]; + skins: Skin[]; + defaultSkin: Skin; + events: EventData[]; + animations: Animation[]; + ikConstraints: IkConstraintData[]; + transformConstraints: TransformConstraintData[]; + pathConstraints: PathConstraintData[]; + width: number; + height: number; + version: string; + hash: string; + fps: number; + imagesPath: string; + findBone(boneName: string): BoneData; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): SlotData; + findSlotIndex(slotName: string): number; + findSkin(skinName: string): Skin; + findEvent(eventDataName: string): EventData; + findAnimation(animationName: string): Animation; + findIkConstraint(constraintName: string): IkConstraintData; + findTransformConstraint(constraintName: string): TransformConstraintData; + findPathConstraint(constraintName: string): PathConstraintData; + findPathConstraintIndex(pathConstraintName: string): number; + } } declare module spine { - class SkeletonJson { - attachmentLoader: AttachmentLoader; - scale: number; - private linkedMeshes; - constructor(attachmentLoader: AttachmentLoader); - readSkeletonData(json: string | any): SkeletonData; - readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; - readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; - readAnimation(map: any, name: string, skeletonData: SkeletonData): void; - readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; - getValue(map: any, prop: string, defaultValue: any): any; - static blendModeFromString(str: string): BlendMode; - static positionModeFromString(str: string): PositionMode; - static spacingModeFromString(str: string): SpacingMode; - static rotateModeFromString(str: string): RotateMode; - static transformModeFromString(str: string): TransformMode; - } + class SkeletonJson { + attachmentLoader: AttachmentLoader; + scale: number; + private linkedMeshes; + constructor(attachmentLoader: AttachmentLoader); + readSkeletonData(json: string | any): SkeletonData; + readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; + readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; + readAnimation(map: any, name: string, skeletonData: SkeletonData): void; + readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; + getValue(map: any, prop: string, defaultValue: any): any; + static blendModeFromString(str: string): BlendMode; + static positionModeFromString(str: string): PositionMode; + static spacingModeFromString(str: string): SpacingMode; + static rotateModeFromString(str: string): RotateMode; + static transformModeFromString(str: string): TransformMode; + } } declare module spine { - class Skin { - name: string; - attachments: Map[]; - constructor(name: string); - addAttachment(slotIndex: number, name: string, attachment: Attachment): void; - getAttachment(slotIndex: number, name: string): Attachment; - attachAll(skeleton: Skeleton, oldSkin: Skin): void; - } + class Skin { + name: string; + attachments: Map[]; + constructor(name: string); + addAttachment(slotIndex: number, name: string, attachment: Attachment): void; + getAttachment(slotIndex: number, name: string): Attachment; + attachAll(skeleton: Skeleton, oldSkin: Skin): void; + } } declare module spine { - class Slot { - data: SlotData; - bone: Bone; - color: Color; - darkColor: Color; - private attachment; - private attachmentTime; - attachmentVertices: number[]; - constructor(data: SlotData, bone: Bone); - getAttachment(): Attachment; - setAttachment(attachment: Attachment): void; - setAttachmentTime(time: number): void; - getAttachmentTime(): number; - setToSetupPose(): void; - } + class Slot { + data: SlotData; + bone: Bone; + color: Color; + darkColor: Color; + private attachment; + private attachmentTime; + attachmentVertices: number[]; + constructor(data: SlotData, bone: Bone); + getAttachment(): Attachment; + setAttachment(attachment: Attachment): void; + setAttachmentTime(time: number): void; + getAttachmentTime(): number; + setToSetupPose(): void; + } } declare module spine { - class SlotData { - index: number; - name: string; - boneData: BoneData; - color: Color; - darkColor: Color; - attachmentName: string; - blendMode: BlendMode; - constructor(index: number, name: string, boneData: BoneData); - } + class SlotData { + index: number; + name: string; + boneData: BoneData; + color: Color; + darkColor: Color; + attachmentName: string; + blendMode: BlendMode; + constructor(index: number, name: string, boneData: BoneData); + } } declare module spine { - abstract class Texture { - protected _image: HTMLImageElement; - constructor(image: HTMLImageElement); - getImage(): HTMLImageElement; - abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - abstract dispose(): void; - static filterFromString(text: string): TextureFilter; - static wrapFromString(text: string): TextureWrap; - } - enum TextureFilter { - Nearest = 9728, - Linear = 9729, - MipMap = 9987, - MipMapNearestNearest = 9984, - MipMapLinearNearest = 9985, - MipMapNearestLinear = 9986, - MipMapLinearLinear = 9987, - } - enum TextureWrap { - MirroredRepeat = 33648, - ClampToEdge = 33071, - Repeat = 10497, - } - class TextureRegion { - renderObject: any; - u: number; - v: number; - u2: number; - v2: number; - width: number; - height: number; - rotate: boolean; - offsetX: number; - offsetY: number; - originalWidth: number; - originalHeight: number; - } + abstract class Texture { + protected _image: HTMLImageElement; + constructor(image: HTMLImageElement); + getImage(): HTMLImageElement; + abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + abstract dispose(): void; + static filterFromString(text: string): TextureFilter; + static wrapFromString(text: string): TextureWrap; + } + enum TextureFilter { + Nearest = 9728, + Linear = 9729, + MipMap = 9987, + MipMapNearestNearest = 9984, + MipMapLinearNearest = 9985, + MipMapNearestLinear = 9986, + MipMapLinearLinear = 9987, + } + enum TextureWrap { + MirroredRepeat = 33648, + ClampToEdge = 33071, + Repeat = 10497, + } + class TextureRegion { + renderObject: any; + u: number; + v: number; + u2: number; + v2: number; + width: number; + height: number; + rotate: boolean; + offsetX: number; + offsetY: number; + originalWidth: number; + originalHeight: number; + } } declare module spine { - class TextureAtlas implements Disposable { - pages: TextureAtlasPage[]; - regions: TextureAtlasRegion[]; - constructor(atlasText: string, textureLoader: (path: string) => any); - private load(atlasText, textureLoader); - findRegion(name: string): TextureAtlasRegion; - dispose(): void; - } - class TextureAtlasPage { - name: string; - minFilter: TextureFilter; - magFilter: TextureFilter; - uWrap: TextureWrap; - vWrap: TextureWrap; - texture: Texture; - width: number; - height: number; - } - class TextureAtlasRegion extends TextureRegion { - page: TextureAtlasPage; - name: string; - x: number; - y: number; - index: number; - rotate: boolean; - texture: Texture; - } + class TextureAtlas implements Disposable { + pages: TextureAtlasPage[]; + regions: TextureAtlasRegion[]; + constructor(atlasText: string, textureLoader: (path: string) => any); + private load(atlasText, textureLoader); + findRegion(name: string): TextureAtlasRegion; + dispose(): void; + } + class TextureAtlasPage { + name: string; + minFilter: TextureFilter; + magFilter: TextureFilter; + uWrap: TextureWrap; + vWrap: TextureWrap; + texture: Texture; + width: number; + height: number; + } + class TextureAtlasRegion extends TextureRegion { + page: TextureAtlasPage; + name: string; + x: number; + y: number; + index: number; + rotate: boolean; + texture: Texture; + } } declare module spine { - class TransformConstraint implements Constraint { - data: TransformConstraintData; - bones: Array; - target: Bone; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - temp: Vector2; - constructor(data: TransformConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - applyAbsoluteWorld(): void; - applyRelativeWorld(): void; - applyAbsoluteLocal(): void; - applyRelativeLocal(): void; - getOrder(): number; - } + class TransformConstraint implements Constraint { + data: TransformConstraintData; + bones: Array; + target: Bone; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + temp: Vector2; + constructor(data: TransformConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + applyAbsoluteWorld(): void; + applyRelativeWorld(): void; + applyAbsoluteLocal(): void; + applyRelativeLocal(): void; + getOrder(): number; + } } declare module spine { - class TransformConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - offsetRotation: number; - offsetX: number; - offsetY: number; - offsetScaleX: number; - offsetScaleY: number; - offsetShearY: number; - relative: boolean; - local: boolean; - constructor(name: string); - } + class TransformConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + offsetRotation: number; + offsetX: number; + offsetY: number; + offsetScaleX: number; + offsetScaleY: number; + offsetShearY: number; + relative: boolean; + local: boolean; + constructor(name: string); + } } declare module spine { - class Triangulator { - private convexPolygons; - private convexPolygonsIndices; - private indicesArray; - private isConcaveArray; - private triangles; - private polygonPool; - private polygonIndicesPool; - triangulate(verticesArray: ArrayLike): Array; - decompose(verticesArray: Array, triangles: Array): Array>; - private static isConcave(index, vertexCount, vertices, indices); - private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); - private static winding(p1x, p1y, p2x, p2y, p3x, p3y); - } + class Triangulator { + private convexPolygons; + private convexPolygonsIndices; + private indicesArray; + private isConcaveArray; + private triangles; + private polygonPool; + private polygonIndicesPool; + triangulate(verticesArray: ArrayLike): Array; + decompose(verticesArray: Array, triangles: Array): Array>; + private static isConcave(index, vertexCount, vertices, indices); + private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); + private static winding(p1x, p1y, p2x, p2y, p3x, p3y); + } } declare module spine { - interface Updatable { - update(): void; - } + interface Updatable { + update(): void; + } } declare module spine { - interface Map { - [key: string]: T; - } - class IntSet { - array: number[]; - add(value: number): boolean; - contains(value: number): boolean; - remove(value: number): void; - clear(): void; - } - interface Disposable { - dispose(): void; - } - interface Restorable { - restore(): void; - } - class Color { - r: number; - g: number; - b: number; - a: number; - static WHITE: Color; - static RED: Color; - static GREEN: Color; - static BLUE: Color; - static MAGENTA: Color; - constructor(r?: number, g?: number, b?: number, a?: number); - set(r: number, g: number, b: number, a: number): this; - setFromColor(c: Color): this; - setFromString(hex: string): this; - add(r: number, g: number, b: number, a: number): this; - clamp(): this; - } - class MathUtils { - static PI: number; - static PI2: number; - static radiansToDegrees: number; - static radDeg: number; - static degreesToRadians: number; - static degRad: number; - static clamp(value: number, min: number, max: number): number; - static cosDeg(degrees: number): number; - static sinDeg(degrees: number): number; - static signum(value: number): number; - static toInt(x: number): number; - static cbrt(x: number): number; - } - class Utils { - static SUPPORTS_TYPED_ARRAYS: boolean; - static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; - static setArraySize(array: Array, size: number, value?: any): Array; - static ensureArrayCapacity(array: Array, size: number, value?: any): Array; - static newArray(size: number, defaultValue: T): Array; - static newFloatArray(size: number): ArrayLike; - static newShortArray(size: number): ArrayLike; - static toFloatArray(array: Array): number[] | Float32Array; - } - class DebugUtils { - static logBones(skeleton: Skeleton): void; - } - class Pool { - private items; - private instantiator; - constructor(instantiator: () => T); - obtain(): T; - free(item: T): void; - freeAll(items: ArrayLike): void; - clear(): void; - } - class Vector2 { - x: number; - y: number; - constructor(x?: number, y?: number); - set(x: number, y: number): Vector2; - length(): number; - normalize(): this; - } - class TimeKeeper { - maxDelta: number; - framesPerSecond: number; - delta: number; - totalTime: number; - private lastTime; - private frameCount; - private frameTime; - update(): void; - } - interface ArrayLike { - length: number; - [n: number]: T; - } - class WindowedMean { - values: Array; - addedValues: number; - lastValue: number; - mean: number; - dirty: boolean; - constructor(windowSize?: number); - hasEnoughData(): boolean; - addValue(value: number): void; - getMean(): number; - } + interface Map { + [key: string]: T; + } + class IntSet { + array: number[]; + add(value: number): boolean; + contains(value: number): boolean; + remove(value: number): void; + clear(): void; + } + interface Disposable { + dispose(): void; + } + interface Restorable { + restore(): void; + } + class Color { + r: number; + g: number; + b: number; + a: number; + static WHITE: Color; + static RED: Color; + static GREEN: Color; + static BLUE: Color; + static MAGENTA: Color; + constructor(r?: number, g?: number, b?: number, a?: number); + set(r: number, g: number, b: number, a: number): this; + setFromColor(c: Color): this; + setFromString(hex: string): this; + add(r: number, g: number, b: number, a: number): this; + clamp(): this; + } + class MathUtils { + static PI: number; + static PI2: number; + static radiansToDegrees: number; + static radDeg: number; + static degreesToRadians: number; + static degRad: number; + static clamp(value: number, min: number, max: number): number; + static cosDeg(degrees: number): number; + static sinDeg(degrees: number): number; + static signum(value: number): number; + static toInt(x: number): number; + static cbrt(x: number): number; + } + class Utils { + static SUPPORTS_TYPED_ARRAYS: boolean; + static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; + static setArraySize(array: Array, size: number, value?: any): Array; + static ensureArrayCapacity(array: Array, size: number, value?: any): Array; + static newArray(size: number, defaultValue: T): Array; + static newFloatArray(size: number): ArrayLike; + static newShortArray(size: number): ArrayLike; + static toFloatArray(array: Array): number[] | Float32Array; + } + class DebugUtils { + static logBones(skeleton: Skeleton): void; + } + class Pool { + private items; + private instantiator; + constructor(instantiator: () => T); + obtain(): T; + free(item: T): void; + freeAll(items: ArrayLike): void; + clear(): void; + } + class Vector2 { + x: number; + y: number; + constructor(x?: number, y?: number); + set(x: number, y: number): Vector2; + length(): number; + normalize(): this; + } + class TimeKeeper { + maxDelta: number; + framesPerSecond: number; + delta: number; + totalTime: number; + private lastTime; + private frameCount; + private frameTime; + update(): void; + } + interface ArrayLike { + length: number; + [n: number]: T; + } + class WindowedMean { + values: Array; + addedValues: number; + lastValue: number; + mean: number; + dirty: boolean; + constructor(windowSize?: number); + hasEnoughData(): boolean; + addValue(value: number): void; + getMean(): number; + } } diff --git a/spine-ts/build/spine-core.js b/spine-ts/build/spine-core.js index 447fbf826..d8f2bce5d 100644 --- a/spine-ts/build/spine-core.js +++ b/spine-ts/build/spine-core.js @@ -1,6218 +1,6218 @@ var __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var spine; (function (spine) { - var Animation = (function () { - function Animation(name, timelines, duration) { - if (name == null) - throw new Error("name cannot be null."); - if (timelines == null) - throw new Error("timelines cannot be null."); - this.name = name; - this.timelines = timelines; - this.duration = duration; - } - Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (loop && this.duration != 0) { - time %= this.duration; - if (lastTime > 0) - lastTime %= this.duration; - } - var timelines = this.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); - }; - Animation.binarySearch = function (values, target, step) { - if (step === void 0) { step = 1; } - var low = 0; - var high = values.length / step - 2; - if (high == 0) - return step; - var current = high >>> 1; - while (true) { - if (values[(current + 1) * step] <= target) - low = current + 1; - else - high = current; - if (low == high) - return (low + 1) * step; - current = (low + high) >>> 1; - } - }; - Animation.linearSearch = function (values, target, step) { - for (var i = 0, last = values.length - step; i <= last; i += step) - if (values[i] > target) - return i; - return -1; - }; - return Animation; - }()); - spine.Animation = Animation; - (function (TimelineType) { - TimelineType[TimelineType["rotate"] = 0] = "rotate"; - TimelineType[TimelineType["translate"] = 1] = "translate"; - TimelineType[TimelineType["scale"] = 2] = "scale"; - TimelineType[TimelineType["shear"] = 3] = "shear"; - TimelineType[TimelineType["attachment"] = 4] = "attachment"; - TimelineType[TimelineType["color"] = 5] = "color"; - TimelineType[TimelineType["deform"] = 6] = "deform"; - TimelineType[TimelineType["event"] = 7] = "event"; - TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; - TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; - TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; - TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; - TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; - TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; - TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; - })(spine.TimelineType || (spine.TimelineType = {})); - var TimelineType = spine.TimelineType; - var CurveTimeline = (function () { - function CurveTimeline(frameCount) { - if (frameCount <= 0) - throw new Error("frameCount must be > 0: " + frameCount); - this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); - } - CurveTimeline.prototype.getFrameCount = function () { - return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; - }; - CurveTimeline.prototype.setLinear = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; - }; - CurveTimeline.prototype.setStepped = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; - }; - CurveTimeline.prototype.getCurveType = function (frameIndex) { - var index = frameIndex * CurveTimeline.BEZIER_SIZE; - if (index == this.curves.length) - return CurveTimeline.LINEAR; - var type = this.curves[index]; - if (type == CurveTimeline.LINEAR) - return CurveTimeline.LINEAR; - if (type == CurveTimeline.STEPPED) - return CurveTimeline.STEPPED; - return CurveTimeline.BEZIER; - }; - CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { - var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; - var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; - var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; - var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var curves = this.curves; - curves[i++] = CurveTimeline.BEZIER; - var x = dfx, y = dfy; - for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - curves[i] = x; - curves[i + 1] = y; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - x += dfx; - y += dfy; - } - }; - CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { - percent = spine.MathUtils.clamp(percent, 0, 1); - var curves = this.curves; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var type = curves[i]; - if (type == CurveTimeline.LINEAR) - return percent; - if (type == CurveTimeline.STEPPED) - return 0; - i++; - var x = 0; - for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - x = curves[i]; - if (x >= percent) { - var prevX = void 0, prevY = void 0; - if (i == start) { - prevX = 0; - prevY = 0; - } - else { - prevX = curves[i - 2]; - prevY = curves[i - 1]; - } - return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); - } - } - var y = curves[i - 1]; - return y + (1 - y) * (percent - x) / (1 - x); - }; - CurveTimeline.LINEAR = 0; - CurveTimeline.STEPPED = 1; - CurveTimeline.BEZIER = 2; - CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; - return CurveTimeline; - }()); - spine.CurveTimeline = CurveTimeline; - var RotateTimeline = (function (_super) { - __extends(RotateTimeline, _super); - function RotateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount << 1); - } - RotateTimeline.prototype.getPropertyId = function () { - return (TimelineType.rotate << 24) + this.boneIndex; - }; - RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { - frameIndex <<= 1; - this.frames[frameIndex] = time; - this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; - }; - RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { - if (setupPose) - bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; - else { - var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; - r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; - bone.rotation += r_1 * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); - var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); - var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - r = prevRotation + r * percent; - if (setupPose) { - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation = bone.data.rotation + r * alpha; - } - else { - r = bone.data.rotation + r - bone.rotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation += r * alpha; - } - }; - RotateTimeline.ENTRIES = 2; - RotateTimeline.PREV_TIME = -2; - RotateTimeline.PREV_ROTATION = -1; - RotateTimeline.ROTATION = 1; - return RotateTimeline; - }(CurveTimeline)); - spine.RotateTimeline = RotateTimeline; - var TranslateTimeline = (function (_super) { - __extends(TranslateTimeline, _super); - function TranslateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); - } - TranslateTimeline.prototype.getPropertyId = function () { - return (TimelineType.translate << 24) + this.boneIndex; - }; - TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { - frameIndex *= TranslateTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TranslateTimeline.X] = x; - this.frames[frameIndex + TranslateTimeline.Y] = y; - }; - TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.x = bone.data.x; - bone.y = bone.data.y; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { - x = frames[frames.length + TranslateTimeline.PREV_X]; - y = frames[frames.length + TranslateTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - x = frames[frame + TranslateTimeline.PREV_X]; - y = frames[frame + TranslateTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); - x += (frames[frame + TranslateTimeline.X] - x) * percent; - y += (frames[frame + TranslateTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.x = bone.data.x + x * alpha; - bone.y = bone.data.y + y * alpha; - } - else { - bone.x += (bone.data.x + x - bone.x) * alpha; - bone.y += (bone.data.y + y - bone.y) * alpha; - } - }; - TranslateTimeline.ENTRIES = 3; - TranslateTimeline.PREV_TIME = -3; - TranslateTimeline.PREV_X = -2; - TranslateTimeline.PREV_Y = -1; - TranslateTimeline.X = 1; - TranslateTimeline.Y = 2; - return TranslateTimeline; - }(CurveTimeline)); - spine.TranslateTimeline = TranslateTimeline; - var ScaleTimeline = (function (_super) { - __extends(ScaleTimeline, _super); - function ScaleTimeline(frameCount) { - _super.call(this, frameCount); - } - ScaleTimeline.prototype.getPropertyId = function () { - return (TimelineType.scale << 24) + this.boneIndex; - }; - ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.scaleX = bone.data.scaleX; - bone.scaleY = bone.data.scaleY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { - x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; - y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; - } - else { - var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - x = frames[frame + ScaleTimeline.PREV_X]; - y = frames[frame + ScaleTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); - x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; - y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; - } - if (alpha == 1) { - bone.scaleX = x; - bone.scaleY = y; - } - else { - var bx = 0, by = 0; - if (setupPose) { - bx = bone.data.scaleX; - by = bone.data.scaleY; - } - else { - bx = bone.scaleX; - by = bone.scaleY; - } - if (mixingOut) { - x = Math.abs(x) * spine.MathUtils.signum(bx); - y = Math.abs(y) * spine.MathUtils.signum(by); - } - else { - bx = Math.abs(bx) * spine.MathUtils.signum(x); - by = Math.abs(by) * spine.MathUtils.signum(y); - } - bone.scaleX = bx + (x - bx) * alpha; - bone.scaleY = by + (y - by) * alpha; - } - }; - return ScaleTimeline; - }(TranslateTimeline)); - spine.ScaleTimeline = ScaleTimeline; - var ShearTimeline = (function (_super) { - __extends(ShearTimeline, _super); - function ShearTimeline(frameCount) { - _super.call(this, frameCount); - } - ShearTimeline.prototype.getPropertyId = function () { - return (TimelineType.shear << 24) + this.boneIndex; - }; - ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.shearX = bone.data.shearX; - bone.shearY = bone.data.shearY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { - x = frames[frames.length + ShearTimeline.PREV_X]; - y = frames[frames.length + ShearTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - x = frames[frame + ShearTimeline.PREV_X]; - y = frames[frame + ShearTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); - x = x + (frames[frame + ShearTimeline.X] - x) * percent; - y = y + (frames[frame + ShearTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.shearX = bone.data.shearX + x * alpha; - bone.shearY = bone.data.shearY + y * alpha; - } - else { - bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; - } - }; - return ShearTimeline; - }(TranslateTimeline)); - spine.ShearTimeline = ShearTimeline; - var ColorTimeline = (function (_super) { - __extends(ColorTimeline, _super); - function ColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); - } - ColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.color << 24) + this.slotIndex; - }; - ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { - frameIndex *= ColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + ColorTimeline.R] = r; - this.frames[frameIndex + ColorTimeline.G] = g; - this.frames[frameIndex + ColorTimeline.B] = b; - this.frames[frameIndex + ColorTimeline.A] = a; - }; - ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - slot.color.setFromColor(slot.data.color); - return; - } - var r = 0, g = 0, b = 0, a = 0; - if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + ColorTimeline.PREV_R]; - g = frames[i + ColorTimeline.PREV_G]; - b = frames[i + ColorTimeline.PREV_B]; - a = frames[i + ColorTimeline.PREV_A]; - } - else { - var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); - r = frames[frame + ColorTimeline.PREV_R]; - g = frames[frame + ColorTimeline.PREV_G]; - b = frames[frame + ColorTimeline.PREV_B]; - a = frames[frame + ColorTimeline.PREV_A]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + ColorTimeline.R] - r) * percent; - g += (frames[frame + ColorTimeline.G] - g) * percent; - b += (frames[frame + ColorTimeline.B] - b) * percent; - a += (frames[frame + ColorTimeline.A] - a) * percent; - } - if (alpha == 1) - slot.color.set(r, g, b, a); - else { - var color = slot.color; - if (setupPose) - color.setFromColor(slot.data.color); - color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); - } - }; - ColorTimeline.ENTRIES = 5; - ColorTimeline.PREV_TIME = -5; - ColorTimeline.PREV_R = -4; - ColorTimeline.PREV_G = -3; - ColorTimeline.PREV_B = -2; - ColorTimeline.PREV_A = -1; - ColorTimeline.R = 1; - ColorTimeline.G = 2; - ColorTimeline.B = 3; - ColorTimeline.A = 4; - return ColorTimeline; - }(CurveTimeline)); - spine.ColorTimeline = ColorTimeline; - var TwoColorTimeline = (function (_super) { - __extends(TwoColorTimeline, _super); - function TwoColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); - } - TwoColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.twoColor << 24) + this.slotIndex; - }; - TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { - frameIndex *= TwoColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TwoColorTimeline.R] = r; - this.frames[frameIndex + TwoColorTimeline.G] = g; - this.frames[frameIndex + TwoColorTimeline.B] = b; - this.frames[frameIndex + TwoColorTimeline.A] = a; - this.frames[frameIndex + TwoColorTimeline.R2] = r2; - this.frames[frameIndex + TwoColorTimeline.G2] = g2; - this.frames[frameIndex + TwoColorTimeline.B2] = b2; - }; - TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - slot.color.setFromColor(slot.data.color); - slot.darkColor.setFromColor(slot.data.darkColor); - } - return; - } - var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; - if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + TwoColorTimeline.PREV_R]; - g = frames[i + TwoColorTimeline.PREV_G]; - b = frames[i + TwoColorTimeline.PREV_B]; - a = frames[i + TwoColorTimeline.PREV_A]; - r2 = frames[i + TwoColorTimeline.PREV_R2]; - g2 = frames[i + TwoColorTimeline.PREV_G2]; - b2 = frames[i + TwoColorTimeline.PREV_B2]; - } - else { - var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); - r = frames[frame + TwoColorTimeline.PREV_R]; - g = frames[frame + TwoColorTimeline.PREV_G]; - b = frames[frame + TwoColorTimeline.PREV_B]; - a = frames[frame + TwoColorTimeline.PREV_A]; - r2 = frames[frame + TwoColorTimeline.PREV_R2]; - g2 = frames[frame + TwoColorTimeline.PREV_G2]; - b2 = frames[frame + TwoColorTimeline.PREV_B2]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + TwoColorTimeline.R] - r) * percent; - g += (frames[frame + TwoColorTimeline.G] - g) * percent; - b += (frames[frame + TwoColorTimeline.B] - b) * percent; - a += (frames[frame + TwoColorTimeline.A] - a) * percent; - r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; - g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; - b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; - } - if (alpha == 1) { - slot.color.set(r, g, b, a); - slot.darkColor.set(r2, g2, b2, 1); - } - else { - var light = slot.color; - var dark = slot.darkColor; - if (setupPose) { - light.setFromColor(slot.data.color); - dark.setFromColor(slot.data.darkColor); - } - light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); - dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); - } - }; - TwoColorTimeline.ENTRIES = 8; - TwoColorTimeline.PREV_TIME = -8; - TwoColorTimeline.PREV_R = -7; - TwoColorTimeline.PREV_G = -6; - TwoColorTimeline.PREV_B = -5; - TwoColorTimeline.PREV_A = -4; - TwoColorTimeline.PREV_R2 = -3; - TwoColorTimeline.PREV_G2 = -2; - TwoColorTimeline.PREV_B2 = -1; - TwoColorTimeline.R = 1; - TwoColorTimeline.G = 2; - TwoColorTimeline.B = 3; - TwoColorTimeline.A = 4; - TwoColorTimeline.R2 = 5; - TwoColorTimeline.G2 = 6; - TwoColorTimeline.B2 = 7; - return TwoColorTimeline; - }(CurveTimeline)); - spine.TwoColorTimeline = TwoColorTimeline; - var AttachmentTimeline = (function () { - function AttachmentTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.attachmentNames = new Array(frameCount); - } - AttachmentTimeline.prototype.getPropertyId = function () { - return (TimelineType.attachment << 24) + this.slotIndex; - }; - AttachmentTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { - this.frames[frameIndex] = time; - this.attachmentNames[frameIndex] = attachmentName; - }; - AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - if (mixingOut && setupPose) { - var attachmentName_1 = slot.data.attachmentName; - slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - var attachmentName_2 = slot.data.attachmentName; - slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); - } - return; - } - var frameIndex = 0; - if (time >= frames[frames.length - 1]) - frameIndex = frames.length - 1; - else - frameIndex = Animation.binarySearch(frames, time, 1) - 1; - var attachmentName = this.attachmentNames[frameIndex]; - skeleton.slots[this.slotIndex] - .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); - }; - return AttachmentTimeline; - }()); - spine.AttachmentTimeline = AttachmentTimeline; - var DeformTimeline = (function (_super) { - __extends(DeformTimeline, _super); - function DeformTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount); - this.frameVertices = new Array(frameCount); - } - DeformTimeline.prototype.getPropertyId = function () { - return (TimelineType.deform << 24) + this.slotIndex; - }; - DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { - this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; - }; - DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var slotAttachment = slot.getAttachment(); - if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) - return; - var frames = this.frames; - var verticesArray = slot.attachmentVertices; - if (time < frames[0]) { - if (setupPose) - spine.Utils.setArraySize(verticesArray, 0); - return; - } - var frameVertices = this.frameVertices; - var vertexCount = frameVertices[0].length; - if (verticesArray.length != vertexCount) - alpha = 1; - var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); - if (time >= frames[frames.length - 1]) { - var lastVertices = frameVertices[frames.length - 1]; - if (alpha == 1) { - spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var setup = setupVertices[i]; - vertices[i] = setup + (lastVertices[i] - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] = lastVertices[i] * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time); - var prevVertices = frameVertices[frame - 1]; - var nextVertices = frameVertices[frame]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); - if (alpha == 1) { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i], setup = setupVertices[i]; - vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; - } - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; - } - } - }; - return DeformTimeline; - }(CurveTimeline)); - spine.DeformTimeline = DeformTimeline; - var EventTimeline = (function () { - function EventTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.events = new Array(frameCount); - } - EventTimeline.prototype.getPropertyId = function () { - return TimelineType.event << 24; - }; - EventTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - EventTimeline.prototype.setFrame = function (frameIndex, event) { - this.frames[frameIndex] = event.time; - this.events[frameIndex] = event; - }; - EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - if (firedEvents == null) - return; - var frames = this.frames; - var frameCount = this.frames.length; - if (lastTime > time) { - this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); - lastTime = -1; - } - else if (lastTime >= frames[frameCount - 1]) - return; - if (time < frames[0]) - return; - var frame = 0; - if (lastTime < frames[0]) - frame = 0; - else { - frame = Animation.binarySearch(frames, lastTime); - var frameTime = frames[frame]; - while (frame > 0) { - if (frames[frame - 1] != frameTime) - break; - frame--; - } - } - for (; frame < frameCount && time >= frames[frame]; frame++) - firedEvents.push(this.events[frame]); - }; - return EventTimeline; - }()); - spine.EventTimeline = EventTimeline; - var DrawOrderTimeline = (function () { - function DrawOrderTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.drawOrders = new Array(frameCount); - } - DrawOrderTimeline.prototype.getPropertyId = function () { - return TimelineType.drawOrder << 24; - }; - DrawOrderTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { - this.frames[frameIndex] = time; - this.drawOrders[frameIndex] = drawOrder; - }; - DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var drawOrder = skeleton.drawOrder; - var slots = skeleton.slots; - if (mixingOut && setupPose) { - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frame = 0; - if (time >= frames[frames.length - 1]) - frame = frames.length - 1; - else - frame = Animation.binarySearch(frames, time) - 1; - var drawOrderToSetupIndex = this.drawOrders[frame]; - if (drawOrderToSetupIndex == null) - spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); - else { - for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) - drawOrder[i] = slots[drawOrderToSetupIndex[i]]; - } - }; - return DrawOrderTimeline; - }()); - spine.DrawOrderTimeline = DrawOrderTimeline; - var IkConstraintTimeline = (function (_super) { - __extends(IkConstraintTimeline, _super); - function IkConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); - } - IkConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; - }; - IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { - frameIndex *= IkConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; - this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; - }; - IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.mix = constraint.data.mix; - constraint.bendDirection = constraint.data.bendDirection; - } - return; - } - if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { - if (setupPose) { - constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection - : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - return; - } - var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); - var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); - if (setupPose) { - constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - }; - IkConstraintTimeline.ENTRIES = 3; - IkConstraintTimeline.PREV_TIME = -3; - IkConstraintTimeline.PREV_MIX = -2; - IkConstraintTimeline.PREV_BEND_DIRECTION = -1; - IkConstraintTimeline.MIX = 1; - IkConstraintTimeline.BEND_DIRECTION = 2; - return IkConstraintTimeline; - }(CurveTimeline)); - spine.IkConstraintTimeline = IkConstraintTimeline; - var TransformConstraintTimeline = (function (_super) { - __extends(TransformConstraintTimeline, _super); - function TransformConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); - } - TransformConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; - }; - TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { - frameIndex *= TransformConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; - this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; - this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; - }; - TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.rotateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - return; - } - var rotate = 0, translate = 0, scale = 0, shear = 0; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { - var i = frames.length; - rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; - } - else { - var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; - scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; - shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; - } - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; - constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; - constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; - constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - constraint.scaleMix += (scale - constraint.scaleMix) * alpha; - constraint.shearMix += (shear - constraint.shearMix) * alpha; - } - }; - TransformConstraintTimeline.ENTRIES = 5; - TransformConstraintTimeline.PREV_TIME = -5; - TransformConstraintTimeline.PREV_ROTATE = -4; - TransformConstraintTimeline.PREV_TRANSLATE = -3; - TransformConstraintTimeline.PREV_SCALE = -2; - TransformConstraintTimeline.PREV_SHEAR = -1; - TransformConstraintTimeline.ROTATE = 1; - TransformConstraintTimeline.TRANSLATE = 2; - TransformConstraintTimeline.SCALE = 3; - TransformConstraintTimeline.SHEAR = 4; - return TransformConstraintTimeline; - }(CurveTimeline)); - spine.TransformConstraintTimeline = TransformConstraintTimeline; - var PathConstraintPositionTimeline = (function (_super) { - __extends(PathConstraintPositionTimeline, _super); - function PathConstraintPositionTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); - } - PathConstraintPositionTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; - }; - PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { - frameIndex *= PathConstraintPositionTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; - }; - PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.position = constraint.data.position; - return; - } - var position = 0; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) - position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); - position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; - } - if (setupPose) - constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; - else - constraint.position += (position - constraint.position) * alpha; - }; - PathConstraintPositionTimeline.ENTRIES = 2; - PathConstraintPositionTimeline.PREV_TIME = -2; - PathConstraintPositionTimeline.PREV_VALUE = -1; - PathConstraintPositionTimeline.VALUE = 1; - return PathConstraintPositionTimeline; - }(CurveTimeline)); - spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; - var PathConstraintSpacingTimeline = (function (_super) { - __extends(PathConstraintSpacingTimeline, _super); - function PathConstraintSpacingTimeline(frameCount) { - _super.call(this, frameCount); - } - PathConstraintSpacingTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; - }; - PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.spacing = constraint.data.spacing; - return; - } - var spacing = 0; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) - spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); - spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; - } - if (setupPose) - constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; - else - constraint.spacing += (spacing - constraint.spacing) * alpha; - }; - return PathConstraintSpacingTimeline; - }(PathConstraintPositionTimeline)); - spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; - var PathConstraintMixTimeline = (function (_super) { - __extends(PathConstraintMixTimeline, _super); - function PathConstraintMixTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); - } - PathConstraintMixTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; - }; - PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { - frameIndex *= PathConstraintMixTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; - }; - PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix; - constraint.translateMix = constraint.data.translateMix; - } - return; - } - var rotate = 0, translate = 0; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { - rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; - } - else { - var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; - } - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; - constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - } - }; - PathConstraintMixTimeline.ENTRIES = 3; - PathConstraintMixTimeline.PREV_TIME = -3; - PathConstraintMixTimeline.PREV_ROTATE = -2; - PathConstraintMixTimeline.PREV_TRANSLATE = -1; - PathConstraintMixTimeline.ROTATE = 1; - PathConstraintMixTimeline.TRANSLATE = 2; - return PathConstraintMixTimeline; - }(CurveTimeline)); - spine.PathConstraintMixTimeline = PathConstraintMixTimeline; + var Animation = (function () { + function Animation(name, timelines, duration) { + if (name == null) + throw new Error("name cannot be null."); + if (timelines == null) + throw new Error("timelines cannot be null."); + this.name = name; + this.timelines = timelines; + this.duration = duration; + } + Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (loop && this.duration != 0) { + time %= this.duration; + if (lastTime > 0) + lastTime %= this.duration; + } + var timelines = this.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); + }; + Animation.binarySearch = function (values, target, step) { + if (step === void 0) { step = 1; } + var low = 0; + var high = values.length / step - 2; + if (high == 0) + return step; + var current = high >>> 1; + while (true) { + if (values[(current + 1) * step] <= target) + low = current + 1; + else + high = current; + if (low == high) + return (low + 1) * step; + current = (low + high) >>> 1; + } + }; + Animation.linearSearch = function (values, target, step) { + for (var i = 0, last = values.length - step; i <= last; i += step) + if (values[i] > target) + return i; + return -1; + }; + return Animation; + }()); + spine.Animation = Animation; + (function (TimelineType) { + TimelineType[TimelineType["rotate"] = 0] = "rotate"; + TimelineType[TimelineType["translate"] = 1] = "translate"; + TimelineType[TimelineType["scale"] = 2] = "scale"; + TimelineType[TimelineType["shear"] = 3] = "shear"; + TimelineType[TimelineType["attachment"] = 4] = "attachment"; + TimelineType[TimelineType["color"] = 5] = "color"; + TimelineType[TimelineType["deform"] = 6] = "deform"; + TimelineType[TimelineType["event"] = 7] = "event"; + TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; + TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; + TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; + TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; + TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; + TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; + TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; + var CurveTimeline = (function () { + function CurveTimeline(frameCount) { + if (frameCount <= 0) + throw new Error("frameCount must be > 0: " + frameCount); + this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); + } + CurveTimeline.prototype.getFrameCount = function () { + return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; + }; + CurveTimeline.prototype.setLinear = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; + }; + CurveTimeline.prototype.setStepped = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; + }; + CurveTimeline.prototype.getCurveType = function (frameIndex) { + var index = frameIndex * CurveTimeline.BEZIER_SIZE; + if (index == this.curves.length) + return CurveTimeline.LINEAR; + var type = this.curves[index]; + if (type == CurveTimeline.LINEAR) + return CurveTimeline.LINEAR; + if (type == CurveTimeline.STEPPED) + return CurveTimeline.STEPPED; + return CurveTimeline.BEZIER; + }; + CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { + var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; + var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; + var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; + var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var curves = this.curves; + curves[i++] = CurveTimeline.BEZIER; + var x = dfx, y = dfy; + for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + curves[i] = x; + curves[i + 1] = y; + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + x += dfx; + y += dfy; + } + }; + CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { + percent = spine.MathUtils.clamp(percent, 0, 1); + var curves = this.curves; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var type = curves[i]; + if (type == CurveTimeline.LINEAR) + return percent; + if (type == CurveTimeline.STEPPED) + return 0; + i++; + var x = 0; + for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + x = curves[i]; + if (x >= percent) { + var prevX = void 0, prevY = void 0; + if (i == start) { + prevX = 0; + prevY = 0; + } + else { + prevX = curves[i - 2]; + prevY = curves[i - 1]; + } + return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); + } + } + var y = curves[i - 1]; + return y + (1 - y) * (percent - x) / (1 - x); + }; + CurveTimeline.LINEAR = 0; + CurveTimeline.STEPPED = 1; + CurveTimeline.BEZIER = 2; + CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; + return CurveTimeline; + }()); + spine.CurveTimeline = CurveTimeline; + var RotateTimeline = (function (_super) { + __extends(RotateTimeline, _super); + function RotateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount << 1); + } + RotateTimeline.prototype.getPropertyId = function () { + return (TimelineType.rotate << 24) + this.boneIndex; + }; + RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { + frameIndex <<= 1; + this.frames[frameIndex] = time; + this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; + }; + RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { + if (setupPose) + bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; + else { + var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; + r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; + bone.rotation += r_1 * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); + var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); + var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + r = prevRotation + r * percent; + if (setupPose) { + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation = bone.data.rotation + r * alpha; + } + else { + r = bone.data.rotation + r - bone.rotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation += r * alpha; + } + }; + RotateTimeline.ENTRIES = 2; + RotateTimeline.PREV_TIME = -2; + RotateTimeline.PREV_ROTATION = -1; + RotateTimeline.ROTATION = 1; + return RotateTimeline; + }(CurveTimeline)); + spine.RotateTimeline = RotateTimeline; + var TranslateTimeline = (function (_super) { + __extends(TranslateTimeline, _super); + function TranslateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); + } + TranslateTimeline.prototype.getPropertyId = function () { + return (TimelineType.translate << 24) + this.boneIndex; + }; + TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { + frameIndex *= TranslateTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TranslateTimeline.X] = x; + this.frames[frameIndex + TranslateTimeline.Y] = y; + }; + TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { + x = frames[frames.length + TranslateTimeline.PREV_X]; + y = frames[frames.length + TranslateTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); + x = frames[frame + TranslateTimeline.PREV_X]; + y = frames[frame + TranslateTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); + x += (frames[frame + TranslateTimeline.X] - x) * percent; + y += (frames[frame + TranslateTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.x = bone.data.x + x * alpha; + bone.y = bone.data.y + y * alpha; + } + else { + bone.x += (bone.data.x + x - bone.x) * alpha; + bone.y += (bone.data.y + y - bone.y) * alpha; + } + }; + TranslateTimeline.ENTRIES = 3; + TranslateTimeline.PREV_TIME = -3; + TranslateTimeline.PREV_X = -2; + TranslateTimeline.PREV_Y = -1; + TranslateTimeline.X = 1; + TranslateTimeline.Y = 2; + return TranslateTimeline; + }(CurveTimeline)); + spine.TranslateTimeline = TranslateTimeline; + var ScaleTimeline = (function (_super) { + __extends(ScaleTimeline, _super); + function ScaleTimeline(frameCount) { + _super.call(this, frameCount); + } + ScaleTimeline.prototype.getPropertyId = function () { + return (TimelineType.scale << 24) + this.boneIndex; + }; + ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { + x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; + y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; + } + else { + var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); + x = frames[frame + ScaleTimeline.PREV_X]; + y = frames[frame + ScaleTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); + x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; + y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; + } + if (alpha == 1) { + bone.scaleX = x; + bone.scaleY = y; + } + else { + var bx = 0, by = 0; + if (setupPose) { + bx = bone.data.scaleX; + by = bone.data.scaleY; + } + else { + bx = bone.scaleX; + by = bone.scaleY; + } + if (mixingOut) { + x = Math.abs(x) * spine.MathUtils.signum(bx); + y = Math.abs(y) * spine.MathUtils.signum(by); + } + else { + bx = Math.abs(bx) * spine.MathUtils.signum(x); + by = Math.abs(by) * spine.MathUtils.signum(y); + } + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + } + }; + return ScaleTimeline; + }(TranslateTimeline)); + spine.ScaleTimeline = ScaleTimeline; + var ShearTimeline = (function (_super) { + __extends(ShearTimeline, _super); + function ShearTimeline(frameCount) { + _super.call(this, frameCount); + } + ShearTimeline.prototype.getPropertyId = function () { + return (TimelineType.shear << 24) + this.boneIndex; + }; + ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { + x = frames[frames.length + ShearTimeline.PREV_X]; + y = frames[frames.length + ShearTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); + x = frames[frame + ShearTimeline.PREV_X]; + y = frames[frame + ShearTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); + x = x + (frames[frame + ShearTimeline.X] - x) * percent; + y = y + (frames[frame + ShearTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.shearX = bone.data.shearX + x * alpha; + bone.shearY = bone.data.shearY + y * alpha; + } + else { + bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; + bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; + } + }; + return ShearTimeline; + }(TranslateTimeline)); + spine.ShearTimeline = ShearTimeline; + var ColorTimeline = (function (_super) { + __extends(ColorTimeline, _super); + function ColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); + } + ColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.color << 24) + this.slotIndex; + }; + ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { + frameIndex *= ColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + ColorTimeline.R] = r; + this.frames[frameIndex + ColorTimeline.G] = g; + this.frames[frameIndex + ColorTimeline.B] = b; + this.frames[frameIndex + ColorTimeline.A] = a; + }; + ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + slot.color.setFromColor(slot.data.color); + return; + } + var r = 0, g = 0, b = 0, a = 0; + if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + ColorTimeline.PREV_R]; + g = frames[i + ColorTimeline.PREV_G]; + b = frames[i + ColorTimeline.PREV_B]; + a = frames[i + ColorTimeline.PREV_A]; + } + else { + var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); + r = frames[frame + ColorTimeline.PREV_R]; + g = frames[frame + ColorTimeline.PREV_G]; + b = frames[frame + ColorTimeline.PREV_B]; + a = frames[frame + ColorTimeline.PREV_A]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + ColorTimeline.R] - r) * percent; + g += (frames[frame + ColorTimeline.G] - g) * percent; + b += (frames[frame + ColorTimeline.B] - b) * percent; + a += (frames[frame + ColorTimeline.A] - a) * percent; + } + if (alpha == 1) + slot.color.set(r, g, b, a); + else { + var color = slot.color; + if (setupPose) + color.setFromColor(slot.data.color); + color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); + } + }; + ColorTimeline.ENTRIES = 5; + ColorTimeline.PREV_TIME = -5; + ColorTimeline.PREV_R = -4; + ColorTimeline.PREV_G = -3; + ColorTimeline.PREV_B = -2; + ColorTimeline.PREV_A = -1; + ColorTimeline.R = 1; + ColorTimeline.G = 2; + ColorTimeline.B = 3; + ColorTimeline.A = 4; + return ColorTimeline; + }(CurveTimeline)); + spine.ColorTimeline = ColorTimeline; + var TwoColorTimeline = (function (_super) { + __extends(TwoColorTimeline, _super); + function TwoColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); + } + TwoColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.twoColor << 24) + this.slotIndex; + }; + TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { + frameIndex *= TwoColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TwoColorTimeline.R] = r; + this.frames[frameIndex + TwoColorTimeline.G] = g; + this.frames[frameIndex + TwoColorTimeline.B] = b; + this.frames[frameIndex + TwoColorTimeline.A] = a; + this.frames[frameIndex + TwoColorTimeline.R2] = r2; + this.frames[frameIndex + TwoColorTimeline.G2] = g2; + this.frames[frameIndex + TwoColorTimeline.B2] = b2; + }; + TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + slot.color.setFromColor(slot.data.color); + slot.darkColor.setFromColor(slot.data.darkColor); + } + return; + } + var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; + if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + TwoColorTimeline.PREV_R]; + g = frames[i + TwoColorTimeline.PREV_G]; + b = frames[i + TwoColorTimeline.PREV_B]; + a = frames[i + TwoColorTimeline.PREV_A]; + r2 = frames[i + TwoColorTimeline.PREV_R2]; + g2 = frames[i + TwoColorTimeline.PREV_G2]; + b2 = frames[i + TwoColorTimeline.PREV_B2]; + } + else { + var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); + r = frames[frame + TwoColorTimeline.PREV_R]; + g = frames[frame + TwoColorTimeline.PREV_G]; + b = frames[frame + TwoColorTimeline.PREV_B]; + a = frames[frame + TwoColorTimeline.PREV_A]; + r2 = frames[frame + TwoColorTimeline.PREV_R2]; + g2 = frames[frame + TwoColorTimeline.PREV_G2]; + b2 = frames[frame + TwoColorTimeline.PREV_B2]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + TwoColorTimeline.R] - r) * percent; + g += (frames[frame + TwoColorTimeline.G] - g) * percent; + b += (frames[frame + TwoColorTimeline.B] - b) * percent; + a += (frames[frame + TwoColorTimeline.A] - a) * percent; + r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; + g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; + b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; + } + if (alpha == 1) { + slot.color.set(r, g, b, a); + slot.darkColor.set(r2, g2, b2, 1); + } + else { + var light = slot.color; + var dark = slot.darkColor; + if (setupPose) { + light.setFromColor(slot.data.color); + dark.setFromColor(slot.data.darkColor); + } + light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); + dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); + } + }; + TwoColorTimeline.ENTRIES = 8; + TwoColorTimeline.PREV_TIME = -8; + TwoColorTimeline.PREV_R = -7; + TwoColorTimeline.PREV_G = -6; + TwoColorTimeline.PREV_B = -5; + TwoColorTimeline.PREV_A = -4; + TwoColorTimeline.PREV_R2 = -3; + TwoColorTimeline.PREV_G2 = -2; + TwoColorTimeline.PREV_B2 = -1; + TwoColorTimeline.R = 1; + TwoColorTimeline.G = 2; + TwoColorTimeline.B = 3; + TwoColorTimeline.A = 4; + TwoColorTimeline.R2 = 5; + TwoColorTimeline.G2 = 6; + TwoColorTimeline.B2 = 7; + return TwoColorTimeline; + }(CurveTimeline)); + spine.TwoColorTimeline = TwoColorTimeline; + var AttachmentTimeline = (function () { + function AttachmentTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.attachmentNames = new Array(frameCount); + } + AttachmentTimeline.prototype.getPropertyId = function () { + return (TimelineType.attachment << 24) + this.slotIndex; + }; + AttachmentTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { + this.frames[frameIndex] = time; + this.attachmentNames[frameIndex] = attachmentName; + }; + AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + if (mixingOut && setupPose) { + var attachmentName_1 = slot.data.attachmentName; + slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + var attachmentName_2 = slot.data.attachmentName; + slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); + } + return; + } + var frameIndex = 0; + if (time >= frames[frames.length - 1]) + frameIndex = frames.length - 1; + else + frameIndex = Animation.binarySearch(frames, time, 1) - 1; + var attachmentName = this.attachmentNames[frameIndex]; + skeleton.slots[this.slotIndex] + .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); + }; + return AttachmentTimeline; + }()); + spine.AttachmentTimeline = AttachmentTimeline; + var DeformTimeline = (function (_super) { + __extends(DeformTimeline, _super); + function DeformTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount); + this.frameVertices = new Array(frameCount); + } + DeformTimeline.prototype.getPropertyId = function () { + return (TimelineType.deform << 24) + this.slotIndex; + }; + DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { + this.frames[frameIndex] = time; + this.frameVertices[frameIndex] = vertices; + }; + DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var slotAttachment = slot.getAttachment(); + if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) + return; + var frames = this.frames; + var verticesArray = slot.attachmentVertices; + if (time < frames[0]) { + if (setupPose) + spine.Utils.setArraySize(verticesArray, 0); + return; + } + var frameVertices = this.frameVertices; + var vertexCount = frameVertices[0].length; + if (verticesArray.length != vertexCount && !setupPose) + alpha = 1; + var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); + if (time >= frames[frames.length - 1]) { + var lastVertices = frameVertices[frames.length - 1]; + if (alpha == 1) { + spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var setup = setupVertices[i]; + vertices[i] = setup + (lastVertices[i] - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] = lastVertices[i] * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] += (lastVertices[i] - vertices[i]) * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time); + var prevVertices = frameVertices[frame - 1]; + var nextVertices = frameVertices[frame]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); + if (alpha == 1) { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = prev + (nextVertices[i] - prev) * percent; + } + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i], setup = setupVertices[i]; + vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; + } + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; + } + } + }; + return DeformTimeline; + }(CurveTimeline)); + spine.DeformTimeline = DeformTimeline; + var EventTimeline = (function () { + function EventTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.events = new Array(frameCount); + } + EventTimeline.prototype.getPropertyId = function () { + return TimelineType.event << 24; + }; + EventTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + EventTimeline.prototype.setFrame = function (frameIndex, event) { + this.frames[frameIndex] = event.time; + this.events[frameIndex] = event; + }; + EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + if (firedEvents == null) + return; + var frames = this.frames; + var frameCount = this.frames.length; + if (lastTime > time) { + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); + lastTime = -1; + } + else if (lastTime >= frames[frameCount - 1]) + return; + if (time < frames[0]) + return; + var frame = 0; + if (lastTime < frames[0]) + frame = 0; + else { + frame = Animation.binarySearch(frames, lastTime); + var frameTime = frames[frame]; + while (frame > 0) { + if (frames[frame - 1] != frameTime) + break; + frame--; + } + } + for (; frame < frameCount && time >= frames[frame]; frame++) + firedEvents.push(this.events[frame]); + }; + return EventTimeline; + }()); + spine.EventTimeline = EventTimeline; + var DrawOrderTimeline = (function () { + function DrawOrderTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.drawOrders = new Array(frameCount); + } + DrawOrderTimeline.prototype.getPropertyId = function () { + return TimelineType.drawOrder << 24; + }; + DrawOrderTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { + this.frames[frameIndex] = time; + this.drawOrders[frameIndex] = drawOrder; + }; + DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var drawOrder = skeleton.drawOrder; + var slots = skeleton.slots; + if (mixingOut && setupPose) { + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frame = 0; + if (time >= frames[frames.length - 1]) + frame = frames.length - 1; + else + frame = Animation.binarySearch(frames, time) - 1; + var drawOrderToSetupIndex = this.drawOrders[frame]; + if (drawOrderToSetupIndex == null) + spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); + else { + for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) + drawOrder[i] = slots[drawOrderToSetupIndex[i]]; + } + }; + return DrawOrderTimeline; + }()); + spine.DrawOrderTimeline = DrawOrderTimeline; + var IkConstraintTimeline = (function (_super) { + __extends(IkConstraintTimeline, _super); + function IkConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); + } + IkConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; + }; + IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { + frameIndex *= IkConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; + this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; + }; + IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.mix = constraint.data.mix; + constraint.bendDirection = constraint.data.bendDirection; + } + return; + } + if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { + if (setupPose) { + constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection + : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + return; + } + var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); + var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); + if (setupPose) { + constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + }; + IkConstraintTimeline.ENTRIES = 3; + IkConstraintTimeline.PREV_TIME = -3; + IkConstraintTimeline.PREV_MIX = -2; + IkConstraintTimeline.PREV_BEND_DIRECTION = -1; + IkConstraintTimeline.MIX = 1; + IkConstraintTimeline.BEND_DIRECTION = 2; + return IkConstraintTimeline; + }(CurveTimeline)); + spine.IkConstraintTimeline = IkConstraintTimeline; + var TransformConstraintTimeline = (function (_super) { + __extends(TransformConstraintTimeline, _super); + function TransformConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); + } + TransformConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; + }; + TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { + frameIndex *= TransformConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; + this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; + this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; + }; + TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.rotateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + return; + } + var rotate = 0, translate = 0, scale = 0, shear = 0; + if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { + var i = frames.length; + rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; + } + else { + var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); + rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; + scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; + shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; + } + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; + constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; + constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; + constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + constraint.scaleMix += (scale - constraint.scaleMix) * alpha; + constraint.shearMix += (shear - constraint.shearMix) * alpha; + } + }; + TransformConstraintTimeline.ENTRIES = 5; + TransformConstraintTimeline.PREV_TIME = -5; + TransformConstraintTimeline.PREV_ROTATE = -4; + TransformConstraintTimeline.PREV_TRANSLATE = -3; + TransformConstraintTimeline.PREV_SCALE = -2; + TransformConstraintTimeline.PREV_SHEAR = -1; + TransformConstraintTimeline.ROTATE = 1; + TransformConstraintTimeline.TRANSLATE = 2; + TransformConstraintTimeline.SCALE = 3; + TransformConstraintTimeline.SHEAR = 4; + return TransformConstraintTimeline; + }(CurveTimeline)); + spine.TransformConstraintTimeline = TransformConstraintTimeline; + var PathConstraintPositionTimeline = (function (_super) { + __extends(PathConstraintPositionTimeline, _super); + function PathConstraintPositionTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); + } + PathConstraintPositionTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; + }; + PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { + frameIndex *= PathConstraintPositionTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; + }; + PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.position = constraint.data.position; + return; + } + var position = 0; + if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) + position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); + position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); + position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; + } + if (setupPose) + constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; + else + constraint.position += (position - constraint.position) * alpha; + }; + PathConstraintPositionTimeline.ENTRIES = 2; + PathConstraintPositionTimeline.PREV_TIME = -2; + PathConstraintPositionTimeline.PREV_VALUE = -1; + PathConstraintPositionTimeline.VALUE = 1; + return PathConstraintPositionTimeline; + }(CurveTimeline)); + spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; + var PathConstraintSpacingTimeline = (function (_super) { + __extends(PathConstraintSpacingTimeline, _super); + function PathConstraintSpacingTimeline(frameCount) { + _super.call(this, frameCount); + } + PathConstraintSpacingTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; + }; + PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.spacing = constraint.data.spacing; + return; + } + var spacing = 0; + if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) + spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); + spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); + spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; + } + if (setupPose) + constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; + else + constraint.spacing += (spacing - constraint.spacing) * alpha; + }; + return PathConstraintSpacingTimeline; + }(PathConstraintPositionTimeline)); + spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; + var PathConstraintMixTimeline = (function (_super) { + __extends(PathConstraintMixTimeline, _super); + function PathConstraintMixTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); + } + PathConstraintMixTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; + }; + PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { + frameIndex *= PathConstraintMixTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; + }; + PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } + return; + } + var rotate = 0, translate = 0; + if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { + rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; + } + else { + var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); + rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; + } + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; + constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + } + }; + PathConstraintMixTimeline.ENTRIES = 3; + PathConstraintMixTimeline.PREV_TIME = -3; + PathConstraintMixTimeline.PREV_ROTATE = -2; + PathConstraintMixTimeline.PREV_TRANSLATE = -1; + PathConstraintMixTimeline.ROTATE = 1; + PathConstraintMixTimeline.TRANSLATE = 2; + return PathConstraintMixTimeline; + }(CurveTimeline)); + spine.PathConstraintMixTimeline = PathConstraintMixTimeline; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationState = (function () { - function AnimationState(data) { - this.tracks = new Array(); - this.events = new Array(); - this.listeners = new Array(); - this.queue = new EventQueue(this); - this.propertyIDs = new spine.IntSet(); - this.mixingTo = new Array(); - this.animationsChanged = false; - this.timeScale = 1; - this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); - this.data = data; - } - AnimationState.prototype.update = function (delta) { - delta *= this.timeScale; - var tracks = this.tracks; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null) - continue; - current.animationLast = current.nextAnimationLast; - current.trackLast = current.nextTrackLast; - var currentDelta = delta * current.timeScale; - if (current.delay > 0) { - current.delay -= currentDelta; - if (current.delay > 0) - continue; - currentDelta = -current.delay; - current.delay = 0; - } - var next = current.next; - if (next != null) { - var nextTime = current.trackLast - next.delay; - if (nextTime >= 0) { - next.delay = 0; - next.trackTime = nextTime + delta * next.timeScale; - current.trackTime += currentDelta; - this.setCurrent(i, next, true); - while (next.mixingFrom != null) { - next.mixTime += currentDelta; - next = next.mixingFrom; - } - continue; - } - } - else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { - tracks[i] = null; - this.queue.end(current); - this.disposeNext(current); - continue; - } - if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { - var from = current.mixingFrom; - current.mixingFrom = null; - while (from != null) { - this.queue.end(from); - from = from.mixingFrom; - } - } - current.trackTime += currentDelta; - } - this.queue.drain(); - }; - AnimationState.prototype.updateMixingFrom = function (to, delta) { - var from = to.mixingFrom; - if (from == null) - return true; - var finished = this.updateMixingFrom(from, delta); - if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { - if (from.totalAlpha == 0) { - to.mixingFrom = from.mixingFrom; - to.interruptAlpha = from.interruptAlpha; - this.queue.end(from); - } - return finished; - } - from.animationLast = from.nextAnimationLast; - from.trackLast = from.nextTrackLast; - from.trackTime += delta * from.timeScale; - to.mixTime += delta * to.timeScale; - return false; - }; - AnimationState.prototype.apply = function (skeleton) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (this.animationsChanged) - this._animationsChanged(); - var events = this.events; - var tracks = this.tracks; - var applied = false; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null || current.delay > 0) - continue; - applied = true; - var mix = current.alpha; - if (current.mixingFrom != null) - mix *= this.applyMixingFrom(current, skeleton); - else if (current.trackTime >= current.trackEnd && current.next == null) - mix = 0; - var animationLast = current.animationLast, animationTime = current.getAnimationTime(); - var timelineCount = current.animation.timelines.length; - var timelines = current.animation.timelines; - if (mix == 1) { - for (var ii = 0; ii < timelineCount; ii++) - timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); - } - else { - var timelineData = current.timelineData; - var firstFrame = current.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = current.timelinesRotation; - for (var ii = 0; ii < timelineCount; ii++) { - var timeline = timelines[ii]; - if (timeline instanceof spine.RotateTimeline) { - this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); - } - else - timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); - } - } - this.queueEvents(current, animationTime); - events.length = 0; - current.nextAnimationLast = animationTime; - current.nextTrackLast = current.trackTime; - } - this.queue.drain(); - return applied; - }; - AnimationState.prototype.applyMixingFrom = function (to, skeleton) { - var from = to.mixingFrom; - if (from.mixingFrom != null) - this.applyMixingFrom(from, skeleton); - var mix = 0; - if (to.mixDuration == 0) - mix = 1; - else { - mix = to.mixTime / to.mixDuration; - if (mix > 1) - mix = 1; - } - var events = mix < from.eventThreshold ? this.events : null; - var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; - var animationLast = from.animationLast, animationTime = from.getAnimationTime(); - var timelineCount = from.animation.timelines.length; - var timelines = from.animation.timelines; - var timelineData = from.timelineData; - var timelineDipMix = from.timelineDipMix; - var firstFrame = from.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = from.timelinesRotation; - var first = false; - var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; - from.totalAlpha = 0; - for (var i = 0; i < timelineCount; i++) { - var timeline = timelines[i]; - switch (timelineData[i]) { - case AnimationState.SUBSEQUENT: - first = false; - alpha = alphaMix; - break; - case AnimationState.FIRST: - first = true; - alpha = alphaMix; - break; - case AnimationState.DIP: - first = true; - alpha = alphaDip; - break; - default: - first = true; - alpha = alphaDip; - var dipMix = timelineDipMix[i]; - alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); - break; - } - from.totalAlpha += alpha; - if (timeline instanceof spine.RotateTimeline) - this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); - else { - if (!first) { - if (!attachments && timeline instanceof spine.AttachmentTimeline) - continue; - if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) - continue; - } - timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); - } - } - if (to.mixDuration > 0) - this.queueEvents(from, animationTime); - this.events.length = 0; - from.nextAnimationLast = animationTime; - from.nextTrackLast = from.trackTime; - return mix; - }; - AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { - if (firstFrame) - timelinesRotation[i] = 0; - if (alpha == 1) { - timeline.apply(skeleton, 0, time, null, 1, setupPose, false); - return; - } - var rotateTimeline = timeline; - var frames = rotateTimeline.frames; - var bone = skeleton.bones[rotateTimeline.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - var r2 = 0; - if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) - r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; - else { - var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); - var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); - r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - r2 = prevRotation + r2 * percent + bone.data.rotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - } - var r1 = setupPose ? bone.data.rotation : bone.rotation; - var total = 0, diff = r2 - r1; - if (diff == 0) { - total = timelinesRotation[i]; - } - else { - diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; - var lastTotal = 0, lastDiff = 0; - if (firstFrame) { - lastTotal = 0; - lastDiff = diff; - } - else { - lastTotal = timelinesRotation[i]; - lastDiff = timelinesRotation[i + 1]; - } - var current = diff > 0, dir = lastTotal >= 0; - if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { - if (Math.abs(lastTotal) > 180) - lastTotal += 360 * spine.MathUtils.signum(lastTotal); - dir = current; - } - total = diff + lastTotal - lastTotal % 360; - if (dir != current) - total += 360 * spine.MathUtils.signum(lastTotal); - timelinesRotation[i] = total; - } - timelinesRotation[i + 1] = diff; - r1 += total * alpha; - bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; - }; - AnimationState.prototype.queueEvents = function (entry, animationTime) { - var animationStart = entry.animationStart, animationEnd = entry.animationEnd; - var duration = animationEnd - animationStart; - var trackLastWrapped = entry.trackLast % duration; - var events = this.events; - var i = 0, n = events.length; - for (; i < n; i++) { - var event_1 = events[i]; - if (event_1.time < trackLastWrapped) - break; - if (event_1.time > animationEnd) - continue; - this.queue.event(entry, event_1); - } - if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) - : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { - this.queue.complete(entry); - } - for (; i < n; i++) { - var event_2 = events[i]; - if (event_2.time < animationStart) - continue; - this.queue.event(entry, events[i]); - } - }; - AnimationState.prototype.clearTracks = function () { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) - this.clearTrack(i); - this.tracks.length = 0; - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.clearTrack = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return; - var current = this.tracks[trackIndex]; - if (current == null) - return; - this.queue.end(current); - this.disposeNext(current); - var entry = current; - while (true) { - var from = entry.mixingFrom; - if (from == null) - break; - this.queue.end(from); - entry.mixingFrom = null; - entry = from; - } - this.tracks[current.trackIndex] = null; - this.queue.drain(); - }; - AnimationState.prototype.setCurrent = function (index, current, interrupt) { - var from = this.expandToIndex(index); - this.tracks[index] = current; - if (from != null) { - if (interrupt) - this.queue.interrupt(from); - current.mixingFrom = from; - current.mixTime = 0; - if (from.mixingFrom != null && from.mixDuration > 0) - current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); - from.timelinesRotation.length = 0; - } - this.queue.start(current); - }; - AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.setAnimationWith(trackIndex, animation, loop); - }; - AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { - if (animation == null) - throw new Error("animation cannot be null."); - var interrupt = true; - var current = this.expandToIndex(trackIndex); - if (current != null) { - if (current.nextTrackLast == -1) { - this.tracks[trackIndex] = current.mixingFrom; - this.queue.interrupt(current); - this.queue.end(current); - this.disposeNext(current); - current = current.mixingFrom; - interrupt = false; - } - else - this.disposeNext(current); - } - var entry = this.trackEntry(trackIndex, animation, loop, current); - this.setCurrent(trackIndex, entry, interrupt); - this.queue.drain(); - return entry; - }; - AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.addAnimationWith(trackIndex, animation, loop, delay); - }; - AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { - if (animation == null) - throw new Error("animation cannot be null."); - var last = this.expandToIndex(trackIndex); - if (last != null) { - while (last.next != null) - last = last.next; - } - var entry = this.trackEntry(trackIndex, animation, loop, last); - if (last == null) { - this.setCurrent(trackIndex, entry, true); - this.queue.drain(); - } - else { - last.next = entry; - if (delay <= 0) { - var duration = last.animationEnd - last.animationStart; - if (duration != 0) - delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); - else - delay = 0; - } - } - entry.delay = delay; - return entry; - }; - AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { - var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { - if (delay <= 0) - delay -= mixDuration; - var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.setEmptyAnimations = function (mixDuration) { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var current = this.tracks[i]; - if (current != null) - this.setEmptyAnimation(current.trackIndex, mixDuration); - } - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.expandToIndex = function (index) { - if (index < this.tracks.length) - return this.tracks[index]; - spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); - this.tracks.length = index + 1; - return null; - }; - AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { - var entry = this.trackEntryPool.obtain(); - entry.trackIndex = trackIndex; - entry.animation = animation; - entry.loop = loop; - entry.eventThreshold = 0; - entry.attachmentThreshold = 0; - entry.drawOrderThreshold = 0; - entry.animationStart = 0; - entry.animationEnd = animation.duration; - entry.animationLast = -1; - entry.nextAnimationLast = -1; - entry.delay = 0; - entry.trackTime = 0; - entry.trackLast = -1; - entry.nextTrackLast = -1; - entry.trackEnd = Number.MAX_VALUE; - entry.timeScale = 1; - entry.alpha = 1; - entry.interruptAlpha = 1; - entry.mixTime = 0; - entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); - return entry; - }; - AnimationState.prototype.disposeNext = function (entry) { - var next = entry.next; - while (next != null) { - this.queue.dispose(next); - next = next.next; - } - entry.next = null; - }; - AnimationState.prototype._animationsChanged = function () { - this.animationsChanged = false; - var propertyIDs = this.propertyIDs; - propertyIDs.clear(); - var mixingTo = this.mixingTo; - var lastEntry = null; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var entry = this.tracks[i]; - if (entry != null) { - entry.setTimelineData(lastEntry, mixingTo, propertyIDs); - lastEntry = entry; - } - } - }; - AnimationState.prototype.getCurrent = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return null; - return this.tracks[trackIndex]; - }; - AnimationState.prototype.addListener = function (listener) { - if (listener == null) - throw new Error("listener cannot be null."); - this.listeners.push(listener); - }; - AnimationState.prototype.removeListener = function (listener) { - var index = this.listeners.indexOf(listener); - if (index >= 0) - this.listeners.splice(index, 1); - }; - AnimationState.prototype.clearListeners = function () { - this.listeners.length = 0; - }; - AnimationState.prototype.clearListenerNotifications = function () { - this.queue.clear(); - }; - AnimationState.emptyAnimation = new spine.Animation("", [], 0); - AnimationState.SUBSEQUENT = 0; - AnimationState.FIRST = 1; - AnimationState.DIP = 2; - AnimationState.DIP_MIX = 3; - return AnimationState; - }()); - spine.AnimationState = AnimationState; - var TrackEntry = (function () { - function TrackEntry() { - this.timelineData = new Array(); - this.timelineDipMix = new Array(); - this.timelinesRotation = new Array(); - } - TrackEntry.prototype.reset = function () { - this.next = null; - this.mixingFrom = null; - this.animation = null; - this.listener = null; - this.timelineData.length = 0; - this.timelineDipMix.length = 0; - this.timelinesRotation.length = 0; - }; - TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { - if (to != null) - mixingToArray.push(to); - var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; - if (to != null) - mixingToArray.pop(); - var mixingTo = mixingToArray; - var mixingToLast = mixingToArray.length - 1; - var timelines = this.animation.timelines; - var timelinesCount = this.animation.timelines.length; - var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); - this.timelineDipMix.length = 0; - var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); - outer: for (var i = 0; i < timelinesCount; i++) { - var id = timelines[i].getPropertyId(); - if (!propertyIDs.add(id)) - timelineData[i] = AnimationState.SUBSEQUENT; - else if (to == null || !to.hasTimeline(id)) - timelineData[i] = AnimationState.FIRST; - else { - for (var ii = mixingToLast; ii >= 0; ii--) { - var entry = mixingTo[ii]; - if (!entry.hasTimeline(id)) { - if (entry.mixDuration > 0) { - timelineData[i] = AnimationState.DIP_MIX; - timelineDipMix[i] = entry; - continue outer; - } - } - } - timelineData[i] = AnimationState.DIP; - } - } - return lastEntry; - }; - TrackEntry.prototype.hasTimeline = function (id) { - var timelines = this.animation.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - if (timelines[i].getPropertyId() == id) - return true; - return false; - }; - TrackEntry.prototype.getAnimationTime = function () { - if (this.loop) { - var duration = this.animationEnd - this.animationStart; - if (duration == 0) - return this.animationStart; - return (this.trackTime % duration) + this.animationStart; - } - return Math.min(this.trackTime + this.animationStart, this.animationEnd); - }; - TrackEntry.prototype.setAnimationLast = function (animationLast) { - this.animationLast = animationLast; - this.nextAnimationLast = animationLast; - }; - TrackEntry.prototype.isComplete = function () { - return this.trackTime >= this.animationEnd - this.animationStart; - }; - TrackEntry.prototype.resetRotationDirections = function () { - this.timelinesRotation.length = 0; - }; - return TrackEntry; - }()); - spine.TrackEntry = TrackEntry; - var EventQueue = (function () { - function EventQueue(animState) { - this.objects = []; - this.drainDisabled = false; - this.animState = animState; - } - EventQueue.prototype.start = function (entry) { - this.objects.push(EventType.start); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.interrupt = function (entry) { - this.objects.push(EventType.interrupt); - this.objects.push(entry); - }; - EventQueue.prototype.end = function (entry) { - this.objects.push(EventType.end); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.dispose = function (entry) { - this.objects.push(EventType.dispose); - this.objects.push(entry); - }; - EventQueue.prototype.complete = function (entry) { - this.objects.push(EventType.complete); - this.objects.push(entry); - }; - EventQueue.prototype.event = function (entry, event) { - this.objects.push(EventType.event); - this.objects.push(entry); - this.objects.push(event); - }; - EventQueue.prototype.drain = function () { - if (this.drainDisabled) - return; - this.drainDisabled = true; - var objects = this.objects; - var listeners = this.animState.listeners; - for (var i = 0; i < objects.length; i += 2) { - var type = objects[i]; - var entry = objects[i + 1]; - switch (type) { - case EventType.start: - if (entry.listener != null && entry.listener.start) - entry.listener.start(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].start) - listeners[ii].start(entry); - break; - case EventType.interrupt: - if (entry.listener != null && entry.listener.interrupt) - entry.listener.interrupt(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].interrupt) - listeners[ii].interrupt(entry); - break; - case EventType.end: - if (entry.listener != null && entry.listener.end) - entry.listener.end(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].end) - listeners[ii].end(entry); - case EventType.dispose: - if (entry.listener != null && entry.listener.dispose) - entry.listener.dispose(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].dispose) - listeners[ii].dispose(entry); - this.animState.trackEntryPool.free(entry); - break; - case EventType.complete: - if (entry.listener != null && entry.listener.complete) - entry.listener.complete(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].complete) - listeners[ii].complete(entry); - break; - case EventType.event: - var event_3 = objects[i++ + 2]; - if (entry.listener != null && entry.listener.event) - entry.listener.event(entry, event_3); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].event) - listeners[ii].event(entry, event_3); - break; - } - } - this.clear(); - this.drainDisabled = false; - }; - EventQueue.prototype.clear = function () { - this.objects.length = 0; - }; - return EventQueue; - }()); - spine.EventQueue = EventQueue; - (function (EventType) { - EventType[EventType["start"] = 0] = "start"; - EventType[EventType["interrupt"] = 1] = "interrupt"; - EventType[EventType["end"] = 2] = "end"; - EventType[EventType["dispose"] = 3] = "dispose"; - EventType[EventType["complete"] = 4] = "complete"; - EventType[EventType["event"] = 5] = "event"; - })(spine.EventType || (spine.EventType = {})); - var EventType = spine.EventType; - var AnimationStateAdapter2 = (function () { - function AnimationStateAdapter2() { - } - AnimationStateAdapter2.prototype.start = function (entry) { - }; - AnimationStateAdapter2.prototype.interrupt = function (entry) { - }; - AnimationStateAdapter2.prototype.end = function (entry) { - }; - AnimationStateAdapter2.prototype.dispose = function (entry) { - }; - AnimationStateAdapter2.prototype.complete = function (entry) { - }; - AnimationStateAdapter2.prototype.event = function (entry, event) { - }; - return AnimationStateAdapter2; - }()); - spine.AnimationStateAdapter2 = AnimationStateAdapter2; + var AnimationState = (function () { + function AnimationState(data) { + this.tracks = new Array(); + this.events = new Array(); + this.listeners = new Array(); + this.queue = new EventQueue(this); + this.propertyIDs = new spine.IntSet(); + this.mixingTo = new Array(); + this.animationsChanged = false; + this.timeScale = 1; + this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); + this.data = data; + } + AnimationState.prototype.update = function (delta) { + delta *= this.timeScale; + var tracks = this.tracks; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null) + continue; + current.animationLast = current.nextAnimationLast; + current.trackLast = current.nextTrackLast; + var currentDelta = delta * current.timeScale; + if (current.delay > 0) { + current.delay -= currentDelta; + if (current.delay > 0) + continue; + currentDelta = -current.delay; + current.delay = 0; + } + var next = current.next; + if (next != null) { + var nextTime = current.trackLast - next.delay; + if (nextTime >= 0) { + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; + this.setCurrent(i, next, true); + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + } + else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; + } + if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { + var from = current.mixingFrom; + current.mixingFrom = null; + while (from != null) { + this.queue.end(from); + from = from.mixingFrom; + } + } + current.trackTime += currentDelta; + } + this.queue.drain(); + }; + AnimationState.prototype.updateMixingFrom = function (to, delta) { + var from = to.mixingFrom; + if (from == null) + return true; + var finished = this.updateMixingFrom(from, delta); + if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { + if (from.totalAlpha == 0) { + to.mixingFrom = from.mixingFrom; + to.interruptAlpha = from.interruptAlpha; + this.queue.end(from); + } + return finished; + } + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + from.trackTime += delta * from.timeScale; + to.mixTime += delta * to.timeScale; + return false; + }; + AnimationState.prototype.apply = function (skeleton) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (this.animationsChanged) + this._animationsChanged(); + var events = this.events; + var tracks = this.tracks; + var applied = false; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null || current.delay > 0) + continue; + applied = true; + var mix = current.alpha; + if (current.mixingFrom != null) + mix *= this.applyMixingFrom(current, skeleton); + else if (current.trackTime >= current.trackEnd && current.next == null) + mix = 0; + var animationLast = current.animationLast, animationTime = current.getAnimationTime(); + var timelineCount = current.animation.timelines.length; + var timelines = current.animation.timelines; + if (mix == 1) { + for (var ii = 0; ii < timelineCount; ii++) + timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); + } + else { + var timelineData = current.timelineData; + var firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = current.timelinesRotation; + for (var ii = 0; ii < timelineCount; ii++) { + var timeline = timelines[ii]; + if (timeline instanceof spine.RotateTimeline) { + this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); + } + else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); + } + } + this.queueEvents(current, animationTime); + events.length = 0; + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; + } + this.queue.drain(); + return applied; + }; + AnimationState.prototype.applyMixingFrom = function (to, skeleton) { + var from = to.mixingFrom; + if (from.mixingFrom != null) + this.applyMixingFrom(from, skeleton); + var mix = 0; + if (to.mixDuration == 0) + mix = 1; + else { + mix = to.mixTime / to.mixDuration; + if (mix > 1) + mix = 1; + } + var events = mix < from.eventThreshold ? this.events : null; + var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; + var animationLast = from.animationLast, animationTime = from.getAnimationTime(); + var timelineCount = from.animation.timelines.length; + var timelines = from.animation.timelines; + var timelineData = from.timelineData; + var timelineDipMix = from.timelineDipMix; + var firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = from.timelinesRotation; + var first = false; + var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; + from.totalAlpha = 0; + for (var i = 0; i < timelineCount; i++) { + var timeline = timelines[i]; + switch (timelineData[i]) { + case AnimationState.SUBSEQUENT: + first = false; + alpha = alphaMix; + break; + case AnimationState.FIRST: + first = true; + alpha = alphaMix; + break; + case AnimationState.DIP: + first = true; + alpha = alphaDip; + break; + default: + first = true; + alpha = alphaDip; + var dipMix = timelineDipMix[i]; + alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); + break; + } + from.totalAlpha += alpha; + if (timeline instanceof spine.RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); + else { + if (!first) { + if (!attachments && timeline instanceof spine.AttachmentTimeline) + continue; + if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) + continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); + } + } + if (to.mixDuration > 0) + this.queueEvents(from, animationTime); + this.events.length = 0; + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + }; + AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { + if (firstFrame) + timelinesRotation[i] = 0; + if (alpha == 1) { + timeline.apply(skeleton, 0, time, null, 1, setupPose, false); + return; + } + var rotateTimeline = timeline; + var frames = rotateTimeline.frames; + var bone = skeleton.bones[rotateTimeline.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + var r2 = 0; + if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) + r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; + else { + var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); + var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); + r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + r2 = prevRotation + r2 * percent + bone.data.rotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + } + var r1 = setupPose ? bone.data.rotation : bone.rotation; + var total = 0, diff = r2 - r1; + if (diff == 0) { + total = timelinesRotation[i]; + } + else { + diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; + var lastTotal = 0, lastDiff = 0; + if (firstFrame) { + lastTotal = 0; + lastDiff = diff; + } + else { + lastTotal = timelinesRotation[i]; + lastDiff = timelinesRotation[i + 1]; + } + var current = diff > 0, dir = lastTotal >= 0; + if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { + if (Math.abs(lastTotal) > 180) + lastTotal += 360 * spine.MathUtils.signum(lastTotal); + dir = current; + } + total = diff + lastTotal - lastTotal % 360; + if (dir != current) + total += 360 * spine.MathUtils.signum(lastTotal); + timelinesRotation[i] = total; + } + timelinesRotation[i + 1] = diff; + r1 += total * alpha; + bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; + }; + AnimationState.prototype.queueEvents = function (entry, animationTime) { + var animationStart = entry.animationStart, animationEnd = entry.animationEnd; + var duration = animationEnd - animationStart; + var trackLastWrapped = entry.trackLast % duration; + var events = this.events; + var i = 0, n = events.length; + for (; i < n; i++) { + var event_1 = events[i]; + if (event_1.time < trackLastWrapped) + break; + if (event_1.time > animationEnd) + continue; + this.queue.event(entry, event_1); + } + if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) + : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { + this.queue.complete(entry); + } + for (; i < n; i++) { + var event_2 = events[i]; + if (event_2.time < animationStart) + continue; + this.queue.event(entry, events[i]); + } + }; + AnimationState.prototype.clearTracks = function () { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) + this.clearTrack(i); + this.tracks.length = 0; + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.clearTrack = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return; + var current = this.tracks[trackIndex]; + if (current == null) + return; + this.queue.end(current); + this.disposeNext(current); + var entry = current; + while (true) { + var from = entry.mixingFrom; + if (from == null) + break; + this.queue.end(from); + entry.mixingFrom = null; + entry = from; + } + this.tracks[current.trackIndex] = null; + this.queue.drain(); + }; + AnimationState.prototype.setCurrent = function (index, current, interrupt) { + var from = this.expandToIndex(index); + this.tracks[index] = current; + if (from != null) { + if (interrupt) + this.queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + if (from.mixingFrom != null && from.mixDuration > 0) + current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); + from.timelinesRotation.length = 0; + } + this.queue.start(current); + }; + AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.setAnimationWith(trackIndex, animation, loop); + }; + AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { + if (animation == null) + throw new Error("animation cannot be null."); + var interrupt = true; + var current = this.expandToIndex(trackIndex); + if (current != null) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = current.mixingFrom; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = current.mixingFrom; + interrupt = false; + } + else + this.disposeNext(current); + } + var entry = this.trackEntry(trackIndex, animation, loop, current); + this.setCurrent(trackIndex, entry, interrupt); + this.queue.drain(); + return entry; + }; + AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.addAnimationWith(trackIndex, animation, loop, delay); + }; + AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { + if (animation == null) + throw new Error("animation cannot be null."); + var last = this.expandToIndex(trackIndex); + if (last != null) { + while (last.next != null) + last = last.next; + } + var entry = this.trackEntry(trackIndex, animation, loop, last); + if (last == null) { + this.setCurrent(trackIndex, entry, true); + this.queue.drain(); + } + else { + last.next = entry; + if (delay <= 0) { + var duration = last.animationEnd - last.animationStart; + if (duration != 0) + delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); + else + delay = 0; + } + } + entry.delay = delay; + return entry; + }; + AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { + var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { + if (delay <= 0) + delay -= mixDuration; + var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.setEmptyAnimations = function (mixDuration) { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var current = this.tracks[i]; + if (current != null) + this.setEmptyAnimation(current.trackIndex, mixDuration); + } + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.expandToIndex = function (index) { + if (index < this.tracks.length) + return this.tracks[index]; + spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); + this.tracks.length = index + 1; + return null; + }; + AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { + var entry = this.trackEntryPool.obtain(); + entry.trackIndex = trackIndex; + entry.animation = animation; + entry.loop = loop; + entry.eventThreshold = 0; + entry.attachmentThreshold = 0; + entry.drawOrderThreshold = 0; + entry.animationStart = 0; + entry.animationEnd = animation.duration; + entry.animationLast = -1; + entry.nextAnimationLast = -1; + entry.delay = 0; + entry.trackTime = 0; + entry.trackLast = -1; + entry.nextTrackLast = -1; + entry.trackEnd = Number.MAX_VALUE; + entry.timeScale = 1; + entry.alpha = 1; + entry.interruptAlpha = 1; + entry.mixTime = 0; + entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); + return entry; + }; + AnimationState.prototype.disposeNext = function (entry) { + var next = entry.next; + while (next != null) { + this.queue.dispose(next); + next = next.next; + } + entry.next = null; + }; + AnimationState.prototype._animationsChanged = function () { + this.animationsChanged = false; + var propertyIDs = this.propertyIDs; + propertyIDs.clear(); + var mixingTo = this.mixingTo; + var lastEntry = null; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var entry = this.tracks[i]; + if (entry != null) { + entry.setTimelineData(lastEntry, mixingTo, propertyIDs); + lastEntry = entry; + } + } + }; + AnimationState.prototype.getCurrent = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return null; + return this.tracks[trackIndex]; + }; + AnimationState.prototype.addListener = function (listener) { + if (listener == null) + throw new Error("listener cannot be null."); + this.listeners.push(listener); + }; + AnimationState.prototype.removeListener = function (listener) { + var index = this.listeners.indexOf(listener); + if (index >= 0) + this.listeners.splice(index, 1); + }; + AnimationState.prototype.clearListeners = function () { + this.listeners.length = 0; + }; + AnimationState.prototype.clearListenerNotifications = function () { + this.queue.clear(); + }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); + AnimationState.SUBSEQUENT = 0; + AnimationState.FIRST = 1; + AnimationState.DIP = 2; + AnimationState.DIP_MIX = 3; + return AnimationState; + }()); + spine.AnimationState = AnimationState; + var TrackEntry = (function () { + function TrackEntry() { + this.timelineData = new Array(); + this.timelineDipMix = new Array(); + this.timelinesRotation = new Array(); + } + TrackEntry.prototype.reset = function () { + this.next = null; + this.mixingFrom = null; + this.animation = null; + this.listener = null; + this.timelineData.length = 0; + this.timelineDipMix.length = 0; + this.timelinesRotation.length = 0; + }; + TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { + if (to != null) + mixingToArray.push(to); + var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; + if (to != null) + mixingToArray.pop(); + var mixingTo = mixingToArray; + var mixingToLast = mixingToArray.length - 1; + var timelines = this.animation.timelines; + var timelinesCount = this.animation.timelines.length; + var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); + this.timelineDipMix.length = 0; + var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); + outer: for (var i = 0; i < timelinesCount; i++) { + var id = timelines[i].getPropertyId(); + if (!propertyIDs.add(id)) + timelineData[i] = AnimationState.SUBSEQUENT; + else if (to == null || !to.hasTimeline(id)) + timelineData[i] = AnimationState.FIRST; + else { + for (var ii = mixingToLast; ii >= 0; ii--) { + var entry = mixingTo[ii]; + if (!entry.hasTimeline(id)) { + if (entry.mixDuration > 0) { + timelineData[i] = AnimationState.DIP_MIX; + timelineDipMix[i] = entry; + continue outer; + } + } + } + timelineData[i] = AnimationState.DIP; + } + } + return lastEntry; + }; + TrackEntry.prototype.hasTimeline = function (id) { + var timelines = this.animation.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + if (timelines[i].getPropertyId() == id) + return true; + return false; + }; + TrackEntry.prototype.getAnimationTime = function () { + if (this.loop) { + var duration = this.animationEnd - this.animationStart; + if (duration == 0) + return this.animationStart; + return (this.trackTime % duration) + this.animationStart; + } + return Math.min(this.trackTime + this.animationStart, this.animationEnd); + }; + TrackEntry.prototype.setAnimationLast = function (animationLast) { + this.animationLast = animationLast; + this.nextAnimationLast = animationLast; + }; + TrackEntry.prototype.isComplete = function () { + return this.trackTime >= this.animationEnd - this.animationStart; + }; + TrackEntry.prototype.resetRotationDirections = function () { + this.timelinesRotation.length = 0; + }; + return TrackEntry; + }()); + spine.TrackEntry = TrackEntry; + var EventQueue = (function () { + function EventQueue(animState) { + this.objects = []; + this.drainDisabled = false; + this.animState = animState; + } + EventQueue.prototype.start = function (entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.interrupt = function (entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); + }; + EventQueue.prototype.end = function (entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.dispose = function (entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); + }; + EventQueue.prototype.complete = function (entry) { + this.objects.push(EventType.complete); + this.objects.push(entry); + }; + EventQueue.prototype.event = function (entry, event) { + this.objects.push(EventType.event); + this.objects.push(entry); + this.objects.push(event); + }; + EventQueue.prototype.drain = function () { + if (this.drainDisabled) + return; + this.drainDisabled = true; + var objects = this.objects; + var listeners = this.animState.listeners; + for (var i = 0; i < objects.length; i += 2) { + var type = objects[i]; + var entry = objects[i + 1]; + switch (type) { + case EventType.start: + if (entry.listener != null && entry.listener.start) + entry.listener.start(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].start) + listeners[ii].start(entry); + break; + case EventType.interrupt: + if (entry.listener != null && entry.listener.interrupt) + entry.listener.interrupt(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].interrupt) + listeners[ii].interrupt(entry); + break; + case EventType.end: + if (entry.listener != null && entry.listener.end) + entry.listener.end(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].end) + listeners[ii].end(entry); + case EventType.dispose: + if (entry.listener != null && entry.listener.dispose) + entry.listener.dispose(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].dispose) + listeners[ii].dispose(entry); + this.animState.trackEntryPool.free(entry); + break; + case EventType.complete: + if (entry.listener != null && entry.listener.complete) + entry.listener.complete(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].complete) + listeners[ii].complete(entry); + break; + case EventType.event: + var event_3 = objects[i++ + 2]; + if (entry.listener != null && entry.listener.event) + entry.listener.event(entry, event_3); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].event) + listeners[ii].event(entry, event_3); + break; + } + } + this.clear(); + this.drainDisabled = false; + }; + EventQueue.prototype.clear = function () { + this.objects.length = 0; + }; + return EventQueue; + }()); + spine.EventQueue = EventQueue; + (function (EventType) { + EventType[EventType["start"] = 0] = "start"; + EventType[EventType["interrupt"] = 1] = "interrupt"; + EventType[EventType["end"] = 2] = "end"; + EventType[EventType["dispose"] = 3] = "dispose"; + EventType[EventType["complete"] = 4] = "complete"; + EventType[EventType["event"] = 5] = "event"; + })(spine.EventType || (spine.EventType = {})); + var EventType = spine.EventType; + var AnimationStateAdapter2 = (function () { + function AnimationStateAdapter2() { + } + AnimationStateAdapter2.prototype.start = function (entry) { + }; + AnimationStateAdapter2.prototype.interrupt = function (entry) { + }; + AnimationStateAdapter2.prototype.end = function (entry) { + }; + AnimationStateAdapter2.prototype.dispose = function (entry) { + }; + AnimationStateAdapter2.prototype.complete = function (entry) { + }; + AnimationStateAdapter2.prototype.event = function (entry, event) { + }; + return AnimationStateAdapter2; + }()); + spine.AnimationStateAdapter2 = AnimationStateAdapter2; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationStateData = (function () { - function AnimationStateData(skeletonData) { - this.animationToMixTime = {}; - this.defaultMix = 0; - if (skeletonData == null) - throw new Error("skeletonData cannot be null."); - this.skeletonData = skeletonData; - } - AnimationStateData.prototype.setMix = function (fromName, toName, duration) { - var from = this.skeletonData.findAnimation(fromName); - if (from == null) - throw new Error("Animation not found: " + fromName); - var to = this.skeletonData.findAnimation(toName); - if (to == null) - throw new Error("Animation not found: " + toName); - this.setMixWith(from, to, duration); - }; - AnimationStateData.prototype.setMixWith = function (from, to, duration) { - if (from == null) - throw new Error("from cannot be null."); - if (to == null) - throw new Error("to cannot be null."); - var key = from.name + to.name; - this.animationToMixTime[key] = duration; - }; - AnimationStateData.prototype.getMix = function (from, to) { - var key = from.name + to.name; - var value = this.animationToMixTime[key]; - return value === undefined ? this.defaultMix : value; - }; - return AnimationStateData; - }()); - spine.AnimationStateData = AnimationStateData; + var AnimationStateData = (function () { + function AnimationStateData(skeletonData) { + this.animationToMixTime = {}; + this.defaultMix = 0; + if (skeletonData == null) + throw new Error("skeletonData cannot be null."); + this.skeletonData = skeletonData; + } + AnimationStateData.prototype.setMix = function (fromName, toName, duration) { + var from = this.skeletonData.findAnimation(fromName); + if (from == null) + throw new Error("Animation not found: " + fromName); + var to = this.skeletonData.findAnimation(toName); + if (to == null) + throw new Error("Animation not found: " + toName); + this.setMixWith(from, to, duration); + }; + AnimationStateData.prototype.setMixWith = function (from, to, duration) { + if (from == null) + throw new Error("from cannot be null."); + if (to == null) + throw new Error("to cannot be null."); + var key = from.name + to.name; + this.animationToMixTime[key] = duration; + }; + AnimationStateData.prototype.getMix = function (from, to) { + var key = from.name + to.name; + var value = this.animationToMixTime[key]; + return value === undefined ? this.defaultMix : value; + }; + return AnimationStateData; + }()); + spine.AnimationStateData = AnimationStateData; })(spine || (spine = {})); var spine; (function (spine) { - var AssetManager = (function () { - function AssetManager(textureLoader, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.assets = {}; - this.errors = {}; - this.toLoad = 0; - this.loaded = 0; - this.textureLoader = textureLoader; - this.pathPrefix = pathPrefix; - } - AssetManager.prototype.loadText = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.assets[path] = request.responseText; - if (success) - success(path, request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - if (error) - error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); - } - _this.toLoad--; - _this.loaded++; - } - }; - request.open("GET", path, true); - request.send(); - }; - AssetManager.prototype.loadTexture = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = path; - }; - AssetManager.prototype.loadTextureData = function (path, data, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = data; - }; - AssetManager.prototype.get = function (path) { - path = this.pathPrefix + path; - return this.assets[path]; - }; - AssetManager.prototype.remove = function (path) { - path = this.pathPrefix + path; - var asset = this.assets[path]; - if (asset.dispose) - asset.dispose(); - this.assets[path] = null; - }; - AssetManager.prototype.removeAll = function () { - for (var key in this.assets) { - var asset = this.assets[key]; - if (asset.dispose) - asset.dispose(); - } - this.assets = {}; - }; - AssetManager.prototype.isLoadingComplete = function () { - return this.toLoad == 0; - }; - AssetManager.prototype.getToLoad = function () { - return this.toLoad; - }; - AssetManager.prototype.getLoaded = function () { - return this.loaded; - }; - AssetManager.prototype.dispose = function () { - this.removeAll(); - }; - AssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - AssetManager.prototype.getErrors = function () { - return this.errors; - }; - return AssetManager; - }()); - spine.AssetManager = AssetManager; + var AssetManager = (function () { + function AssetManager(textureLoader, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.assets = {}; + this.errors = {}; + this.toLoad = 0; + this.loaded = 0; + this.textureLoader = textureLoader; + this.pathPrefix = pathPrefix; + } + AssetManager.prototype.loadText = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.assets[path] = request.responseText; + if (success) + success(path, request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + if (error) + error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); + } + _this.toLoad--; + _this.loaded++; + } + }; + request.open("GET", path, true); + request.send(); + }; + AssetManager.prototype.loadTexture = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = path; + }; + AssetManager.prototype.loadTextureData = function (path, data, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = data; + }; + AssetManager.prototype.get = function (path) { + path = this.pathPrefix + path; + return this.assets[path]; + }; + AssetManager.prototype.remove = function (path) { + path = this.pathPrefix + path; + var asset = this.assets[path]; + if (asset.dispose) + asset.dispose(); + this.assets[path] = null; + }; + AssetManager.prototype.removeAll = function () { + for (var key in this.assets) { + var asset = this.assets[key]; + if (asset.dispose) + asset.dispose(); + } + this.assets = {}; + }; + AssetManager.prototype.isLoadingComplete = function () { + return this.toLoad == 0; + }; + AssetManager.prototype.getToLoad = function () { + return this.toLoad; + }; + AssetManager.prototype.getLoaded = function () { + return this.loaded; + }; + AssetManager.prototype.dispose = function () { + this.removeAll(); + }; + AssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + AssetManager.prototype.getErrors = function () { + return this.errors; + }; + return AssetManager; + }()); + spine.AssetManager = AssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var AtlasAttachmentLoader = (function () { - function AtlasAttachmentLoader(atlas) { - this.atlas = atlas; - } - AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.RegionAttachment(name); - attachment.setRegion(region); - return attachment; - }; - AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.MeshAttachment(name); - attachment.region = region; - return attachment; - }; - AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { - return new spine.BoundingBoxAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { - return new spine.PathAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { - return new spine.PointAttachment(name); - }; - AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { - return new spine.ClippingAttachment(name); - }; - return AtlasAttachmentLoader; - }()); - spine.AtlasAttachmentLoader = AtlasAttachmentLoader; + var AtlasAttachmentLoader = (function () { + function AtlasAttachmentLoader(atlas) { + this.atlas = atlas; + } + AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.RegionAttachment(name); + attachment.setRegion(region); + return attachment; + }; + AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.MeshAttachment(name); + attachment.region = region; + return attachment; + }; + AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { + return new spine.BoundingBoxAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { + return new spine.PathAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { + return new spine.PointAttachment(name); + }; + AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { + return new spine.ClippingAttachment(name); + }; + return AtlasAttachmentLoader; + }()); + spine.AtlasAttachmentLoader = AtlasAttachmentLoader; })(spine || (spine = {})); var spine; (function (spine) { - var Attachment = (function () { - function Attachment(name) { - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return Attachment; - }()); - spine.Attachment = Attachment; - var VertexAttachment = (function (_super) { - __extends(VertexAttachment, _super); - function VertexAttachment(name) { - _super.call(this, name); - this.worldVerticesLength = 0; - } - VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { - count = offset + (count >> 1) * stride; - var skeleton = slot.bone.skeleton; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices; - var bones = this.bones; - if (bones == null) { - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - var x = bone.worldX; - var y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { - var vx = vertices[v_1], vy = vertices[v_1 + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - } - return; - } - var v = 0, skip = 0; - for (var i = 0; i < start; i += 2) { - var n = bones[v]; - v += n + 1; - skip += n; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = offset, b = skip * 3; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - else { - var deform = deformArray; - for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3, f += 2) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - }; - VertexAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment; - }; - return VertexAttachment; - }(Attachment)); - spine.VertexAttachment = VertexAttachment; + var Attachment = (function () { + function Attachment(name) { + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return Attachment; + }()); + spine.Attachment = Attachment; + var VertexAttachment = (function (_super) { + __extends(VertexAttachment, _super); + function VertexAttachment(name) { + _super.call(this, name); + this.worldVerticesLength = 0; + } + VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { + count = offset + (count >> 1) * stride; + var skeleton = slot.bone.skeleton; + var deformArray = slot.attachmentVertices; + var vertices = this.vertices; + var bones = this.bones; + if (bones == null) { + if (deformArray.length > 0) + vertices = deformArray; + var bone = slot.bone; + var x = bone.worldX; + var y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { + var vx = vertices[v_1], vy = vertices[v_1 + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + } + return; + } + var v = 0, skip = 0; + for (var i = 0; i < start; i += 2) { + var n = bones[v]; + v += n + 1; + skip += n; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = offset, b = skip * 3; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + else { + var deform = deformArray; + for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3, f += 2) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + }; + VertexAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment; + }; + return VertexAttachment; + }(Attachment)); + spine.VertexAttachment = VertexAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (AttachmentType) { - AttachmentType[AttachmentType["Region"] = 0] = "Region"; - AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; - AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; - AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; - AttachmentType[AttachmentType["Path"] = 4] = "Path"; - AttachmentType[AttachmentType["Point"] = 5] = "Point"; - })(spine.AttachmentType || (spine.AttachmentType = {})); - var AttachmentType = spine.AttachmentType; + (function (AttachmentType) { + AttachmentType[AttachmentType["Region"] = 0] = "Region"; + AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; + AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; + AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; + AttachmentType[AttachmentType["Path"] = 4] = "Path"; + AttachmentType[AttachmentType["Point"] = 5] = "Point"; + })(spine.AttachmentType || (spine.AttachmentType = {})); + var AttachmentType = spine.AttachmentType; })(spine || (spine = {})); var spine; (function (spine) { - var BoundingBoxAttachment = (function (_super) { - __extends(BoundingBoxAttachment, _super); - function BoundingBoxAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - } - return BoundingBoxAttachment; - }(spine.VertexAttachment)); - spine.BoundingBoxAttachment = BoundingBoxAttachment; + var BoundingBoxAttachment = (function (_super) { + __extends(BoundingBoxAttachment, _super); + function BoundingBoxAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + } + return BoundingBoxAttachment; + }(spine.VertexAttachment)); + spine.BoundingBoxAttachment = BoundingBoxAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var ClippingAttachment = (function (_super) { - __extends(ClippingAttachment, _super); - function ClippingAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); - } - return ClippingAttachment; - }(spine.VertexAttachment)); - spine.ClippingAttachment = ClippingAttachment; + var ClippingAttachment = (function (_super) { + __extends(ClippingAttachment, _super); + function ClippingAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); + } + return ClippingAttachment; + }(spine.VertexAttachment)); + spine.ClippingAttachment = ClippingAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var MeshAttachment = (function (_super) { - __extends(MeshAttachment, _super); - function MeshAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - this.inheritDeform = false; - this.tempColor = new spine.Color(0, 0, 0, 0); - } - MeshAttachment.prototype.updateUVs = function () { - var u = 0, v = 0, width = 0, height = 0; - if (this.region == null) { - u = v = 0; - width = height = 1; - } - else { - u = this.region.u; - v = this.region.v; - width = this.region.u2 - u; - height = this.region.v2 - v; - } - var regionUVs = this.regionUVs; - if (this.uvs == null || this.uvs.length != regionUVs.length) - this.uvs = spine.Utils.newFloatArray(regionUVs.length); - var uvs = this.uvs; - if (this.region.rotate) { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i + 1] * width; - uvs[i + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i] * width; - uvs[i + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); - }; - MeshAttachment.prototype.getParentMesh = function () { - return this.parentMesh; - }; - MeshAttachment.prototype.setParentMesh = function (parentMesh) { - this.parentMesh = parentMesh; - if (parentMesh != null) { - this.bones = parentMesh.bones; - this.vertices = parentMesh.vertices; - this.worldVerticesLength = parentMesh.worldVerticesLength; - this.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - this.worldVerticesLength = parentMesh.worldVerticesLength; - } - }; - return MeshAttachment; - }(spine.VertexAttachment)); - spine.MeshAttachment = MeshAttachment; + var MeshAttachment = (function (_super) { + __extends(MeshAttachment, _super); + function MeshAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + this.inheritDeform = false; + this.tempColor = new spine.Color(0, 0, 0, 0); + } + MeshAttachment.prototype.updateUVs = function () { + var u = 0, v = 0, width = 0, height = 0; + if (this.region == null) { + u = v = 0; + width = height = 1; + } + else { + u = this.region.u; + v = this.region.v; + width = this.region.u2 - u; + height = this.region.v2 - v; + } + var regionUVs = this.regionUVs; + if (this.uvs == null || this.uvs.length != regionUVs.length) + this.uvs = spine.Utils.newFloatArray(regionUVs.length); + var uvs = this.uvs; + if (this.region.rotate) { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); + }; + MeshAttachment.prototype.getParentMesh = function () { + return this.parentMesh; + }; + MeshAttachment.prototype.setParentMesh = function (parentMesh) { + this.parentMesh = parentMesh; + if (parentMesh != null) { + this.bones = parentMesh.bones; + this.vertices = parentMesh.vertices; + this.worldVerticesLength = parentMesh.worldVerticesLength; + this.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + this.worldVerticesLength = parentMesh.worldVerticesLength; + } + }; + return MeshAttachment; + }(spine.VertexAttachment)); + spine.MeshAttachment = MeshAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PathAttachment = (function (_super) { - __extends(PathAttachment, _super); - function PathAttachment(name) { - _super.call(this, name); - this.closed = false; - this.constantSpeed = false; - this.color = new spine.Color(1, 1, 1, 1); - } - return PathAttachment; - }(spine.VertexAttachment)); - spine.PathAttachment = PathAttachment; + var PathAttachment = (function (_super) { + __extends(PathAttachment, _super); + function PathAttachment(name) { + _super.call(this, name); + this.closed = false; + this.constantSpeed = false; + this.color = new spine.Color(1, 1, 1, 1); + } + return PathAttachment; + }(spine.VertexAttachment)); + spine.PathAttachment = PathAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PointAttachment = (function (_super) { - __extends(PointAttachment, _super); - function PointAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.38, 0.94, 0, 1); - } - PointAttachment.prototype.computeWorldPosition = function (bone, point) { - point.x = this.x * bone.a + this.y * bone.b + bone.worldX; - point.y = this.x * bone.c + this.y * bone.d + bone.worldY; - return point; - }; - PointAttachment.prototype.computeWorldRotation = function (bone) { - var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); - var x = cos * bone.a + sin * bone.b; - var y = cos * bone.c + sin * bone.d; - return Math.atan2(y, x) * spine.MathUtils.radDeg; - }; - return PointAttachment; - }(spine.VertexAttachment)); - spine.PointAttachment = PointAttachment; + var PointAttachment = (function (_super) { + __extends(PointAttachment, _super); + function PointAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.38, 0.94, 0, 1); + } + PointAttachment.prototype.computeWorldPosition = function (bone, point) { + point.x = this.x * bone.a + this.y * bone.b + bone.worldX; + point.y = this.x * bone.c + this.y * bone.d + bone.worldY; + return point; + }; + PointAttachment.prototype.computeWorldRotation = function (bone) { + var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); + var x = cos * bone.a + sin * bone.b; + var y = cos * bone.c + sin * bone.d; + return Math.atan2(y, x) * spine.MathUtils.radDeg; + }; + return PointAttachment; + }(spine.VertexAttachment)); + spine.PointAttachment = PointAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var RegionAttachment = (function (_super) { - __extends(RegionAttachment, _super); - function RegionAttachment(name) { - _super.call(this, name); - this.x = 0; - this.y = 0; - this.scaleX = 1; - this.scaleY = 1; - this.rotation = 0; - this.width = 0; - this.height = 0; - this.color = new spine.Color(1, 1, 1, 1); - this.offset = spine.Utils.newFloatArray(8); - this.uvs = spine.Utils.newFloatArray(8); - this.tempColor = new spine.Color(1, 1, 1, 1); - } - RegionAttachment.prototype.updateOffset = function () { - var regionScaleX = this.width / this.region.originalWidth * this.scaleX; - var regionScaleY = this.height / this.region.originalHeight * this.scaleY; - var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; - var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; - var localX2 = localX + this.region.width * regionScaleX; - var localY2 = localY + this.region.height * regionScaleY; - var radians = this.rotation * Math.PI / 180; - var cos = Math.cos(radians); - var sin = Math.sin(radians); - var localXCos = localX * cos + this.x; - var localXSin = localX * sin; - var localYCos = localY * cos + this.y; - var localYSin = localY * sin; - var localX2Cos = localX2 * cos + this.x; - var localX2Sin = localX2 * sin; - var localY2Cos = localY2 * cos + this.y; - var localY2Sin = localY2 * sin; - var offset = this.offset; - offset[RegionAttachment.OX1] = localXCos - localYSin; - offset[RegionAttachment.OY1] = localYCos + localXSin; - offset[RegionAttachment.OX2] = localXCos - localY2Sin; - offset[RegionAttachment.OY2] = localY2Cos + localXSin; - offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; - offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; - offset[RegionAttachment.OX4] = localX2Cos - localYSin; - offset[RegionAttachment.OY4] = localYCos + localX2Sin; - }; - RegionAttachment.prototype.setRegion = function (region) { - this.region = region; - var uvs = this.uvs; - if (region.rotate) { - uvs[2] = region.u; - uvs[3] = region.v2; - uvs[4] = region.u; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v; - uvs[0] = region.u2; - uvs[1] = region.v2; - } - else { - uvs[0] = region.u; - uvs[1] = region.v2; - uvs[2] = region.u; - uvs[3] = region.v; - uvs[4] = region.u2; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v2; - } - }; - RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { - var vertexOffset = this.offset; - var x = bone.worldX, y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = vertexOffset[RegionAttachment.OX1]; - offsetY = vertexOffset[RegionAttachment.OY1]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX2]; - offsetY = vertexOffset[RegionAttachment.OY2]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX3]; - offsetY = vertexOffset[RegionAttachment.OY3]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX4]; - offsetY = vertexOffset[RegionAttachment.OY4]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - }; - RegionAttachment.OX1 = 0; - RegionAttachment.OY1 = 1; - RegionAttachment.OX2 = 2; - RegionAttachment.OY2 = 3; - RegionAttachment.OX3 = 4; - RegionAttachment.OY3 = 5; - RegionAttachment.OX4 = 6; - RegionAttachment.OY4 = 7; - RegionAttachment.X1 = 0; - RegionAttachment.Y1 = 1; - RegionAttachment.C1R = 2; - RegionAttachment.C1G = 3; - RegionAttachment.C1B = 4; - RegionAttachment.C1A = 5; - RegionAttachment.U1 = 6; - RegionAttachment.V1 = 7; - RegionAttachment.X2 = 8; - RegionAttachment.Y2 = 9; - RegionAttachment.C2R = 10; - RegionAttachment.C2G = 11; - RegionAttachment.C2B = 12; - RegionAttachment.C2A = 13; - RegionAttachment.U2 = 14; - RegionAttachment.V2 = 15; - RegionAttachment.X3 = 16; - RegionAttachment.Y3 = 17; - RegionAttachment.C3R = 18; - RegionAttachment.C3G = 19; - RegionAttachment.C3B = 20; - RegionAttachment.C3A = 21; - RegionAttachment.U3 = 22; - RegionAttachment.V3 = 23; - RegionAttachment.X4 = 24; - RegionAttachment.Y4 = 25; - RegionAttachment.C4R = 26; - RegionAttachment.C4G = 27; - RegionAttachment.C4B = 28; - RegionAttachment.C4A = 29; - RegionAttachment.U4 = 30; - RegionAttachment.V4 = 31; - return RegionAttachment; - }(spine.Attachment)); - spine.RegionAttachment = RegionAttachment; + var RegionAttachment = (function (_super) { + __extends(RegionAttachment, _super); + function RegionAttachment(name) { + _super.call(this, name); + this.x = 0; + this.y = 0; + this.scaleX = 1; + this.scaleY = 1; + this.rotation = 0; + this.width = 0; + this.height = 0; + this.color = new spine.Color(1, 1, 1, 1); + this.offset = spine.Utils.newFloatArray(8); + this.uvs = spine.Utils.newFloatArray(8); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.updateOffset = function () { + var regionScaleX = this.width / this.region.originalWidth * this.scaleX; + var regionScaleY = this.height / this.region.originalHeight * this.scaleY; + var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; + var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; + var localX2 = localX + this.region.width * regionScaleX; + var localY2 = localY + this.region.height * regionScaleY; + var radians = this.rotation * Math.PI / 180; + var cos = Math.cos(radians); + var sin = Math.sin(radians); + var localXCos = localX * cos + this.x; + var localXSin = localX * sin; + var localYCos = localY * cos + this.y; + var localYSin = localY * sin; + var localX2Cos = localX2 * cos + this.x; + var localX2Sin = localX2 * sin; + var localY2Cos = localY2 * cos + this.y; + var localY2Sin = localY2 * sin; + var offset = this.offset; + offset[RegionAttachment.OX1] = localXCos - localYSin; + offset[RegionAttachment.OY1] = localYCos + localXSin; + offset[RegionAttachment.OX2] = localXCos - localY2Sin; + offset[RegionAttachment.OY2] = localY2Cos + localXSin; + offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; + offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; + offset[RegionAttachment.OX4] = localX2Cos - localYSin; + offset[RegionAttachment.OY4] = localYCos + localX2Sin; + }; + RegionAttachment.prototype.setRegion = function (region) { + this.region = region; + var uvs = this.uvs; + if (region.rotate) { + uvs[2] = region.u; + uvs[3] = region.v2; + uvs[4] = region.u; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v; + uvs[0] = region.u2; + uvs[1] = region.v2; + } + else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; + } + }; + RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { + var vertexOffset = this.offset; + var x = bone.worldX, y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var offsetX = 0, offsetY = 0; + offsetX = vertexOffset[RegionAttachment.OX1]; + offsetY = vertexOffset[RegionAttachment.OY1]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX2]; + offsetY = vertexOffset[RegionAttachment.OY2]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX3]; + offsetY = vertexOffset[RegionAttachment.OY3]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX4]; + offsetY = vertexOffset[RegionAttachment.OY4]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + }; + RegionAttachment.OX1 = 0; + RegionAttachment.OY1 = 1; + RegionAttachment.OX2 = 2; + RegionAttachment.OY2 = 3; + RegionAttachment.OX3 = 4; + RegionAttachment.OY3 = 5; + RegionAttachment.OX4 = 6; + RegionAttachment.OY4 = 7; + RegionAttachment.X1 = 0; + RegionAttachment.Y1 = 1; + RegionAttachment.C1R = 2; + RegionAttachment.C1G = 3; + RegionAttachment.C1B = 4; + RegionAttachment.C1A = 5; + RegionAttachment.U1 = 6; + RegionAttachment.V1 = 7; + RegionAttachment.X2 = 8; + RegionAttachment.Y2 = 9; + RegionAttachment.C2R = 10; + RegionAttachment.C2G = 11; + RegionAttachment.C2B = 12; + RegionAttachment.C2A = 13; + RegionAttachment.U2 = 14; + RegionAttachment.V2 = 15; + RegionAttachment.X3 = 16; + RegionAttachment.Y3 = 17; + RegionAttachment.C3R = 18; + RegionAttachment.C3G = 19; + RegionAttachment.C3B = 20; + RegionAttachment.C3A = 21; + RegionAttachment.U3 = 22; + RegionAttachment.V3 = 23; + RegionAttachment.X4 = 24; + RegionAttachment.Y4 = 25; + RegionAttachment.C4R = 26; + RegionAttachment.C4G = 27; + RegionAttachment.C4B = 28; + RegionAttachment.C4A = 29; + RegionAttachment.U4 = 30; + RegionAttachment.V4 = 31; + return RegionAttachment; + }(spine.Attachment)); + spine.RegionAttachment = RegionAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (BlendMode) { - BlendMode[BlendMode["Normal"] = 0] = "Normal"; - BlendMode[BlendMode["Additive"] = 1] = "Additive"; - BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; - BlendMode[BlendMode["Screen"] = 3] = "Screen"; - })(spine.BlendMode || (spine.BlendMode = {})); - var BlendMode = spine.BlendMode; + (function (BlendMode) { + BlendMode[BlendMode["Normal"] = 0] = "Normal"; + BlendMode[BlendMode["Additive"] = 1] = "Additive"; + BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; + BlendMode[BlendMode["Screen"] = 3] = "Screen"; + })(spine.BlendMode || (spine.BlendMode = {})); + var BlendMode = spine.BlendMode; })(spine || (spine = {})); var spine; (function (spine) { - var Bone = (function () { - function Bone(data, skeleton, parent) { - this.children = new Array(); - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 0; - this.scaleY = 0; - this.shearX = 0; - this.shearY = 0; - this.ax = 0; - this.ay = 0; - this.arotation = 0; - this.ascaleX = 0; - this.ascaleY = 0; - this.ashearX = 0; - this.ashearY = 0; - this.appliedValid = false; - this.a = 0; - this.b = 0; - this.worldX = 0; - this.c = 0; - this.d = 0; - this.worldY = 0; - this.sorted = false; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.skeleton = skeleton; - this.parent = parent; - this.setToSetupPose(); - } - Bone.prototype.update = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransform = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { - this.ax = x; - this.ay = y; - this.arotation = rotation; - this.ascaleX = scaleX; - this.ascaleY = scaleY; - this.ashearX = shearX; - this.ashearY = shearY; - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - var skeleton = this.skeleton; - if (skeleton.flipX) { - x = -x; - la = -la; - lb = -lb; - } - if (skeleton.flipY) { - y = -y; - lc = -lc; - ld = -ld; - } - this.a = la; - this.b = lb; - this.c = lc; - this.d = ld; - this.worldX = x + skeleton.x; - this.worldY = y + skeleton.y; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - this.worldX = pa * x + pb * y + parent.worldX; - this.worldY = pc * x + pd * y + parent.worldY; - switch (this.data.transformMode) { - case spine.TransformMode.Normal: { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - return; - } - case spine.TransformMode.OnlyTranslation: { - var rotationY = rotation + 90 + shearY; - this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; - this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; - break; - } - case spine.TransformMode.NoRotationOrReflection: { - var s = pa * pa + pc * pc; - var prx = 0; - if (s > 0.0001) { - s = Math.abs(pa * pd - pb * pc) / s; - pb = pc * s; - pd = pa * s; - prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; - } - else { - pa = 0; - pc = 0; - prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; - } - var rx = rotation + shearX - prx; - var ry = rotation + shearY - prx + 90; - var la = spine.MathUtils.cosDeg(rx) * scaleX; - var lb = spine.MathUtils.cosDeg(ry) * scaleY; - var lc = spine.MathUtils.sinDeg(rx) * scaleX; - var ld = spine.MathUtils.sinDeg(ry) * scaleY; - this.a = pa * la - pb * lc; - this.b = pa * lb - pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - break; - } - case spine.TransformMode.NoScale: - case spine.TransformMode.NoScaleOrReflection: { - var cos = spine.MathUtils.cosDeg(rotation); - var sin = spine.MathUtils.sinDeg(rotation); - var za = pa * cos + pb * sin; - var zc = pc * cos + pd * sin; - var s = Math.sqrt(za * za + zc * zc); - if (s > 0.00001) - s = 1 / s; - za *= s; - zc *= s; - s = Math.sqrt(za * za + zc * zc); - var r = Math.PI / 2 + Math.atan2(zc, za); - var zb = Math.cos(r) * s; - var zd = Math.sin(r) * s; - var la = spine.MathUtils.cosDeg(shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; - var lc = spine.MathUtils.sinDeg(shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; - this.a = za * la + zb * lc; - this.b = za * lb + zb * ld; - this.c = zc * la + zd * lc; - this.d = zc * lb + zd * ld; - if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { - this.b = -this.b; - this.d = -this.d; - } - return; - } - } - if (this.skeleton.flipX) { - this.a = -this.a; - this.b = -this.b; - } - if (this.skeleton.flipY) { - this.c = -this.c; - this.d = -this.d; - } - }; - Bone.prototype.setToSetupPose = function () { - var data = this.data; - this.x = data.x; - this.y = data.y; - this.rotation = data.rotation; - this.scaleX = data.scaleX; - this.scaleY = data.scaleY; - this.shearX = data.shearX; - this.shearY = data.shearY; - }; - Bone.prototype.getWorldRotationX = function () { - return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldRotationY = function () { - return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldScaleX = function () { - return Math.sqrt(this.a * this.a + this.c * this.c); - }; - Bone.prototype.getWorldScaleY = function () { - return Math.sqrt(this.b * this.b + this.d * this.d); - }; - Bone.prototype.updateAppliedTransform = function () { - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - this.ax = this.worldX; - this.ay = this.worldY; - this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); - this.ashearX = 0; - this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - var pid = 1 / (pa * pd - pb * pc); - var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; - this.ax = (dx * pd * pid - dy * pb * pid); - this.ay = (dy * pa * pid - dx * pc * pid); - var ia = pid * pd; - var id = pid * pa; - var ib = pid * pb; - var ic = pid * pc; - var ra = ia * this.a - ib * this.c; - var rb = ia * this.b - ib * this.d; - var rc = id * this.c - ic * this.a; - var rd = id * this.d - ic * this.b; - this.ashearX = 0; - this.ascaleX = Math.sqrt(ra * ra + rc * rc); - if (this.ascaleX > 0.0001) { - var det = ra * rd - rb * rc; - this.ascaleY = det / this.ascaleX; - this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; - this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; - } - else { - this.ascaleX = 0; - this.ascaleY = Math.sqrt(rb * rb + rd * rd); - this.ashearY = 0; - this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; - } - }; - Bone.prototype.worldToLocal = function (world) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var invDet = 1 / (a * d - b * c); - var x = world.x - this.worldX, y = world.y - this.worldY; - world.x = (x * d * invDet - y * b * invDet); - world.y = (y * a * invDet - x * c * invDet); - return world; - }; - Bone.prototype.localToWorld = function (local) { - var x = local.x, y = local.y; - local.x = x * this.a + y * this.b + this.worldX; - local.y = x * this.c + y * this.d + this.worldY; - return local; - }; - Bone.prototype.worldToLocalRotation = function (worldRotation) { - var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); - return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; - }; - Bone.prototype.localToWorldRotation = function (localRotation) { - var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); - return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.rotateWorld = function (degrees) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); - this.a = cos * a - sin * c; - this.b = cos * b - sin * d; - this.c = sin * a + cos * c; - this.d = sin * b + cos * d; - this.appliedValid = false; - }; - return Bone; - }()); - spine.Bone = Bone; + var Bone = (function () { + function Bone(data, skeleton, parent) { + this.children = new Array(); + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 0; + this.scaleY = 0; + this.shearX = 0; + this.shearY = 0; + this.ax = 0; + this.ay = 0; + this.arotation = 0; + this.ascaleX = 0; + this.ascaleY = 0; + this.ashearX = 0; + this.ashearY = 0; + this.appliedValid = false; + this.a = 0; + this.b = 0; + this.worldX = 0; + this.c = 0; + this.d = 0; + this.worldY = 0; + this.sorted = false; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.skeleton = skeleton; + this.parent = parent; + this.setToSetupPose(); + } + Bone.prototype.update = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransform = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { + this.ax = x; + this.ay = y; + this.arotation = rotation; + this.ascaleX = scaleX; + this.ascaleY = scaleY; + this.ashearX = shearX; + this.ashearY = shearY; + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + var skeleton = this.skeleton; + if (skeleton.flipX) { + x = -x; + la = -la; + lb = -lb; + } + if (skeleton.flipY) { + y = -y; + lc = -lc; + ld = -ld; + } + this.a = la; + this.b = lb; + this.c = lc; + this.d = ld; + this.worldX = x + skeleton.x; + this.worldY = y + skeleton.y; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + this.worldX = pa * x + pb * y + parent.worldX; + this.worldY = pc * x + pd * y + parent.worldY; + switch (this.data.transformMode) { + case spine.TransformMode.Normal: { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + this.a = pa * la + pb * lc; + this.b = pa * lb + pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + return; + } + case spine.TransformMode.OnlyTranslation: { + var rotationY = rotation + 90 + shearY; + this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; + this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; + break; + } + case spine.TransformMode.NoRotationOrReflection: { + var s = pa * pa + pc * pc; + var prx = 0; + if (s > 0.0001) { + s = Math.abs(pa * pd - pb * pc) / s; + pb = pc * s; + pd = pa * s; + prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; + } + else { + pa = 0; + pc = 0; + prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; + } + var rx = rotation + shearX - prx; + var ry = rotation + shearY - prx + 90; + var la = spine.MathUtils.cosDeg(rx) * scaleX; + var lb = spine.MathUtils.cosDeg(ry) * scaleY; + var lc = spine.MathUtils.sinDeg(rx) * scaleX; + var ld = spine.MathUtils.sinDeg(ry) * scaleY; + this.a = pa * la - pb * lc; + this.b = pa * lb - pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + break; + } + case spine.TransformMode.NoScale: + case spine.TransformMode.NoScaleOrReflection: { + var cos = spine.MathUtils.cosDeg(rotation); + var sin = spine.MathUtils.sinDeg(rotation); + var za = pa * cos + pb * sin; + var zc = pc * cos + pd * sin; + var s = Math.sqrt(za * za + zc * zc); + if (s > 0.00001) + s = 1 / s; + za *= s; + zc *= s; + s = Math.sqrt(za * za + zc * zc); + var r = Math.PI / 2 + Math.atan2(zc, za); + var zb = Math.cos(r) * s; + var zd = Math.sin(r) * s; + var la = spine.MathUtils.cosDeg(shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; + var lc = spine.MathUtils.sinDeg(shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; + this.a = za * la + zb * lc; + this.b = za * lb + zb * ld; + this.c = zc * la + zd * lc; + this.d = zc * lb + zd * ld; + if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { + this.b = -this.b; + this.d = -this.d; + } + return; + } + } + if (this.skeleton.flipX) { + this.a = -this.a; + this.b = -this.b; + } + if (this.skeleton.flipY) { + this.c = -this.c; + this.d = -this.d; + } + }; + Bone.prototype.setToSetupPose = function () { + var data = this.data; + this.x = data.x; + this.y = data.y; + this.rotation = data.rotation; + this.scaleX = data.scaleX; + this.scaleY = data.scaleY; + this.shearX = data.shearX; + this.shearY = data.shearY; + }; + Bone.prototype.getWorldRotationX = function () { + return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldRotationY = function () { + return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldScaleX = function () { + return Math.sqrt(this.a * this.a + this.c * this.c); + }; + Bone.prototype.getWorldScaleY = function () { + return Math.sqrt(this.b * this.b + this.d * this.d); + }; + Bone.prototype.updateAppliedTransform = function () { + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + this.ax = this.worldX; + this.ay = this.worldY; + this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); + this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); + this.ashearX = 0; + this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + var pid = 1 / (pa * pd - pb * pc); + var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; + this.ax = (dx * pd * pid - dy * pb * pid); + this.ay = (dy * pa * pid - dx * pc * pid); + var ia = pid * pd; + var id = pid * pa; + var ib = pid * pb; + var ic = pid * pc; + var ra = ia * this.a - ib * this.c; + var rb = ia * this.b - ib * this.d; + var rc = id * this.c - ic * this.a; + var rd = id * this.d - ic * this.b; + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { + var det = ra * rd - rb * rc; + this.ascaleY = det / this.ascaleX; + this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; + this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; + } + else { + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; + } + }; + Bone.prototype.worldToLocal = function (world) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var invDet = 1 / (a * d - b * c); + var x = world.x - this.worldX, y = world.y - this.worldY; + world.x = (x * d * invDet - y * b * invDet); + world.y = (y * a * invDet - x * c * invDet); + return world; + }; + Bone.prototype.localToWorld = function (local) { + var x = local.x, y = local.y; + local.x = x * this.a + y * this.b + this.worldX; + local.y = x * this.c + y * this.d + this.worldY; + return local; + }; + Bone.prototype.worldToLocalRotation = function (worldRotation) { + var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); + return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; + }; + Bone.prototype.localToWorldRotation = function (localRotation) { + var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); + return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.rotateWorld = function (degrees) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); + this.a = cos * a - sin * c; + this.b = cos * b - sin * d; + this.c = sin * a + cos * c; + this.d = sin * b + cos * d; + this.appliedValid = false; + }; + return Bone; + }()); + spine.Bone = Bone; })(spine || (spine = {})); var spine; (function (spine) { - var BoneData = (function () { - function BoneData(index, name, parent) { - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 1; - this.scaleY = 1; - this.shearX = 0; - this.shearY = 0; - this.transformMode = TransformMode.Normal; - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - this.index = index; - this.name = name; - this.parent = parent; - } - return BoneData; - }()); - spine.BoneData = BoneData; - (function (TransformMode) { - TransformMode[TransformMode["Normal"] = 0] = "Normal"; - TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; - TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; - TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; - TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; - })(spine.TransformMode || (spine.TransformMode = {})); - var TransformMode = spine.TransformMode; + var BoneData = (function () { + function BoneData(index, name, parent) { + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 1; + this.scaleY = 1; + this.shearX = 0; + this.shearY = 0; + this.transformMode = TransformMode.Normal; + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + this.index = index; + this.name = name; + this.parent = parent; + } + return BoneData; + }()); + spine.BoneData = BoneData; + (function (TransformMode) { + TransformMode[TransformMode["Normal"] = 0] = "Normal"; + TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; + TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; + TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; + TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; + })(spine.TransformMode || (spine.TransformMode = {})); + var TransformMode = spine.TransformMode; })(spine || (spine = {})); var spine; (function (spine) { - var Event = (function () { - function Event(time, data) { - if (data == null) - throw new Error("data cannot be null."); - this.time = time; - this.data = data; - } - return Event; - }()); - spine.Event = Event; + var Event = (function () { + function Event(time, data) { + if (data == null) + throw new Error("data cannot be null."); + this.time = time; + this.data = data; + } + return Event; + }()); + spine.Event = Event; })(spine || (spine = {})); var spine; (function (spine) { - var EventData = (function () { - function EventData(name) { - this.name = name; - } - return EventData; - }()); - spine.EventData = EventData; + var EventData = (function () { + function EventData(name) { + this.name = name; + } + return EventData; + }()); + spine.EventData = EventData; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraint = (function () { - function IkConstraint(data, skeleton) { - this.mix = 1; - this.bendDirection = 0; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.mix = data.mix; - this.bendDirection = data.bendDirection; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - IkConstraint.prototype.getOrder = function () { - return this.data.order; - }; - IkConstraint.prototype.apply = function () { - this.update(); - }; - IkConstraint.prototype.update = function () { - var target = this.target; - var bones = this.bones; - switch (bones.length) { - case 1: - this.apply1(bones[0], target.worldX, target.worldY, this.mix); - break; - case 2: - this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); - break; - } - }; - IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var p = bone.parent; - var id = 1 / (p.a * p.d - p.b * p.c); - var x = targetX - p.worldX, y = targetY - p.worldY; - var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; - var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; - if (bone.ascaleX < 0) - rotationIK += 180; - if (rotationIK > 180) - rotationIK -= 360; - else if (rotationIK < -180) - rotationIK += 360; - bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); - }; - IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { - if (alpha == 0) { - child.updateWorldTransform(); - return; - } - if (!parent.appliedValid) - parent.updateAppliedTransform(); - if (!child.appliedValid) - child.updateAppliedTransform(); - var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; - var os1 = 0, os2 = 0, s2 = 0; - if (psx < 0) { - psx = -psx; - os1 = 180; - s2 = -1; - } - else { - os1 = 0; - s2 = 1; - } - if (psy < 0) { - psy = -psy; - s2 = -s2; - } - if (csx < 0) { - csx = -csx; - os2 = 180; - } - else - os2 = 0; - var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; - var u = Math.abs(psx - psy) <= 0.0001; - if (!u) { - cy = 0; - cwx = a * cx + parent.worldX; - cwy = c * cx + parent.worldY; - } - else { - cy = child.ay; - cwx = a * cx + b * cy + parent.worldX; - cwy = c * cx + d * cy + parent.worldY; - } - var pp = parent.parent; - a = pp.a; - b = pp.b; - c = pp.c; - d = pp.d; - var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; - var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; - x = cwx - pp.worldX; - y = cwy - pp.worldY; - var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; - var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; - outer: if (u) { - l2 *= psx; - var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); - if (cos < -1) - cos = -1; - else if (cos > 1) - cos = 1; - a2 = Math.acos(cos) * bendDir; - a = l1 + l2 * cos; - b = l2 * Math.sin(a2); - a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); - } - else { - a = psx * l2; - b = psy * l2; - var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); - c = bb * l1 * l1 + aa * dd - aa * bb; - var c1 = -2 * bb * l1, c2 = bb - aa; - d = c1 * c1 - 4 * c2 * c; - if (d >= 0) { - var q = Math.sqrt(d); - if (c1 < 0) - q = -q; - q = -(c1 + q) / 2; - var r0 = q / c2, r1 = c / q; - var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; - if (r * r <= dd) { - y = Math.sqrt(dd - r * r) * bendDir; - a1 = ta - Math.atan2(y, r); - a2 = Math.atan2(y / psy, (r - l1) / psx); - break outer; - } - } - var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; - var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; - c = -a * l1 / (aa - bb); - if (c >= -1 && c <= 1) { - c = Math.acos(c); - x = a * Math.cos(c) + l1; - y = b * Math.sin(c); - d = x * x + y * y; - if (d < minDist) { - minAngle = c; - minDist = d; - minX = x; - minY = y; - } - if (d > maxDist) { - maxAngle = c; - maxDist = d; - maxX = x; - maxY = y; - } - } - if (dd <= (minDist + maxDist) / 2) { - a1 = ta - Math.atan2(minY * bendDir, minX); - a2 = minAngle * bendDir; - } - else { - a1 = ta - Math.atan2(maxY * bendDir, maxX); - a2 = maxAngle * bendDir; - } - } - var os = Math.atan2(cy, cx) * s2; - var rotation = parent.arotation; - a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; - if (a1 > 180) - a1 -= 360; - else if (a1 < -180) - a1 += 360; - parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); - rotation = child.arotation; - a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; - if (a2 > 180) - a2 -= 360; - else if (a2 < -180) - a2 += 360; - child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); - }; - return IkConstraint; - }()); - spine.IkConstraint = IkConstraint; + var IkConstraint = (function () { + function IkConstraint(data, skeleton) { + this.mix = 1; + this.bendDirection = 0; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.mix = data.mix; + this.bendDirection = data.bendDirection; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + IkConstraint.prototype.getOrder = function () { + return this.data.order; + }; + IkConstraint.prototype.apply = function () { + this.update(); + }; + IkConstraint.prototype.update = function () { + var target = this.target; + var bones = this.bones; + switch (bones.length) { + case 1: + this.apply1(bones[0], target.worldX, target.worldY, this.mix); + break; + case 2: + this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); + break; + } + }; + IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var p = bone.parent; + var id = 1 / (p.a * p.d - p.b * p.c); + var x = targetX - p.worldX, y = targetY - p.worldY; + var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; + var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; + if (bone.ascaleX < 0) + rotationIK += 180; + if (rotationIK > 180) + rotationIK -= 360; + else if (rotationIK < -180) + rotationIK += 360; + bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); + }; + IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { + if (alpha == 0) { + child.updateWorldTransform(); + return; + } + if (!parent.appliedValid) + parent.updateAppliedTransform(); + if (!child.appliedValid) + child.updateAppliedTransform(); + var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; + var os1 = 0, os2 = 0, s2 = 0; + if (psx < 0) { + psx = -psx; + os1 = 180; + s2 = -1; + } + else { + os1 = 0; + s2 = 1; + } + if (psy < 0) { + psy = -psy; + s2 = -s2; + } + if (csx < 0) { + csx = -csx; + os2 = 180; + } + else + os2 = 0; + var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + var u = Math.abs(psx - psy) <= 0.0001; + if (!u) { + cy = 0; + cwx = a * cx + parent.worldX; + cwy = c * cx + parent.worldY; + } + else { + cy = child.ay; + cwx = a * cx + b * cy + parent.worldX; + cwy = c * cx + d * cy + parent.worldY; + } + var pp = parent.parent; + a = pp.a; + b = pp.b; + c = pp.c; + d = pp.d; + var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; + var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; + x = cwx - pp.worldX; + y = cwy - pp.worldY; + var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; + var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; + outer: if (u) { + l2 *= psx; + var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); + if (cos < -1) + cos = -1; + else if (cos > 1) + cos = 1; + a2 = Math.acos(cos) * bendDir; + a = l1 + l2 * cos; + b = l2 * Math.sin(a2); + a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); + } + else { + a = psx * l2; + b = psy * l2; + var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); + c = bb * l1 * l1 + aa * dd - aa * bb; + var c1 = -2 * bb * l1, c2 = bb - aa; + d = c1 * c1 - 4 * c2 * c; + if (d >= 0) { + var q = Math.sqrt(d); + if (c1 < 0) + q = -q; + q = -(c1 + q) / 2; + var r0 = q / c2, r1 = c / q; + var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; + if (r * r <= dd) { + y = Math.sqrt(dd - r * r) * bendDir; + a1 = ta - Math.atan2(y, r); + a2 = Math.atan2(y / psy, (r - l1) / psx); + break outer; + } + } + var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; + var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } + } + if (dd <= (minDist + maxDist) / 2) { + a1 = ta - Math.atan2(minY * bendDir, minX); + a2 = minAngle * bendDir; + } + else { + a1 = ta - Math.atan2(maxY * bendDir, maxX); + a2 = maxAngle * bendDir; + } + } + var os = Math.atan2(cy, cx) * s2; + var rotation = parent.arotation; + a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; + if (a1 > 180) + a1 -= 360; + else if (a1 < -180) + a1 += 360; + parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); + rotation = child.arotation; + a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; + if (a2 > 180) + a2 -= 360; + else if (a2 < -180) + a2 += 360; + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); + }; + return IkConstraint; + }()); + spine.IkConstraint = IkConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraintData = (function () { - function IkConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.bendDirection = 1; - this.mix = 1; - this.name = name; - } - return IkConstraintData; - }()); - spine.IkConstraintData = IkConstraintData; + var IkConstraintData = (function () { + function IkConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.bendDirection = 1; + this.mix = 1; + this.name = name; + } + return IkConstraintData; + }()); + spine.IkConstraintData = IkConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraint = (function () { - function PathConstraint(data, skeleton) { - this.position = 0; - this.spacing = 0; - this.rotateMix = 0; - this.translateMix = 0; - this.spaces = new Array(); - this.positions = new Array(); - this.world = new Array(); - this.curves = new Array(); - this.lengths = new Array(); - this.segments = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0, n = data.bones.length; i < n; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findSlot(data.target.name); - this.position = data.position; - this.spacing = data.spacing; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - } - PathConstraint.prototype.apply = function () { - this.update(); - }; - PathConstraint.prototype.update = function () { - var attachment = this.target.getAttachment(); - if (!(attachment instanceof spine.PathAttachment)) - return; - var rotateMix = this.rotateMix, translateMix = this.translateMix; - var translate = translateMix > 0, rotate = rotateMix > 0; - if (!translate && !rotate) - return; - var data = this.data; - var spacingMode = data.spacingMode; - var lengthSpacing = spacingMode == spine.SpacingMode.Length; - var rotateMode = data.rotateMode; - var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; - var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; - var bones = this.bones; - var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; - var spacing = this.spacing; - if (scale || lengthSpacing) { - if (scale) - lengths = spine.Utils.setArraySize(this.lengths, boneCount); - for (var i = 0, n = spacesCount - 1; i < n;) { - var bone = bones[i]; - var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; - var length_1 = Math.sqrt(x * x + y * y); - if (scale) - lengths[i] = length_1; - spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; - } - } - else { - for (var i = 1; i < spacesCount; i++) - spaces[i] = spacing; - } - var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); - var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - var tip = false; - if (offsetRotation == 0) - tip = rotateMode == spine.RotateMode.Chain; - else { - tip = false; - var p = this.target.bone; - offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - } - for (var i = 0, p = 3; i < boneCount; i++, p += 3) { - var bone = bones[i]; - bone.worldX += (boneX - bone.worldX) * translateMix; - bone.worldY += (boneY - bone.worldY) * translateMix; - var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; - if (scale) { - var length_2 = lengths[i]; - if (length_2 != 0) { - var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; - bone.a *= s; - bone.c *= s; - } - } - boneX = x; - boneY = y; - if (rotate) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; - if (tangents) - r = positions[p - 1]; - else if (spaces[i + 1] == 0) - r = positions[p + 2]; - else - r = Math.atan2(dy, dx); - r -= Math.atan2(c, a); - if (tip) { - cos = Math.cos(r); - sin = Math.sin(r); - var length_3 = bone.data.length; - boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; - boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; - } - else { - r += offsetRotation; - } - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - cos = Math.cos(r); - sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - } - bone.appliedValid = false; - } - }; - PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { - var target = this.target; - var position = this.position; - var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; - var closed = path.closed; - var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; - if (!path.constantSpeed) { - var lengths = path.lengths; - curveCount -= closed ? 1 : 2; - var pathLength_1 = lengths[curveCount]; - if (percentPosition) - position *= pathLength_1; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength_1; - } - world = spine.Utils.setArraySize(this.world, 8); - for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength_1; - if (p < 0) - p += pathLength_1; - curve = 0; - } - else if (p < 0) { - if (prevCurve != PathConstraint.BEFORE) { - prevCurve = PathConstraint.BEFORE; - path.computeWorldVertices(target, 2, 4, world, 0, 2); - } - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength_1) { - if (prevCurve != PathConstraint.AFTER) { - prevCurve = PathConstraint.AFTER; - path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); - } - this.addAfterPosition(p - pathLength_1, world, 0, out, o); - continue; - } - for (;; curve++) { - var length_4 = lengths[curve]; - if (p > length_4) - continue; - if (curve == 0) - p /= length_4; - else { - var prev = lengths[curve - 1]; - p = (p - prev) / (length_4 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - if (closed && curve == curveCount) { - path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); - path.computeWorldVertices(target, 0, 4, world, 4, 2); - } - else - path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); - } - this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); - } - return out; - } - if (closed) { - verticesLength += 2; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); - path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); - world[verticesLength - 2] = world[0]; - world[verticesLength - 1] = world[1]; - } - else { - curveCount--; - verticesLength -= 4; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); - } - var curves = spine.Utils.setArraySize(this.curves, curveCount); - var pathLength = 0; - var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; - var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; - for (var i = 0, w = 2; i < curveCount; i++, w += 6) { - cx1 = world[w]; - cy1 = world[w + 1]; - cx2 = world[w + 2]; - cy2 = world[w + 3]; - x2 = world[w + 4]; - y2 = world[w + 5]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; - tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - curves[i] = pathLength; - x1 = x2; - y1 = y2; - } - if (percentPosition) - position *= pathLength; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength; - } - var segments = this.segments; - var curveLength = 0; - for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength; - if (p < 0) - p += pathLength; - curve = 0; - } - else if (p < 0) { - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength) { - this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); - continue; - } - for (;; curve++) { - var length_5 = curves[curve]; - if (p > length_5) - continue; - if (curve == 0) - p /= length_5; - else { - var prev = curves[curve - 1]; - p = (p - prev) / (length_5 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - var ii = curve * 6; - x1 = world[ii]; - y1 = world[ii + 1]; - cx1 = world[ii + 2]; - cy1 = world[ii + 3]; - cx2 = world[ii + 4]; - cy2 = world[ii + 5]; - x2 = world[ii + 6]; - y2 = world[ii + 7]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.03; - tmpy = (y1 - cy1 * 2 + cy2) * 0.03; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; - curveLength = Math.sqrt(dfx * dfx + dfy * dfy); - segments[0] = curveLength; - for (ii = 1; ii < 8; ii++) { - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[ii] = curveLength; - } - dfx += ddfx; - dfy += ddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[8] = curveLength; - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[9] = curveLength; - segment = 0; - } - p *= curveLength; - for (;; segment++) { - var length_6 = segments[segment]; - if (p > length_6) - continue; - if (segment == 0) - p /= length_6; - else { - var prev = segments[segment - 1]; - p = segment + (p - prev) / (length_6 - prev); - } - break; - } - this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); - } - return out; - }; - PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { - var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { - var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { - if (p == 0 || isNaN(p)) - p = 0.0001; - var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; - var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; - var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; - out[o] = x; - out[o + 1] = y; - if (tangents) - out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); - }; - PathConstraint.prototype.getOrder = function () { - return this.data.order; - }; - PathConstraint.NONE = -1; - PathConstraint.BEFORE = -2; - PathConstraint.AFTER = -3; - return PathConstraint; - }()); - spine.PathConstraint = PathConstraint; + var PathConstraint = (function () { + function PathConstraint(data, skeleton) { + this.position = 0; + this.spacing = 0; + this.rotateMix = 0; + this.translateMix = 0; + this.spaces = new Array(); + this.positions = new Array(); + this.world = new Array(); + this.curves = new Array(); + this.lengths = new Array(); + this.segments = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0, n = data.bones.length; i < n; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findSlot(data.target.name); + this.position = data.position; + this.spacing = data.spacing; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + } + PathConstraint.prototype.apply = function () { + this.update(); + }; + PathConstraint.prototype.update = function () { + var attachment = this.target.getAttachment(); + if (!(attachment instanceof spine.PathAttachment)) + return; + var rotateMix = this.rotateMix, translateMix = this.translateMix; + var translate = translateMix > 0, rotate = rotateMix > 0; + if (!translate && !rotate) + return; + var data = this.data; + var spacingMode = data.spacingMode; + var lengthSpacing = spacingMode == spine.SpacingMode.Length; + var rotateMode = data.rotateMode; + var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; + var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; + var bones = this.bones; + var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; + var spacing = this.spacing; + if (scale || lengthSpacing) { + if (scale) + lengths = spine.Utils.setArraySize(this.lengths, boneCount); + for (var i = 0, n = spacesCount - 1; i < n;) { + var bone = bones[i]; + var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; + var length_1 = Math.sqrt(x * x + y * y); + if (scale) + lengths[i] = length_1; + spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; + } + } + else { + for (var i = 1; i < spacesCount; i++) + spaces[i] = spacing; + } + var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); + var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; + var tip = false; + if (offsetRotation == 0) + tip = rotateMode == spine.RotateMode.Chain; + else { + tip = false; + var p = this.target.bone; + offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + } + for (var i = 0, p = 3; i < boneCount; i++, p += 3) { + var bone = bones[i]; + bone.worldX += (boneX - bone.worldX) * translateMix; + bone.worldY += (boneY - bone.worldY) * translateMix; + var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; + if (scale) { + var length_2 = lengths[i]; + if (length_2 != 0) { + var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; + bone.a *= s; + bone.c *= s; + } + } + boneX = x; + boneY = y; + if (rotate) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; + if (tangents) + r = positions[p - 1]; + else if (spaces[i + 1] == 0) + r = positions[p + 2]; + else + r = Math.atan2(dy, dx); + r -= Math.atan2(c, a); + if (tip) { + cos = Math.cos(r); + sin = Math.sin(r); + var length_3 = bone.data.length; + boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; + boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; + } + else { + r += offsetRotation; + } + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + cos = Math.cos(r); + sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + bone.appliedValid = false; + } + }; + PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { + var target = this.target; + var position = this.position; + var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; + var closed = path.closed; + var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; + if (!path.constantSpeed) { + var lengths = path.lengths; + curveCount -= closed ? 1 : 2; + var pathLength_1 = lengths[curveCount]; + if (percentPosition) + position *= pathLength_1; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength_1; + } + world = spine.Utils.setArraySize(this.world, 8); + for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength_1; + if (p < 0) + p += pathLength_1; + curve = 0; + } + else if (p < 0) { + if (prevCurve != PathConstraint.BEFORE) { + prevCurve = PathConstraint.BEFORE; + path.computeWorldVertices(target, 2, 4, world, 0, 2); + } + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength_1) { + if (prevCurve != PathConstraint.AFTER) { + prevCurve = PathConstraint.AFTER; + path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); + } + this.addAfterPosition(p - pathLength_1, world, 0, out, o); + continue; + } + for (;; curve++) { + var length_4 = lengths[curve]; + if (p > length_4) + continue; + if (curve == 0) + p /= length_4; + else { + var prev = lengths[curve - 1]; + p = (p - prev) / (length_4 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + if (closed && curve == curveCount) { + path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); + path.computeWorldVertices(target, 0, 4, world, 4, 2); + } + else + path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); + } + this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); + } + return out; + } + if (closed) { + verticesLength += 2; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); + path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); + world[verticesLength - 2] = world[0]; + world[verticesLength - 1] = world[1]; + } + else { + curveCount--; + verticesLength -= 4; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); + } + var curves = spine.Utils.setArraySize(this.curves, curveCount); + var pathLength = 0; + var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; + var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; + for (var i = 0, w = 2; i < curveCount; i++, w += 6) { + cx1 = world[w]; + cy1 = world[w + 1]; + cx2 = world[w + 2]; + cy2 = world[w + 3]; + x2 = world[w + 4]; + y2 = world[w + 5]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; + tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + curves[i] = pathLength; + x1 = x2; + y1 = y2; + } + if (percentPosition) + position *= pathLength; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength; + } + var segments = this.segments; + var curveLength = 0; + for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength; + if (p < 0) + p += pathLength; + curve = 0; + } + else if (p < 0) { + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength) { + this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); + continue; + } + for (;; curve++) { + var length_5 = curves[curve]; + if (p > length_5) + continue; + if (curve == 0) + p /= length_5; + else { + var prev = curves[curve - 1]; + p = (p - prev) / (length_5 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + var ii = curve * 6; + x1 = world[ii]; + y1 = world[ii + 1]; + cx1 = world[ii + 2]; + cy1 = world[ii + 3]; + cx2 = world[ii + 4]; + cy2 = world[ii + 5]; + x2 = world[ii + 6]; + y2 = world[ii + 7]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.03; + tmpy = (y1 - cy1 * 2 + cy2) * 0.03; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; + curveLength = Math.sqrt(dfx * dfx + dfy * dfy); + segments[0] = curveLength; + for (ii = 1; ii < 8; ii++) { + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[ii] = curveLength; + } + dfx += ddfx; + dfy += ddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[8] = curveLength; + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[9] = curveLength; + segment = 0; + } + p *= curveLength; + for (;; segment++) { + var length_6 = segments[segment]; + if (p > length_6) + continue; + if (segment == 0) + p /= length_6; + else { + var prev = segments[segment - 1]; + p = segment + (p - prev) / (length_6 - prev); + } + break; + } + this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); + } + return out; + }; + PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { + var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { + var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { + if (p == 0 || isNaN(p)) + p = 0.0001; + var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; + var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; + var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; + out[o] = x; + out[o + 1] = y; + if (tangents) + out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); + }; + PathConstraint.prototype.getOrder = function () { + return this.data.order; + }; + PathConstraint.NONE = -1; + PathConstraint.BEFORE = -2; + PathConstraint.AFTER = -3; + return PathConstraint; + }()); + spine.PathConstraint = PathConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraintData = (function () { - function PathConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.name = name; - } - return PathConstraintData; - }()); - spine.PathConstraintData = PathConstraintData; - (function (PositionMode) { - PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; - PositionMode[PositionMode["Percent"] = 1] = "Percent"; - })(spine.PositionMode || (spine.PositionMode = {})); - var PositionMode = spine.PositionMode; - (function (SpacingMode) { - SpacingMode[SpacingMode["Length"] = 0] = "Length"; - SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; - SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; - })(spine.SpacingMode || (spine.SpacingMode = {})); - var SpacingMode = spine.SpacingMode; - (function (RotateMode) { - RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; - RotateMode[RotateMode["Chain"] = 1] = "Chain"; - RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; - })(spine.RotateMode || (spine.RotateMode = {})); - var RotateMode = spine.RotateMode; + var PathConstraintData = (function () { + function PathConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.name = name; + } + return PathConstraintData; + }()); + spine.PathConstraintData = PathConstraintData; + (function (PositionMode) { + PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; + PositionMode[PositionMode["Percent"] = 1] = "Percent"; + })(spine.PositionMode || (spine.PositionMode = {})); + var PositionMode = spine.PositionMode; + (function (SpacingMode) { + SpacingMode[SpacingMode["Length"] = 0] = "Length"; + SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; + SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; + })(spine.SpacingMode || (spine.SpacingMode = {})); + var SpacingMode = spine.SpacingMode; + (function (RotateMode) { + RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; + RotateMode[RotateMode["Chain"] = 1] = "Chain"; + RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; + })(spine.RotateMode || (spine.RotateMode = {})); + var RotateMode = spine.RotateMode; })(spine || (spine = {})); var spine; (function (spine) { - var Assets = (function () { - function Assets(clientId) { - this.toLoad = new Array(); - this.assets = {}; - this.clientId = clientId; - } - Assets.prototype.loaded = function () { - var i = 0; - for (var v in this.assets) - i++; - return i; - }; - return Assets; - }()); - var SharedAssetManager = (function () { - function SharedAssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.clientAssets = {}; - this.queuedAssets = {}; - this.rawAssets = {}; - this.errors = {}; - this.pathPrefix = pathPrefix; - } - SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) { - clientAssets = new Assets(clientId); - this.clientAssets[clientId] = clientAssets; - } - if (textureLoader !== null) - clientAssets.textureLoader = textureLoader; - clientAssets.toLoad.push(path); - if (this.queuedAssets[path] === path) { - return false; - } - else { - this.queuedAssets[path] = path; - return true; - } - }; - SharedAssetManager.prototype.loadText = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = request.responseText; - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadJson = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = JSON.parse(request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, textureLoader, path)) - return; - var img = new Image(); - img.src = path; - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - _this.rawAssets[path] = img; - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - }; - }; - SharedAssetManager.prototype.get = function (clientId, path) { - path = this.pathPrefix + path; - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - return clientAssets.assets[path]; - }; - SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { - for (var i = 0; i < clientAssets.toLoad.length; i++) { - var path = clientAssets.toLoad[i]; - var asset = clientAssets.assets[path]; - if (asset === null || asset === undefined) { - var rawAsset = this.rawAssets[path]; - if (rawAsset === null || rawAsset === undefined) - continue; - if (rawAsset instanceof HTMLImageElement) { - clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); - } - else { - clientAssets.assets[path] = rawAsset; - } - } - } - }; - SharedAssetManager.prototype.isLoadingComplete = function (clientId) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - this.updateClientAssets(clientAssets); - return clientAssets.toLoad.length == clientAssets.loaded(); - }; - SharedAssetManager.prototype.dispose = function () { - }; - SharedAssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - SharedAssetManager.prototype.getErrors = function () { - return this.errors; - }; - return SharedAssetManager; - }()); - spine.SharedAssetManager = SharedAssetManager; + var Assets = (function () { + function Assets(clientId) { + this.toLoad = new Array(); + this.assets = {}; + this.clientId = clientId; + } + Assets.prototype.loaded = function () { + var i = 0; + for (var v in this.assets) + i++; + return i; + }; + return Assets; + }()); + var SharedAssetManager = (function () { + function SharedAssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.clientAssets = {}; + this.queuedAssets = {}; + this.rawAssets = {}; + this.errors = {}; + this.pathPrefix = pathPrefix; + } + SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) { + clientAssets = new Assets(clientId); + this.clientAssets[clientId] = clientAssets; + } + if (textureLoader !== null) + clientAssets.textureLoader = textureLoader; + clientAssets.toLoad.push(path); + if (this.queuedAssets[path] === path) { + return false; + } + else { + this.queuedAssets[path] = path; + return true; + } + }; + SharedAssetManager.prototype.loadText = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = request.responseText; + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadJson = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = JSON.parse(request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, textureLoader, path)) + return; + var img = new Image(); + img.src = path; + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + _this.rawAssets[path] = img; + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + }; + }; + SharedAssetManager.prototype.get = function (clientId, path) { + path = this.pathPrefix + path; + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + return clientAssets.assets[path]; + }; + SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { + for (var i = 0; i < clientAssets.toLoad.length; i++) { + var path = clientAssets.toLoad[i]; + var asset = clientAssets.assets[path]; + if (asset === null || asset === undefined) { + var rawAsset = this.rawAssets[path]; + if (rawAsset === null || rawAsset === undefined) + continue; + if (rawAsset instanceof HTMLImageElement) { + clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); + } + else { + clientAssets.assets[path] = rawAsset; + } + } + } + }; + SharedAssetManager.prototype.isLoadingComplete = function (clientId) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + this.updateClientAssets(clientAssets); + return clientAssets.toLoad.length == clientAssets.loaded(); + }; + SharedAssetManager.prototype.dispose = function () { + }; + SharedAssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + SharedAssetManager.prototype.getErrors = function () { + return this.errors; + }; + return SharedAssetManager; + }()); + spine.SharedAssetManager = SharedAssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var Skeleton = (function () { - function Skeleton(data) { - this._updateCache = new Array(); - this.updateCacheReset = new Array(); - this.time = 0; - this.flipX = false; - this.flipY = false; - this.x = 0; - this.y = 0; - if (data == null) - throw new Error("data cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) { - var boneData = data.bones[i]; - var bone = void 0; - if (boneData.parent == null) - bone = new spine.Bone(boneData, this, null); - else { - var parent_1 = this.bones[boneData.parent.index]; - bone = new spine.Bone(boneData, this, parent_1); - parent_1.children.push(bone); - } - this.bones.push(bone); - } - this.slots = new Array(); - this.drawOrder = new Array(); - for (var i = 0; i < data.slots.length; i++) { - var slotData = data.slots[i]; - var bone = this.bones[slotData.boneData.index]; - var slot = new spine.Slot(slotData, bone); - this.slots.push(slot); - this.drawOrder.push(slot); - } - this.ikConstraints = new Array(); - for (var i = 0; i < data.ikConstraints.length; i++) { - var ikConstraintData = data.ikConstraints[i]; - this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); - } - this.transformConstraints = new Array(); - for (var i = 0; i < data.transformConstraints.length; i++) { - var transformConstraintData = data.transformConstraints[i]; - this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); - } - this.pathConstraints = new Array(); - for (var i = 0; i < data.pathConstraints.length; i++) { - var pathConstraintData = data.pathConstraints[i]; - this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); - } - this.color = new spine.Color(1, 1, 1, 1); - this.updateCache(); - } - Skeleton.prototype.updateCache = function () { - var updateCache = this._updateCache; - updateCache.length = 0; - this.updateCacheReset.length = 0; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].sorted = false; - var ikConstraints = this.ikConstraints; - var transformConstraints = this.transformConstraints; - var pathConstraints = this.pathConstraints; - var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; - var constraintCount = ikCount + transformCount + pathCount; - outer: for (var i = 0; i < constraintCount; i++) { - for (var ii = 0; ii < ikCount; ii++) { - var constraint = ikConstraints[ii]; - if (constraint.data.order == i) { - this.sortIkConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < transformCount; ii++) { - var constraint = transformConstraints[ii]; - if (constraint.data.order == i) { - this.sortTransformConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < pathCount; ii++) { - var constraint = pathConstraints[ii]; - if (constraint.data.order == i) { - this.sortPathConstraint(constraint); - continue outer; - } - } - } - for (var i = 0, n = bones.length; i < n; i++) - this.sortBone(bones[i]); - }; - Skeleton.prototype.sortIkConstraint = function (constraint) { - var target = constraint.target; - this.sortBone(target); - var constrained = constraint.bones; - var parent = constrained[0]; - this.sortBone(parent); - if (constrained.length > 1) { - var child = constrained[constrained.length - 1]; - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - this._updateCache.push(constraint); - this.sortReset(parent.children); - constrained[constrained.length - 1].sorted = true; - }; - Skeleton.prototype.sortPathConstraint = function (constraint) { - var slot = constraint.target; - var slotIndex = slot.data.index; - var slotBone = slot.bone; - if (this.skin != null) - this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); - if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) - this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); - for (var i = 0, n = this.data.skins.length; i < n; i++) - this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); - var attachment = slot.getAttachment(); - if (attachment instanceof spine.PathAttachment) - this.sortPathConstraintAttachmentWith(attachment, slotBone); - var constrained = constraint.bones; - var boneCount = constrained.length; - for (var i = 0; i < boneCount; i++) - this.sortBone(constrained[i]); - this._updateCache.push(constraint); - for (var i = 0; i < boneCount; i++) - this.sortReset(constrained[i].children); - for (var i = 0; i < boneCount; i++) - constrained[i].sorted = true; - }; - Skeleton.prototype.sortTransformConstraint = function (constraint) { - this.sortBone(constraint.target); - var constrained = constraint.bones; - var boneCount = constrained.length; - if (constraint.data.local) { - for (var i = 0; i < boneCount; i++) { - var child = constrained[i]; - this.sortBone(child.parent); - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - } - else { - for (var i = 0; i < boneCount; i++) { - this.sortBone(constrained[i]); - } - } - this._updateCache.push(constraint); - for (var ii = 0; ii < boneCount; ii++) - this.sortReset(constrained[ii].children); - for (var ii = 0; ii < boneCount; ii++) - constrained[ii].sorted = true; - }; - Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { - var attachments = skin.attachments[slotIndex]; - if (!attachments) - return; - for (var key in attachments) { - this.sortPathConstraintAttachmentWith(attachments[key], slotBone); - } - }; - Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { - if (!(attachment instanceof spine.PathAttachment)) - return; - var pathBones = attachment.bones; - if (pathBones == null) - this.sortBone(slotBone); - else { - var bones = this.bones; - var i = 0; - while (i < pathBones.length) { - var boneCount = pathBones[i++]; - for (var n = i + boneCount; i < n; i++) { - var boneIndex = pathBones[i]; - this.sortBone(bones[boneIndex]); - } - } - } - }; - Skeleton.prototype.sortBone = function (bone) { - if (bone.sorted) - return; - var parent = bone.parent; - if (parent != null) - this.sortBone(parent); - bone.sorted = true; - this._updateCache.push(bone); - }; - Skeleton.prototype.sortReset = function (bones) { - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.sorted) - this.sortReset(bone.children); - bone.sorted = false; - } - }; - Skeleton.prototype.updateWorldTransform = function () { - var updateCacheReset = this.updateCacheReset; - for (var i = 0, n = updateCacheReset.length; i < n; i++) { - var bone = updateCacheReset[i]; - bone.ax = bone.x; - bone.ay = bone.y; - bone.arotation = bone.rotation; - bone.ascaleX = bone.scaleX; - bone.ascaleY = bone.scaleY; - bone.ashearX = bone.shearX; - bone.ashearY = bone.shearY; - bone.appliedValid = true; - } - var updateCache = this._updateCache; - for (var i = 0, n = updateCache.length; i < n; i++) - updateCache[i].update(); - }; - Skeleton.prototype.setToSetupPose = function () { - this.setBonesToSetupPose(); - this.setSlotsToSetupPose(); - }; - Skeleton.prototype.setBonesToSetupPose = function () { - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].setToSetupPose(); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - constraint.bendDirection = constraint.data.bendDirection; - constraint.mix = constraint.data.mix; - } - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - var data = constraint.data; - constraint.position = data.position; - constraint.spacing = data.spacing; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - } - }; - Skeleton.prototype.setSlotsToSetupPose = function () { - var slots = this.slots; - spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); - for (var i = 0, n = slots.length; i < n; i++) - slots[i].setToSetupPose(); - }; - Skeleton.prototype.getRootBone = function () { - if (this.bones.length == 0) - return null; - return this.bones[0]; - }; - Skeleton.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.data.name == boneName) - return bone; - } - return null; - }; - Skeleton.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].data.name == boneName) - return i; - return -1; - }; - Skeleton.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) - return slot; - } - return null; - }; - Skeleton.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].data.name == slotName) - return i; - return -1; - }; - Skeleton.prototype.setSkinByName = function (skinName) { - var skin = this.data.findSkin(skinName); - if (skin == null) - throw new Error("Skin not found: " + skinName); - this.setSkin(skin); - }; - Skeleton.prototype.setSkin = function (newSkin) { - if (newSkin != null) { - if (this.skin != null) - newSkin.attachAll(this, this.skin); - else { - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var name_1 = slot.data.attachmentName; - if (name_1 != null) { - var attachment = newSkin.getAttachment(i, name_1); - if (attachment != null) - slot.setAttachment(attachment); - } - } - } - } - this.skin = newSkin; - }; - Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { - return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); - }; - Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { - if (attachmentName == null) - throw new Error("attachmentName cannot be null."); - if (this.skin != null) { - var attachment = this.skin.getAttachment(slotIndex, attachmentName); - if (attachment != null) - return attachment; - } - if (this.data.defaultSkin != null) - return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); - return null; - }; - Skeleton.prototype.setAttachment = function (slotName, attachmentName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) { - var attachment = null; - if (attachmentName != null) { - attachment = this.getAttachment(i, attachmentName); - if (attachment == null) - throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); - } - slot.setAttachment(attachment); - return; - } - } - throw new Error("Slot not found: " + slotName); - }; - Skeleton.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var ikConstraint = ikConstraints[i]; - if (ikConstraint.data.name == constraintName) - return ikConstraint; - } - return null; - }; - Skeleton.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.getBounds = function (offset, size, temp) { - if (offset == null) - throw new Error("offset cannot be null."); - if (size == null) - throw new Error("size cannot be null."); - var drawOrder = this.drawOrder; - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var verticesLength = 0; - var vertices = null; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.RegionAttachment) { - verticesLength = 8; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - attachment.computeWorldVertices(slot.bone, vertices, 0, 2); - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - verticesLength = mesh.worldVerticesLength; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); - } - if (vertices != null) { - for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { - var x = vertices[ii], y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - } - offset.set(minX, minY); - size.set(maxX - minX, maxY - minY); - }; - Skeleton.prototype.update = function (delta) { - this.time += delta; - }; - return Skeleton; - }()); - spine.Skeleton = Skeleton; + var Skeleton = (function () { + function Skeleton(data) { + this._updateCache = new Array(); + this.updateCacheReset = new Array(); + this.time = 0; + this.flipX = false; + this.flipY = false; + this.x = 0; + this.y = 0; + if (data == null) + throw new Error("data cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) { + var boneData = data.bones[i]; + var bone = void 0; + if (boneData.parent == null) + bone = new spine.Bone(boneData, this, null); + else { + var parent_1 = this.bones[boneData.parent.index]; + bone = new spine.Bone(boneData, this, parent_1); + parent_1.children.push(bone); + } + this.bones.push(bone); + } + this.slots = new Array(); + this.drawOrder = new Array(); + for (var i = 0; i < data.slots.length; i++) { + var slotData = data.slots[i]; + var bone = this.bones[slotData.boneData.index]; + var slot = new spine.Slot(slotData, bone); + this.slots.push(slot); + this.drawOrder.push(slot); + } + this.ikConstraints = new Array(); + for (var i = 0; i < data.ikConstraints.length; i++) { + var ikConstraintData = data.ikConstraints[i]; + this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); + } + this.transformConstraints = new Array(); + for (var i = 0; i < data.transformConstraints.length; i++) { + var transformConstraintData = data.transformConstraints[i]; + this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); + } + this.pathConstraints = new Array(); + for (var i = 0; i < data.pathConstraints.length; i++) { + var pathConstraintData = data.pathConstraints[i]; + this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); + } + this.color = new spine.Color(1, 1, 1, 1); + this.updateCache(); + } + Skeleton.prototype.updateCache = function () { + var updateCache = this._updateCache; + updateCache.length = 0; + this.updateCacheReset.length = 0; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].sorted = false; + var ikConstraints = this.ikConstraints; + var transformConstraints = this.transformConstraints; + var pathConstraints = this.pathConstraints; + var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; + var constraintCount = ikCount + transformCount + pathCount; + outer: for (var i = 0; i < constraintCount; i++) { + for (var ii = 0; ii < ikCount; ii++) { + var constraint = ikConstraints[ii]; + if (constraint.data.order == i) { + this.sortIkConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < transformCount; ii++) { + var constraint = transformConstraints[ii]; + if (constraint.data.order == i) { + this.sortTransformConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < pathCount; ii++) { + var constraint = pathConstraints[ii]; + if (constraint.data.order == i) { + this.sortPathConstraint(constraint); + continue outer; + } + } + } + for (var i = 0, n = bones.length; i < n; i++) + this.sortBone(bones[i]); + }; + Skeleton.prototype.sortIkConstraint = function (constraint) { + var target = constraint.target; + this.sortBone(target); + var constrained = constraint.bones; + var parent = constrained[0]; + this.sortBone(parent); + if (constrained.length > 1) { + var child = constrained[constrained.length - 1]; + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + this._updateCache.push(constraint); + this.sortReset(parent.children); + constrained[constrained.length - 1].sorted = true; + }; + Skeleton.prototype.sortPathConstraint = function (constraint) { + var slot = constraint.target; + var slotIndex = slot.data.index; + var slotBone = slot.bone; + if (this.skin != null) + this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); + if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) + this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); + for (var i = 0, n = this.data.skins.length; i < n; i++) + this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); + var attachment = slot.getAttachment(); + if (attachment instanceof spine.PathAttachment) + this.sortPathConstraintAttachmentWith(attachment, slotBone); + var constrained = constraint.bones; + var boneCount = constrained.length; + for (var i = 0; i < boneCount; i++) + this.sortBone(constrained[i]); + this._updateCache.push(constraint); + for (var i = 0; i < boneCount; i++) + this.sortReset(constrained[i].children); + for (var i = 0; i < boneCount; i++) + constrained[i].sorted = true; + }; + Skeleton.prototype.sortTransformConstraint = function (constraint) { + this.sortBone(constraint.target); + var constrained = constraint.bones; + var boneCount = constrained.length; + if (constraint.data.local) { + for (var i = 0; i < boneCount; i++) { + var child = constrained[i]; + this.sortBone(child.parent); + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + } + else { + for (var i = 0; i < boneCount; i++) { + this.sortBone(constrained[i]); + } + } + this._updateCache.push(constraint); + for (var ii = 0; ii < boneCount; ii++) + this.sortReset(constrained[ii].children); + for (var ii = 0; ii < boneCount; ii++) + constrained[ii].sorted = true; + }; + Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { + var attachments = skin.attachments[slotIndex]; + if (!attachments) + return; + for (var key in attachments) { + this.sortPathConstraintAttachmentWith(attachments[key], slotBone); + } + }; + Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { + if (!(attachment instanceof spine.PathAttachment)) + return; + var pathBones = attachment.bones; + if (pathBones == null) + this.sortBone(slotBone); + else { + var bones = this.bones; + var i = 0; + while (i < pathBones.length) { + var boneCount = pathBones[i++]; + for (var n = i + boneCount; i < n; i++) { + var boneIndex = pathBones[i]; + this.sortBone(bones[boneIndex]); + } + } + } + }; + Skeleton.prototype.sortBone = function (bone) { + if (bone.sorted) + return; + var parent = bone.parent; + if (parent != null) + this.sortBone(parent); + bone.sorted = true; + this._updateCache.push(bone); + }; + Skeleton.prototype.sortReset = function (bones) { + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.sorted) + this.sortReset(bone.children); + bone.sorted = false; + } + }; + Skeleton.prototype.updateWorldTransform = function () { + var updateCacheReset = this.updateCacheReset; + for (var i = 0, n = updateCacheReset.length; i < n; i++) { + var bone = updateCacheReset[i]; + bone.ax = bone.x; + bone.ay = bone.y; + bone.arotation = bone.rotation; + bone.ascaleX = bone.scaleX; + bone.ascaleY = bone.scaleY; + bone.ashearX = bone.shearX; + bone.ashearY = bone.shearY; + bone.appliedValid = true; + } + var updateCache = this._updateCache; + for (var i = 0, n = updateCache.length; i < n; i++) + updateCache[i].update(); + }; + Skeleton.prototype.setToSetupPose = function () { + this.setBonesToSetupPose(); + this.setSlotsToSetupPose(); + }; + Skeleton.prototype.setBonesToSetupPose = function () { + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].setToSetupPose(); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + constraint.bendDirection = constraint.data.bendDirection; + constraint.mix = constraint.data.mix; + } + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + var data = constraint.data; + constraint.position = data.position; + constraint.spacing = data.spacing; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + } + }; + Skeleton.prototype.setSlotsToSetupPose = function () { + var slots = this.slots; + spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); + for (var i = 0, n = slots.length; i < n; i++) + slots[i].setToSetupPose(); + }; + Skeleton.prototype.getRootBone = function () { + if (this.bones.length == 0) + return null; + return this.bones[0]; + }; + Skeleton.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.data.name == boneName) + return bone; + } + return null; + }; + Skeleton.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].data.name == boneName) + return i; + return -1; + }; + Skeleton.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) + return slot; + } + return null; + }; + Skeleton.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].data.name == slotName) + return i; + return -1; + }; + Skeleton.prototype.setSkinByName = function (skinName) { + var skin = this.data.findSkin(skinName); + if (skin == null) + throw new Error("Skin not found: " + skinName); + this.setSkin(skin); + }; + Skeleton.prototype.setSkin = function (newSkin) { + if (newSkin != null) { + if (this.skin != null) + newSkin.attachAll(this, this.skin); + else { + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var name_1 = slot.data.attachmentName; + if (name_1 != null) { + var attachment = newSkin.getAttachment(i, name_1); + if (attachment != null) + slot.setAttachment(attachment); + } + } + } + } + this.skin = newSkin; + }; + Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { + return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); + }; + Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { + if (attachmentName == null) + throw new Error("attachmentName cannot be null."); + if (this.skin != null) { + var attachment = this.skin.getAttachment(slotIndex, attachmentName); + if (attachment != null) + return attachment; + } + if (this.data.defaultSkin != null) + return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); + return null; + }; + Skeleton.prototype.setAttachment = function (slotName, attachmentName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) { + var attachment = null; + if (attachmentName != null) { + attachment = this.getAttachment(i, attachmentName); + if (attachment == null) + throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); + } + slot.setAttachment(attachment); + return; + } + } + throw new Error("Slot not found: " + slotName); + }; + Skeleton.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var ikConstraint = ikConstraints[i]; + if (ikConstraint.data.name == constraintName) + return ikConstraint; + } + return null; + }; + Skeleton.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.getBounds = function (offset, size, temp) { + if (offset == null) + throw new Error("offset cannot be null."); + if (size == null) + throw new Error("size cannot be null."); + var drawOrder = this.drawOrder; + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var verticesLength = 0; + var vertices = null; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.RegionAttachment) { + verticesLength = 8; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + attachment.computeWorldVertices(slot.bone, vertices, 0, 2); + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + verticesLength = mesh.worldVerticesLength; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); + } + if (vertices != null) { + for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { + var x = vertices[ii], y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + } + offset.set(minX, minY); + size.set(maxX - minX, maxY - minY); + }; + Skeleton.prototype.update = function (delta) { + this.time += delta; + }; + return Skeleton; + }()); + spine.Skeleton = Skeleton; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonBounds = (function () { - function SkeletonBounds() { - this.minX = 0; - this.minY = 0; - this.maxX = 0; - this.maxY = 0; - this.boundingBoxes = new Array(); - this.polygons = new Array(); - this.polygonPool = new spine.Pool(function () { - return spine.Utils.newFloatArray(16); - }); - } - SkeletonBounds.prototype.update = function (skeleton, updateAabb) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - var boundingBoxes = this.boundingBoxes; - var polygons = this.polygons; - var polygonPool = this.polygonPool; - var slots = skeleton.slots; - var slotCount = slots.length; - boundingBoxes.length = 0; - polygonPool.freeAll(polygons); - polygons.length = 0; - for (var i = 0; i < slotCount; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.BoundingBoxAttachment) { - var boundingBox = attachment; - boundingBoxes.push(boundingBox); - var polygon = polygonPool.obtain(); - if (polygon.length != boundingBox.worldVerticesLength) { - polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); - } - polygons.push(polygon); - boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); - } - } - if (updateAabb) { - this.aabbCompute(); - } - else { - this.minX = Number.POSITIVE_INFINITY; - this.minY = Number.POSITIVE_INFINITY; - this.maxX = Number.NEGATIVE_INFINITY; - this.maxY = Number.NEGATIVE_INFINITY; - } - }; - SkeletonBounds.prototype.aabbCompute = function () { - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) { - var polygon = polygons[i]; - var vertices = polygon; - for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { - var x = vertices[ii]; - var y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - this.minX = minX; - this.minY = minY; - this.maxX = maxX; - this.maxY = maxY; - }; - SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { - return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; - }; - SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { - var minX = this.minX; - var minY = this.minY; - var maxX = this.maxX; - var maxY = this.maxY; - if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) - return false; - var m = (y2 - y1) / (x2 - x1); - var y = m * (minX - x1) + y1; - if (y > minY && y < maxY) - return true; - y = m * (maxX - x1) + y1; - if (y > minY && y < maxY) - return true; - var x = (minY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - x = (maxY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - return false; - }; - SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { - return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; - }; - SkeletonBounds.prototype.containsPoint = function (x, y) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.containsPointPolygon(polygons[i], x, y)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { - var vertices = polygon; - var nn = polygon.length; - var prevIndex = nn - 2; - var inside = false; - for (var ii = 0; ii < nn; ii += 2) { - var vertexY = vertices[ii + 1]; - var prevY = vertices[prevIndex + 1]; - if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { - var vertexX = vertices[ii]; - if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) - inside = !inside; - } - prevIndex = ii; - } - return inside; - }; - SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { - var vertices = polygon; - var nn = polygon.length; - var width12 = x1 - x2, height12 = y1 - y2; - var det1 = x1 * y2 - y1 * x2; - var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; - for (var ii = 0; ii < nn; ii += 2) { - var x4 = vertices[ii], y4 = vertices[ii + 1]; - var det2 = x3 * y4 - y3 * x4; - var width34 = x3 - x4, height34 = y3 - y4; - var det3 = width12 * height34 - height12 * width34; - var x = (det1 * width34 - width12 * det2) / det3; - if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { - var y = (det1 * height34 - height12 * det2) / det3; - if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) - return true; - } - x3 = x4; - y3 = y4; - } - return false; - }; - SkeletonBounds.prototype.getPolygon = function (boundingBox) { - if (boundingBox == null) - throw new Error("boundingBox cannot be null."); - var index = this.boundingBoxes.indexOf(boundingBox); - return index == -1 ? null : this.polygons[index]; - }; - SkeletonBounds.prototype.getWidth = function () { - return this.maxX - this.minX; - }; - SkeletonBounds.prototype.getHeight = function () { - return this.maxY - this.minY; - }; - return SkeletonBounds; - }()); - spine.SkeletonBounds = SkeletonBounds; + var SkeletonBounds = (function () { + function SkeletonBounds() { + this.minX = 0; + this.minY = 0; + this.maxX = 0; + this.maxY = 0; + this.boundingBoxes = new Array(); + this.polygons = new Array(); + this.polygonPool = new spine.Pool(function () { + return spine.Utils.newFloatArray(16); + }); + } + SkeletonBounds.prototype.update = function (skeleton, updateAabb) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + var boundingBoxes = this.boundingBoxes; + var polygons = this.polygons; + var polygonPool = this.polygonPool; + var slots = skeleton.slots; + var slotCount = slots.length; + boundingBoxes.length = 0; + polygonPool.freeAll(polygons); + polygons.length = 0; + for (var i = 0; i < slotCount; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.BoundingBoxAttachment) { + var boundingBox = attachment; + boundingBoxes.push(boundingBox); + var polygon = polygonPool.obtain(); + if (polygon.length != boundingBox.worldVerticesLength) { + polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); + } + polygons.push(polygon); + boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); + } + } + if (updateAabb) { + this.aabbCompute(); + } + else { + this.minX = Number.POSITIVE_INFINITY; + this.minY = Number.POSITIVE_INFINITY; + this.maxX = Number.NEGATIVE_INFINITY; + this.maxY = Number.NEGATIVE_INFINITY; + } + }; + SkeletonBounds.prototype.aabbCompute = function () { + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) { + var polygon = polygons[i]; + var vertices = polygon; + for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { + var x = vertices[ii]; + var y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + this.minX = minX; + this.minY = minY; + this.maxX = maxX; + this.maxY = maxY; + }; + SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { + return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; + }; + SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { + var minX = this.minX; + var minY = this.minY; + var maxX = this.maxX; + var maxY = this.maxY; + if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) + return false; + var m = (y2 - y1) / (x2 - x1); + var y = m * (minX - x1) + y1; + if (y > minY && y < maxY) + return true; + y = m * (maxX - x1) + y1; + if (y > minY && y < maxY) + return true; + var x = (minY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + x = (maxY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + return false; + }; + SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { + return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; + }; + SkeletonBounds.prototype.containsPoint = function (x, y) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.containsPointPolygon(polygons[i], x, y)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { + var vertices = polygon; + var nn = polygon.length; + var prevIndex = nn - 2; + var inside = false; + for (var ii = 0; ii < nn; ii += 2) { + var vertexY = vertices[ii + 1]; + var prevY = vertices[prevIndex + 1]; + if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { + var vertexX = vertices[ii]; + if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) + inside = !inside; + } + prevIndex = ii; + } + return inside; + }; + SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { + var vertices = polygon; + var nn = polygon.length; + var width12 = x1 - x2, height12 = y1 - y2; + var det1 = x1 * y2 - y1 * x2; + var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; + for (var ii = 0; ii < nn; ii += 2) { + var x4 = vertices[ii], y4 = vertices[ii + 1]; + var det2 = x3 * y4 - y3 * x4; + var width34 = x3 - x4, height34 = y3 - y4; + var det3 = width12 * height34 - height12 * width34; + var x = (det1 * width34 - width12 * det2) / det3; + if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { + var y = (det1 * height34 - height12 * det2) / det3; + if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) + return true; + } + x3 = x4; + y3 = y4; + } + return false; + }; + SkeletonBounds.prototype.getPolygon = function (boundingBox) { + if (boundingBox == null) + throw new Error("boundingBox cannot be null."); + var index = this.boundingBoxes.indexOf(boundingBox); + return index == -1 ? null : this.polygons[index]; + }; + SkeletonBounds.prototype.getWidth = function () { + return this.maxX - this.minX; + }; + SkeletonBounds.prototype.getHeight = function () { + return this.maxY - this.minY; + }; + return SkeletonBounds; + }()); + spine.SkeletonBounds = SkeletonBounds; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonClipping = (function () { - function SkeletonClipping() { - this.triangulator = new spine.Triangulator(); - this.clippingPolygon = new Array(); - this.clipOutput = new Array(); - this.clippedVertices = new Array(); - this.clippedTriangles = new Array(); - this.scratch = new Array(); - } - SkeletonClipping.prototype.clipStart = function (slot, clip) { - if (this.clipAttachment != null) - return 0; - this.clipAttachment = clip; - var n = clip.worldVerticesLength; - var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); - clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); - var clippingPolygon = this.clippingPolygon; - SkeletonClipping.makeClockwise(clippingPolygon); - var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); - for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { - var polygon = clippingPolygons[i]; - SkeletonClipping.makeClockwise(polygon); - polygon.push(polygon[0]); - polygon.push(polygon[1]); - } - return clippingPolygons.length; - }; - SkeletonClipping.prototype.clipEndWithSlot = function (slot) { - if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) - this.clipEnd(); - }; - SkeletonClipping.prototype.clipEnd = function () { - if (this.clipAttachment == null) - return; - this.clipAttachment = null; - this.clippingPolygons = null; - this.clippedVertices.length = 0; - this.clippedTriangles.length = 0; - this.clippingPolygon.length = 0; - }; - SkeletonClipping.prototype.isClipping = function () { - return this.clipAttachment != null; - }; - SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { - var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; - var clippedTriangles = this.clippedTriangles; - var polygons = this.clippingPolygons; - var polygonsCount = this.clippingPolygons.length; - var vertexSize = twoColor ? 12 : 8; - var index = 0; - clippedVertices.length = 0; - clippedTriangles.length = 0; - outer: for (var i = 0; i < trianglesLength; i += 3) { - var vertexOffset = triangles[i] << 1; - var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; - var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 1] << 1; - var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; - var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 2] << 1; - var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; - var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; - for (var p = 0; p < polygonsCount; p++) { - var s = clippedVertices.length; - if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { - var clipOutputLength = clipOutput.length; - if (clipOutputLength == 0) - continue; - var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; - var d = 1 / (d0 * d2 + d1 * (y1 - y3)); - var clipOutputCount = clipOutputLength >> 1; - var clipOutputItems = this.clipOutput; - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); - for (var ii = 0; ii < clipOutputLength; ii += 2) { - var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; - clippedVerticesItems[s] = x; - clippedVerticesItems[s + 1] = y; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - var c0 = x - x3, c1 = y - y3; - var a = (d0 * c0 + d1 * c1) * d; - var b = (d4 * c0 + d2 * c1) * d; - var c = 1 - a - b; - clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; - clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; - if (twoColor) { - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 8] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - } - s += vertexSize; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); - clipOutputCount--; - for (var ii = 1; ii < clipOutputCount; ii++) { - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + ii); - clippedTrianglesItems[s + 2] = (index + ii + 1); - s += 3; - } - index += clipOutputCount + 1; - } - else { - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); - clippedVerticesItems[s] = x1; - clippedVerticesItems[s + 1] = y1; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - if (!twoColor) { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = x2; - clippedVerticesItems[s + 9] = y2; - clippedVerticesItems[s + 10] = light.r; - clippedVerticesItems[s + 11] = light.g; - clippedVerticesItems[s + 12] = light.b; - clippedVerticesItems[s + 13] = light.a; - clippedVerticesItems[s + 14] = u2; - clippedVerticesItems[s + 15] = v2; - clippedVerticesItems[s + 16] = x3; - clippedVerticesItems[s + 17] = y3; - clippedVerticesItems[s + 18] = light.r; - clippedVerticesItems[s + 19] = light.g; - clippedVerticesItems[s + 20] = light.b; - clippedVerticesItems[s + 21] = light.a; - clippedVerticesItems[s + 22] = u3; - clippedVerticesItems[s + 23] = v3; - } - else { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 9] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - clippedVerticesItems[s + 12] = x2; - clippedVerticesItems[s + 13] = y2; - clippedVerticesItems[s + 14] = light.r; - clippedVerticesItems[s + 15] = light.g; - clippedVerticesItems[s + 16] = light.b; - clippedVerticesItems[s + 17] = light.a; - clippedVerticesItems[s + 18] = u2; - clippedVerticesItems[s + 19] = v2; - clippedVerticesItems[s + 20] = dark.r; - clippedVerticesItems[s + 21] = dark.g; - clippedVerticesItems[s + 22] = dark.b; - clippedVerticesItems[s + 23] = dark.a; - clippedVerticesItems[s + 24] = x3; - clippedVerticesItems[s + 25] = y3; - clippedVerticesItems[s + 26] = light.r; - clippedVerticesItems[s + 27] = light.g; - clippedVerticesItems[s + 28] = light.b; - clippedVerticesItems[s + 29] = light.a; - clippedVerticesItems[s + 30] = u3; - clippedVerticesItems[s + 31] = v3; - clippedVerticesItems[s + 32] = dark.r; - clippedVerticesItems[s + 33] = dark.g; - clippedVerticesItems[s + 34] = dark.b; - clippedVerticesItems[s + 35] = dark.a; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + 1); - clippedTrianglesItems[s + 2] = (index + 2); - index += 3; - continue outer; - } - } - } - }; - SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { - var originalOutput = output; - var clipped = false; - var input = null; - if (clippingArea.length % 4 >= 2) { - input = output; - output = this.scratch; - } - else - input = this.scratch; - input.length = 0; - input.push(x1); - input.push(y1); - input.push(x2); - input.push(y2); - input.push(x3); - input.push(y3); - input.push(x1); - input.push(y1); - output.length = 0; - var clippingVertices = clippingArea; - var clippingVerticesLast = clippingArea.length - 4; - for (var i = 0;; i += 2) { - var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; - var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; - var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; - var inputVertices = input; - var inputVerticesLength = input.length - 2, outputStart = output.length; - for (var ii = 0; ii < inputVerticesLength; ii += 2) { - var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; - var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; - var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; - if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { - if (side2) { - output.push(inputX2); - output.push(inputY2); - continue; - } - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - } - else if (side2) { - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - output.push(inputX2); - output.push(inputY2); - } - clipped = true; - } - if (outputStart == output.length) { - originalOutput.length = 0; - return true; - } - output.push(output[0]); - output.push(output[1]); - if (i == clippingVerticesLast) - break; - var temp = output; - output = input; - output.length = 0; - input = temp; - } - if (originalOutput != output) { - originalOutput.length = 0; - for (var i = 0, n = output.length - 2; i < n; i++) - originalOutput[i] = output[i]; - } - else - originalOutput.length = originalOutput.length - 2; - return clipped; - }; - SkeletonClipping.makeClockwise = function (polygon) { - var vertices = polygon; - var verticeslength = polygon.length; - var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; - for (var i = 0, n = verticeslength - 3; i < n; i += 2) { - p1x = vertices[i]; - p1y = vertices[i + 1]; - p2x = vertices[i + 2]; - p2y = vertices[i + 3]; - area += p1x * p2y - p2x * p1y; - } - if (area < 0) - return; - for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { - var x = vertices[i], y = vertices[i + 1]; - var other = lastX - i; - vertices[i] = vertices[other]; - vertices[i + 1] = vertices[other + 1]; - vertices[other] = x; - vertices[other + 1] = y; - } - }; - return SkeletonClipping; - }()); - spine.SkeletonClipping = SkeletonClipping; + var SkeletonClipping = (function () { + function SkeletonClipping() { + this.triangulator = new spine.Triangulator(); + this.clippingPolygon = new Array(); + this.clipOutput = new Array(); + this.clippedVertices = new Array(); + this.clippedTriangles = new Array(); + this.scratch = new Array(); + } + SkeletonClipping.prototype.clipStart = function (slot, clip) { + if (this.clipAttachment != null) + return 0; + this.clipAttachment = clip; + var n = clip.worldVerticesLength; + var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); + clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); + var clippingPolygon = this.clippingPolygon; + SkeletonClipping.makeClockwise(clippingPolygon); + var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); + for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { + var polygon = clippingPolygons[i]; + SkeletonClipping.makeClockwise(polygon); + polygon.push(polygon[0]); + polygon.push(polygon[1]); + } + return clippingPolygons.length; + }; + SkeletonClipping.prototype.clipEndWithSlot = function (slot) { + if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) + this.clipEnd(); + }; + SkeletonClipping.prototype.clipEnd = function () { + if (this.clipAttachment == null) + return; + this.clipAttachment = null; + this.clippingPolygons = null; + this.clippedVertices.length = 0; + this.clippedTriangles.length = 0; + this.clippingPolygon.length = 0; + }; + SkeletonClipping.prototype.isClipping = function () { + return this.clipAttachment != null; + }; + SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { + var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; + var clippedTriangles = this.clippedTriangles; + var polygons = this.clippingPolygons; + var polygonsCount = this.clippingPolygons.length; + var vertexSize = twoColor ? 12 : 8; + var index = 0; + clippedVertices.length = 0; + clippedTriangles.length = 0; + outer: for (var i = 0; i < trianglesLength; i += 3) { + var vertexOffset = triangles[i] << 1; + var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; + var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 1] << 1; + var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; + var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 2] << 1; + var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; + var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; + for (var p = 0; p < polygonsCount; p++) { + var s = clippedVertices.length; + if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { + var clipOutputLength = clipOutput.length; + if (clipOutputLength == 0) + continue; + var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; + var d = 1 / (d0 * d2 + d1 * (y1 - y3)); + var clipOutputCount = clipOutputLength >> 1; + var clipOutputItems = this.clipOutput; + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); + for (var ii = 0; ii < clipOutputLength; ii += 2) { + var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; + clippedVerticesItems[s] = x; + clippedVerticesItems[s + 1] = y; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + var c0 = x - x3, c1 = y - y3; + var a = (d0 * c0 + d1 * c1) * d; + var b = (d4 * c0 + d2 * c1) * d; + var c = 1 - a - b; + clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; + clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; + if (twoColor) { + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 8] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + } + s += vertexSize; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); + clipOutputCount--; + for (var ii = 1; ii < clipOutputCount; ii++) { + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + ii); + clippedTrianglesItems[s + 2] = (index + ii + 1); + s += 3; + } + index += clipOutputCount + 1; + } + else { + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); + clippedVerticesItems[s] = x1; + clippedVerticesItems[s + 1] = y1; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + if (!twoColor) { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = x2; + clippedVerticesItems[s + 9] = y2; + clippedVerticesItems[s + 10] = light.r; + clippedVerticesItems[s + 11] = light.g; + clippedVerticesItems[s + 12] = light.b; + clippedVerticesItems[s + 13] = light.a; + clippedVerticesItems[s + 14] = u2; + clippedVerticesItems[s + 15] = v2; + clippedVerticesItems[s + 16] = x3; + clippedVerticesItems[s + 17] = y3; + clippedVerticesItems[s + 18] = light.r; + clippedVerticesItems[s + 19] = light.g; + clippedVerticesItems[s + 20] = light.b; + clippedVerticesItems[s + 21] = light.a; + clippedVerticesItems[s + 22] = u3; + clippedVerticesItems[s + 23] = v3; + } + else { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 9] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + clippedVerticesItems[s + 12] = x2; + clippedVerticesItems[s + 13] = y2; + clippedVerticesItems[s + 14] = light.r; + clippedVerticesItems[s + 15] = light.g; + clippedVerticesItems[s + 16] = light.b; + clippedVerticesItems[s + 17] = light.a; + clippedVerticesItems[s + 18] = u2; + clippedVerticesItems[s + 19] = v2; + clippedVerticesItems[s + 20] = dark.r; + clippedVerticesItems[s + 21] = dark.g; + clippedVerticesItems[s + 22] = dark.b; + clippedVerticesItems[s + 23] = dark.a; + clippedVerticesItems[s + 24] = x3; + clippedVerticesItems[s + 25] = y3; + clippedVerticesItems[s + 26] = light.r; + clippedVerticesItems[s + 27] = light.g; + clippedVerticesItems[s + 28] = light.b; + clippedVerticesItems[s + 29] = light.a; + clippedVerticesItems[s + 30] = u3; + clippedVerticesItems[s + 31] = v3; + clippedVerticesItems[s + 32] = dark.r; + clippedVerticesItems[s + 33] = dark.g; + clippedVerticesItems[s + 34] = dark.b; + clippedVerticesItems[s + 35] = dark.a; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + 1); + clippedTrianglesItems[s + 2] = (index + 2); + index += 3; + continue outer; + } + } + } + }; + SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { + var originalOutput = output; + var clipped = false; + var input = null; + if (clippingArea.length % 4 >= 2) { + input = output; + output = this.scratch; + } + else + input = this.scratch; + input.length = 0; + input.push(x1); + input.push(y1); + input.push(x2); + input.push(y2); + input.push(x3); + input.push(y3); + input.push(x1); + input.push(y1); + output.length = 0; + var clippingVertices = clippingArea; + var clippingVerticesLast = clippingArea.length - 4; + for (var i = 0;; i += 2) { + var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; + var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; + var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; + var inputVertices = input; + var inputVerticesLength = input.length - 2, outputStart = output.length; + for (var ii = 0; ii < inputVerticesLength; ii += 2) { + var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; + var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; + var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; + if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { + if (side2) { + output.push(inputX2); + output.push(inputY2); + continue; + } + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + } + else if (side2) { + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + output.push(inputX2); + output.push(inputY2); + } + clipped = true; + } + if (outputStart == output.length) { + originalOutput.length = 0; + return true; + } + output.push(output[0]); + output.push(output[1]); + if (i == clippingVerticesLast) + break; + var temp = output; + output = input; + output.length = 0; + input = temp; + } + if (originalOutput != output) { + originalOutput.length = 0; + for (var i = 0, n = output.length - 2; i < n; i++) + originalOutput[i] = output[i]; + } + else + originalOutput.length = originalOutput.length - 2; + return clipped; + }; + SkeletonClipping.makeClockwise = function (polygon) { + var vertices = polygon; + var verticeslength = polygon.length; + var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; + for (var i = 0, n = verticeslength - 3; i < n; i += 2) { + p1x = vertices[i]; + p1y = vertices[i + 1]; + p2x = vertices[i + 2]; + p2y = vertices[i + 3]; + area += p1x * p2y - p2x * p1y; + } + if (area < 0) + return; + for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { + var x = vertices[i], y = vertices[i + 1]; + var other = lastX - i; + vertices[i] = vertices[other]; + vertices[i + 1] = vertices[other + 1]; + vertices[other] = x; + vertices[other + 1] = y; + } + }; + return SkeletonClipping; + }()); + spine.SkeletonClipping = SkeletonClipping; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonData = (function () { - function SkeletonData() { - this.bones = new Array(); - this.slots = new Array(); - this.skins = new Array(); - this.events = new Array(); - this.animations = new Array(); - this.ikConstraints = new Array(); - this.transformConstraints = new Array(); - this.pathConstraints = new Array(); - this.fps = 0; - } - SkeletonData.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.name == boneName) - return bone; - } - return null; - }; - SkeletonData.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].name == boneName) - return i; - return -1; - }; - SkeletonData.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.name == slotName) - return slot; - } - return null; - }; - SkeletonData.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].name == slotName) - return i; - return -1; - }; - SkeletonData.prototype.findSkin = function (skinName) { - if (skinName == null) - throw new Error("skinName cannot be null."); - var skins = this.skins; - for (var i = 0, n = skins.length; i < n; i++) { - var skin = skins[i]; - if (skin.name == skinName) - return skin; - } - return null; - }; - SkeletonData.prototype.findEvent = function (eventDataName) { - if (eventDataName == null) - throw new Error("eventDataName cannot be null."); - var events = this.events; - for (var i = 0, n = events.length; i < n; i++) { - var event_4 = events[i]; - if (event_4.name == eventDataName) - return event_4; - } - return null; - }; - SkeletonData.prototype.findAnimation = function (animationName) { - if (animationName == null) - throw new Error("animationName cannot be null."); - var animations = this.animations; - for (var i = 0, n = animations.length; i < n; i++) { - var animation = animations[i]; - if (animation.name == animationName) - return animation; - } - return null; - }; - SkeletonData.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { - if (pathConstraintName == null) - throw new Error("pathConstraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) - if (pathConstraints[i].name == pathConstraintName) - return i; - return -1; - }; - return SkeletonData; - }()); - spine.SkeletonData = SkeletonData; + var SkeletonData = (function () { + function SkeletonData() { + this.bones = new Array(); + this.slots = new Array(); + this.skins = new Array(); + this.events = new Array(); + this.animations = new Array(); + this.ikConstraints = new Array(); + this.transformConstraints = new Array(); + this.pathConstraints = new Array(); + this.fps = 0; + } + SkeletonData.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.name == boneName) + return bone; + } + return null; + }; + SkeletonData.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].name == boneName) + return i; + return -1; + }; + SkeletonData.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.name == slotName) + return slot; + } + return null; + }; + SkeletonData.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].name == slotName) + return i; + return -1; + }; + SkeletonData.prototype.findSkin = function (skinName) { + if (skinName == null) + throw new Error("skinName cannot be null."); + var skins = this.skins; + for (var i = 0, n = skins.length; i < n; i++) { + var skin = skins[i]; + if (skin.name == skinName) + return skin; + } + return null; + }; + SkeletonData.prototype.findEvent = function (eventDataName) { + if (eventDataName == null) + throw new Error("eventDataName cannot be null."); + var events = this.events; + for (var i = 0, n = events.length; i < n; i++) { + var event_4 = events[i]; + if (event_4.name == eventDataName) + return event_4; + } + return null; + }; + SkeletonData.prototype.findAnimation = function (animationName) { + if (animationName == null) + throw new Error("animationName cannot be null."); + var animations = this.animations; + for (var i = 0, n = animations.length; i < n; i++) { + var animation = animations[i]; + if (animation.name == animationName) + return animation; + } + return null; + }; + SkeletonData.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { + if (pathConstraintName == null) + throw new Error("pathConstraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) + if (pathConstraints[i].name == pathConstraintName) + return i; + return -1; + }; + return SkeletonData; + }()); + spine.SkeletonData = SkeletonData; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonJson = (function () { - function SkeletonJson(attachmentLoader) { - this.scale = 1; - this.linkedMeshes = new Array(); - this.attachmentLoader = attachmentLoader; - } - SkeletonJson.prototype.readSkeletonData = function (json) { - var scale = this.scale; - var skeletonData = new spine.SkeletonData(); - var root = typeof (json) === "string" ? JSON.parse(json) : json; - var skeletonMap = root.skeleton; - if (skeletonMap != null) { - skeletonData.hash = skeletonMap.hash; - skeletonData.version = skeletonMap.spine; - skeletonData.width = skeletonMap.width; - skeletonData.height = skeletonMap.height; - skeletonData.fps = skeletonMap.fps; - skeletonData.imagesPath = skeletonMap.images; - } - if (root.bones) { - for (var i = 0; i < root.bones.length; i++) { - var boneMap = root.bones[i]; - var parent_2 = null; - var parentName = this.getValue(boneMap, "parent", null); - if (parentName != null) { - parent_2 = skeletonData.findBone(parentName); - if (parent_2 == null) - throw new Error("Parent bone not found: " + parentName); - } - var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); - data.length = this.getValue(boneMap, "length", 0) * scale; - data.x = this.getValue(boneMap, "x", 0) * scale; - data.y = this.getValue(boneMap, "y", 0) * scale; - data.rotation = this.getValue(boneMap, "rotation", 0); - data.scaleX = this.getValue(boneMap, "scaleX", 1); - data.scaleY = this.getValue(boneMap, "scaleY", 1); - data.shearX = this.getValue(boneMap, "shearX", 0); - data.shearY = this.getValue(boneMap, "shearY", 0); - data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); - skeletonData.bones.push(data); - } - } - if (root.slots) { - for (var i = 0; i < root.slots.length; i++) { - var slotMap = root.slots[i]; - var slotName = slotMap.name; - var boneName = slotMap.bone; - var boneData = skeletonData.findBone(boneName); - if (boneData == null) - throw new Error("Slot bone not found: " + boneName); - var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); - var color = this.getValue(slotMap, "color", null); - if (color != null) - data.color.setFromString(color); - var dark = this.getValue(slotMap, "dark", null); - if (dark != null) { - data.darkColor = new spine.Color(1, 1, 1, 1); - data.darkColor.setFromString(dark); - } - data.attachmentName = this.getValue(slotMap, "attachment", null); - data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); - skeletonData.slots.push(data); - } - } - if (root.ik) { - for (var i = 0; i < root.ik.length; i++) { - var constraintMap = root.ik[i]; - var data = new spine.IkConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("IK bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("IK target bone not found: " + targetName); - data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; - data.mix = this.getValue(constraintMap, "mix", 1); - skeletonData.ikConstraints.push(data); - } - } - if (root.transform) { - for (var i = 0; i < root.transform.length; i++) { - var constraintMap = root.transform[i]; - var data = new spine.TransformConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("Transform constraint target bone not found: " + targetName); - data.local = this.getValue(constraintMap, "local", false); - data.relative = this.getValue(constraintMap, "relative", false); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.offsetX = this.getValue(constraintMap, "x", 0) * scale; - data.offsetY = this.getValue(constraintMap, "y", 0) * scale; - data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); - data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); - data.offsetShearY = this.getValue(constraintMap, "shearY", 0); - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); - data.shearMix = this.getValue(constraintMap, "shearMix", 1); - skeletonData.transformConstraints.push(data); - } - } - if (root.path) { - for (var i = 0; i < root.path.length; i++) { - var constraintMap = root.path[i]; - var data = new spine.PathConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findSlot(targetName); - if (data.target == null) - throw new Error("Path target slot not found: " + targetName); - data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); - data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); - data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.position = this.getValue(constraintMap, "position", 0); - if (data.positionMode == spine.PositionMode.Fixed) - data.position *= scale; - data.spacing = this.getValue(constraintMap, "spacing", 0); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - data.spacing *= scale; - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - skeletonData.pathConstraints.push(data); - } - } - if (root.skins) { - for (var skinName in root.skins) { - var skinMap = root.skins[skinName]; - var skin = new spine.Skin(skinName); - for (var slotName in skinMap) { - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - var slotMap = skinMap[slotName]; - for (var entryName in slotMap) { - var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); - if (attachment != null) - skin.addAttachment(slotIndex, entryName, attachment); - } - } - skeletonData.skins.push(skin); - if (skin.name == "default") - skeletonData.defaultSkin = skin; - } - } - for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { - var linkedMesh = this.linkedMeshes[i]; - var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); - if (skin == null) - throw new Error("Skin not found: " + linkedMesh.skin); - var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_3 == null) - throw new Error("Parent mesh not found: " + linkedMesh.parent); - linkedMesh.mesh.setParentMesh(parent_3); - linkedMesh.mesh.updateUVs(); - } - this.linkedMeshes.length = 0; - if (root.events) { - for (var eventName in root.events) { - var eventMap = root.events[eventName]; - var data = new spine.EventData(eventName); - data.intValue = this.getValue(eventMap, "int", 0); - data.floatValue = this.getValue(eventMap, "float", 0); - data.stringValue = this.getValue(eventMap, "string", ""); - skeletonData.events.push(data); - } - } - if (root.animations) { - for (var animationName in root.animations) { - var animationMap = root.animations[animationName]; - this.readAnimation(animationMap, animationName, skeletonData); - } - } - return skeletonData; - }; - SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { - var scale = this.scale; - name = this.getValue(map, "name", name); - var type = this.getValue(map, "type", "region"); - switch (type) { - case "region": { - var path = this.getValue(map, "path", name); - var region = this.attachmentLoader.newRegionAttachment(skin, name, path); - if (region == null) - return null; - region.path = path; - region.x = this.getValue(map, "x", 0) * scale; - region.y = this.getValue(map, "y", 0) * scale; - region.scaleX = this.getValue(map, "scaleX", 1); - region.scaleY = this.getValue(map, "scaleY", 1); - region.rotation = this.getValue(map, "rotation", 0); - region.width = map.width * scale; - region.height = map.height * scale; - var color = this.getValue(map, "color", null); - if (color != null) - region.color.setFromString(color); - region.updateOffset(); - return region; - } - case "boundingbox": { - var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); - if (box == null) - return null; - this.readVertices(map, box, map.vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - box.color.setFromString(color); - return box; - } - case "mesh": - case "linkedmesh": { - var path = this.getValue(map, "path", name); - var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); - if (mesh == null) - return null; - mesh.path = path; - var color = this.getValue(map, "color", null); - if (color != null) - mesh.color.setFromString(color); - var parent_4 = this.getValue(map, "parent", null); - if (parent_4 != null) { - mesh.inheritDeform = this.getValue(map, "deform", true); - this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); - return mesh; - } - var uvs = map.uvs; - this.readVertices(map, mesh, uvs.length); - mesh.triangles = map.triangles; - mesh.regionUVs = uvs; - mesh.updateUVs(); - mesh.hullLength = this.getValue(map, "hull", 0) * 2; - return mesh; - } - case "path": { - var path = this.attachmentLoader.newPathAttachment(skin, name); - if (path == null) - return null; - path.closed = this.getValue(map, "closed", false); - path.constantSpeed = this.getValue(map, "constantSpeed", true); - var vertexCount = map.vertexCount; - this.readVertices(map, path, vertexCount << 1); - var lengths = spine.Utils.newArray(vertexCount / 3, 0); - for (var i = 0; i < map.lengths.length; i++) - lengths[i++] = map.lengths[i] * scale; - path.lengths = lengths; - var color = this.getValue(map, "color", null); - if (color != null) - path.color.setFromString(color); - return path; - } - case "point": { - var point = this.attachmentLoader.newPointAttachment(skin, name); - if (point == null) - return null; - point.x = this.getValue(map, "x", 0) * scale; - point.y = this.getValue(map, "y", 0) * scale; - point.rotation = this.getValue(map, "rotation", 0); - var color = this.getValue(map, "color", null); - if (color != null) - point.color.setFromString(color); - return point; - } - case "clipping": { - var clip = this.attachmentLoader.newClippingAttachment(skin, name); - if (clip == null) - return null; - var end = this.getValue(map, "end", null); - if (end != null) { - var slot = skeletonData.findSlot(end); - if (slot == null) - throw new Error("Clipping end slot not found: " + end); - clip.endSlot = slot; - } - var vertexCount = map.vertexCount; - this.readVertices(map, clip, vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - clip.color.setFromString(color); - return clip; - } - } - return null; - }; - SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { - var scale = this.scale; - attachment.worldVerticesLength = verticesLength; - var vertices = map.vertices; - if (verticesLength == vertices.length) { - var scaledVertices = spine.Utils.toFloatArray(vertices); - if (scale != 1) { - for (var i = 0, n = vertices.length; i < n; i++) - scaledVertices[i] *= scale; - } - attachment.vertices = scaledVertices; - return; - } - var weights = new Array(); - var bones = new Array(); - for (var i = 0, n = vertices.length; i < n;) { - var boneCount = vertices[i++]; - bones.push(boneCount); - for (var nn = i + boneCount * 4; i < nn; i += 4) { - bones.push(vertices[i]); - weights.push(vertices[i + 1] * scale); - weights.push(vertices[i + 2] * scale); - weights.push(vertices[i + 3]); - } - } - attachment.bones = bones; - attachment.vertices = spine.Utils.toFloatArray(weights); - }; - SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { - var scale = this.scale; - var timelines = new Array(); - var duration = 0; - if (map.slots) { - for (var slotName in map.slots) { - var slotMap = map.slots[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - if (timelineName == "attachment") { - var timeline = new spine.AttachmentTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - else if (timelineName == "color") { - var timeline = new spine.ColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var color = new spine.Color(); - color.setFromString(valueMap.color); - timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); - } - else if (timelineName == "twoColor") { - var timeline = new spine.TwoColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var light = new spine.Color(); - var dark = new spine.Color(); - light.setFromString(valueMap.light); - dark.setFromString(valueMap.dark); - timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); - } - } - } - if (map.bones) { - for (var boneName in map.bones) { - var boneMap = map.bones[boneName]; - var boneIndex = skeletonData.findBoneIndex(boneName); - if (boneIndex == -1) - throw new Error("Bone not found: " + boneName); - for (var timelineName in boneMap) { - var timelineMap = boneMap[timelineName]; - if (timelineName === "rotate") { - var timeline = new spine.RotateTimeline(timelineMap.length); - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); - } - else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "scale") - timeline = new spine.ScaleTimeline(timelineMap.length); - else if (timelineName === "shear") - timeline = new spine.ShearTimeline(timelineMap.length); - else { - timeline = new spine.TranslateTimeline(timelineMap.length); - timelineScale = scale; - } - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); - timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); - } - } - } - if (map.ik) { - for (var constraintName in map.ik) { - var constraintMap = map.ik[constraintName]; - var constraint = skeletonData.findIkConstraint(constraintName); - var timeline = new spine.IkConstraintTimeline(constraintMap.length); - timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); - } - } - if (map.transform) { - for (var constraintName in map.transform) { - var constraintMap = map.transform[constraintName]; - var constraint = skeletonData.findTransformConstraint(constraintName); - var timeline = new spine.TransformConstraintTimeline(constraintMap.length); - timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); - } - } - if (map.paths) { - for (var constraintName in map.paths) { - var constraintMap = map.paths[constraintName]; - var index = skeletonData.findPathConstraintIndex(constraintName); - if (index == -1) - throw new Error("Path constraint not found: " + constraintName); - var data = skeletonData.pathConstraints[index]; - for (var timelineName in constraintMap) { - var timelineMap = constraintMap[timelineName]; - if (timelineName === "position" || timelineName === "spacing") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "spacing") { - timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - timelineScale = scale; - } - else { - timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); - if (data.positionMode == spine.PositionMode.Fixed) - timelineScale = scale; - } - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); - } - else if (timelineName === "mix") { - var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); - } - } - } - } - if (map.deform) { - for (var deformName in map.deform) { - var deformMap = map.deform[deformName]; - var skin = skeletonData.findSkin(deformName); - if (skin == null) - throw new Error("Skin not found: " + deformName); - for (var slotName in deformMap) { - var slotMap = deformMap[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotMap.name); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - var attachment = skin.getAttachment(slotIndex, timelineName); - if (attachment == null) - throw new Error("Deform attachment not found: " + timelineMap.name); - var weighted = attachment.bones != null; - var vertices = attachment.vertices; - var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; - var timeline = new spine.DeformTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - timeline.attachment = attachment; - var frameIndex = 0; - for (var j = 0; j < timelineMap.length; j++) { - var valueMap = timelineMap[j]; - var deform = void 0; - var verticesValue = this.getValue(valueMap, "vertices", null); - if (verticesValue == null) - deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; - else { - deform = spine.Utils.newFloatArray(deformLength); - var start = this.getValue(valueMap, "offset", 0); - spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); - if (scale != 1) { - for (var i = start, n = i + verticesValue.length; i < n; i++) - deform[i] *= scale; - } - if (!weighted) { - for (var i = 0; i < deformLength; i++) - deform[i] += vertices[i]; - } - } - timeline.setFrame(frameIndex, valueMap.time, deform); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - } - } - } - var drawOrderNode = map.drawOrder; - if (drawOrderNode == null) - drawOrderNode = map.draworder; - if (drawOrderNode != null) { - var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); - var slotCount = skeletonData.slots.length; - var frameIndex = 0; - for (var j = 0; j < drawOrderNode.length; j++) { - var drawOrderMap = drawOrderNode[j]; - var drawOrder = null; - var offsets = this.getValue(drawOrderMap, "offsets", null); - if (offsets != null) { - drawOrder = spine.Utils.newArray(slotCount, -1); - var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); - var originalIndex = 0, unchangedIndex = 0; - for (var i = 0; i < offsets.length; i++) { - var offsetMap = offsets[i]; - var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); - if (slotIndex == -1) - throw new Error("Slot not found: " + offsetMap.slot); - while (originalIndex != slotIndex) - unchanged[unchangedIndex++] = originalIndex++; - drawOrder[originalIndex + offsetMap.offset] = originalIndex++; - } - while (originalIndex < slotCount) - unchanged[unchangedIndex++] = originalIndex++; - for (var i = slotCount - 1; i >= 0; i--) - if (drawOrder[i] == -1) - drawOrder[i] = unchanged[--unchangedIndex]; - } - timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (map.events) { - var timeline = new spine.EventTimeline(map.events.length); - var frameIndex = 0; - for (var i = 0; i < map.events.length; i++) { - var eventMap = map.events[i]; - var eventData = skeletonData.findEvent(eventMap.name); - if (eventData == null) - throw new Error("Event not found: " + eventMap.name); - var event_5 = new spine.Event(eventMap.time, eventData); - event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); - event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); - event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); - timeline.setFrame(frameIndex++, event_5); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (isNaN(duration)) { - throw new Error("Error while parsing animation, duration is NaN"); - } - skeletonData.animations.push(new spine.Animation(name, timelines, duration)); - }; - SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { - if (!map.curve) - return; - if (map.curve === "stepped") - timeline.setStepped(frameIndex); - else if (Object.prototype.toString.call(map.curve) === '[object Array]') { - var curve = map.curve; - timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); - } - }; - SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { - return map[prop] !== undefined ? map[prop] : defaultValue; - }; - SkeletonJson.blendModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.BlendMode.Normal; - if (str == "additive") - return spine.BlendMode.Additive; - if (str == "multiply") - return spine.BlendMode.Multiply; - if (str == "screen") - return spine.BlendMode.Screen; - throw new Error("Unknown blend mode: " + str); - }; - SkeletonJson.positionModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "fixed") - return spine.PositionMode.Fixed; - if (str == "percent") - return spine.PositionMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.spacingModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "length") - return spine.SpacingMode.Length; - if (str == "fixed") - return spine.SpacingMode.Fixed; - if (str == "percent") - return spine.SpacingMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.rotateModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "tangent") - return spine.RotateMode.Tangent; - if (str == "chain") - return spine.RotateMode.Chain; - if (str == "chainscale") - return spine.RotateMode.ChainScale; - throw new Error("Unknown rotate mode: " + str); - }; - SkeletonJson.transformModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.TransformMode.Normal; - if (str == "onlytranslation") - return spine.TransformMode.OnlyTranslation; - if (str == "norotationorreflection") - return spine.TransformMode.NoRotationOrReflection; - if (str == "noscale") - return spine.TransformMode.NoScale; - if (str == "noscaleorreflection") - return spine.TransformMode.NoScaleOrReflection; - throw new Error("Unknown transform mode: " + str); - }; - return SkeletonJson; - }()); - spine.SkeletonJson = SkeletonJson; - var LinkedMesh = (function () { - function LinkedMesh(mesh, skin, slotIndex, parent) { - this.mesh = mesh; - this.skin = skin; - this.slotIndex = slotIndex; - this.parent = parent; - } - return LinkedMesh; - }()); + var SkeletonJson = (function () { + function SkeletonJson(attachmentLoader) { + this.scale = 1; + this.linkedMeshes = new Array(); + this.attachmentLoader = attachmentLoader; + } + SkeletonJson.prototype.readSkeletonData = function (json) { + var scale = this.scale; + var skeletonData = new spine.SkeletonData(); + var root = typeof (json) === "string" ? JSON.parse(json) : json; + var skeletonMap = root.skeleton; + if (skeletonMap != null) { + skeletonData.hash = skeletonMap.hash; + skeletonData.version = skeletonMap.spine; + skeletonData.width = skeletonMap.width; + skeletonData.height = skeletonMap.height; + skeletonData.fps = skeletonMap.fps; + skeletonData.imagesPath = skeletonMap.images; + } + if (root.bones) { + for (var i = 0; i < root.bones.length; i++) { + var boneMap = root.bones[i]; + var parent_2 = null; + var parentName = this.getValue(boneMap, "parent", null); + if (parentName != null) { + parent_2 = skeletonData.findBone(parentName); + if (parent_2 == null) + throw new Error("Parent bone not found: " + parentName); + } + var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); + data.length = this.getValue(boneMap, "length", 0) * scale; + data.x = this.getValue(boneMap, "x", 0) * scale; + data.y = this.getValue(boneMap, "y", 0) * scale; + data.rotation = this.getValue(boneMap, "rotation", 0); + data.scaleX = this.getValue(boneMap, "scaleX", 1); + data.scaleY = this.getValue(boneMap, "scaleY", 1); + data.shearX = this.getValue(boneMap, "shearX", 0); + data.shearY = this.getValue(boneMap, "shearY", 0); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); + skeletonData.bones.push(data); + } + } + if (root.slots) { + for (var i = 0; i < root.slots.length; i++) { + var slotMap = root.slots[i]; + var slotName = slotMap.name; + var boneName = slotMap.bone; + var boneData = skeletonData.findBone(boneName); + if (boneData == null) + throw new Error("Slot bone not found: " + boneName); + var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); + var color = this.getValue(slotMap, "color", null); + if (color != null) + data.color.setFromString(color); + var dark = this.getValue(slotMap, "dark", null); + if (dark != null) { + data.darkColor = new spine.Color(1, 1, 1, 1); + data.darkColor.setFromString(dark); + } + data.attachmentName = this.getValue(slotMap, "attachment", null); + data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); + skeletonData.slots.push(data); + } + } + if (root.ik) { + for (var i = 0; i < root.ik.length; i++) { + var constraintMap = root.ik[i]; + var data = new spine.IkConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("IK bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("IK target bone not found: " + targetName); + data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; + data.mix = this.getValue(constraintMap, "mix", 1); + skeletonData.ikConstraints.push(data); + } + } + if (root.transform) { + for (var i = 0; i < root.transform.length; i++) { + var constraintMap = root.transform[i]; + var data = new spine.TransformConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("Transform constraint target bone not found: " + targetName); + data.local = this.getValue(constraintMap, "local", false); + data.relative = this.getValue(constraintMap, "relative", false); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.offsetX = this.getValue(constraintMap, "x", 0) * scale; + data.offsetY = this.getValue(constraintMap, "y", 0) * scale; + data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); + data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); + data.offsetShearY = this.getValue(constraintMap, "shearY", 0); + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); + data.shearMix = this.getValue(constraintMap, "shearMix", 1); + skeletonData.transformConstraints.push(data); + } + } + if (root.path) { + for (var i = 0; i < root.path.length; i++) { + var constraintMap = root.path[i]; + var data = new spine.PathConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findSlot(targetName); + if (data.target == null) + throw new Error("Path target slot not found: " + targetName); + data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); + data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); + data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.position = this.getValue(constraintMap, "position", 0); + if (data.positionMode == spine.PositionMode.Fixed) + data.position *= scale; + data.spacing = this.getValue(constraintMap, "spacing", 0); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + data.spacing *= scale; + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + skeletonData.pathConstraints.push(data); + } + } + if (root.skins) { + for (var skinName in root.skins) { + var skinMap = root.skins[skinName]; + var skin = new spine.Skin(skinName); + for (var slotName in skinMap) { + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + var slotMap = skinMap[slotName]; + for (var entryName in slotMap) { + var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); + if (attachment != null) + skin.addAttachment(slotIndex, entryName, attachment); + } + } + skeletonData.skins.push(skin); + if (skin.name == "default") + skeletonData.defaultSkin = skin; + } + } + for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { + var linkedMesh = this.linkedMeshes[i]; + var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); + if (skin == null) + throw new Error("Skin not found: " + linkedMesh.skin); + var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); + if (parent_3 == null) + throw new Error("Parent mesh not found: " + linkedMesh.parent); + linkedMesh.mesh.setParentMesh(parent_3); + linkedMesh.mesh.updateUVs(); + } + this.linkedMeshes.length = 0; + if (root.events) { + for (var eventName in root.events) { + var eventMap = root.events[eventName]; + var data = new spine.EventData(eventName); + data.intValue = this.getValue(eventMap, "int", 0); + data.floatValue = this.getValue(eventMap, "float", 0); + data.stringValue = this.getValue(eventMap, "string", ""); + skeletonData.events.push(data); + } + } + if (root.animations) { + for (var animationName in root.animations) { + var animationMap = root.animations[animationName]; + this.readAnimation(animationMap, animationName, skeletonData); + } + } + return skeletonData; + }; + SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { + var scale = this.scale; + name = this.getValue(map, "name", name); + var type = this.getValue(map, "type", "region"); + switch (type) { + case "region": { + var path = this.getValue(map, "path", name); + var region = this.attachmentLoader.newRegionAttachment(skin, name, path); + if (region == null) + return null; + region.path = path; + region.x = this.getValue(map, "x", 0) * scale; + region.y = this.getValue(map, "y", 0) * scale; + region.scaleX = this.getValue(map, "scaleX", 1); + region.scaleY = this.getValue(map, "scaleY", 1); + region.rotation = this.getValue(map, "rotation", 0); + region.width = map.width * scale; + region.height = map.height * scale; + var color = this.getValue(map, "color", null); + if (color != null) + region.color.setFromString(color); + region.updateOffset(); + return region; + } + case "boundingbox": { + var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); + if (box == null) + return null; + this.readVertices(map, box, map.vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + box.color.setFromString(color); + return box; + } + case "mesh": + case "linkedmesh": { + var path = this.getValue(map, "path", name); + var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); + if (mesh == null) + return null; + mesh.path = path; + var color = this.getValue(map, "color", null); + if (color != null) + mesh.color.setFromString(color); + var parent_4 = this.getValue(map, "parent", null); + if (parent_4 != null) { + mesh.inheritDeform = this.getValue(map, "deform", true); + this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); + return mesh; + } + var uvs = map.uvs; + this.readVertices(map, mesh, uvs.length); + mesh.triangles = map.triangles; + mesh.regionUVs = uvs; + mesh.updateUVs(); + mesh.hullLength = this.getValue(map, "hull", 0) * 2; + return mesh; + } + case "path": { + var path = this.attachmentLoader.newPathAttachment(skin, name); + if (path == null) + return null; + path.closed = this.getValue(map, "closed", false); + path.constantSpeed = this.getValue(map, "constantSpeed", true); + var vertexCount = map.vertexCount; + this.readVertices(map, path, vertexCount << 1); + var lengths = spine.Utils.newArray(vertexCount / 3, 0); + for (var i = 0; i < map.lengths.length; i++) + lengths[i++] = map.lengths[i] * scale; + path.lengths = lengths; + var color = this.getValue(map, "color", null); + if (color != null) + path.color.setFromString(color); + return path; + } + case "point": { + var point = this.attachmentLoader.newPointAttachment(skin, name); + if (point == null) + return null; + point.x = this.getValue(map, "x", 0) * scale; + point.y = this.getValue(map, "y", 0) * scale; + point.rotation = this.getValue(map, "rotation", 0); + var color = this.getValue(map, "color", null); + if (color != null) + point.color.setFromString(color); + return point; + } + case "clipping": { + var clip = this.attachmentLoader.newClippingAttachment(skin, name); + if (clip == null) + return null; + var end = this.getValue(map, "end", null); + if (end != null) { + var slot = skeletonData.findSlot(end); + if (slot == null) + throw new Error("Clipping end slot not found: " + end); + clip.endSlot = slot; + } + var vertexCount = map.vertexCount; + this.readVertices(map, clip, vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + clip.color.setFromString(color); + return clip; + } + } + return null; + }; + SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { + var scale = this.scale; + attachment.worldVerticesLength = verticesLength; + var vertices = map.vertices; + if (verticesLength == vertices.length) { + var scaledVertices = spine.Utils.toFloatArray(vertices); + if (scale != 1) { + for (var i = 0, n = vertices.length; i < n; i++) + scaledVertices[i] *= scale; + } + attachment.vertices = scaledVertices; + return; + } + var weights = new Array(); + var bones = new Array(); + for (var i = 0, n = vertices.length; i < n;) { + var boneCount = vertices[i++]; + bones.push(boneCount); + for (var nn = i + boneCount * 4; i < nn; i += 4) { + bones.push(vertices[i]); + weights.push(vertices[i + 1] * scale); + weights.push(vertices[i + 2] * scale); + weights.push(vertices[i + 3]); + } + } + attachment.bones = bones; + attachment.vertices = spine.Utils.toFloatArray(weights); + }; + SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { + var scale = this.scale; + var timelines = new Array(); + var duration = 0; + if (map.slots) { + for (var slotName in map.slots) { + var slotMap = map.slots[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + if (timelineName == "attachment") { + var timeline = new spine.AttachmentTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + else if (timelineName == "color") { + var timeline = new spine.ColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var color = new spine.Color(); + color.setFromString(valueMap.color); + timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); + } + else if (timelineName == "twoColor") { + var timeline = new spine.TwoColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var light = new spine.Color(); + var dark = new spine.Color(); + light.setFromString(valueMap.light); + dark.setFromString(valueMap.dark); + timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); + } + } + } + if (map.bones) { + for (var boneName in map.bones) { + var boneMap = map.bones[boneName]; + var boneIndex = skeletonData.findBoneIndex(boneName); + if (boneIndex == -1) + throw new Error("Bone not found: " + boneName); + for (var timelineName in boneMap) { + var timelineMap = boneMap[timelineName]; + if (timelineName === "rotate") { + var timeline = new spine.RotateTimeline(timelineMap.length); + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); + } + else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "scale") + timeline = new spine.ScaleTimeline(timelineMap.length); + else if (timelineName === "shear") + timeline = new spine.ShearTimeline(timelineMap.length); + else { + timeline = new spine.TranslateTimeline(timelineMap.length); + timelineScale = scale; + } + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); + timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); + } + } + } + if (map.ik) { + for (var constraintName in map.ik) { + var constraintMap = map.ik[constraintName]; + var constraint = skeletonData.findIkConstraint(constraintName); + var timeline = new spine.IkConstraintTimeline(constraintMap.length); + timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); + } + } + if (map.transform) { + for (var constraintName in map.transform) { + var constraintMap = map.transform[constraintName]; + var constraint = skeletonData.findTransformConstraint(constraintName); + var timeline = new spine.TransformConstraintTimeline(constraintMap.length); + timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); + } + } + if (map.paths) { + for (var constraintName in map.paths) { + var constraintMap = map.paths[constraintName]; + var index = skeletonData.findPathConstraintIndex(constraintName); + if (index == -1) + throw new Error("Path constraint not found: " + constraintName); + var data = skeletonData.pathConstraints[index]; + for (var timelineName in constraintMap) { + var timelineMap = constraintMap[timelineName]; + if (timelineName === "position" || timelineName === "spacing") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "spacing") { + timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + timelineScale = scale; + } + else { + timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); + if (data.positionMode == spine.PositionMode.Fixed) + timelineScale = scale; + } + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); + } + else if (timelineName === "mix") { + var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); + } + } + } + } + if (map.deform) { + for (var deformName in map.deform) { + var deformMap = map.deform[deformName]; + var skin = skeletonData.findSkin(deformName); + if (skin == null) + throw new Error("Skin not found: " + deformName); + for (var slotName in deformMap) { + var slotMap = deformMap[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotMap.name); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + var attachment = skin.getAttachment(slotIndex, timelineName); + if (attachment == null) + throw new Error("Deform attachment not found: " + timelineMap.name); + var weighted = attachment.bones != null; + var vertices = attachment.vertices; + var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; + var timeline = new spine.DeformTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + timeline.attachment = attachment; + var frameIndex = 0; + for (var j = 0; j < timelineMap.length; j++) { + var valueMap = timelineMap[j]; + var deform = void 0; + var verticesValue = this.getValue(valueMap, "vertices", null); + if (verticesValue == null) + deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; + else { + deform = spine.Utils.newFloatArray(deformLength); + var start = this.getValue(valueMap, "offset", 0); + spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); + if (scale != 1) { + for (var i = start, n = i + verticesValue.length; i < n; i++) + deform[i] *= scale; + } + if (!weighted) { + for (var i = 0; i < deformLength; i++) + deform[i] += vertices[i]; + } + } + timeline.setFrame(frameIndex, valueMap.time, deform); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + } + } + } + var drawOrderNode = map.drawOrder; + if (drawOrderNode == null) + drawOrderNode = map.draworder; + if (drawOrderNode != null) { + var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); + var slotCount = skeletonData.slots.length; + var frameIndex = 0; + for (var j = 0; j < drawOrderNode.length; j++) { + var drawOrderMap = drawOrderNode[j]; + var drawOrder = null; + var offsets = this.getValue(drawOrderMap, "offsets", null); + if (offsets != null) { + drawOrder = spine.Utils.newArray(slotCount, -1); + var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); + var originalIndex = 0, unchangedIndex = 0; + for (var i = 0; i < offsets.length; i++) { + var offsetMap = offsets[i]; + var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); + if (slotIndex == -1) + throw new Error("Slot not found: " + offsetMap.slot); + while (originalIndex != slotIndex) + unchanged[unchangedIndex++] = originalIndex++; + drawOrder[originalIndex + offsetMap.offset] = originalIndex++; + } + while (originalIndex < slotCount) + unchanged[unchangedIndex++] = originalIndex++; + for (var i = slotCount - 1; i >= 0; i--) + if (drawOrder[i] == -1) + drawOrder[i] = unchanged[--unchangedIndex]; + } + timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (map.events) { + var timeline = new spine.EventTimeline(map.events.length); + var frameIndex = 0; + for (var i = 0; i < map.events.length; i++) { + var eventMap = map.events[i]; + var eventData = skeletonData.findEvent(eventMap.name); + if (eventData == null) + throw new Error("Event not found: " + eventMap.name); + var event_5 = new spine.Event(eventMap.time, eventData); + event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); + event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); + event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); + timeline.setFrame(frameIndex++, event_5); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (isNaN(duration)) { + throw new Error("Error while parsing animation, duration is NaN"); + } + skeletonData.animations.push(new spine.Animation(name, timelines, duration)); + }; + SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { + if (!map.curve) + return; + if (map.curve === "stepped") + timeline.setStepped(frameIndex); + else if (Object.prototype.toString.call(map.curve) === '[object Array]') { + var curve = map.curve; + timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); + } + }; + SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { + return map[prop] !== undefined ? map[prop] : defaultValue; + }; + SkeletonJson.blendModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.BlendMode.Normal; + if (str == "additive") + return spine.BlendMode.Additive; + if (str == "multiply") + return spine.BlendMode.Multiply; + if (str == "screen") + return spine.BlendMode.Screen; + throw new Error("Unknown blend mode: " + str); + }; + SkeletonJson.positionModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "fixed") + return spine.PositionMode.Fixed; + if (str == "percent") + return spine.PositionMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.spacingModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "length") + return spine.SpacingMode.Length; + if (str == "fixed") + return spine.SpacingMode.Fixed; + if (str == "percent") + return spine.SpacingMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.rotateModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "tangent") + return spine.RotateMode.Tangent; + if (str == "chain") + return spine.RotateMode.Chain; + if (str == "chainscale") + return spine.RotateMode.ChainScale; + throw new Error("Unknown rotate mode: " + str); + }; + SkeletonJson.transformModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.TransformMode.Normal; + if (str == "onlytranslation") + return spine.TransformMode.OnlyTranslation; + if (str == "norotationorreflection") + return spine.TransformMode.NoRotationOrReflection; + if (str == "noscale") + return spine.TransformMode.NoScale; + if (str == "noscaleorreflection") + return spine.TransformMode.NoScaleOrReflection; + throw new Error("Unknown transform mode: " + str); + }; + return SkeletonJson; + }()); + spine.SkeletonJson = SkeletonJson; + var LinkedMesh = (function () { + function LinkedMesh(mesh, skin, slotIndex, parent) { + this.mesh = mesh; + this.skin = skin; + this.slotIndex = slotIndex; + this.parent = parent; + } + return LinkedMesh; + }()); })(spine || (spine = {})); var spine; (function (spine) { - var Skin = (function () { - function Skin(name) { - this.attachments = new Array(); - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - Skin.prototype.addAttachment = function (slotIndex, name, attachment) { - if (attachment == null) - throw new Error("attachment cannot be null."); - var attachments = this.attachments; - if (slotIndex >= attachments.length) - attachments.length = slotIndex + 1; - if (!attachments[slotIndex]) - attachments[slotIndex] = {}; - attachments[slotIndex][name] = attachment; - }; - Skin.prototype.getAttachment = function (slotIndex, name) { - var dictionary = this.attachments[slotIndex]; - return dictionary ? dictionary[name] : null; - }; - Skin.prototype.attachAll = function (skeleton, oldSkin) { - var slotIndex = 0; - for (var i = 0; i < skeleton.slots.length; i++) { - var slot = skeleton.slots[i]; - var slotAttachment = slot.getAttachment(); - if (slotAttachment && slotIndex < oldSkin.attachments.length) { - var dictionary = oldSkin.attachments[slotIndex]; - for (var key in dictionary) { - var skinAttachment = dictionary[key]; - if (slotAttachment == skinAttachment) { - var attachment = this.getAttachment(slotIndex, key); - if (attachment != null) - slot.setAttachment(attachment); - break; - } - } - } - slotIndex++; - } - }; - return Skin; - }()); - spine.Skin = Skin; + var Skin = (function () { + function Skin(name) { + this.attachments = new Array(); + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + Skin.prototype.addAttachment = function (slotIndex, name, attachment) { + if (attachment == null) + throw new Error("attachment cannot be null."); + var attachments = this.attachments; + if (slotIndex >= attachments.length) + attachments.length = slotIndex + 1; + if (!attachments[slotIndex]) + attachments[slotIndex] = {}; + attachments[slotIndex][name] = attachment; + }; + Skin.prototype.getAttachment = function (slotIndex, name) { + var dictionary = this.attachments[slotIndex]; + return dictionary ? dictionary[name] : null; + }; + Skin.prototype.attachAll = function (skeleton, oldSkin) { + var slotIndex = 0; + for (var i = 0; i < skeleton.slots.length; i++) { + var slot = skeleton.slots[i]; + var slotAttachment = slot.getAttachment(); + if (slotAttachment && slotIndex < oldSkin.attachments.length) { + var dictionary = oldSkin.attachments[slotIndex]; + for (var key in dictionary) { + var skinAttachment = dictionary[key]; + if (slotAttachment == skinAttachment) { + var attachment = this.getAttachment(slotIndex, key); + if (attachment != null) + slot.setAttachment(attachment); + break; + } + } + } + slotIndex++; + } + }; + return Skin; + }()); + spine.Skin = Skin; })(spine || (spine = {})); var spine; (function (spine) { - var Slot = (function () { - function Slot(data, bone) { - this.attachmentVertices = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (bone == null) - throw new Error("bone cannot be null."); - this.data = data; - this.bone = bone; - this.color = new spine.Color(); - this.darkColor = data.darkColor == null ? null : new spine.Color(); - this.setToSetupPose(); - } - Slot.prototype.getAttachment = function () { - return this.attachment; - }; - Slot.prototype.setAttachment = function (attachment) { - if (this.attachment == attachment) - return; - this.attachment = attachment; - this.attachmentTime = this.bone.skeleton.time; - this.attachmentVertices.length = 0; - }; - Slot.prototype.setAttachmentTime = function (time) { - this.attachmentTime = this.bone.skeleton.time - time; - }; - Slot.prototype.getAttachmentTime = function () { - return this.bone.skeleton.time - this.attachmentTime; - }; - Slot.prototype.setToSetupPose = function () { - this.color.setFromColor(this.data.color); - if (this.darkColor != null) - this.darkColor.setFromColor(this.data.darkColor); - if (this.data.attachmentName == null) - this.attachment = null; - else { - this.attachment = null; - this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); - } - }; - return Slot; - }()); - spine.Slot = Slot; + var Slot = (function () { + function Slot(data, bone) { + this.attachmentVertices = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (bone == null) + throw new Error("bone cannot be null."); + this.data = data; + this.bone = bone; + this.color = new spine.Color(); + this.darkColor = data.darkColor == null ? null : new spine.Color(); + this.setToSetupPose(); + } + Slot.prototype.getAttachment = function () { + return this.attachment; + }; + Slot.prototype.setAttachment = function (attachment) { + if (this.attachment == attachment) + return; + this.attachment = attachment; + this.attachmentTime = this.bone.skeleton.time; + this.attachmentVertices.length = 0; + }; + Slot.prototype.setAttachmentTime = function (time) { + this.attachmentTime = this.bone.skeleton.time - time; + }; + Slot.prototype.getAttachmentTime = function () { + return this.bone.skeleton.time - this.attachmentTime; + }; + Slot.prototype.setToSetupPose = function () { + this.color.setFromColor(this.data.color); + if (this.darkColor != null) + this.darkColor.setFromColor(this.data.darkColor); + if (this.data.attachmentName == null) + this.attachment = null; + else { + this.attachment = null; + this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); + } + }; + return Slot; + }()); + spine.Slot = Slot; })(spine || (spine = {})); var spine; (function (spine) { - var SlotData = (function () { - function SlotData(index, name, boneData) { - this.color = new spine.Color(1, 1, 1, 1); - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - if (boneData == null) - throw new Error("boneData cannot be null."); - this.index = index; - this.name = name; - this.boneData = boneData; - } - return SlotData; - }()); - spine.SlotData = SlotData; + var SlotData = (function () { + function SlotData(index, name, boneData) { + this.color = new spine.Color(1, 1, 1, 1); + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + if (boneData == null) + throw new Error("boneData cannot be null."); + this.index = index; + this.name = name; + this.boneData = boneData; + } + return SlotData; + }()); + spine.SlotData = SlotData; })(spine || (spine = {})); var spine; (function (spine) { - var Texture = (function () { - function Texture(image) { - this._image = image; - } - Texture.prototype.getImage = function () { - return this._image; - }; - Texture.filterFromString = function (text) { - switch (text.toLowerCase()) { - case "nearest": return TextureFilter.Nearest; - case "linear": return TextureFilter.Linear; - case "mipmap": return TextureFilter.MipMap; - case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; - case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; - case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; - case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; - default: throw new Error("Unknown texture filter " + text); - } - }; - Texture.wrapFromString = function (text) { - switch (text.toLowerCase()) { - case "mirroredtepeat": return TextureWrap.MirroredRepeat; - case "clamptoedge": return TextureWrap.ClampToEdge; - case "repeat": return TextureWrap.Repeat; - default: throw new Error("Unknown texture wrap " + text); - } - }; - return Texture; - }()); - spine.Texture = Texture; - (function (TextureFilter) { - TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; - TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; - TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; - TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; - TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; - TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; - TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; - })(spine.TextureFilter || (spine.TextureFilter = {})); - var TextureFilter = spine.TextureFilter; - (function (TextureWrap) { - TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; - TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; - TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; - })(spine.TextureWrap || (spine.TextureWrap = {})); - var TextureWrap = spine.TextureWrap; - var TextureRegion = (function () { - function TextureRegion() { - this.u = 0; - this.v = 0; - this.u2 = 0; - this.v2 = 0; - this.width = 0; - this.height = 0; - this.rotate = false; - this.offsetX = 0; - this.offsetY = 0; - this.originalWidth = 0; - this.originalHeight = 0; - } - return TextureRegion; - }()); - spine.TextureRegion = TextureRegion; + var Texture = (function () { + function Texture(image) { + this._image = image; + } + Texture.prototype.getImage = function () { + return this._image; + }; + Texture.filterFromString = function (text) { + switch (text.toLowerCase()) { + case "nearest": return TextureFilter.Nearest; + case "linear": return TextureFilter.Linear; + case "mipmap": return TextureFilter.MipMap; + case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; + case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; + case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; + case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; + default: throw new Error("Unknown texture filter " + text); + } + }; + Texture.wrapFromString = function (text) { + switch (text.toLowerCase()) { + case "mirroredtepeat": return TextureWrap.MirroredRepeat; + case "clamptoedge": return TextureWrap.ClampToEdge; + case "repeat": return TextureWrap.Repeat; + default: throw new Error("Unknown texture wrap " + text); + } + }; + return Texture; + }()); + spine.Texture = Texture; + (function (TextureFilter) { + TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; + TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; + TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; + TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; + TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; + TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; + TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; + })(spine.TextureFilter || (spine.TextureFilter = {})); + var TextureFilter = spine.TextureFilter; + (function (TextureWrap) { + TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; + TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; + TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; + })(spine.TextureWrap || (spine.TextureWrap = {})); + var TextureWrap = spine.TextureWrap; + var TextureRegion = (function () { + function TextureRegion() { + this.u = 0; + this.v = 0; + this.u2 = 0; + this.v2 = 0; + this.width = 0; + this.height = 0; + this.rotate = false; + this.offsetX = 0; + this.offsetY = 0; + this.originalWidth = 0; + this.originalHeight = 0; + } + return TextureRegion; + }()); + spine.TextureRegion = TextureRegion; })(spine || (spine = {})); var spine; (function (spine) { - var TextureAtlas = (function () { - function TextureAtlas(atlasText, textureLoader) { - this.pages = new Array(); - this.regions = new Array(); - this.load(atlasText, textureLoader); - } - TextureAtlas.prototype.load = function (atlasText, textureLoader) { - if (textureLoader == null) - throw new Error("textureLoader cannot be null."); - var reader = new TextureAtlasReader(atlasText); - var tuple = new Array(4); - var page = null; - while (true) { - var line = reader.readLine(); - if (line == null) - break; - line = line.trim(); - if (line.length == 0) - page = null; - else if (!page) { - page = new TextureAtlasPage(); - page.name = line; - if (reader.readTuple(tuple) == 2) { - page.width = parseInt(tuple[0]); - page.height = parseInt(tuple[1]); - reader.readTuple(tuple); - } - reader.readTuple(tuple); - page.minFilter = spine.Texture.filterFromString(tuple[0]); - page.magFilter = spine.Texture.filterFromString(tuple[1]); - var direction = reader.readValue(); - page.uWrap = spine.TextureWrap.ClampToEdge; - page.vWrap = spine.TextureWrap.ClampToEdge; - if (direction == "x") - page.uWrap = spine.TextureWrap.Repeat; - else if (direction == "y") - page.vWrap = spine.TextureWrap.Repeat; - else if (direction == "xy") - page.uWrap = page.vWrap = spine.TextureWrap.Repeat; - page.texture = textureLoader(line); - page.texture.setFilters(page.minFilter, page.magFilter); - page.texture.setWraps(page.uWrap, page.vWrap); - page.width = page.texture.getImage().width; - page.height = page.texture.getImage().height; - this.pages.push(page); - } - else { - var region = new TextureAtlasRegion(); - region.name = line; - region.page = page; - region.rotate = reader.readValue() == "true"; - reader.readTuple(tuple); - var x = parseInt(tuple[0]); - var y = parseInt(tuple[1]); - reader.readTuple(tuple); - var width = parseInt(tuple[0]); - var height = parseInt(tuple[1]); - region.u = x / page.width; - region.v = y / page.height; - if (region.rotate) { - region.u2 = (x + height) / page.width; - region.v2 = (y + width) / page.height; - } - else { - region.u2 = (x + width) / page.width; - region.v2 = (y + height) / page.height; - } - region.x = x; - region.y = y; - region.width = Math.abs(width); - region.height = Math.abs(height); - if (reader.readTuple(tuple) == 4) { - if (reader.readTuple(tuple) == 4) { - reader.readTuple(tuple); - } - } - region.originalWidth = parseInt(tuple[0]); - region.originalHeight = parseInt(tuple[1]); - reader.readTuple(tuple); - region.offsetX = parseInt(tuple[0]); - region.offsetY = parseInt(tuple[1]); - region.index = parseInt(reader.readValue()); - region.texture = page.texture; - this.regions.push(region); - } - } - }; - TextureAtlas.prototype.findRegion = function (name) { - for (var i = 0; i < this.regions.length; i++) { - if (this.regions[i].name == name) { - return this.regions[i]; - } - } - return null; - }; - TextureAtlas.prototype.dispose = function () { - for (var i = 0; i < this.pages.length; i++) { - this.pages[i].texture.dispose(); - } - }; - return TextureAtlas; - }()); - spine.TextureAtlas = TextureAtlas; - var TextureAtlasReader = (function () { - function TextureAtlasReader(text) { - this.index = 0; - this.lines = text.split(/\r\n|\r|\n/); - } - TextureAtlasReader.prototype.readLine = function () { - if (this.index >= this.lines.length) - return null; - return this.lines[this.index++]; - }; - TextureAtlasReader.prototype.readValue = function () { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - return line.substring(colon + 1).trim(); - }; - TextureAtlasReader.prototype.readTuple = function (tuple) { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - var i = 0, lastMatch = colon + 1; - for (; i < 3; i++) { - var comma = line.indexOf(",", lastMatch); - if (comma == -1) - break; - tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); - lastMatch = comma + 1; - } - tuple[i] = line.substring(lastMatch).trim(); - return i + 1; - }; - return TextureAtlasReader; - }()); - var TextureAtlasPage = (function () { - function TextureAtlasPage() { - } - return TextureAtlasPage; - }()); - spine.TextureAtlasPage = TextureAtlasPage; - var TextureAtlasRegion = (function (_super) { - __extends(TextureAtlasRegion, _super); - function TextureAtlasRegion() { - _super.apply(this, arguments); - } - return TextureAtlasRegion; - }(spine.TextureRegion)); - spine.TextureAtlasRegion = TextureAtlasRegion; + var TextureAtlas = (function () { + function TextureAtlas(atlasText, textureLoader) { + this.pages = new Array(); + this.regions = new Array(); + this.load(atlasText, textureLoader); + } + TextureAtlas.prototype.load = function (atlasText, textureLoader) { + if (textureLoader == null) + throw new Error("textureLoader cannot be null."); + var reader = new TextureAtlasReader(atlasText); + var tuple = new Array(4); + var page = null; + while (true) { + var line = reader.readLine(); + if (line == null) + break; + line = line.trim(); + if (line.length == 0) + page = null; + else if (!page) { + page = new TextureAtlasPage(); + page.name = line; + if (reader.readTuple(tuple) == 2) { + page.width = parseInt(tuple[0]); + page.height = parseInt(tuple[1]); + reader.readTuple(tuple); + } + reader.readTuple(tuple); + page.minFilter = spine.Texture.filterFromString(tuple[0]); + page.magFilter = spine.Texture.filterFromString(tuple[1]); + var direction = reader.readValue(); + page.uWrap = spine.TextureWrap.ClampToEdge; + page.vWrap = spine.TextureWrap.ClampToEdge; + if (direction == "x") + page.uWrap = spine.TextureWrap.Repeat; + else if (direction == "y") + page.vWrap = spine.TextureWrap.Repeat; + else if (direction == "xy") + page.uWrap = page.vWrap = spine.TextureWrap.Repeat; + page.texture = textureLoader(line); + page.texture.setFilters(page.minFilter, page.magFilter); + page.texture.setWraps(page.uWrap, page.vWrap); + page.width = page.texture.getImage().width; + page.height = page.texture.getImage().height; + this.pages.push(page); + } + else { + var region = new TextureAtlasRegion(); + region.name = line; + region.page = page; + region.rotate = reader.readValue() == "true"; + reader.readTuple(tuple); + var x = parseInt(tuple[0]); + var y = parseInt(tuple[1]); + reader.readTuple(tuple); + var width = parseInt(tuple[0]); + var height = parseInt(tuple[1]); + region.u = x / page.width; + region.v = y / page.height; + if (region.rotate) { + region.u2 = (x + height) / page.width; + region.v2 = (y + width) / page.height; + } + else { + region.u2 = (x + width) / page.width; + region.v2 = (y + height) / page.height; + } + region.x = x; + region.y = y; + region.width = Math.abs(width); + region.height = Math.abs(height); + if (reader.readTuple(tuple) == 4) { + if (reader.readTuple(tuple) == 4) { + reader.readTuple(tuple); + } + } + region.originalWidth = parseInt(tuple[0]); + region.originalHeight = parseInt(tuple[1]); + reader.readTuple(tuple); + region.offsetX = parseInt(tuple[0]); + region.offsetY = parseInt(tuple[1]); + region.index = parseInt(reader.readValue()); + region.texture = page.texture; + this.regions.push(region); + } + } + }; + TextureAtlas.prototype.findRegion = function (name) { + for (var i = 0; i < this.regions.length; i++) { + if (this.regions[i].name == name) { + return this.regions[i]; + } + } + return null; + }; + TextureAtlas.prototype.dispose = function () { + for (var i = 0; i < this.pages.length; i++) { + this.pages[i].texture.dispose(); + } + }; + return TextureAtlas; + }()); + spine.TextureAtlas = TextureAtlas; + var TextureAtlasReader = (function () { + function TextureAtlasReader(text) { + this.index = 0; + this.lines = text.split(/\r\n|\r|\n/); + } + TextureAtlasReader.prototype.readLine = function () { + if (this.index >= this.lines.length) + return null; + return this.lines[this.index++]; + }; + TextureAtlasReader.prototype.readValue = function () { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + return line.substring(colon + 1).trim(); + }; + TextureAtlasReader.prototype.readTuple = function (tuple) { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + var i = 0, lastMatch = colon + 1; + for (; i < 3; i++) { + var comma = line.indexOf(",", lastMatch); + if (comma == -1) + break; + tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); + lastMatch = comma + 1; + } + tuple[i] = line.substring(lastMatch).trim(); + return i + 1; + }; + return TextureAtlasReader; + }()); + var TextureAtlasPage = (function () { + function TextureAtlasPage() { + } + return TextureAtlasPage; + }()); + spine.TextureAtlasPage = TextureAtlasPage; + var TextureAtlasRegion = (function (_super) { + __extends(TextureAtlasRegion, _super); + function TextureAtlasRegion() { + _super.apply(this, arguments); + } + return TextureAtlasRegion; + }(spine.TextureRegion)); + spine.TextureAtlasRegion = TextureAtlasRegion; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraint = (function () { - function TransformConstraint(data, skeleton) { - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.temp = new spine.Vector2(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - this.scaleMix = data.scaleMix; - this.shearMix = data.shearMix; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - TransformConstraint.prototype.apply = function () { - this.update(); - }; - TransformConstraint.prototype.update = function () { - if (this.data.local) { - if (this.data.relative) - this.applyRelativeLocal(); - else - this.applyAbsoluteLocal(); - } - else { - if (this.data.relative) - this.applyRelativeWorld(); - else - this.applyAbsoluteWorld(); - } - }; - TransformConstraint.prototype.applyAbsoluteWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect; - var offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += (temp.x - bone.worldX) * translateMix; - bone.worldY += (temp.y - bone.worldY) * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); - var ts = Math.sqrt(ta * ta + tc * tc); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; - bone.a *= s; - bone.c *= s; - s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); - ts = Math.sqrt(tb * tb + td * td); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var b = bone.b, d = bone.d; - var by = Math.atan2(d, b); - var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r = by + (r + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyRelativeWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += temp.x * translateMix; - bone.worldY += temp.y * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; - bone.a *= s; - bone.c *= s; - s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var r = Math.atan2(td, tb) - Math.atan2(tc, ta); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - var b = bone.b, d = bone.d; - r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyAbsoluteLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) { - var r = target.arotation - rotation + this.data.offsetRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - rotation += r * rotateMix; - } - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax - x + this.data.offsetX) * translateMix; - y += (target.ay - y + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; - if (scaleY > 0.00001) - scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; - } - var shearY = bone.ashearY; - if (shearMix > 0) { - var r = target.ashearY - shearY + this.data.offsetShearY; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.shearY += r * shearMix; - } - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.applyRelativeLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) - rotation += (target.arotation + this.data.offsetRotation) * rotateMix; - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax + this.data.offsetX) * translateMix; - y += (target.ay + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; - if (scaleY > 0.00001) - scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; - } - var shearY = bone.ashearY; - if (shearMix > 0) - shearY += (target.ashearY + this.data.offsetShearY) * shearMix; - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.getOrder = function () { - return this.data.order; - }; - return TransformConstraint; - }()); - spine.TransformConstraint = TransformConstraint; + var TransformConstraint = (function () { + function TransformConstraint(data, skeleton) { + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.temp = new spine.Vector2(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + this.scaleMix = data.scaleMix; + this.shearMix = data.shearMix; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + TransformConstraint.prototype.apply = function () { + this.update(); + }; + TransformConstraint.prototype.update = function () { + if (this.data.local) { + if (this.data.relative) + this.applyRelativeLocal(); + else + this.applyAbsoluteLocal(); + } + else { + if (this.data.relative) + this.applyRelativeWorld(); + else + this.applyAbsoluteWorld(); + } + }; + TransformConstraint.prototype.applyAbsoluteWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect; + var offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += (temp.x - bone.worldX) * translateMix; + bone.worldY += (temp.y - bone.worldY) * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var ts = Math.sqrt(ta * ta + tc * tc); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; + bone.a *= s; + bone.c *= s; + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + ts = Math.sqrt(tb * tb + td * td); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var b = bone.b, d = bone.d; + var by = Math.atan2(d, b); + var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r = by + (r + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyRelativeWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += temp.x * translateMix; + bone.worldY += temp.y * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; + bone.a *= s; + bone.c *= s; + s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var r = Math.atan2(td, tb) - Math.atan2(tc, ta); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + var b = bone.b, d = bone.d; + r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyAbsoluteLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) { + var r = target.arotation - rotation + this.data.offsetRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + rotation += r * rotateMix; + } + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax - x + this.data.offsetX) * translateMix; + y += (target.ay - y + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; + if (scaleY > 0.00001) + scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; + } + var shearY = bone.ashearY; + if (shearMix > 0) { + var r = target.ashearY - shearY + this.data.offsetShearY; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.shearY += r * shearMix; + } + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.applyRelativeLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) + rotation += (target.arotation + this.data.offsetRotation) * rotateMix; + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax + this.data.offsetX) * translateMix; + y += (target.ay + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; + if (scaleY > 0.00001) + scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; + } + var shearY = bone.ashearY; + if (shearMix > 0) + shearY += (target.ashearY + this.data.offsetShearY) * shearMix; + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.getOrder = function () { + return this.data.order; + }; + return TransformConstraint; + }()); + spine.TransformConstraint = TransformConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraintData = (function () { - function TransformConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.offsetRotation = 0; - this.offsetX = 0; - this.offsetY = 0; - this.offsetScaleX = 0; - this.offsetScaleY = 0; - this.offsetShearY = 0; - this.relative = false; - this.local = false; - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return TransformConstraintData; - }()); - spine.TransformConstraintData = TransformConstraintData; + var TransformConstraintData = (function () { + function TransformConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.offsetRotation = 0; + this.offsetX = 0; + this.offsetY = 0; + this.offsetScaleX = 0; + this.offsetScaleY = 0; + this.offsetShearY = 0; + this.relative = false; + this.local = false; + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return TransformConstraintData; + }()); + spine.TransformConstraintData = TransformConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var Triangulator = (function () { - function Triangulator() { - this.convexPolygons = new Array(); - this.convexPolygonsIndices = new Array(); - this.indicesArray = new Array(); - this.isConcaveArray = new Array(); - this.triangles = new Array(); - this.polygonPool = new spine.Pool(function () { - return new Array(); - }); - this.polygonIndicesPool = new spine.Pool(function () { - return new Array(); - }); - } - Triangulator.prototype.triangulate = function (verticesArray) { - var vertices = verticesArray; - var vertexCount = verticesArray.length >> 1; - var indices = this.indicesArray; - indices.length = 0; - for (var i = 0; i < vertexCount; i++) - indices[i] = i; - var isConcave = this.isConcaveArray; - isConcave.length = 0; - for (var i = 0, n = vertexCount; i < n; ++i) - isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); - var triangles = this.triangles; - triangles.length = 0; - while (vertexCount > 3) { - var previous = vertexCount - 1, i = 0, next = 1; - while (true) { - outer: if (!isConcave[i]) { - var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; - var p1x = vertices[p1], p1y = vertices[p1 + 1]; - var p2x = vertices[p2], p2y = vertices[p2 + 1]; - var p3x = vertices[p3], p3y = vertices[p3 + 1]; - for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { - if (!isConcave[ii]) - continue; - var v = indices[ii] << 1; - var vx = vertices[v], vy = vertices[v + 1]; - if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { - if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { - if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) - break outer; - } - } - } - break; - } - if (next == 0) { - do { - if (!isConcave[i]) - break; - i--; - } while (i > 0); - break; - } - previous = i; - i = next; - next = (next + 1) % vertexCount; - } - triangles.push(indices[(vertexCount + i - 1) % vertexCount]); - triangles.push(indices[i]); - triangles.push(indices[(i + 1) % vertexCount]); - indices.splice(i, 1); - isConcave.splice(i, 1); - vertexCount--; - var previousIndex = (vertexCount + i - 1) % vertexCount; - var nextIndex = i == vertexCount ? 0 : i; - isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); - isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); - } - if (vertexCount == 3) { - triangles.push(indices[2]); - triangles.push(indices[0]); - triangles.push(indices[1]); - } - return triangles; - }; - Triangulator.prototype.decompose = function (verticesArray, triangles) { - var vertices = verticesArray; - var convexPolygons = this.convexPolygons; - this.polygonPool.freeAll(convexPolygons); - convexPolygons.length = 0; - var convexPolygonsIndices = this.convexPolygonsIndices; - this.polygonIndicesPool.freeAll(convexPolygonsIndices); - convexPolygonsIndices.length = 0; - var polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - var polygon = this.polygonPool.obtain(); - polygon.length = 0; - var fanBaseIndex = -1, lastWinding = 0; - for (var i = 0, n = triangles.length; i < n; i += 3) { - var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; - var x1 = vertices[t1], y1 = vertices[t1 + 1]; - var x2 = vertices[t2], y2 = vertices[t2 + 1]; - var x3 = vertices[t3], y3 = vertices[t3 + 1]; - var merged = false; - if (fanBaseIndex == t1) { - var o = polygon.length - 4; - var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); - var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); - if (winding1 == lastWinding && winding2 == lastWinding) { - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(t3); - merged = true; - } - } - if (!merged) { - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - else { - this.polygonPool.free(polygon); - this.polygonIndicesPool.free(polygonIndices); - } - polygon = this.polygonPool.obtain(); - polygon.length = 0; - polygon.push(x1); - polygon.push(y1); - polygon.push(x2); - polygon.push(y2); - polygon.push(x3); - polygon.push(y3); - polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - polygonIndices.push(t1); - polygonIndices.push(t2); - polygonIndices.push(t3); - lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); - fanBaseIndex = t1; - } - } - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - for (var i = 0, n = convexPolygons.length; i < n; i++) { - polygonIndices = convexPolygonsIndices[i]; - if (polygonIndices.length == 0) - continue; - var firstIndex = polygonIndices[0]; - var lastIndex = polygonIndices[polygonIndices.length - 1]; - polygon = convexPolygons[i]; - var o = polygon.length - 4; - var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; - var prevX = polygon[o + 2], prevY = polygon[o + 3]; - var firstX = polygon[0], firstY = polygon[1]; - var secondX = polygon[2], secondY = polygon[3]; - var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); - for (var ii = 0; ii < n; ii++) { - if (ii == i) - continue; - var otherIndices = convexPolygonsIndices[ii]; - if (otherIndices.length != 3) - continue; - var otherFirstIndex = otherIndices[0]; - var otherSecondIndex = otherIndices[1]; - var otherLastIndex = otherIndices[2]; - var otherPoly = convexPolygons[ii]; - var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; - if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) - continue; - var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); - var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); - if (winding1 == winding && winding2 == winding) { - otherPoly.length = 0; - otherIndices.length = 0; - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(otherLastIndex); - prevPrevX = prevX; - prevPrevY = prevY; - prevX = x3; - prevY = y3; - ii = 0; - } - } - } - for (var i = convexPolygons.length - 1; i >= 0; i--) { - polygon = convexPolygons[i]; - if (polygon.length == 0) { - convexPolygons.splice(i, 1); - this.polygonPool.free(polygon); - polygonIndices = convexPolygonsIndices[i]; - convexPolygonsIndices.splice(i, 1); - this.polygonIndicesPool.free(polygonIndices); - } - } - return convexPolygons; - }; - Triangulator.isConcave = function (index, vertexCount, vertices, indices) { - var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; - var current = indices[index] << 1; - var next = indices[(index + 1) % vertexCount] << 1; - return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); - }; - Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { - return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; - }; - Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { - var px = p2x - p1x, py = p2y - p1y; - return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; - }; - return Triangulator; - }()); - spine.Triangulator = Triangulator; + var Triangulator = (function () { + function Triangulator() { + this.convexPolygons = new Array(); + this.convexPolygonsIndices = new Array(); + this.indicesArray = new Array(); + this.isConcaveArray = new Array(); + this.triangles = new Array(); + this.polygonPool = new spine.Pool(function () { + return new Array(); + }); + this.polygonIndicesPool = new spine.Pool(function () { + return new Array(); + }); + } + Triangulator.prototype.triangulate = function (verticesArray) { + var vertices = verticesArray; + var vertexCount = verticesArray.length >> 1; + var indices = this.indicesArray; + indices.length = 0; + for (var i = 0; i < vertexCount; i++) + indices[i] = i; + var isConcave = this.isConcaveArray; + isConcave.length = 0; + for (var i = 0, n = vertexCount; i < n; ++i) + isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); + var triangles = this.triangles; + triangles.length = 0; + while (vertexCount > 3) { + var previous = vertexCount - 1, i = 0, next = 1; + while (true) { + outer: if (!isConcave[i]) { + var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; + var p1x = vertices[p1], p1y = vertices[p1 + 1]; + var p2x = vertices[p2], p2y = vertices[p2 + 1]; + var p3x = vertices[p3], p3y = vertices[p3 + 1]; + for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { + if (!isConcave[ii]) + continue; + var v = indices[ii] << 1; + var vx = vertices[v], vy = vertices[v + 1]; + if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { + if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { + if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) + break outer; + } + } + } + break; + } + if (next == 0) { + do { + if (!isConcave[i]) + break; + i--; + } while (i > 0); + break; + } + previous = i; + i = next; + next = (next + 1) % vertexCount; + } + triangles.push(indices[(vertexCount + i - 1) % vertexCount]); + triangles.push(indices[i]); + triangles.push(indices[(i + 1) % vertexCount]); + indices.splice(i, 1); + isConcave.splice(i, 1); + vertexCount--; + var previousIndex = (vertexCount + i - 1) % vertexCount; + var nextIndex = i == vertexCount ? 0 : i; + isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); + isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); + } + if (vertexCount == 3) { + triangles.push(indices[2]); + triangles.push(indices[0]); + triangles.push(indices[1]); + } + return triangles; + }; + Triangulator.prototype.decompose = function (verticesArray, triangles) { + var vertices = verticesArray; + var convexPolygons = this.convexPolygons; + this.polygonPool.freeAll(convexPolygons); + convexPolygons.length = 0; + var convexPolygonsIndices = this.convexPolygonsIndices; + this.polygonIndicesPool.freeAll(convexPolygonsIndices); + convexPolygonsIndices.length = 0; + var polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + var polygon = this.polygonPool.obtain(); + polygon.length = 0; + var fanBaseIndex = -1, lastWinding = 0; + for (var i = 0, n = triangles.length; i < n; i += 3) { + var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; + var x1 = vertices[t1], y1 = vertices[t1 + 1]; + var x2 = vertices[t2], y2 = vertices[t2 + 1]; + var x3 = vertices[t3], y3 = vertices[t3 + 1]; + var merged = false; + if (fanBaseIndex == t1) { + var o = polygon.length - 4; + var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); + var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); + if (winding1 == lastWinding && winding2 == lastWinding) { + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(t3); + merged = true; + } + } + if (!merged) { + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + else { + this.polygonPool.free(polygon); + this.polygonIndicesPool.free(polygonIndices); + } + polygon = this.polygonPool.obtain(); + polygon.length = 0; + polygon.push(x1); + polygon.push(y1); + polygon.push(x2); + polygon.push(y2); + polygon.push(x3); + polygon.push(y3); + polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + polygonIndices.push(t1); + polygonIndices.push(t2); + polygonIndices.push(t3); + lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); + fanBaseIndex = t1; + } + } + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + for (var i = 0, n = convexPolygons.length; i < n; i++) { + polygonIndices = convexPolygonsIndices[i]; + if (polygonIndices.length == 0) + continue; + var firstIndex = polygonIndices[0]; + var lastIndex = polygonIndices[polygonIndices.length - 1]; + polygon = convexPolygons[i]; + var o = polygon.length - 4; + var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; + var prevX = polygon[o + 2], prevY = polygon[o + 3]; + var firstX = polygon[0], firstY = polygon[1]; + var secondX = polygon[2], secondY = polygon[3]; + var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); + for (var ii = 0; ii < n; ii++) { + if (ii == i) + continue; + var otherIndices = convexPolygonsIndices[ii]; + if (otherIndices.length != 3) + continue; + var otherFirstIndex = otherIndices[0]; + var otherSecondIndex = otherIndices[1]; + var otherLastIndex = otherIndices[2]; + var otherPoly = convexPolygons[ii]; + var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; + if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) + continue; + var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); + var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); + if (winding1 == winding && winding2 == winding) { + otherPoly.length = 0; + otherIndices.length = 0; + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(otherLastIndex); + prevPrevX = prevX; + prevPrevY = prevY; + prevX = x3; + prevY = y3; + ii = 0; + } + } + } + for (var i = convexPolygons.length - 1; i >= 0; i--) { + polygon = convexPolygons[i]; + if (polygon.length == 0) { + convexPolygons.splice(i, 1); + this.polygonPool.free(polygon); + polygonIndices = convexPolygonsIndices[i]; + convexPolygonsIndices.splice(i, 1); + this.polygonIndicesPool.free(polygonIndices); + } + } + return convexPolygons; + }; + Triangulator.isConcave = function (index, vertexCount, vertices, indices) { + var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; + var current = indices[index] << 1; + var next = indices[(index + 1) % vertexCount] << 1; + return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); + }; + Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { + return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; + }; + Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { + var px = p2x - p1x, py = p2y - p1y; + return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; + }; + return Triangulator; + }()); + spine.Triangulator = Triangulator; })(spine || (spine = {})); var spine; (function (spine) { - var IntSet = (function () { - function IntSet() { - this.array = new Array(); - } - IntSet.prototype.add = function (value) { - var contains = this.contains(value); - this.array[value | 0] = value | 0; - return !contains; - }; - IntSet.prototype.contains = function (value) { - return this.array[value | 0] != undefined; - }; - IntSet.prototype.remove = function (value) { - this.array[value | 0] = undefined; - }; - IntSet.prototype.clear = function () { - this.array.length = 0; - }; - return IntSet; - }()); - spine.IntSet = IntSet; - var Color = (function () { - function Color(r, g, b, a) { - if (r === void 0) { r = 0; } - if (g === void 0) { g = 0; } - if (b === void 0) { b = 0; } - if (a === void 0) { a = 0; } - this.r = r; - this.g = g; - this.b = b; - this.a = a; - } - Color.prototype.set = function (r, g, b, a) { - this.r = r; - this.g = g; - this.b = b; - this.a = a; - this.clamp(); - return this; - }; - Color.prototype.setFromColor = function (c) { - this.r = c.r; - this.g = c.g; - this.b = c.b; - this.a = c.a; - return this; - }; - Color.prototype.setFromString = function (hex) { - hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; - this.r = parseInt(hex.substr(0, 2), 16) / 255.0; - this.g = parseInt(hex.substr(2, 2), 16) / 255.0; - this.b = parseInt(hex.substr(4, 2), 16) / 255.0; - this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; - return this; - }; - Color.prototype.add = function (r, g, b, a) { - this.r += r; - this.g += g; - this.b += b; - this.a += a; - this.clamp(); - return this; - }; - Color.prototype.clamp = function () { - if (this.r < 0) - this.r = 0; - else if (this.r > 1) - this.r = 1; - if (this.g < 0) - this.g = 0; - else if (this.g > 1) - this.g = 1; - if (this.b < 0) - this.b = 0; - else if (this.b > 1) - this.b = 1; - if (this.a < 0) - this.a = 0; - else if (this.a > 1) - this.a = 1; - return this; - }; - Color.WHITE = new Color(1, 1, 1, 1); - Color.RED = new Color(1, 0, 0, 1); - Color.GREEN = new Color(0, 1, 0, 1); - Color.BLUE = new Color(0, 0, 1, 1); - Color.MAGENTA = new Color(1, 0, 1, 1); - return Color; - }()); - spine.Color = Color; - var MathUtils = (function () { - function MathUtils() { - } - MathUtils.clamp = function (value, min, max) { - if (value < min) - return min; - if (value > max) - return max; - return value; - }; - MathUtils.cosDeg = function (degrees) { - return Math.cos(degrees * MathUtils.degRad); - }; - MathUtils.sinDeg = function (degrees) { - return Math.sin(degrees * MathUtils.degRad); - }; - MathUtils.signum = function (value) { - return value > 0 ? 1 : value < 0 ? -1 : 0; - }; - MathUtils.toInt = function (x) { - return x > 0 ? Math.floor(x) : Math.ceil(x); - }; - MathUtils.cbrt = function (x) { - var y = Math.pow(Math.abs(x), 1 / 3); - return x < 0 ? -y : y; - }; - MathUtils.PI = 3.1415927; - MathUtils.PI2 = MathUtils.PI * 2; - MathUtils.radiansToDegrees = 180 / MathUtils.PI; - MathUtils.radDeg = MathUtils.radiansToDegrees; - MathUtils.degreesToRadians = MathUtils.PI / 180; - MathUtils.degRad = MathUtils.degreesToRadians; - return MathUtils; - }()); - spine.MathUtils = MathUtils; - var Utils = (function () { - function Utils() { - } - Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { - for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { - dest[j] = source[i]; - } - }; - Utils.setArraySize = function (array, size, value) { - if (value === void 0) { value = 0; } - var oldSize = array.length; - if (oldSize == size) - return array; - array.length = size; - if (oldSize < size) { - for (var i = oldSize; i < size; i++) - array[i] = value; - } - return array; - }; - Utils.ensureArrayCapacity = function (array, size, value) { - if (value === void 0) { value = 0; } - if (array.length >= size) - return array; - return Utils.setArraySize(array, size, value); - }; - Utils.newArray = function (size, defaultValue) { - var array = new Array(size); - for (var i = 0; i < size; i++) - array[i] = defaultValue; - return array; - }; - Utils.newFloatArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Float32Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.newShortArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Int16Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.toFloatArray = function (array) { - return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; - }; - Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; - return Utils; - }()); - spine.Utils = Utils; - var DebugUtils = (function () { - function DebugUtils() { - } - DebugUtils.logBones = function (skeleton) { - for (var i = 0; i < skeleton.bones.length; i++) { - var bone = skeleton.bones[i]; - console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); - } - }; - return DebugUtils; - }()); - spine.DebugUtils = DebugUtils; - var Pool = (function () { - function Pool(instantiator) { - this.items = new Array(); - this.instantiator = instantiator; - } - Pool.prototype.obtain = function () { - return this.items.length > 0 ? this.items.pop() : this.instantiator(); - }; - Pool.prototype.free = function (item) { - if (item.reset) - item.reset(); - this.items.push(item); - }; - Pool.prototype.freeAll = function (items) { - for (var i = 0; i < items.length; i++) { - if (items[i].reset) - items[i].reset(); - this.items[i] = items[i]; - } - }; - Pool.prototype.clear = function () { - this.items.length = 0; - }; - return Pool; - }()); - spine.Pool = Pool; - var Vector2 = (function () { - function Vector2(x, y) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - this.x = x; - this.y = y; - } - Vector2.prototype.set = function (x, y) { - this.x = x; - this.y = y; - return this; - }; - Vector2.prototype.length = function () { - var x = this.x; - var y = this.y; - return Math.sqrt(x * x + y * y); - }; - Vector2.prototype.normalize = function () { - var len = this.length(); - if (len != 0) { - this.x /= len; - this.y /= len; - } - return this; - }; - return Vector2; - }()); - spine.Vector2 = Vector2; - var TimeKeeper = (function () { - function TimeKeeper() { - this.maxDelta = 0.064; - this.framesPerSecond = 0; - this.delta = 0; - this.totalTime = 0; - this.lastTime = Date.now() / 1000; - this.frameCount = 0; - this.frameTime = 0; - } - TimeKeeper.prototype.update = function () { - var now = Date.now() / 1000; - this.delta = now - this.lastTime; - this.frameTime += this.delta; - this.totalTime += this.delta; - if (this.delta > this.maxDelta) - this.delta = this.maxDelta; - this.lastTime = now; - this.frameCount++; - if (this.frameTime > 1) { - this.framesPerSecond = this.frameCount / this.frameTime; - this.frameTime = 0; - this.frameCount = 0; - } - }; - return TimeKeeper; - }()); - spine.TimeKeeper = TimeKeeper; - var WindowedMean = (function () { - function WindowedMean(windowSize) { - if (windowSize === void 0) { windowSize = 32; } - this.addedValues = 0; - this.lastValue = 0; - this.mean = 0; - this.dirty = true; - this.values = new Array(windowSize); - } - WindowedMean.prototype.hasEnoughData = function () { - return this.addedValues >= this.values.length; - }; - WindowedMean.prototype.addValue = function (value) { - if (this.addedValues < this.values.length) - this.addedValues++; - this.values[this.lastValue++] = value; - if (this.lastValue > this.values.length - 1) - this.lastValue = 0; - this.dirty = true; - }; - WindowedMean.prototype.getMean = function () { - if (this.hasEnoughData()) { - if (this.dirty) { - var mean = 0; - for (var i = 0; i < this.values.length; i++) { - mean += this.values[i]; - } - this.mean = mean / this.values.length; - this.dirty = false; - } - return this.mean; - } - else { - return 0; - } - }; - return WindowedMean; - }()); - spine.WindowedMean = WindowedMean; + var IntSet = (function () { + function IntSet() { + this.array = new Array(); + } + IntSet.prototype.add = function (value) { + var contains = this.contains(value); + this.array[value | 0] = value | 0; + return !contains; + }; + IntSet.prototype.contains = function (value) { + return this.array[value | 0] != undefined; + }; + IntSet.prototype.remove = function (value) { + this.array[value | 0] = undefined; + }; + IntSet.prototype.clear = function () { + this.array.length = 0; + }; + return IntSet; + }()); + spine.IntSet = IntSet; + var Color = (function () { + function Color(r, g, b, a) { + if (r === void 0) { r = 0; } + if (g === void 0) { g = 0; } + if (b === void 0) { b = 0; } + if (a === void 0) { a = 0; } + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + Color.prototype.set = function (r, g, b, a) { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + this.clamp(); + return this; + }; + Color.prototype.setFromColor = function (c) { + this.r = c.r; + this.g = c.g; + this.b = c.b; + this.a = c.a; + return this; + }; + Color.prototype.setFromString = function (hex) { + hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; + this.r = parseInt(hex.substr(0, 2), 16) / 255.0; + this.g = parseInt(hex.substr(2, 2), 16) / 255.0; + this.b = parseInt(hex.substr(4, 2), 16) / 255.0; + this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; + return this; + }; + Color.prototype.add = function (r, g, b, a) { + this.r += r; + this.g += g; + this.b += b; + this.a += a; + this.clamp(); + return this; + }; + Color.prototype.clamp = function () { + if (this.r < 0) + this.r = 0; + else if (this.r > 1) + this.r = 1; + if (this.g < 0) + this.g = 0; + else if (this.g > 1) + this.g = 1; + if (this.b < 0) + this.b = 0; + else if (this.b > 1) + this.b = 1; + if (this.a < 0) + this.a = 0; + else if (this.a > 1) + this.a = 1; + return this; + }; + Color.WHITE = new Color(1, 1, 1, 1); + Color.RED = new Color(1, 0, 0, 1); + Color.GREEN = new Color(0, 1, 0, 1); + Color.BLUE = new Color(0, 0, 1, 1); + Color.MAGENTA = new Color(1, 0, 1, 1); + return Color; + }()); + spine.Color = Color; + var MathUtils = (function () { + function MathUtils() { + } + MathUtils.clamp = function (value, min, max) { + if (value < min) + return min; + if (value > max) + return max; + return value; + }; + MathUtils.cosDeg = function (degrees) { + return Math.cos(degrees * MathUtils.degRad); + }; + MathUtils.sinDeg = function (degrees) { + return Math.sin(degrees * MathUtils.degRad); + }; + MathUtils.signum = function (value) { + return value > 0 ? 1 : value < 0 ? -1 : 0; + }; + MathUtils.toInt = function (x) { + return x > 0 ? Math.floor(x) : Math.ceil(x); + }; + MathUtils.cbrt = function (x) { + var y = Math.pow(Math.abs(x), 1 / 3); + return x < 0 ? -y : y; + }; + MathUtils.PI = 3.1415927; + MathUtils.PI2 = MathUtils.PI * 2; + MathUtils.radiansToDegrees = 180 / MathUtils.PI; + MathUtils.radDeg = MathUtils.radiansToDegrees; + MathUtils.degreesToRadians = MathUtils.PI / 180; + MathUtils.degRad = MathUtils.degreesToRadians; + return MathUtils; + }()); + spine.MathUtils = MathUtils; + var Utils = (function () { + function Utils() { + } + Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { + for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { + dest[j] = source[i]; + } + }; + Utils.setArraySize = function (array, size, value) { + if (value === void 0) { value = 0; } + var oldSize = array.length; + if (oldSize == size) + return array; + array.length = size; + if (oldSize < size) { + for (var i = oldSize; i < size; i++) + array[i] = value; + } + return array; + }; + Utils.ensureArrayCapacity = function (array, size, value) { + if (value === void 0) { value = 0; } + if (array.length >= size) + return array; + return Utils.setArraySize(array, size, value); + }; + Utils.newArray = function (size, defaultValue) { + var array = new Array(size); + for (var i = 0; i < size; i++) + array[i] = defaultValue; + return array; + }; + Utils.newFloatArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Float32Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.newShortArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Int16Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.toFloatArray = function (array) { + return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; + }; + Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; + return Utils; + }()); + spine.Utils = Utils; + var DebugUtils = (function () { + function DebugUtils() { + } + DebugUtils.logBones = function (skeleton) { + for (var i = 0; i < skeleton.bones.length; i++) { + var bone = skeleton.bones[i]; + console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); + } + }; + return DebugUtils; + }()); + spine.DebugUtils = DebugUtils; + var Pool = (function () { + function Pool(instantiator) { + this.items = new Array(); + this.instantiator = instantiator; + } + Pool.prototype.obtain = function () { + return this.items.length > 0 ? this.items.pop() : this.instantiator(); + }; + Pool.prototype.free = function (item) { + if (item.reset) + item.reset(); + this.items.push(item); + }; + Pool.prototype.freeAll = function (items) { + for (var i = 0; i < items.length; i++) { + if (items[i].reset) + items[i].reset(); + this.items[i] = items[i]; + } + }; + Pool.prototype.clear = function () { + this.items.length = 0; + }; + return Pool; + }()); + spine.Pool = Pool; + var Vector2 = (function () { + function Vector2(x, y) { + if (x === void 0) { x = 0; } + if (y === void 0) { y = 0; } + this.x = x; + this.y = y; + } + Vector2.prototype.set = function (x, y) { + this.x = x; + this.y = y; + return this; + }; + Vector2.prototype.length = function () { + var x = this.x; + var y = this.y; + return Math.sqrt(x * x + y * y); + }; + Vector2.prototype.normalize = function () { + var len = this.length(); + if (len != 0) { + this.x /= len; + this.y /= len; + } + return this; + }; + return Vector2; + }()); + spine.Vector2 = Vector2; + var TimeKeeper = (function () { + function TimeKeeper() { + this.maxDelta = 0.064; + this.framesPerSecond = 0; + this.delta = 0; + this.totalTime = 0; + this.lastTime = Date.now() / 1000; + this.frameCount = 0; + this.frameTime = 0; + } + TimeKeeper.prototype.update = function () { + var now = Date.now() / 1000; + this.delta = now - this.lastTime; + this.frameTime += this.delta; + this.totalTime += this.delta; + if (this.delta > this.maxDelta) + this.delta = this.maxDelta; + this.lastTime = now; + this.frameCount++; + if (this.frameTime > 1) { + this.framesPerSecond = this.frameCount / this.frameTime; + this.frameTime = 0; + this.frameCount = 0; + } + }; + return TimeKeeper; + }()); + spine.TimeKeeper = TimeKeeper; + var WindowedMean = (function () { + function WindowedMean(windowSize) { + if (windowSize === void 0) { windowSize = 32; } + this.addedValues = 0; + this.lastValue = 0; + this.mean = 0; + this.dirty = true; + this.values = new Array(windowSize); + } + WindowedMean.prototype.hasEnoughData = function () { + return this.addedValues >= this.values.length; + }; + WindowedMean.prototype.addValue = function (value) { + if (this.addedValues < this.values.length) + this.addedValues++; + this.values[this.lastValue++] = value; + if (this.lastValue > this.values.length - 1) + this.lastValue = 0; + this.dirty = true; + }; + WindowedMean.prototype.getMean = function () { + if (this.hasEnoughData()) { + if (this.dirty) { + var mean = 0; + for (var i = 0; i < this.values.length; i++) { + mean += this.values[i]; + } + this.mean = mean / this.values.length; + this.dirty = false; + } + return this.mean; + } + else { + return 0; + } + }; + return WindowedMean; + }()); + spine.WindowedMean = WindowedMean; })(spine || (spine = {})); //# sourceMappingURL=spine-core.js.map \ No newline at end of file diff --git a/spine-ts/build/spine-core.js.map b/spine-ts/build/spine-core.js.map index dff0af05b..1fbedfd63 100644 --- a/spine-ts/build/spine-core.js.map +++ b/spine-ts/build/spine-core.js.map @@ -1 +1 @@ -{"version":3,"file":"spine-core.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"spine-core.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/spine-ts/build/spine-threejs.d.ts b/spine-ts/build/spine-threejs.d.ts index 0b760de03..6fddee330 100644 --- a/spine-ts/build/spine-threejs.d.ts +++ b/spine-ts/build/spine-threejs.d.ts @@ -1,1207 +1,1207 @@ declare module spine { - class Animation { - name: string; - timelines: Array; - duration: number; - constructor(name: string, timelines: Array, duration: number); - apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - static binarySearch(values: ArrayLike, target: number, step?: number): number; - static linearSearch(values: ArrayLike, target: number, step: number): number; - } - interface Timeline { - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - getPropertyId(): number; - } - enum TimelineType { - rotate = 0, - translate = 1, - scale = 2, - shear = 3, - attachment = 4, - color = 5, - deform = 6, - event = 7, - drawOrder = 8, - ikConstraint = 9, - transformConstraint = 10, - pathConstraintPosition = 11, - pathConstraintSpacing = 12, - pathConstraintMix = 13, - twoColor = 14, - } - abstract class CurveTimeline implements Timeline { - static LINEAR: number; - static STEPPED: number; - static BEZIER: number; - static BEZIER_SIZE: number; - private curves; - abstract getPropertyId(): number; - constructor(frameCount: number); - getFrameCount(): number; - setLinear(frameIndex: number): void; - setStepped(frameIndex: number): void; - getCurveType(frameIndex: number): number; - setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; - getCurvePercent(frameIndex: number, percent: number): number; - abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class RotateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATION: number; - static ROTATION: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, degrees: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TranslateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_X: number; - static PREV_Y: number; - static X: number; - static Y: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, x: number, y: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ScaleTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ShearTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static R: number; - static G: number; - static B: number; - static A: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TwoColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static PREV_R2: number; - static PREV_G2: number; - static PREV_B2: number; - static R: number; - static G: number; - static B: number; - static A: number; - static R2: number; - static G2: number; - static B2: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class AttachmentTimeline implements Timeline { - slotIndex: number; - frames: ArrayLike; - attachmentNames: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, attachmentName: string): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DeformTimeline extends CurveTimeline { - slotIndex: number; - attachment: VertexAttachment; - frames: ArrayLike; - frameVertices: Array>; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class EventTimeline implements Timeline { - frames: ArrayLike; - events: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, event: Event): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DrawOrderTimeline implements Timeline { - frames: ArrayLike; - drawOrders: Array>; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, drawOrder: Array): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class IkConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_MIX: number; - static PREV_BEND_DIRECTION: number; - static MIX: number; - static BEND_DIRECTION: number; - ikConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TransformConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static PREV_SCALE: number; - static PREV_SHEAR: number; - static ROTATE: number; - static TRANSLATE: number; - static SCALE: number; - static SHEAR: number; - transformConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintPositionTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_VALUE: number; - static VALUE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, value: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintMixTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static ROTATE: number; - static TRANSLATE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } + class Animation { + name: string; + timelines: Array; + duration: number; + constructor(name: string, timelines: Array, duration: number); + apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + static binarySearch(values: ArrayLike, target: number, step?: number): number; + static linearSearch(values: ArrayLike, target: number, step: number): number; + } + interface Timeline { + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + getPropertyId(): number; + } + enum TimelineType { + rotate = 0, + translate = 1, + scale = 2, + shear = 3, + attachment = 4, + color = 5, + deform = 6, + event = 7, + drawOrder = 8, + ikConstraint = 9, + transformConstraint = 10, + pathConstraintPosition = 11, + pathConstraintSpacing = 12, + pathConstraintMix = 13, + twoColor = 14, + } + abstract class CurveTimeline implements Timeline { + static LINEAR: number; + static STEPPED: number; + static BEZIER: number; + static BEZIER_SIZE: number; + private curves; + abstract getPropertyId(): number; + constructor(frameCount: number); + getFrameCount(): number; + setLinear(frameIndex: number): void; + setStepped(frameIndex: number): void; + getCurveType(frameIndex: number): number; + setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; + getCurvePercent(frameIndex: number, percent: number): number; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class RotateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATION: number; + static ROTATION: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, degrees: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TranslateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_X: number; + static PREV_Y: number; + static X: number; + static Y: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, x: number, y: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ScaleTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ShearTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static R: number; + static G: number; + static B: number; + static A: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TwoColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static PREV_R2: number; + static PREV_G2: number; + static PREV_B2: number; + static R: number; + static G: number; + static B: number; + static A: number; + static R2: number; + static G2: number; + static B2: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class AttachmentTimeline implements Timeline { + slotIndex: number; + frames: ArrayLike; + attachmentNames: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, attachmentName: string): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DeformTimeline extends CurveTimeline { + slotIndex: number; + attachment: VertexAttachment; + frames: ArrayLike; + frameVertices: Array>; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class EventTimeline implements Timeline { + frames: ArrayLike; + events: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, event: Event): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DrawOrderTimeline implements Timeline { + frames: ArrayLike; + drawOrders: Array>; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, drawOrder: Array): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class IkConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_MIX: number; + static PREV_BEND_DIRECTION: number; + static MIX: number; + static BEND_DIRECTION: number; + ikConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TransformConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static PREV_SCALE: number; + static PREV_SHEAR: number; + static ROTATE: number; + static TRANSLATE: number; + static SCALE: number; + static SHEAR: number; + transformConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintPositionTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_VALUE: number; + static VALUE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, value: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintMixTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static ROTATE: number; + static TRANSLATE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } } declare module spine { - class AnimationState { - static emptyAnimation: Animation; - static SUBSEQUENT: number; - static FIRST: number; - static DIP: number; - static DIP_MIX: number; - data: AnimationStateData; - tracks: TrackEntry[]; - events: Event[]; - listeners: AnimationStateListener2[]; - queue: EventQueue; - propertyIDs: IntSet; - mixingTo: TrackEntry[]; - animationsChanged: boolean; - timeScale: number; - trackEntryPool: Pool; - constructor(data: AnimationStateData); - update(delta: number): void; - updateMixingFrom(to: TrackEntry, delta: number): boolean; - apply(skeleton: Skeleton): boolean; - applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; - applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; - queueEvents(entry: TrackEntry, animationTime: number): void; - clearTracks(): void; - clearTrack(trackIndex: number): void; - setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; - setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; - setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; - addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; - addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; - setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; - addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; - setEmptyAnimations(mixDuration: number): void; - expandToIndex(index: number): TrackEntry; - trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; - disposeNext(entry: TrackEntry): void; - _animationsChanged(): void; - getCurrent(trackIndex: number): TrackEntry; - addListener(listener: AnimationStateListener2): void; - removeListener(listener: AnimationStateListener2): void; - clearListeners(): void; - clearListenerNotifications(): void; - } - class TrackEntry { - animation: Animation; - next: TrackEntry; - mixingFrom: TrackEntry; - listener: AnimationStateListener2; - trackIndex: number; - loop: boolean; - eventThreshold: number; - attachmentThreshold: number; - drawOrderThreshold: number; - animationStart: number; - animationEnd: number; - animationLast: number; - nextAnimationLast: number; - delay: number; - trackTime: number; - trackLast: number; - nextTrackLast: number; - trackEnd: number; - timeScale: number; - alpha: number; - mixTime: number; - mixDuration: number; - interruptAlpha: number; - totalAlpha: number; - timelineData: number[]; - timelineDipMix: TrackEntry[]; - timelinesRotation: number[]; - reset(): void; - setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; - hasTimeline(id: number): boolean; - getAnimationTime(): number; - setAnimationLast(animationLast: number): void; - isComplete(): boolean; - resetRotationDirections(): void; - } - class EventQueue { - objects: Array; - drainDisabled: boolean; - animState: AnimationState; - constructor(animState: AnimationState); - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - drain(): void; - clear(): void; - } - enum EventType { - start = 0, - interrupt = 1, - end = 2, - dispose = 3, - complete = 4, - event = 5, - } - interface AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } - abstract class AnimationStateAdapter2 implements AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } + class AnimationState { + static emptyAnimation: Animation; + static SUBSEQUENT: number; + static FIRST: number; + static DIP: number; + static DIP_MIX: number; + data: AnimationStateData; + tracks: TrackEntry[]; + events: Event[]; + listeners: AnimationStateListener2[]; + queue: EventQueue; + propertyIDs: IntSet; + mixingTo: TrackEntry[]; + animationsChanged: boolean; + timeScale: number; + trackEntryPool: Pool; + constructor(data: AnimationStateData); + update(delta: number): void; + updateMixingFrom(to: TrackEntry, delta: number): boolean; + apply(skeleton: Skeleton): boolean; + applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; + applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; + queueEvents(entry: TrackEntry, animationTime: number): void; + clearTracks(): void; + clearTrack(trackIndex: number): void; + setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; + setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; + setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; + addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; + addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; + setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; + addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; + setEmptyAnimations(mixDuration: number): void; + expandToIndex(index: number): TrackEntry; + trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; + disposeNext(entry: TrackEntry): void; + _animationsChanged(): void; + getCurrent(trackIndex: number): TrackEntry; + addListener(listener: AnimationStateListener2): void; + removeListener(listener: AnimationStateListener2): void; + clearListeners(): void; + clearListenerNotifications(): void; + } + class TrackEntry { + animation: Animation; + next: TrackEntry; + mixingFrom: TrackEntry; + listener: AnimationStateListener2; + trackIndex: number; + loop: boolean; + eventThreshold: number; + attachmentThreshold: number; + drawOrderThreshold: number; + animationStart: number; + animationEnd: number; + animationLast: number; + nextAnimationLast: number; + delay: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; + timeScale: number; + alpha: number; + mixTime: number; + mixDuration: number; + interruptAlpha: number; + totalAlpha: number; + timelineData: number[]; + timelineDipMix: TrackEntry[]; + timelinesRotation: number[]; + reset(): void; + setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; + hasTimeline(id: number): boolean; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; + isComplete(): boolean; + resetRotationDirections(): void; + } + class EventQueue { + objects: Array; + drainDisabled: boolean; + animState: AnimationState; + constructor(animState: AnimationState); + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + drain(): void; + clear(): void; + } + enum EventType { + start = 0, + interrupt = 1, + end = 2, + dispose = 3, + complete = 4, + event = 5, + } + interface AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } + abstract class AnimationStateAdapter2 implements AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } } declare module spine { - class AnimationStateData { - skeletonData: SkeletonData; - animationToMixTime: Map; - defaultMix: number; - constructor(skeletonData: SkeletonData); - setMix(fromName: string, toName: string, duration: number): void; - setMixWith(from: Animation, to: Animation, duration: number): void; - getMix(from: Animation, to: Animation): number; - } + class AnimationStateData { + skeletonData: SkeletonData; + animationToMixTime: Map; + defaultMix: number; + constructor(skeletonData: SkeletonData); + setMix(fromName: string, toName: string, duration: number): void; + setMixWith(from: Animation, to: Animation, duration: number): void; + getMix(from: Animation, to: Animation): number; + } } declare module spine { - class AssetManager implements Disposable { - private pathPrefix; - private textureLoader; - private assets; - private errors; - private toLoad; - private loaded; - constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); - loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; - loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - get(path: string): any; - remove(path: string): void; - removeAll(): void; - isLoadingComplete(): boolean; - getToLoad(): number; - getLoaded(): number; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class AssetManager implements Disposable { + private pathPrefix; + private textureLoader; + private assets; + private errors; + private toLoad; + private loaded; + constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); + loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; + loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + get(path: string): any; + remove(path: string): void; + removeAll(): void; + isLoadingComplete(): boolean; + getToLoad(): number; + getLoaded(): number; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class AtlasAttachmentLoader implements AttachmentLoader { - atlas: TextureAtlas; - constructor(atlas: TextureAtlas); - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + class AtlasAttachmentLoader implements AttachmentLoader { + atlas: TextureAtlas; + constructor(atlas: TextureAtlas); + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - abstract class Attachment { - name: string; - constructor(name: string); - } - abstract class VertexAttachment extends Attachment { - bones: Array; - vertices: ArrayLike; - worldVerticesLength: number; - constructor(name: string); - computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - } + abstract class Attachment { + name: string; + constructor(name: string); + } + abstract class VertexAttachment extends Attachment { + bones: Array; + vertices: ArrayLike; + worldVerticesLength: number; + constructor(name: string); + computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + } } declare module spine { - interface AttachmentLoader { - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + interface AttachmentLoader { + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - enum AttachmentType { - Region = 0, - BoundingBox = 1, - Mesh = 2, - LinkedMesh = 3, - Path = 4, - Point = 5, - } + enum AttachmentType { + Region = 0, + BoundingBox = 1, + Mesh = 2, + LinkedMesh = 3, + Path = 4, + Point = 5, + } } declare module spine { - class BoundingBoxAttachment extends VertexAttachment { - color: Color; - constructor(name: string); - } + class BoundingBoxAttachment extends VertexAttachment { + color: Color; + constructor(name: string); + } } declare module spine { - class ClippingAttachment extends VertexAttachment { - endSlot: SlotData; - color: Color; - constructor(name: string); - } + class ClippingAttachment extends VertexAttachment { + endSlot: SlotData; + color: Color; + constructor(name: string); + } } declare module spine { - class MeshAttachment extends VertexAttachment { - region: TextureRegion; - path: string; - regionUVs: ArrayLike; - uvs: ArrayLike; - triangles: Array; - color: Color; - hullLength: number; - private parentMesh; - inheritDeform: boolean; - tempColor: Color; - constructor(name: string); - updateUVs(): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - getParentMesh(): MeshAttachment; - setParentMesh(parentMesh: MeshAttachment): void; - } + class MeshAttachment extends VertexAttachment { + region: TextureRegion; + path: string; + regionUVs: ArrayLike; + uvs: ArrayLike; + triangles: Array; + color: Color; + hullLength: number; + private parentMesh; + inheritDeform: boolean; + tempColor: Color; + constructor(name: string); + updateUVs(): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + getParentMesh(): MeshAttachment; + setParentMesh(parentMesh: MeshAttachment): void; + } } declare module spine { - class PathAttachment extends VertexAttachment { - lengths: Array; - closed: boolean; - constantSpeed: boolean; - color: Color; - constructor(name: string); - } + class PathAttachment extends VertexAttachment { + lengths: Array; + closed: boolean; + constantSpeed: boolean; + color: Color; + constructor(name: string); + } } declare module spine { - class PointAttachment extends VertexAttachment { - x: number; - y: number; - rotation: number; - color: Color; - constructor(name: string); - computeWorldPosition(bone: Bone, point: Vector2): Vector2; - computeWorldRotation(bone: Bone): number; - } + class PointAttachment extends VertexAttachment { + x: number; + y: number; + rotation: number; + color: Color; + constructor(name: string); + computeWorldPosition(bone: Bone, point: Vector2): Vector2; + computeWorldRotation(bone: Bone): number; + } } declare module spine { - class RegionAttachment extends Attachment { - static OX1: number; - static OY1: number; - static OX2: number; - static OY2: number; - static OX3: number; - static OY3: number; - static OX4: number; - static OY4: number; - static X1: number; - static Y1: number; - static C1R: number; - static C1G: number; - static C1B: number; - static C1A: number; - static U1: number; - static V1: number; - static X2: number; - static Y2: number; - static C2R: number; - static C2G: number; - static C2B: number; - static C2A: number; - static U2: number; - static V2: number; - static X3: number; - static Y3: number; - static C3R: number; - static C3G: number; - static C3B: number; - static C3A: number; - static U3: number; - static V3: number; - static X4: number; - static Y4: number; - static C4R: number; - static C4G: number; - static C4B: number; - static C4A: number; - static U4: number; - static V4: number; - x: number; - y: number; - scaleX: number; - scaleY: number; - rotation: number; - width: number; - height: number; - color: Color; - path: string; - rendererObject: any; - region: TextureRegion; - offset: ArrayLike; - uvs: ArrayLike; - tempColor: Color; - constructor(name: string); - updateOffset(): void; - setRegion(region: TextureRegion): void; - computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; - } + class RegionAttachment extends Attachment { + static OX1: number; + static OY1: number; + static OX2: number; + static OY2: number; + static OX3: number; + static OY3: number; + static OX4: number; + static OY4: number; + static X1: number; + static Y1: number; + static C1R: number; + static C1G: number; + static C1B: number; + static C1A: number; + static U1: number; + static V1: number; + static X2: number; + static Y2: number; + static C2R: number; + static C2G: number; + static C2B: number; + static C2A: number; + static U2: number; + static V2: number; + static X3: number; + static Y3: number; + static C3R: number; + static C3G: number; + static C3B: number; + static C3A: number; + static U3: number; + static V3: number; + static X4: number; + static Y4: number; + static C4R: number; + static C4G: number; + static C4B: number; + static C4A: number; + static U4: number; + static V4: number; + x: number; + y: number; + scaleX: number; + scaleY: number; + rotation: number; + width: number; + height: number; + color: Color; + path: string; + rendererObject: any; + region: TextureRegion; + offset: ArrayLike; + uvs: ArrayLike; + tempColor: Color; + constructor(name: string); + updateOffset(): void; + setRegion(region: TextureRegion): void; + computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; + } } declare module spine { - enum BlendMode { - Normal = 0, - Additive = 1, - Multiply = 2, - Screen = 3, - } + enum BlendMode { + Normal = 0, + Additive = 1, + Multiply = 2, + Screen = 3, + } } declare module spine { - class Bone implements Updatable { - data: BoneData; - skeleton: Skeleton; - parent: Bone; - children: Bone[]; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - ax: number; - ay: number; - arotation: number; - ascaleX: number; - ascaleY: number; - ashearX: number; - ashearY: number; - appliedValid: boolean; - a: number; - b: number; - worldX: number; - c: number; - d: number; - worldY: number; - sorted: boolean; - constructor(data: BoneData, skeleton: Skeleton, parent: Bone); - update(): void; - updateWorldTransform(): void; - updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; - setToSetupPose(): void; - getWorldRotationX(): number; - getWorldRotationY(): number; - getWorldScaleX(): number; - getWorldScaleY(): number; - updateAppliedTransform(): void; - worldToLocal(world: Vector2): Vector2; - localToWorld(local: Vector2): Vector2; - worldToLocalRotation(worldRotation: number): number; - localToWorldRotation(localRotation: number): number; - rotateWorld(degrees: number): void; - } + class Bone implements Updatable { + data: BoneData; + skeleton: Skeleton; + parent: Bone; + children: Bone[]; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + ax: number; + ay: number; + arotation: number; + ascaleX: number; + ascaleY: number; + ashearX: number; + ashearY: number; + appliedValid: boolean; + a: number; + b: number; + worldX: number; + c: number; + d: number; + worldY: number; + sorted: boolean; + constructor(data: BoneData, skeleton: Skeleton, parent: Bone); + update(): void; + updateWorldTransform(): void; + updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; + setToSetupPose(): void; + getWorldRotationX(): number; + getWorldRotationY(): number; + getWorldScaleX(): number; + getWorldScaleY(): number; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + worldToLocalRotation(worldRotation: number): number; + localToWorldRotation(localRotation: number): number; + rotateWorld(degrees: number): void; + } } declare module spine { - class BoneData { - index: number; - name: string; - parent: BoneData; - length: number; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - transformMode: TransformMode; - constructor(index: number, name: string, parent: BoneData); - } - enum TransformMode { - Normal = 0, - OnlyTranslation = 1, - NoRotationOrReflection = 2, - NoScale = 3, - NoScaleOrReflection = 4, - } + class BoneData { + index: number; + name: string; + parent: BoneData; + length: number; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + transformMode: TransformMode; + constructor(index: number, name: string, parent: BoneData); + } + enum TransformMode { + Normal = 0, + OnlyTranslation = 1, + NoRotationOrReflection = 2, + NoScale = 3, + NoScaleOrReflection = 4, + } } declare module spine { - interface Constraint extends Updatable { - getOrder(): number; - } + interface Constraint extends Updatable { + getOrder(): number; + } } declare module spine { - class Event { - data: EventData; - intValue: number; - floatValue: number; - stringValue: string; - time: number; - constructor(time: number, data: EventData); - } + class Event { + data: EventData; + intValue: number; + floatValue: number; + stringValue: string; + time: number; + constructor(time: number, data: EventData); + } } declare module spine { - class EventData { - name: string; - intValue: number; - floatValue: number; - stringValue: string; - constructor(name: string); - } + class EventData { + name: string; + intValue: number; + floatValue: number; + stringValue: string; + constructor(name: string); + } } declare module spine { - class IkConstraint implements Constraint { - data: IkConstraintData; - bones: Array; - target: Bone; - mix: number; - bendDirection: number; - constructor(data: IkConstraintData, skeleton: Skeleton); - getOrder(): number; - apply(): void; - update(): void; - apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; - apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; - } + class IkConstraint implements Constraint { + data: IkConstraintData; + bones: Array; + target: Bone; + mix: number; + bendDirection: number; + constructor(data: IkConstraintData, skeleton: Skeleton); + getOrder(): number; + apply(): void; + update(): void; + apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; + apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; + } } declare module spine { - class IkConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - bendDirection: number; - mix: number; - constructor(name: string); - } + class IkConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + bendDirection: number; + mix: number; + constructor(name: string); + } } declare module spine { - class PathConstraint implements Constraint { - static NONE: number; - static BEFORE: number; - static AFTER: number; - data: PathConstraintData; - bones: Array; - target: Slot; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - spaces: number[]; - positions: number[]; - world: number[]; - curves: number[]; - lengths: number[]; - segments: number[]; - constructor(data: PathConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; - addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; - getOrder(): number; - } + class PathConstraint implements Constraint { + static NONE: number; + static BEFORE: number; + static AFTER: number; + data: PathConstraintData; + bones: Array; + target: Slot; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + spaces: number[]; + positions: number[]; + world: number[]; + curves: number[]; + lengths: number[]; + segments: number[]; + constructor(data: PathConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; + addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; + getOrder(): number; + } } declare module spine { - class PathConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: SlotData; - positionMode: PositionMode; - spacingMode: SpacingMode; - rotateMode: RotateMode; - offsetRotation: number; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - constructor(name: string); - } - enum PositionMode { - Fixed = 0, - Percent = 1, - } - enum SpacingMode { - Length = 0, - Fixed = 1, - Percent = 2, - } - enum RotateMode { - Tangent = 0, - Chain = 1, - ChainScale = 2, - } + class PathConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: SlotData; + positionMode: PositionMode; + spacingMode: SpacingMode; + rotateMode: RotateMode; + offsetRotation: number; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + constructor(name: string); + } + enum PositionMode { + Fixed = 0, + Percent = 1, + } + enum SpacingMode { + Length = 0, + Fixed = 1, + Percent = 2, + } + enum RotateMode { + Tangent = 0, + Chain = 1, + ChainScale = 2, + } } declare module spine { - class SharedAssetManager implements Disposable { - private pathPrefix; - private clientAssets; - private queuedAssets; - private rawAssets; - private errors; - constructor(pathPrefix?: string); - private queueAsset(clientId, textureLoader, path); - loadText(clientId: string, path: string): void; - loadJson(clientId: string, path: string): void; - loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; - get(clientId: string, path: string): any; - private updateClientAssets(clientAssets); - isLoadingComplete(clientId: string): boolean; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class SharedAssetManager implements Disposable { + private pathPrefix; + private clientAssets; + private queuedAssets; + private rawAssets; + private errors; + constructor(pathPrefix?: string); + private queueAsset(clientId, textureLoader, path); + loadText(clientId: string, path: string): void; + loadJson(clientId: string, path: string): void; + loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; + get(clientId: string, path: string): any; + private updateClientAssets(clientAssets); + isLoadingComplete(clientId: string): boolean; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class Skeleton { - data: SkeletonData; - bones: Array; - slots: Array; - drawOrder: Array; - ikConstraints: Array; - transformConstraints: Array; - pathConstraints: Array; - _updateCache: Updatable[]; - updateCacheReset: Updatable[]; - skin: Skin; - color: Color; - time: number; - flipX: boolean; - flipY: boolean; - x: number; - y: number; - constructor(data: SkeletonData); - updateCache(): void; - sortIkConstraint(constraint: IkConstraint): void; - sortPathConstraint(constraint: PathConstraint): void; - sortTransformConstraint(constraint: TransformConstraint): void; - sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; - sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; - sortBone(bone: Bone): void; - sortReset(bones: Array): void; - updateWorldTransform(): void; - setToSetupPose(): void; - setBonesToSetupPose(): void; - setSlotsToSetupPose(): void; - getRootBone(): Bone; - findBone(boneName: string): Bone; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): Slot; - findSlotIndex(slotName: string): number; - setSkinByName(skinName: string): void; - setSkin(newSkin: Skin): void; - getAttachmentByName(slotName: string, attachmentName: string): Attachment; - getAttachment(slotIndex: number, attachmentName: string): Attachment; - setAttachment(slotName: string, attachmentName: string): void; - findIkConstraint(constraintName: string): IkConstraint; - findTransformConstraint(constraintName: string): TransformConstraint; - findPathConstraint(constraintName: string): PathConstraint; - getBounds(offset: Vector2, size: Vector2, temp: Array): void; - update(delta: number): void; - } + class Skeleton { + data: SkeletonData; + bones: Array; + slots: Array; + drawOrder: Array; + ikConstraints: Array; + transformConstraints: Array; + pathConstraints: Array; + _updateCache: Updatable[]; + updateCacheReset: Updatable[]; + skin: Skin; + color: Color; + time: number; + flipX: boolean; + flipY: boolean; + x: number; + y: number; + constructor(data: SkeletonData); + updateCache(): void; + sortIkConstraint(constraint: IkConstraint): void; + sortPathConstraint(constraint: PathConstraint): void; + sortTransformConstraint(constraint: TransformConstraint): void; + sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; + sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; + sortBone(bone: Bone): void; + sortReset(bones: Array): void; + updateWorldTransform(): void; + setToSetupPose(): void; + setBonesToSetupPose(): void; + setSlotsToSetupPose(): void; + getRootBone(): Bone; + findBone(boneName: string): Bone; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): Slot; + findSlotIndex(slotName: string): number; + setSkinByName(skinName: string): void; + setSkin(newSkin: Skin): void; + getAttachmentByName(slotName: string, attachmentName: string): Attachment; + getAttachment(slotIndex: number, attachmentName: string): Attachment; + setAttachment(slotName: string, attachmentName: string): void; + findIkConstraint(constraintName: string): IkConstraint; + findTransformConstraint(constraintName: string): TransformConstraint; + findPathConstraint(constraintName: string): PathConstraint; + getBounds(offset: Vector2, size: Vector2, temp: Array): void; + update(delta: number): void; + } } declare module spine { - class SkeletonBounds { - minX: number; - minY: number; - maxX: number; - maxY: number; - boundingBoxes: BoundingBoxAttachment[]; - polygons: ArrayLike[]; - private polygonPool; - update(skeleton: Skeleton, updateAabb: boolean): void; - aabbCompute(): void; - aabbContainsPoint(x: number, y: number): boolean; - aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; - aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; - containsPoint(x: number, y: number): BoundingBoxAttachment; - containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; - intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; - intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; - getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; - getWidth(): number; - getHeight(): number; - } + class SkeletonBounds { + minX: number; + minY: number; + maxX: number; + maxY: number; + boundingBoxes: BoundingBoxAttachment[]; + polygons: ArrayLike[]; + private polygonPool; + update(skeleton: Skeleton, updateAabb: boolean): void; + aabbCompute(): void; + aabbContainsPoint(x: number, y: number): boolean; + aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; + aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; + containsPoint(x: number, y: number): BoundingBoxAttachment; + containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; + intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; + intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; + getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; + getWidth(): number; + getHeight(): number; + } } declare module spine { - class SkeletonClipping { - private triangulator; - private clippingPolygon; - private clipOutput; - clippedVertices: number[]; - clippedTriangles: number[]; - private scratch; - private clipAttachment; - private clippingPolygons; - clipStart(slot: Slot, clip: ClippingAttachment): number; - clipEndWithSlot(slot: Slot): void; - clipEnd(): void; - isClipping(): boolean; - clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; - clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; - static makeClockwise(polygon: ArrayLike): void; - } + class SkeletonClipping { + private triangulator; + private clippingPolygon; + private clipOutput; + clippedVertices: number[]; + clippedTriangles: number[]; + private scratch; + private clipAttachment; + private clippingPolygons; + clipStart(slot: Slot, clip: ClippingAttachment): number; + clipEndWithSlot(slot: Slot): void; + clipEnd(): void; + isClipping(): boolean; + clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; + clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; + static makeClockwise(polygon: ArrayLike): void; + } } declare module spine { - class SkeletonData { - name: string; - bones: BoneData[]; - slots: SlotData[]; - skins: Skin[]; - defaultSkin: Skin; - events: EventData[]; - animations: Animation[]; - ikConstraints: IkConstraintData[]; - transformConstraints: TransformConstraintData[]; - pathConstraints: PathConstraintData[]; - width: number; - height: number; - version: string; - hash: string; - fps: number; - imagesPath: string; - findBone(boneName: string): BoneData; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): SlotData; - findSlotIndex(slotName: string): number; - findSkin(skinName: string): Skin; - findEvent(eventDataName: string): EventData; - findAnimation(animationName: string): Animation; - findIkConstraint(constraintName: string): IkConstraintData; - findTransformConstraint(constraintName: string): TransformConstraintData; - findPathConstraint(constraintName: string): PathConstraintData; - findPathConstraintIndex(pathConstraintName: string): number; - } + class SkeletonData { + name: string; + bones: BoneData[]; + slots: SlotData[]; + skins: Skin[]; + defaultSkin: Skin; + events: EventData[]; + animations: Animation[]; + ikConstraints: IkConstraintData[]; + transformConstraints: TransformConstraintData[]; + pathConstraints: PathConstraintData[]; + width: number; + height: number; + version: string; + hash: string; + fps: number; + imagesPath: string; + findBone(boneName: string): BoneData; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): SlotData; + findSlotIndex(slotName: string): number; + findSkin(skinName: string): Skin; + findEvent(eventDataName: string): EventData; + findAnimation(animationName: string): Animation; + findIkConstraint(constraintName: string): IkConstraintData; + findTransformConstraint(constraintName: string): TransformConstraintData; + findPathConstraint(constraintName: string): PathConstraintData; + findPathConstraintIndex(pathConstraintName: string): number; + } } declare module spine { - class SkeletonJson { - attachmentLoader: AttachmentLoader; - scale: number; - private linkedMeshes; - constructor(attachmentLoader: AttachmentLoader); - readSkeletonData(json: string | any): SkeletonData; - readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; - readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; - readAnimation(map: any, name: string, skeletonData: SkeletonData): void; - readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; - getValue(map: any, prop: string, defaultValue: any): any; - static blendModeFromString(str: string): BlendMode; - static positionModeFromString(str: string): PositionMode; - static spacingModeFromString(str: string): SpacingMode; - static rotateModeFromString(str: string): RotateMode; - static transformModeFromString(str: string): TransformMode; - } + class SkeletonJson { + attachmentLoader: AttachmentLoader; + scale: number; + private linkedMeshes; + constructor(attachmentLoader: AttachmentLoader); + readSkeletonData(json: string | any): SkeletonData; + readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; + readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; + readAnimation(map: any, name: string, skeletonData: SkeletonData): void; + readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; + getValue(map: any, prop: string, defaultValue: any): any; + static blendModeFromString(str: string): BlendMode; + static positionModeFromString(str: string): PositionMode; + static spacingModeFromString(str: string): SpacingMode; + static rotateModeFromString(str: string): RotateMode; + static transformModeFromString(str: string): TransformMode; + } } declare module spine { - class Skin { - name: string; - attachments: Map[]; - constructor(name: string); - addAttachment(slotIndex: number, name: string, attachment: Attachment): void; - getAttachment(slotIndex: number, name: string): Attachment; - attachAll(skeleton: Skeleton, oldSkin: Skin): void; - } + class Skin { + name: string; + attachments: Map[]; + constructor(name: string); + addAttachment(slotIndex: number, name: string, attachment: Attachment): void; + getAttachment(slotIndex: number, name: string): Attachment; + attachAll(skeleton: Skeleton, oldSkin: Skin): void; + } } declare module spine { - class Slot { - data: SlotData; - bone: Bone; - color: Color; - darkColor: Color; - private attachment; - private attachmentTime; - attachmentVertices: number[]; - constructor(data: SlotData, bone: Bone); - getAttachment(): Attachment; - setAttachment(attachment: Attachment): void; - setAttachmentTime(time: number): void; - getAttachmentTime(): number; - setToSetupPose(): void; - } + class Slot { + data: SlotData; + bone: Bone; + color: Color; + darkColor: Color; + private attachment; + private attachmentTime; + attachmentVertices: number[]; + constructor(data: SlotData, bone: Bone); + getAttachment(): Attachment; + setAttachment(attachment: Attachment): void; + setAttachmentTime(time: number): void; + getAttachmentTime(): number; + setToSetupPose(): void; + } } declare module spine { - class SlotData { - index: number; - name: string; - boneData: BoneData; - color: Color; - darkColor: Color; - attachmentName: string; - blendMode: BlendMode; - constructor(index: number, name: string, boneData: BoneData); - } + class SlotData { + index: number; + name: string; + boneData: BoneData; + color: Color; + darkColor: Color; + attachmentName: string; + blendMode: BlendMode; + constructor(index: number, name: string, boneData: BoneData); + } } declare module spine { - abstract class Texture { - protected _image: HTMLImageElement; - constructor(image: HTMLImageElement); - getImage(): HTMLImageElement; - abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - abstract dispose(): void; - static filterFromString(text: string): TextureFilter; - static wrapFromString(text: string): TextureWrap; - } - enum TextureFilter { - Nearest = 9728, - Linear = 9729, - MipMap = 9987, - MipMapNearestNearest = 9984, - MipMapLinearNearest = 9985, - MipMapNearestLinear = 9986, - MipMapLinearLinear = 9987, - } - enum TextureWrap { - MirroredRepeat = 33648, - ClampToEdge = 33071, - Repeat = 10497, - } - class TextureRegion { - renderObject: any; - u: number; - v: number; - u2: number; - v2: number; - width: number; - height: number; - rotate: boolean; - offsetX: number; - offsetY: number; - originalWidth: number; - originalHeight: number; - } + abstract class Texture { + protected _image: HTMLImageElement; + constructor(image: HTMLImageElement); + getImage(): HTMLImageElement; + abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + abstract dispose(): void; + static filterFromString(text: string): TextureFilter; + static wrapFromString(text: string): TextureWrap; + } + enum TextureFilter { + Nearest = 9728, + Linear = 9729, + MipMap = 9987, + MipMapNearestNearest = 9984, + MipMapLinearNearest = 9985, + MipMapNearestLinear = 9986, + MipMapLinearLinear = 9987, + } + enum TextureWrap { + MirroredRepeat = 33648, + ClampToEdge = 33071, + Repeat = 10497, + } + class TextureRegion { + renderObject: any; + u: number; + v: number; + u2: number; + v2: number; + width: number; + height: number; + rotate: boolean; + offsetX: number; + offsetY: number; + originalWidth: number; + originalHeight: number; + } } declare module spine { - class TextureAtlas implements Disposable { - pages: TextureAtlasPage[]; - regions: TextureAtlasRegion[]; - constructor(atlasText: string, textureLoader: (path: string) => any); - private load(atlasText, textureLoader); - findRegion(name: string): TextureAtlasRegion; - dispose(): void; - } - class TextureAtlasPage { - name: string; - minFilter: TextureFilter; - magFilter: TextureFilter; - uWrap: TextureWrap; - vWrap: TextureWrap; - texture: Texture; - width: number; - height: number; - } - class TextureAtlasRegion extends TextureRegion { - page: TextureAtlasPage; - name: string; - x: number; - y: number; - index: number; - rotate: boolean; - texture: Texture; - } + class TextureAtlas implements Disposable { + pages: TextureAtlasPage[]; + regions: TextureAtlasRegion[]; + constructor(atlasText: string, textureLoader: (path: string) => any); + private load(atlasText, textureLoader); + findRegion(name: string): TextureAtlasRegion; + dispose(): void; + } + class TextureAtlasPage { + name: string; + minFilter: TextureFilter; + magFilter: TextureFilter; + uWrap: TextureWrap; + vWrap: TextureWrap; + texture: Texture; + width: number; + height: number; + } + class TextureAtlasRegion extends TextureRegion { + page: TextureAtlasPage; + name: string; + x: number; + y: number; + index: number; + rotate: boolean; + texture: Texture; + } } declare module spine { - class TransformConstraint implements Constraint { - data: TransformConstraintData; - bones: Array; - target: Bone; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - temp: Vector2; - constructor(data: TransformConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - applyAbsoluteWorld(): void; - applyRelativeWorld(): void; - applyAbsoluteLocal(): void; - applyRelativeLocal(): void; - getOrder(): number; - } + class TransformConstraint implements Constraint { + data: TransformConstraintData; + bones: Array; + target: Bone; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + temp: Vector2; + constructor(data: TransformConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + applyAbsoluteWorld(): void; + applyRelativeWorld(): void; + applyAbsoluteLocal(): void; + applyRelativeLocal(): void; + getOrder(): number; + } } declare module spine { - class TransformConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - offsetRotation: number; - offsetX: number; - offsetY: number; - offsetScaleX: number; - offsetScaleY: number; - offsetShearY: number; - relative: boolean; - local: boolean; - constructor(name: string); - } + class TransformConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + offsetRotation: number; + offsetX: number; + offsetY: number; + offsetScaleX: number; + offsetScaleY: number; + offsetShearY: number; + relative: boolean; + local: boolean; + constructor(name: string); + } } declare module spine { - class Triangulator { - private convexPolygons; - private convexPolygonsIndices; - private indicesArray; - private isConcaveArray; - private triangles; - private polygonPool; - private polygonIndicesPool; - triangulate(verticesArray: ArrayLike): Array; - decompose(verticesArray: Array, triangles: Array): Array>; - private static isConcave(index, vertexCount, vertices, indices); - private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); - private static winding(p1x, p1y, p2x, p2y, p3x, p3y); - } + class Triangulator { + private convexPolygons; + private convexPolygonsIndices; + private indicesArray; + private isConcaveArray; + private triangles; + private polygonPool; + private polygonIndicesPool; + triangulate(verticesArray: ArrayLike): Array; + decompose(verticesArray: Array, triangles: Array): Array>; + private static isConcave(index, vertexCount, vertices, indices); + private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); + private static winding(p1x, p1y, p2x, p2y, p3x, p3y); + } } declare module spine { - interface Updatable { - update(): void; - } + interface Updatable { + update(): void; + } } declare module spine { - interface Map { - [key: string]: T; - } - class IntSet { - array: number[]; - add(value: number): boolean; - contains(value: number): boolean; - remove(value: number): void; - clear(): void; - } - interface Disposable { - dispose(): void; - } - interface Restorable { - restore(): void; - } - class Color { - r: number; - g: number; - b: number; - a: number; - static WHITE: Color; - static RED: Color; - static GREEN: Color; - static BLUE: Color; - static MAGENTA: Color; - constructor(r?: number, g?: number, b?: number, a?: number); - set(r: number, g: number, b: number, a: number): this; - setFromColor(c: Color): this; - setFromString(hex: string): this; - add(r: number, g: number, b: number, a: number): this; - clamp(): this; - } - class MathUtils { - static PI: number; - static PI2: number; - static radiansToDegrees: number; - static radDeg: number; - static degreesToRadians: number; - static degRad: number; - static clamp(value: number, min: number, max: number): number; - static cosDeg(degrees: number): number; - static sinDeg(degrees: number): number; - static signum(value: number): number; - static toInt(x: number): number; - static cbrt(x: number): number; - } - class Utils { - static SUPPORTS_TYPED_ARRAYS: boolean; - static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; - static setArraySize(array: Array, size: number, value?: any): Array; - static ensureArrayCapacity(array: Array, size: number, value?: any): Array; - static newArray(size: number, defaultValue: T): Array; - static newFloatArray(size: number): ArrayLike; - static newShortArray(size: number): ArrayLike; - static toFloatArray(array: Array): number[] | Float32Array; - } - class DebugUtils { - static logBones(skeleton: Skeleton): void; - } - class Pool { - private items; - private instantiator; - constructor(instantiator: () => T); - obtain(): T; - free(item: T): void; - freeAll(items: ArrayLike): void; - clear(): void; - } - class Vector2 { - x: number; - y: number; - constructor(x?: number, y?: number); - set(x: number, y: number): Vector2; - length(): number; - normalize(): this; - } - class TimeKeeper { - maxDelta: number; - framesPerSecond: number; - delta: number; - totalTime: number; - private lastTime; - private frameCount; - private frameTime; - update(): void; - } - interface ArrayLike { - length: number; - [n: number]: T; - } - class WindowedMean { - values: Array; - addedValues: number; - lastValue: number; - mean: number; - dirty: boolean; - constructor(windowSize?: number); - hasEnoughData(): boolean; - addValue(value: number): void; - getMean(): number; - } + interface Map { + [key: string]: T; + } + class IntSet { + array: number[]; + add(value: number): boolean; + contains(value: number): boolean; + remove(value: number): void; + clear(): void; + } + interface Disposable { + dispose(): void; + } + interface Restorable { + restore(): void; + } + class Color { + r: number; + g: number; + b: number; + a: number; + static WHITE: Color; + static RED: Color; + static GREEN: Color; + static BLUE: Color; + static MAGENTA: Color; + constructor(r?: number, g?: number, b?: number, a?: number); + set(r: number, g: number, b: number, a: number): this; + setFromColor(c: Color): this; + setFromString(hex: string): this; + add(r: number, g: number, b: number, a: number): this; + clamp(): this; + } + class MathUtils { + static PI: number; + static PI2: number; + static radiansToDegrees: number; + static radDeg: number; + static degreesToRadians: number; + static degRad: number; + static clamp(value: number, min: number, max: number): number; + static cosDeg(degrees: number): number; + static sinDeg(degrees: number): number; + static signum(value: number): number; + static toInt(x: number): number; + static cbrt(x: number): number; + } + class Utils { + static SUPPORTS_TYPED_ARRAYS: boolean; + static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; + static setArraySize(array: Array, size: number, value?: any): Array; + static ensureArrayCapacity(array: Array, size: number, value?: any): Array; + static newArray(size: number, defaultValue: T): Array; + static newFloatArray(size: number): ArrayLike; + static newShortArray(size: number): ArrayLike; + static toFloatArray(array: Array): number[] | Float32Array; + } + class DebugUtils { + static logBones(skeleton: Skeleton): void; + } + class Pool { + private items; + private instantiator; + constructor(instantiator: () => T); + obtain(): T; + free(item: T): void; + freeAll(items: ArrayLike): void; + clear(): void; + } + class Vector2 { + x: number; + y: number; + constructor(x?: number, y?: number); + set(x: number, y: number): Vector2; + length(): number; + normalize(): this; + } + class TimeKeeper { + maxDelta: number; + framesPerSecond: number; + delta: number; + totalTime: number; + private lastTime; + private frameCount; + private frameTime; + update(): void; + } + interface ArrayLike { + length: number; + [n: number]: T; + } + class WindowedMean { + values: Array; + addedValues: number; + lastValue: number; + mean: number; + dirty: boolean; + constructor(windowSize?: number); + hasEnoughData(): boolean; + addValue(value: number): void; + getMean(): number; + } } declare module spine.threejs { - class AssetManager extends spine.AssetManager { - constructor(pathPrefix?: string); - } + class AssetManager extends spine.AssetManager { + constructor(pathPrefix?: string); + } } declare module spine.threejs { - class MeshBatcher { - mesh: THREE.Mesh; - private static VERTEX_SIZE; - private vertexBuffer; - private vertices; - private verticesLength; - private indices; - private indicesLength; - constructor(mesh: THREE.Mesh, maxVertices?: number); - begin(): void; - batch(vertices: ArrayLike, verticesLength: number, indices: ArrayLike, indicesLength: number, z?: number): void; - end(): void; - } + class MeshBatcher { + mesh: THREE.Mesh; + private static VERTEX_SIZE; + private vertexBuffer; + private vertices; + private verticesLength; + private indices; + private indicesLength; + constructor(mesh: THREE.Mesh, maxVertices?: number); + begin(): void; + batch(vertices: ArrayLike, verticesLength: number, indices: ArrayLike, indicesLength: number, z?: number): void; + end(): void; + } } declare module spine.threejs { - class SkeletonMesh extends THREE.Mesh { - skeleton: Skeleton; - state: AnimationState; - zOffset: number; - private batcher; - private clipper; - static QUAD_TRIANGLES: number[]; - static VERTEX_SIZE: number; - private vertices; - private tempColor; - constructor(skeletonData: SkeletonData); - update(deltaTime: number): void; - private updateGeometry(); - } + class SkeletonMesh extends THREE.Mesh { + skeleton: Skeleton; + state: AnimationState; + zOffset: number; + private batcher; + private clipper; + static QUAD_TRIANGLES: number[]; + static VERTEX_SIZE: number; + private vertices; + private tempColor; + constructor(skeletonData: SkeletonData); + update(deltaTime: number): void; + private updateGeometry(); + } } declare module spine.threejs { - class ThreeJsTexture extends Texture { - texture: THREE.Texture; - constructor(image: HTMLImageElement); - setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - dispose(): void; - static toThreeJsTextureFilter(filter: TextureFilter): THREE.TextureFilter; - static toThreeJsTextureWrap(wrap: TextureWrap): THREE.Wrapping; - } + class ThreeJsTexture extends Texture { + texture: THREE.Texture; + constructor(image: HTMLImageElement); + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + dispose(): void; + static toThreeJsTextureFilter(filter: TextureFilter): THREE.TextureFilter; + static toThreeJsTextureWrap(wrap: TextureWrap): THREE.Wrapping; + } } diff --git a/spine-ts/build/spine-threejs.js b/spine-ts/build/spine-threejs.js index 69ffaec31..7eadbca74 100644 --- a/spine-ts/build/spine-threejs.js +++ b/spine-ts/build/spine-threejs.js @@ -1,6482 +1,6482 @@ var __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var spine; (function (spine) { - var Animation = (function () { - function Animation(name, timelines, duration) { - if (name == null) - throw new Error("name cannot be null."); - if (timelines == null) - throw new Error("timelines cannot be null."); - this.name = name; - this.timelines = timelines; - this.duration = duration; - } - Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (loop && this.duration != 0) { - time %= this.duration; - if (lastTime > 0) - lastTime %= this.duration; - } - var timelines = this.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); - }; - Animation.binarySearch = function (values, target, step) { - if (step === void 0) { step = 1; } - var low = 0; - var high = values.length / step - 2; - if (high == 0) - return step; - var current = high >>> 1; - while (true) { - if (values[(current + 1) * step] <= target) - low = current + 1; - else - high = current; - if (low == high) - return (low + 1) * step; - current = (low + high) >>> 1; - } - }; - Animation.linearSearch = function (values, target, step) { - for (var i = 0, last = values.length - step; i <= last; i += step) - if (values[i] > target) - return i; - return -1; - }; - return Animation; - }()); - spine.Animation = Animation; - (function (TimelineType) { - TimelineType[TimelineType["rotate"] = 0] = "rotate"; - TimelineType[TimelineType["translate"] = 1] = "translate"; - TimelineType[TimelineType["scale"] = 2] = "scale"; - TimelineType[TimelineType["shear"] = 3] = "shear"; - TimelineType[TimelineType["attachment"] = 4] = "attachment"; - TimelineType[TimelineType["color"] = 5] = "color"; - TimelineType[TimelineType["deform"] = 6] = "deform"; - TimelineType[TimelineType["event"] = 7] = "event"; - TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; - TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; - TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; - TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; - TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; - TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; - TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; - })(spine.TimelineType || (spine.TimelineType = {})); - var TimelineType = spine.TimelineType; - var CurveTimeline = (function () { - function CurveTimeline(frameCount) { - if (frameCount <= 0) - throw new Error("frameCount must be > 0: " + frameCount); - this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); - } - CurveTimeline.prototype.getFrameCount = function () { - return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; - }; - CurveTimeline.prototype.setLinear = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; - }; - CurveTimeline.prototype.setStepped = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; - }; - CurveTimeline.prototype.getCurveType = function (frameIndex) { - var index = frameIndex * CurveTimeline.BEZIER_SIZE; - if (index == this.curves.length) - return CurveTimeline.LINEAR; - var type = this.curves[index]; - if (type == CurveTimeline.LINEAR) - return CurveTimeline.LINEAR; - if (type == CurveTimeline.STEPPED) - return CurveTimeline.STEPPED; - return CurveTimeline.BEZIER; - }; - CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { - var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; - var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; - var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; - var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var curves = this.curves; - curves[i++] = CurveTimeline.BEZIER; - var x = dfx, y = dfy; - for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - curves[i] = x; - curves[i + 1] = y; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - x += dfx; - y += dfy; - } - }; - CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { - percent = spine.MathUtils.clamp(percent, 0, 1); - var curves = this.curves; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var type = curves[i]; - if (type == CurveTimeline.LINEAR) - return percent; - if (type == CurveTimeline.STEPPED) - return 0; - i++; - var x = 0; - for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - x = curves[i]; - if (x >= percent) { - var prevX = void 0, prevY = void 0; - if (i == start) { - prevX = 0; - prevY = 0; - } - else { - prevX = curves[i - 2]; - prevY = curves[i - 1]; - } - return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); - } - } - var y = curves[i - 1]; - return y + (1 - y) * (percent - x) / (1 - x); - }; - CurveTimeline.LINEAR = 0; - CurveTimeline.STEPPED = 1; - CurveTimeline.BEZIER = 2; - CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; - return CurveTimeline; - }()); - spine.CurveTimeline = CurveTimeline; - var RotateTimeline = (function (_super) { - __extends(RotateTimeline, _super); - function RotateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount << 1); - } - RotateTimeline.prototype.getPropertyId = function () { - return (TimelineType.rotate << 24) + this.boneIndex; - }; - RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { - frameIndex <<= 1; - this.frames[frameIndex] = time; - this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; - }; - RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { - if (setupPose) - bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; - else { - var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; - r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; - bone.rotation += r_1 * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); - var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); - var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - r = prevRotation + r * percent; - if (setupPose) { - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation = bone.data.rotation + r * alpha; - } - else { - r = bone.data.rotation + r - bone.rotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation += r * alpha; - } - }; - RotateTimeline.ENTRIES = 2; - RotateTimeline.PREV_TIME = -2; - RotateTimeline.PREV_ROTATION = -1; - RotateTimeline.ROTATION = 1; - return RotateTimeline; - }(CurveTimeline)); - spine.RotateTimeline = RotateTimeline; - var TranslateTimeline = (function (_super) { - __extends(TranslateTimeline, _super); - function TranslateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); - } - TranslateTimeline.prototype.getPropertyId = function () { - return (TimelineType.translate << 24) + this.boneIndex; - }; - TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { - frameIndex *= TranslateTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TranslateTimeline.X] = x; - this.frames[frameIndex + TranslateTimeline.Y] = y; - }; - TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.x = bone.data.x; - bone.y = bone.data.y; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { - x = frames[frames.length + TranslateTimeline.PREV_X]; - y = frames[frames.length + TranslateTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - x = frames[frame + TranslateTimeline.PREV_X]; - y = frames[frame + TranslateTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); - x += (frames[frame + TranslateTimeline.X] - x) * percent; - y += (frames[frame + TranslateTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.x = bone.data.x + x * alpha; - bone.y = bone.data.y + y * alpha; - } - else { - bone.x += (bone.data.x + x - bone.x) * alpha; - bone.y += (bone.data.y + y - bone.y) * alpha; - } - }; - TranslateTimeline.ENTRIES = 3; - TranslateTimeline.PREV_TIME = -3; - TranslateTimeline.PREV_X = -2; - TranslateTimeline.PREV_Y = -1; - TranslateTimeline.X = 1; - TranslateTimeline.Y = 2; - return TranslateTimeline; - }(CurveTimeline)); - spine.TranslateTimeline = TranslateTimeline; - var ScaleTimeline = (function (_super) { - __extends(ScaleTimeline, _super); - function ScaleTimeline(frameCount) { - _super.call(this, frameCount); - } - ScaleTimeline.prototype.getPropertyId = function () { - return (TimelineType.scale << 24) + this.boneIndex; - }; - ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.scaleX = bone.data.scaleX; - bone.scaleY = bone.data.scaleY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { - x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; - y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; - } - else { - var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - x = frames[frame + ScaleTimeline.PREV_X]; - y = frames[frame + ScaleTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); - x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; - y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; - } - if (alpha == 1) { - bone.scaleX = x; - bone.scaleY = y; - } - else { - var bx = 0, by = 0; - if (setupPose) { - bx = bone.data.scaleX; - by = bone.data.scaleY; - } - else { - bx = bone.scaleX; - by = bone.scaleY; - } - if (mixingOut) { - x = Math.abs(x) * spine.MathUtils.signum(bx); - y = Math.abs(y) * spine.MathUtils.signum(by); - } - else { - bx = Math.abs(bx) * spine.MathUtils.signum(x); - by = Math.abs(by) * spine.MathUtils.signum(y); - } - bone.scaleX = bx + (x - bx) * alpha; - bone.scaleY = by + (y - by) * alpha; - } - }; - return ScaleTimeline; - }(TranslateTimeline)); - spine.ScaleTimeline = ScaleTimeline; - var ShearTimeline = (function (_super) { - __extends(ShearTimeline, _super); - function ShearTimeline(frameCount) { - _super.call(this, frameCount); - } - ShearTimeline.prototype.getPropertyId = function () { - return (TimelineType.shear << 24) + this.boneIndex; - }; - ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.shearX = bone.data.shearX; - bone.shearY = bone.data.shearY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { - x = frames[frames.length + ShearTimeline.PREV_X]; - y = frames[frames.length + ShearTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - x = frames[frame + ShearTimeline.PREV_X]; - y = frames[frame + ShearTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); - x = x + (frames[frame + ShearTimeline.X] - x) * percent; - y = y + (frames[frame + ShearTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.shearX = bone.data.shearX + x * alpha; - bone.shearY = bone.data.shearY + y * alpha; - } - else { - bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; - } - }; - return ShearTimeline; - }(TranslateTimeline)); - spine.ShearTimeline = ShearTimeline; - var ColorTimeline = (function (_super) { - __extends(ColorTimeline, _super); - function ColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); - } - ColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.color << 24) + this.slotIndex; - }; - ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { - frameIndex *= ColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + ColorTimeline.R] = r; - this.frames[frameIndex + ColorTimeline.G] = g; - this.frames[frameIndex + ColorTimeline.B] = b; - this.frames[frameIndex + ColorTimeline.A] = a; - }; - ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - slot.color.setFromColor(slot.data.color); - return; - } - var r = 0, g = 0, b = 0, a = 0; - if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + ColorTimeline.PREV_R]; - g = frames[i + ColorTimeline.PREV_G]; - b = frames[i + ColorTimeline.PREV_B]; - a = frames[i + ColorTimeline.PREV_A]; - } - else { - var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); - r = frames[frame + ColorTimeline.PREV_R]; - g = frames[frame + ColorTimeline.PREV_G]; - b = frames[frame + ColorTimeline.PREV_B]; - a = frames[frame + ColorTimeline.PREV_A]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + ColorTimeline.R] - r) * percent; - g += (frames[frame + ColorTimeline.G] - g) * percent; - b += (frames[frame + ColorTimeline.B] - b) * percent; - a += (frames[frame + ColorTimeline.A] - a) * percent; - } - if (alpha == 1) - slot.color.set(r, g, b, a); - else { - var color = slot.color; - if (setupPose) - color.setFromColor(slot.data.color); - color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); - } - }; - ColorTimeline.ENTRIES = 5; - ColorTimeline.PREV_TIME = -5; - ColorTimeline.PREV_R = -4; - ColorTimeline.PREV_G = -3; - ColorTimeline.PREV_B = -2; - ColorTimeline.PREV_A = -1; - ColorTimeline.R = 1; - ColorTimeline.G = 2; - ColorTimeline.B = 3; - ColorTimeline.A = 4; - return ColorTimeline; - }(CurveTimeline)); - spine.ColorTimeline = ColorTimeline; - var TwoColorTimeline = (function (_super) { - __extends(TwoColorTimeline, _super); - function TwoColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); - } - TwoColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.twoColor << 24) + this.slotIndex; - }; - TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { - frameIndex *= TwoColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TwoColorTimeline.R] = r; - this.frames[frameIndex + TwoColorTimeline.G] = g; - this.frames[frameIndex + TwoColorTimeline.B] = b; - this.frames[frameIndex + TwoColorTimeline.A] = a; - this.frames[frameIndex + TwoColorTimeline.R2] = r2; - this.frames[frameIndex + TwoColorTimeline.G2] = g2; - this.frames[frameIndex + TwoColorTimeline.B2] = b2; - }; - TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - slot.color.setFromColor(slot.data.color); - slot.darkColor.setFromColor(slot.data.darkColor); - } - return; - } - var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; - if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + TwoColorTimeline.PREV_R]; - g = frames[i + TwoColorTimeline.PREV_G]; - b = frames[i + TwoColorTimeline.PREV_B]; - a = frames[i + TwoColorTimeline.PREV_A]; - r2 = frames[i + TwoColorTimeline.PREV_R2]; - g2 = frames[i + TwoColorTimeline.PREV_G2]; - b2 = frames[i + TwoColorTimeline.PREV_B2]; - } - else { - var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); - r = frames[frame + TwoColorTimeline.PREV_R]; - g = frames[frame + TwoColorTimeline.PREV_G]; - b = frames[frame + TwoColorTimeline.PREV_B]; - a = frames[frame + TwoColorTimeline.PREV_A]; - r2 = frames[frame + TwoColorTimeline.PREV_R2]; - g2 = frames[frame + TwoColorTimeline.PREV_G2]; - b2 = frames[frame + TwoColorTimeline.PREV_B2]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + TwoColorTimeline.R] - r) * percent; - g += (frames[frame + TwoColorTimeline.G] - g) * percent; - b += (frames[frame + TwoColorTimeline.B] - b) * percent; - a += (frames[frame + TwoColorTimeline.A] - a) * percent; - r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; - g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; - b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; - } - if (alpha == 1) { - slot.color.set(r, g, b, a); - slot.darkColor.set(r2, g2, b2, 1); - } - else { - var light = slot.color; - var dark = slot.darkColor; - if (setupPose) { - light.setFromColor(slot.data.color); - dark.setFromColor(slot.data.darkColor); - } - light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); - dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); - } - }; - TwoColorTimeline.ENTRIES = 8; - TwoColorTimeline.PREV_TIME = -8; - TwoColorTimeline.PREV_R = -7; - TwoColorTimeline.PREV_G = -6; - TwoColorTimeline.PREV_B = -5; - TwoColorTimeline.PREV_A = -4; - TwoColorTimeline.PREV_R2 = -3; - TwoColorTimeline.PREV_G2 = -2; - TwoColorTimeline.PREV_B2 = -1; - TwoColorTimeline.R = 1; - TwoColorTimeline.G = 2; - TwoColorTimeline.B = 3; - TwoColorTimeline.A = 4; - TwoColorTimeline.R2 = 5; - TwoColorTimeline.G2 = 6; - TwoColorTimeline.B2 = 7; - return TwoColorTimeline; - }(CurveTimeline)); - spine.TwoColorTimeline = TwoColorTimeline; - var AttachmentTimeline = (function () { - function AttachmentTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.attachmentNames = new Array(frameCount); - } - AttachmentTimeline.prototype.getPropertyId = function () { - return (TimelineType.attachment << 24) + this.slotIndex; - }; - AttachmentTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { - this.frames[frameIndex] = time; - this.attachmentNames[frameIndex] = attachmentName; - }; - AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - if (mixingOut && setupPose) { - var attachmentName_1 = slot.data.attachmentName; - slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - var attachmentName_2 = slot.data.attachmentName; - slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); - } - return; - } - var frameIndex = 0; - if (time >= frames[frames.length - 1]) - frameIndex = frames.length - 1; - else - frameIndex = Animation.binarySearch(frames, time, 1) - 1; - var attachmentName = this.attachmentNames[frameIndex]; - skeleton.slots[this.slotIndex] - .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); - }; - return AttachmentTimeline; - }()); - spine.AttachmentTimeline = AttachmentTimeline; - var DeformTimeline = (function (_super) { - __extends(DeformTimeline, _super); - function DeformTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount); - this.frameVertices = new Array(frameCount); - } - DeformTimeline.prototype.getPropertyId = function () { - return (TimelineType.deform << 24) + this.slotIndex; - }; - DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { - this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; - }; - DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var slotAttachment = slot.getAttachment(); - if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) - return; - var frames = this.frames; - var verticesArray = slot.attachmentVertices; - if (time < frames[0]) { - if (setupPose) - spine.Utils.setArraySize(verticesArray, 0); - return; - } - var frameVertices = this.frameVertices; - var vertexCount = frameVertices[0].length; - if (verticesArray.length != vertexCount) - alpha = 1; - var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); - if (time >= frames[frames.length - 1]) { - var lastVertices = frameVertices[frames.length - 1]; - if (alpha == 1) { - spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var setup = setupVertices[i]; - vertices[i] = setup + (lastVertices[i] - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] = lastVertices[i] * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time); - var prevVertices = frameVertices[frame - 1]; - var nextVertices = frameVertices[frame]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); - if (alpha == 1) { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i], setup = setupVertices[i]; - vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; - } - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; - } - } - }; - return DeformTimeline; - }(CurveTimeline)); - spine.DeformTimeline = DeformTimeline; - var EventTimeline = (function () { - function EventTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.events = new Array(frameCount); - } - EventTimeline.prototype.getPropertyId = function () { - return TimelineType.event << 24; - }; - EventTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - EventTimeline.prototype.setFrame = function (frameIndex, event) { - this.frames[frameIndex] = event.time; - this.events[frameIndex] = event; - }; - EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - if (firedEvents == null) - return; - var frames = this.frames; - var frameCount = this.frames.length; - if (lastTime > time) { - this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); - lastTime = -1; - } - else if (lastTime >= frames[frameCount - 1]) - return; - if (time < frames[0]) - return; - var frame = 0; - if (lastTime < frames[0]) - frame = 0; - else { - frame = Animation.binarySearch(frames, lastTime); - var frameTime = frames[frame]; - while (frame > 0) { - if (frames[frame - 1] != frameTime) - break; - frame--; - } - } - for (; frame < frameCount && time >= frames[frame]; frame++) - firedEvents.push(this.events[frame]); - }; - return EventTimeline; - }()); - spine.EventTimeline = EventTimeline; - var DrawOrderTimeline = (function () { - function DrawOrderTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.drawOrders = new Array(frameCount); - } - DrawOrderTimeline.prototype.getPropertyId = function () { - return TimelineType.drawOrder << 24; - }; - DrawOrderTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { - this.frames[frameIndex] = time; - this.drawOrders[frameIndex] = drawOrder; - }; - DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var drawOrder = skeleton.drawOrder; - var slots = skeleton.slots; - if (mixingOut && setupPose) { - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frame = 0; - if (time >= frames[frames.length - 1]) - frame = frames.length - 1; - else - frame = Animation.binarySearch(frames, time) - 1; - var drawOrderToSetupIndex = this.drawOrders[frame]; - if (drawOrderToSetupIndex == null) - spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); - else { - for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) - drawOrder[i] = slots[drawOrderToSetupIndex[i]]; - } - }; - return DrawOrderTimeline; - }()); - spine.DrawOrderTimeline = DrawOrderTimeline; - var IkConstraintTimeline = (function (_super) { - __extends(IkConstraintTimeline, _super); - function IkConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); - } - IkConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; - }; - IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { - frameIndex *= IkConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; - this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; - }; - IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.mix = constraint.data.mix; - constraint.bendDirection = constraint.data.bendDirection; - } - return; - } - if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { - if (setupPose) { - constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection - : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - return; - } - var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); - var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); - if (setupPose) { - constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - }; - IkConstraintTimeline.ENTRIES = 3; - IkConstraintTimeline.PREV_TIME = -3; - IkConstraintTimeline.PREV_MIX = -2; - IkConstraintTimeline.PREV_BEND_DIRECTION = -1; - IkConstraintTimeline.MIX = 1; - IkConstraintTimeline.BEND_DIRECTION = 2; - return IkConstraintTimeline; - }(CurveTimeline)); - spine.IkConstraintTimeline = IkConstraintTimeline; - var TransformConstraintTimeline = (function (_super) { - __extends(TransformConstraintTimeline, _super); - function TransformConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); - } - TransformConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; - }; - TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { - frameIndex *= TransformConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; - this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; - this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; - }; - TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.rotateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - return; - } - var rotate = 0, translate = 0, scale = 0, shear = 0; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { - var i = frames.length; - rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; - } - else { - var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; - scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; - shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; - } - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; - constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; - constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; - constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - constraint.scaleMix += (scale - constraint.scaleMix) * alpha; - constraint.shearMix += (shear - constraint.shearMix) * alpha; - } - }; - TransformConstraintTimeline.ENTRIES = 5; - TransformConstraintTimeline.PREV_TIME = -5; - TransformConstraintTimeline.PREV_ROTATE = -4; - TransformConstraintTimeline.PREV_TRANSLATE = -3; - TransformConstraintTimeline.PREV_SCALE = -2; - TransformConstraintTimeline.PREV_SHEAR = -1; - TransformConstraintTimeline.ROTATE = 1; - TransformConstraintTimeline.TRANSLATE = 2; - TransformConstraintTimeline.SCALE = 3; - TransformConstraintTimeline.SHEAR = 4; - return TransformConstraintTimeline; - }(CurveTimeline)); - spine.TransformConstraintTimeline = TransformConstraintTimeline; - var PathConstraintPositionTimeline = (function (_super) { - __extends(PathConstraintPositionTimeline, _super); - function PathConstraintPositionTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); - } - PathConstraintPositionTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; - }; - PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { - frameIndex *= PathConstraintPositionTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; - }; - PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.position = constraint.data.position; - return; - } - var position = 0; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) - position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); - position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; - } - if (setupPose) - constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; - else - constraint.position += (position - constraint.position) * alpha; - }; - PathConstraintPositionTimeline.ENTRIES = 2; - PathConstraintPositionTimeline.PREV_TIME = -2; - PathConstraintPositionTimeline.PREV_VALUE = -1; - PathConstraintPositionTimeline.VALUE = 1; - return PathConstraintPositionTimeline; - }(CurveTimeline)); - spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; - var PathConstraintSpacingTimeline = (function (_super) { - __extends(PathConstraintSpacingTimeline, _super); - function PathConstraintSpacingTimeline(frameCount) { - _super.call(this, frameCount); - } - PathConstraintSpacingTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; - }; - PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.spacing = constraint.data.spacing; - return; - } - var spacing = 0; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) - spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); - spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; - } - if (setupPose) - constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; - else - constraint.spacing += (spacing - constraint.spacing) * alpha; - }; - return PathConstraintSpacingTimeline; - }(PathConstraintPositionTimeline)); - spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; - var PathConstraintMixTimeline = (function (_super) { - __extends(PathConstraintMixTimeline, _super); - function PathConstraintMixTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); - } - PathConstraintMixTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; - }; - PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { - frameIndex *= PathConstraintMixTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; - }; - PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix; - constraint.translateMix = constraint.data.translateMix; - } - return; - } - var rotate = 0, translate = 0; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { - rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; - } - else { - var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; - } - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; - constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - } - }; - PathConstraintMixTimeline.ENTRIES = 3; - PathConstraintMixTimeline.PREV_TIME = -3; - PathConstraintMixTimeline.PREV_ROTATE = -2; - PathConstraintMixTimeline.PREV_TRANSLATE = -1; - PathConstraintMixTimeline.ROTATE = 1; - PathConstraintMixTimeline.TRANSLATE = 2; - return PathConstraintMixTimeline; - }(CurveTimeline)); - spine.PathConstraintMixTimeline = PathConstraintMixTimeline; + var Animation = (function () { + function Animation(name, timelines, duration) { + if (name == null) + throw new Error("name cannot be null."); + if (timelines == null) + throw new Error("timelines cannot be null."); + this.name = name; + this.timelines = timelines; + this.duration = duration; + } + Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (loop && this.duration != 0) { + time %= this.duration; + if (lastTime > 0) + lastTime %= this.duration; + } + var timelines = this.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); + }; + Animation.binarySearch = function (values, target, step) { + if (step === void 0) { step = 1; } + var low = 0; + var high = values.length / step - 2; + if (high == 0) + return step; + var current = high >>> 1; + while (true) { + if (values[(current + 1) * step] <= target) + low = current + 1; + else + high = current; + if (low == high) + return (low + 1) * step; + current = (low + high) >>> 1; + } + }; + Animation.linearSearch = function (values, target, step) { + for (var i = 0, last = values.length - step; i <= last; i += step) + if (values[i] > target) + return i; + return -1; + }; + return Animation; + }()); + spine.Animation = Animation; + (function (TimelineType) { + TimelineType[TimelineType["rotate"] = 0] = "rotate"; + TimelineType[TimelineType["translate"] = 1] = "translate"; + TimelineType[TimelineType["scale"] = 2] = "scale"; + TimelineType[TimelineType["shear"] = 3] = "shear"; + TimelineType[TimelineType["attachment"] = 4] = "attachment"; + TimelineType[TimelineType["color"] = 5] = "color"; + TimelineType[TimelineType["deform"] = 6] = "deform"; + TimelineType[TimelineType["event"] = 7] = "event"; + TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; + TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; + TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; + TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; + TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; + TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; + TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; + var CurveTimeline = (function () { + function CurveTimeline(frameCount) { + if (frameCount <= 0) + throw new Error("frameCount must be > 0: " + frameCount); + this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); + } + CurveTimeline.prototype.getFrameCount = function () { + return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; + }; + CurveTimeline.prototype.setLinear = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; + }; + CurveTimeline.prototype.setStepped = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; + }; + CurveTimeline.prototype.getCurveType = function (frameIndex) { + var index = frameIndex * CurveTimeline.BEZIER_SIZE; + if (index == this.curves.length) + return CurveTimeline.LINEAR; + var type = this.curves[index]; + if (type == CurveTimeline.LINEAR) + return CurveTimeline.LINEAR; + if (type == CurveTimeline.STEPPED) + return CurveTimeline.STEPPED; + return CurveTimeline.BEZIER; + }; + CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { + var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; + var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; + var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; + var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var curves = this.curves; + curves[i++] = CurveTimeline.BEZIER; + var x = dfx, y = dfy; + for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + curves[i] = x; + curves[i + 1] = y; + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + x += dfx; + y += dfy; + } + }; + CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { + percent = spine.MathUtils.clamp(percent, 0, 1); + var curves = this.curves; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var type = curves[i]; + if (type == CurveTimeline.LINEAR) + return percent; + if (type == CurveTimeline.STEPPED) + return 0; + i++; + var x = 0; + for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + x = curves[i]; + if (x >= percent) { + var prevX = void 0, prevY = void 0; + if (i == start) { + prevX = 0; + prevY = 0; + } + else { + prevX = curves[i - 2]; + prevY = curves[i - 1]; + } + return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); + } + } + var y = curves[i - 1]; + return y + (1 - y) * (percent - x) / (1 - x); + }; + CurveTimeline.LINEAR = 0; + CurveTimeline.STEPPED = 1; + CurveTimeline.BEZIER = 2; + CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; + return CurveTimeline; + }()); + spine.CurveTimeline = CurveTimeline; + var RotateTimeline = (function (_super) { + __extends(RotateTimeline, _super); + function RotateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount << 1); + } + RotateTimeline.prototype.getPropertyId = function () { + return (TimelineType.rotate << 24) + this.boneIndex; + }; + RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { + frameIndex <<= 1; + this.frames[frameIndex] = time; + this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; + }; + RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { + if (setupPose) + bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; + else { + var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; + r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; + bone.rotation += r_1 * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); + var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); + var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + r = prevRotation + r * percent; + if (setupPose) { + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation = bone.data.rotation + r * alpha; + } + else { + r = bone.data.rotation + r - bone.rotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation += r * alpha; + } + }; + RotateTimeline.ENTRIES = 2; + RotateTimeline.PREV_TIME = -2; + RotateTimeline.PREV_ROTATION = -1; + RotateTimeline.ROTATION = 1; + return RotateTimeline; + }(CurveTimeline)); + spine.RotateTimeline = RotateTimeline; + var TranslateTimeline = (function (_super) { + __extends(TranslateTimeline, _super); + function TranslateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); + } + TranslateTimeline.prototype.getPropertyId = function () { + return (TimelineType.translate << 24) + this.boneIndex; + }; + TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { + frameIndex *= TranslateTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TranslateTimeline.X] = x; + this.frames[frameIndex + TranslateTimeline.Y] = y; + }; + TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { + x = frames[frames.length + TranslateTimeline.PREV_X]; + y = frames[frames.length + TranslateTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); + x = frames[frame + TranslateTimeline.PREV_X]; + y = frames[frame + TranslateTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); + x += (frames[frame + TranslateTimeline.X] - x) * percent; + y += (frames[frame + TranslateTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.x = bone.data.x + x * alpha; + bone.y = bone.data.y + y * alpha; + } + else { + bone.x += (bone.data.x + x - bone.x) * alpha; + bone.y += (bone.data.y + y - bone.y) * alpha; + } + }; + TranslateTimeline.ENTRIES = 3; + TranslateTimeline.PREV_TIME = -3; + TranslateTimeline.PREV_X = -2; + TranslateTimeline.PREV_Y = -1; + TranslateTimeline.X = 1; + TranslateTimeline.Y = 2; + return TranslateTimeline; + }(CurveTimeline)); + spine.TranslateTimeline = TranslateTimeline; + var ScaleTimeline = (function (_super) { + __extends(ScaleTimeline, _super); + function ScaleTimeline(frameCount) { + _super.call(this, frameCount); + } + ScaleTimeline.prototype.getPropertyId = function () { + return (TimelineType.scale << 24) + this.boneIndex; + }; + ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { + x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; + y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; + } + else { + var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); + x = frames[frame + ScaleTimeline.PREV_X]; + y = frames[frame + ScaleTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); + x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; + y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; + } + if (alpha == 1) { + bone.scaleX = x; + bone.scaleY = y; + } + else { + var bx = 0, by = 0; + if (setupPose) { + bx = bone.data.scaleX; + by = bone.data.scaleY; + } + else { + bx = bone.scaleX; + by = bone.scaleY; + } + if (mixingOut) { + x = Math.abs(x) * spine.MathUtils.signum(bx); + y = Math.abs(y) * spine.MathUtils.signum(by); + } + else { + bx = Math.abs(bx) * spine.MathUtils.signum(x); + by = Math.abs(by) * spine.MathUtils.signum(y); + } + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + } + }; + return ScaleTimeline; + }(TranslateTimeline)); + spine.ScaleTimeline = ScaleTimeline; + var ShearTimeline = (function (_super) { + __extends(ShearTimeline, _super); + function ShearTimeline(frameCount) { + _super.call(this, frameCount); + } + ShearTimeline.prototype.getPropertyId = function () { + return (TimelineType.shear << 24) + this.boneIndex; + }; + ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { + x = frames[frames.length + ShearTimeline.PREV_X]; + y = frames[frames.length + ShearTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); + x = frames[frame + ShearTimeline.PREV_X]; + y = frames[frame + ShearTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); + x = x + (frames[frame + ShearTimeline.X] - x) * percent; + y = y + (frames[frame + ShearTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.shearX = bone.data.shearX + x * alpha; + bone.shearY = bone.data.shearY + y * alpha; + } + else { + bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; + bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; + } + }; + return ShearTimeline; + }(TranslateTimeline)); + spine.ShearTimeline = ShearTimeline; + var ColorTimeline = (function (_super) { + __extends(ColorTimeline, _super); + function ColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); + } + ColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.color << 24) + this.slotIndex; + }; + ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { + frameIndex *= ColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + ColorTimeline.R] = r; + this.frames[frameIndex + ColorTimeline.G] = g; + this.frames[frameIndex + ColorTimeline.B] = b; + this.frames[frameIndex + ColorTimeline.A] = a; + }; + ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + slot.color.setFromColor(slot.data.color); + return; + } + var r = 0, g = 0, b = 0, a = 0; + if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + ColorTimeline.PREV_R]; + g = frames[i + ColorTimeline.PREV_G]; + b = frames[i + ColorTimeline.PREV_B]; + a = frames[i + ColorTimeline.PREV_A]; + } + else { + var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); + r = frames[frame + ColorTimeline.PREV_R]; + g = frames[frame + ColorTimeline.PREV_G]; + b = frames[frame + ColorTimeline.PREV_B]; + a = frames[frame + ColorTimeline.PREV_A]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + ColorTimeline.R] - r) * percent; + g += (frames[frame + ColorTimeline.G] - g) * percent; + b += (frames[frame + ColorTimeline.B] - b) * percent; + a += (frames[frame + ColorTimeline.A] - a) * percent; + } + if (alpha == 1) + slot.color.set(r, g, b, a); + else { + var color = slot.color; + if (setupPose) + color.setFromColor(slot.data.color); + color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); + } + }; + ColorTimeline.ENTRIES = 5; + ColorTimeline.PREV_TIME = -5; + ColorTimeline.PREV_R = -4; + ColorTimeline.PREV_G = -3; + ColorTimeline.PREV_B = -2; + ColorTimeline.PREV_A = -1; + ColorTimeline.R = 1; + ColorTimeline.G = 2; + ColorTimeline.B = 3; + ColorTimeline.A = 4; + return ColorTimeline; + }(CurveTimeline)); + spine.ColorTimeline = ColorTimeline; + var TwoColorTimeline = (function (_super) { + __extends(TwoColorTimeline, _super); + function TwoColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); + } + TwoColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.twoColor << 24) + this.slotIndex; + }; + TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { + frameIndex *= TwoColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TwoColorTimeline.R] = r; + this.frames[frameIndex + TwoColorTimeline.G] = g; + this.frames[frameIndex + TwoColorTimeline.B] = b; + this.frames[frameIndex + TwoColorTimeline.A] = a; + this.frames[frameIndex + TwoColorTimeline.R2] = r2; + this.frames[frameIndex + TwoColorTimeline.G2] = g2; + this.frames[frameIndex + TwoColorTimeline.B2] = b2; + }; + TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + slot.color.setFromColor(slot.data.color); + slot.darkColor.setFromColor(slot.data.darkColor); + } + return; + } + var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; + if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + TwoColorTimeline.PREV_R]; + g = frames[i + TwoColorTimeline.PREV_G]; + b = frames[i + TwoColorTimeline.PREV_B]; + a = frames[i + TwoColorTimeline.PREV_A]; + r2 = frames[i + TwoColorTimeline.PREV_R2]; + g2 = frames[i + TwoColorTimeline.PREV_G2]; + b2 = frames[i + TwoColorTimeline.PREV_B2]; + } + else { + var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); + r = frames[frame + TwoColorTimeline.PREV_R]; + g = frames[frame + TwoColorTimeline.PREV_G]; + b = frames[frame + TwoColorTimeline.PREV_B]; + a = frames[frame + TwoColorTimeline.PREV_A]; + r2 = frames[frame + TwoColorTimeline.PREV_R2]; + g2 = frames[frame + TwoColorTimeline.PREV_G2]; + b2 = frames[frame + TwoColorTimeline.PREV_B2]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + TwoColorTimeline.R] - r) * percent; + g += (frames[frame + TwoColorTimeline.G] - g) * percent; + b += (frames[frame + TwoColorTimeline.B] - b) * percent; + a += (frames[frame + TwoColorTimeline.A] - a) * percent; + r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; + g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; + b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; + } + if (alpha == 1) { + slot.color.set(r, g, b, a); + slot.darkColor.set(r2, g2, b2, 1); + } + else { + var light = slot.color; + var dark = slot.darkColor; + if (setupPose) { + light.setFromColor(slot.data.color); + dark.setFromColor(slot.data.darkColor); + } + light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); + dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); + } + }; + TwoColorTimeline.ENTRIES = 8; + TwoColorTimeline.PREV_TIME = -8; + TwoColorTimeline.PREV_R = -7; + TwoColorTimeline.PREV_G = -6; + TwoColorTimeline.PREV_B = -5; + TwoColorTimeline.PREV_A = -4; + TwoColorTimeline.PREV_R2 = -3; + TwoColorTimeline.PREV_G2 = -2; + TwoColorTimeline.PREV_B2 = -1; + TwoColorTimeline.R = 1; + TwoColorTimeline.G = 2; + TwoColorTimeline.B = 3; + TwoColorTimeline.A = 4; + TwoColorTimeline.R2 = 5; + TwoColorTimeline.G2 = 6; + TwoColorTimeline.B2 = 7; + return TwoColorTimeline; + }(CurveTimeline)); + spine.TwoColorTimeline = TwoColorTimeline; + var AttachmentTimeline = (function () { + function AttachmentTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.attachmentNames = new Array(frameCount); + } + AttachmentTimeline.prototype.getPropertyId = function () { + return (TimelineType.attachment << 24) + this.slotIndex; + }; + AttachmentTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { + this.frames[frameIndex] = time; + this.attachmentNames[frameIndex] = attachmentName; + }; + AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + if (mixingOut && setupPose) { + var attachmentName_1 = slot.data.attachmentName; + slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + var attachmentName_2 = slot.data.attachmentName; + slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); + } + return; + } + var frameIndex = 0; + if (time >= frames[frames.length - 1]) + frameIndex = frames.length - 1; + else + frameIndex = Animation.binarySearch(frames, time, 1) - 1; + var attachmentName = this.attachmentNames[frameIndex]; + skeleton.slots[this.slotIndex] + .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); + }; + return AttachmentTimeline; + }()); + spine.AttachmentTimeline = AttachmentTimeline; + var DeformTimeline = (function (_super) { + __extends(DeformTimeline, _super); + function DeformTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount); + this.frameVertices = new Array(frameCount); + } + DeformTimeline.prototype.getPropertyId = function () { + return (TimelineType.deform << 24) + this.slotIndex; + }; + DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { + this.frames[frameIndex] = time; + this.frameVertices[frameIndex] = vertices; + }; + DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var slotAttachment = slot.getAttachment(); + if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) + return; + var frames = this.frames; + var verticesArray = slot.attachmentVertices; + if (time < frames[0]) { + if (setupPose) + spine.Utils.setArraySize(verticesArray, 0); + return; + } + var frameVertices = this.frameVertices; + var vertexCount = frameVertices[0].length; + if (verticesArray.length != vertexCount && !setupPose) + alpha = 1; + var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); + if (time >= frames[frames.length - 1]) { + var lastVertices = frameVertices[frames.length - 1]; + if (alpha == 1) { + spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var setup = setupVertices[i]; + vertices[i] = setup + (lastVertices[i] - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] = lastVertices[i] * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] += (lastVertices[i] - vertices[i]) * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time); + var prevVertices = frameVertices[frame - 1]; + var nextVertices = frameVertices[frame]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); + if (alpha == 1) { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = prev + (nextVertices[i] - prev) * percent; + } + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i], setup = setupVertices[i]; + vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; + } + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; + } + } + }; + return DeformTimeline; + }(CurveTimeline)); + spine.DeformTimeline = DeformTimeline; + var EventTimeline = (function () { + function EventTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.events = new Array(frameCount); + } + EventTimeline.prototype.getPropertyId = function () { + return TimelineType.event << 24; + }; + EventTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + EventTimeline.prototype.setFrame = function (frameIndex, event) { + this.frames[frameIndex] = event.time; + this.events[frameIndex] = event; + }; + EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + if (firedEvents == null) + return; + var frames = this.frames; + var frameCount = this.frames.length; + if (lastTime > time) { + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); + lastTime = -1; + } + else if (lastTime >= frames[frameCount - 1]) + return; + if (time < frames[0]) + return; + var frame = 0; + if (lastTime < frames[0]) + frame = 0; + else { + frame = Animation.binarySearch(frames, lastTime); + var frameTime = frames[frame]; + while (frame > 0) { + if (frames[frame - 1] != frameTime) + break; + frame--; + } + } + for (; frame < frameCount && time >= frames[frame]; frame++) + firedEvents.push(this.events[frame]); + }; + return EventTimeline; + }()); + spine.EventTimeline = EventTimeline; + var DrawOrderTimeline = (function () { + function DrawOrderTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.drawOrders = new Array(frameCount); + } + DrawOrderTimeline.prototype.getPropertyId = function () { + return TimelineType.drawOrder << 24; + }; + DrawOrderTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { + this.frames[frameIndex] = time; + this.drawOrders[frameIndex] = drawOrder; + }; + DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var drawOrder = skeleton.drawOrder; + var slots = skeleton.slots; + if (mixingOut && setupPose) { + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frame = 0; + if (time >= frames[frames.length - 1]) + frame = frames.length - 1; + else + frame = Animation.binarySearch(frames, time) - 1; + var drawOrderToSetupIndex = this.drawOrders[frame]; + if (drawOrderToSetupIndex == null) + spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); + else { + for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) + drawOrder[i] = slots[drawOrderToSetupIndex[i]]; + } + }; + return DrawOrderTimeline; + }()); + spine.DrawOrderTimeline = DrawOrderTimeline; + var IkConstraintTimeline = (function (_super) { + __extends(IkConstraintTimeline, _super); + function IkConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); + } + IkConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; + }; + IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { + frameIndex *= IkConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; + this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; + }; + IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.mix = constraint.data.mix; + constraint.bendDirection = constraint.data.bendDirection; + } + return; + } + if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { + if (setupPose) { + constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection + : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + return; + } + var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); + var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); + if (setupPose) { + constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + }; + IkConstraintTimeline.ENTRIES = 3; + IkConstraintTimeline.PREV_TIME = -3; + IkConstraintTimeline.PREV_MIX = -2; + IkConstraintTimeline.PREV_BEND_DIRECTION = -1; + IkConstraintTimeline.MIX = 1; + IkConstraintTimeline.BEND_DIRECTION = 2; + return IkConstraintTimeline; + }(CurveTimeline)); + spine.IkConstraintTimeline = IkConstraintTimeline; + var TransformConstraintTimeline = (function (_super) { + __extends(TransformConstraintTimeline, _super); + function TransformConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); + } + TransformConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; + }; + TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { + frameIndex *= TransformConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; + this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; + this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; + }; + TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.rotateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + return; + } + var rotate = 0, translate = 0, scale = 0, shear = 0; + if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { + var i = frames.length; + rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; + } + else { + var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); + rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; + scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; + shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; + } + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; + constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; + constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; + constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + constraint.scaleMix += (scale - constraint.scaleMix) * alpha; + constraint.shearMix += (shear - constraint.shearMix) * alpha; + } + }; + TransformConstraintTimeline.ENTRIES = 5; + TransformConstraintTimeline.PREV_TIME = -5; + TransformConstraintTimeline.PREV_ROTATE = -4; + TransformConstraintTimeline.PREV_TRANSLATE = -3; + TransformConstraintTimeline.PREV_SCALE = -2; + TransformConstraintTimeline.PREV_SHEAR = -1; + TransformConstraintTimeline.ROTATE = 1; + TransformConstraintTimeline.TRANSLATE = 2; + TransformConstraintTimeline.SCALE = 3; + TransformConstraintTimeline.SHEAR = 4; + return TransformConstraintTimeline; + }(CurveTimeline)); + spine.TransformConstraintTimeline = TransformConstraintTimeline; + var PathConstraintPositionTimeline = (function (_super) { + __extends(PathConstraintPositionTimeline, _super); + function PathConstraintPositionTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); + } + PathConstraintPositionTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; + }; + PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { + frameIndex *= PathConstraintPositionTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; + }; + PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.position = constraint.data.position; + return; + } + var position = 0; + if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) + position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); + position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); + position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; + } + if (setupPose) + constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; + else + constraint.position += (position - constraint.position) * alpha; + }; + PathConstraintPositionTimeline.ENTRIES = 2; + PathConstraintPositionTimeline.PREV_TIME = -2; + PathConstraintPositionTimeline.PREV_VALUE = -1; + PathConstraintPositionTimeline.VALUE = 1; + return PathConstraintPositionTimeline; + }(CurveTimeline)); + spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; + var PathConstraintSpacingTimeline = (function (_super) { + __extends(PathConstraintSpacingTimeline, _super); + function PathConstraintSpacingTimeline(frameCount) { + _super.call(this, frameCount); + } + PathConstraintSpacingTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; + }; + PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.spacing = constraint.data.spacing; + return; + } + var spacing = 0; + if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) + spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); + spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); + spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; + } + if (setupPose) + constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; + else + constraint.spacing += (spacing - constraint.spacing) * alpha; + }; + return PathConstraintSpacingTimeline; + }(PathConstraintPositionTimeline)); + spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; + var PathConstraintMixTimeline = (function (_super) { + __extends(PathConstraintMixTimeline, _super); + function PathConstraintMixTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); + } + PathConstraintMixTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; + }; + PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { + frameIndex *= PathConstraintMixTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; + }; + PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } + return; + } + var rotate = 0, translate = 0; + if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { + rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; + } + else { + var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); + rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; + } + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; + constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + } + }; + PathConstraintMixTimeline.ENTRIES = 3; + PathConstraintMixTimeline.PREV_TIME = -3; + PathConstraintMixTimeline.PREV_ROTATE = -2; + PathConstraintMixTimeline.PREV_TRANSLATE = -1; + PathConstraintMixTimeline.ROTATE = 1; + PathConstraintMixTimeline.TRANSLATE = 2; + return PathConstraintMixTimeline; + }(CurveTimeline)); + spine.PathConstraintMixTimeline = PathConstraintMixTimeline; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationState = (function () { - function AnimationState(data) { - this.tracks = new Array(); - this.events = new Array(); - this.listeners = new Array(); - this.queue = new EventQueue(this); - this.propertyIDs = new spine.IntSet(); - this.mixingTo = new Array(); - this.animationsChanged = false; - this.timeScale = 1; - this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); - this.data = data; - } - AnimationState.prototype.update = function (delta) { - delta *= this.timeScale; - var tracks = this.tracks; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null) - continue; - current.animationLast = current.nextAnimationLast; - current.trackLast = current.nextTrackLast; - var currentDelta = delta * current.timeScale; - if (current.delay > 0) { - current.delay -= currentDelta; - if (current.delay > 0) - continue; - currentDelta = -current.delay; - current.delay = 0; - } - var next = current.next; - if (next != null) { - var nextTime = current.trackLast - next.delay; - if (nextTime >= 0) { - next.delay = 0; - next.trackTime = nextTime + delta * next.timeScale; - current.trackTime += currentDelta; - this.setCurrent(i, next, true); - while (next.mixingFrom != null) { - next.mixTime += currentDelta; - next = next.mixingFrom; - } - continue; - } - } - else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { - tracks[i] = null; - this.queue.end(current); - this.disposeNext(current); - continue; - } - if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { - var from = current.mixingFrom; - current.mixingFrom = null; - while (from != null) { - this.queue.end(from); - from = from.mixingFrom; - } - } - current.trackTime += currentDelta; - } - this.queue.drain(); - }; - AnimationState.prototype.updateMixingFrom = function (to, delta) { - var from = to.mixingFrom; - if (from == null) - return true; - var finished = this.updateMixingFrom(from, delta); - if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { - if (from.totalAlpha == 0) { - to.mixingFrom = from.mixingFrom; - to.interruptAlpha = from.interruptAlpha; - this.queue.end(from); - } - return finished; - } - from.animationLast = from.nextAnimationLast; - from.trackLast = from.nextTrackLast; - from.trackTime += delta * from.timeScale; - to.mixTime += delta * to.timeScale; - return false; - }; - AnimationState.prototype.apply = function (skeleton) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (this.animationsChanged) - this._animationsChanged(); - var events = this.events; - var tracks = this.tracks; - var applied = false; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null || current.delay > 0) - continue; - applied = true; - var mix = current.alpha; - if (current.mixingFrom != null) - mix *= this.applyMixingFrom(current, skeleton); - else if (current.trackTime >= current.trackEnd && current.next == null) - mix = 0; - var animationLast = current.animationLast, animationTime = current.getAnimationTime(); - var timelineCount = current.animation.timelines.length; - var timelines = current.animation.timelines; - if (mix == 1) { - for (var ii = 0; ii < timelineCount; ii++) - timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); - } - else { - var timelineData = current.timelineData; - var firstFrame = current.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = current.timelinesRotation; - for (var ii = 0; ii < timelineCount; ii++) { - var timeline = timelines[ii]; - if (timeline instanceof spine.RotateTimeline) { - this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); - } - else - timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); - } - } - this.queueEvents(current, animationTime); - events.length = 0; - current.nextAnimationLast = animationTime; - current.nextTrackLast = current.trackTime; - } - this.queue.drain(); - return applied; - }; - AnimationState.prototype.applyMixingFrom = function (to, skeleton) { - var from = to.mixingFrom; - if (from.mixingFrom != null) - this.applyMixingFrom(from, skeleton); - var mix = 0; - if (to.mixDuration == 0) - mix = 1; - else { - mix = to.mixTime / to.mixDuration; - if (mix > 1) - mix = 1; - } - var events = mix < from.eventThreshold ? this.events : null; - var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; - var animationLast = from.animationLast, animationTime = from.getAnimationTime(); - var timelineCount = from.animation.timelines.length; - var timelines = from.animation.timelines; - var timelineData = from.timelineData; - var timelineDipMix = from.timelineDipMix; - var firstFrame = from.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = from.timelinesRotation; - var first = false; - var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; - from.totalAlpha = 0; - for (var i = 0; i < timelineCount; i++) { - var timeline = timelines[i]; - switch (timelineData[i]) { - case AnimationState.SUBSEQUENT: - first = false; - alpha = alphaMix; - break; - case AnimationState.FIRST: - first = true; - alpha = alphaMix; - break; - case AnimationState.DIP: - first = true; - alpha = alphaDip; - break; - default: - first = true; - alpha = alphaDip; - var dipMix = timelineDipMix[i]; - alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); - break; - } - from.totalAlpha += alpha; - if (timeline instanceof spine.RotateTimeline) - this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); - else { - if (!first) { - if (!attachments && timeline instanceof spine.AttachmentTimeline) - continue; - if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) - continue; - } - timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); - } - } - if (to.mixDuration > 0) - this.queueEvents(from, animationTime); - this.events.length = 0; - from.nextAnimationLast = animationTime; - from.nextTrackLast = from.trackTime; - return mix; - }; - AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { - if (firstFrame) - timelinesRotation[i] = 0; - if (alpha == 1) { - timeline.apply(skeleton, 0, time, null, 1, setupPose, false); - return; - } - var rotateTimeline = timeline; - var frames = rotateTimeline.frames; - var bone = skeleton.bones[rotateTimeline.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - var r2 = 0; - if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) - r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; - else { - var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); - var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); - r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - r2 = prevRotation + r2 * percent + bone.data.rotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - } - var r1 = setupPose ? bone.data.rotation : bone.rotation; - var total = 0, diff = r2 - r1; - if (diff == 0) { - total = timelinesRotation[i]; - } - else { - diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; - var lastTotal = 0, lastDiff = 0; - if (firstFrame) { - lastTotal = 0; - lastDiff = diff; - } - else { - lastTotal = timelinesRotation[i]; - lastDiff = timelinesRotation[i + 1]; - } - var current = diff > 0, dir = lastTotal >= 0; - if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { - if (Math.abs(lastTotal) > 180) - lastTotal += 360 * spine.MathUtils.signum(lastTotal); - dir = current; - } - total = diff + lastTotal - lastTotal % 360; - if (dir != current) - total += 360 * spine.MathUtils.signum(lastTotal); - timelinesRotation[i] = total; - } - timelinesRotation[i + 1] = diff; - r1 += total * alpha; - bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; - }; - AnimationState.prototype.queueEvents = function (entry, animationTime) { - var animationStart = entry.animationStart, animationEnd = entry.animationEnd; - var duration = animationEnd - animationStart; - var trackLastWrapped = entry.trackLast % duration; - var events = this.events; - var i = 0, n = events.length; - for (; i < n; i++) { - var event_1 = events[i]; - if (event_1.time < trackLastWrapped) - break; - if (event_1.time > animationEnd) - continue; - this.queue.event(entry, event_1); - } - if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) - : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { - this.queue.complete(entry); - } - for (; i < n; i++) { - var event_2 = events[i]; - if (event_2.time < animationStart) - continue; - this.queue.event(entry, events[i]); - } - }; - AnimationState.prototype.clearTracks = function () { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) - this.clearTrack(i); - this.tracks.length = 0; - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.clearTrack = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return; - var current = this.tracks[trackIndex]; - if (current == null) - return; - this.queue.end(current); - this.disposeNext(current); - var entry = current; - while (true) { - var from = entry.mixingFrom; - if (from == null) - break; - this.queue.end(from); - entry.mixingFrom = null; - entry = from; - } - this.tracks[current.trackIndex] = null; - this.queue.drain(); - }; - AnimationState.prototype.setCurrent = function (index, current, interrupt) { - var from = this.expandToIndex(index); - this.tracks[index] = current; - if (from != null) { - if (interrupt) - this.queue.interrupt(from); - current.mixingFrom = from; - current.mixTime = 0; - if (from.mixingFrom != null && from.mixDuration > 0) - current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); - from.timelinesRotation.length = 0; - } - this.queue.start(current); - }; - AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.setAnimationWith(trackIndex, animation, loop); - }; - AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { - if (animation == null) - throw new Error("animation cannot be null."); - var interrupt = true; - var current = this.expandToIndex(trackIndex); - if (current != null) { - if (current.nextTrackLast == -1) { - this.tracks[trackIndex] = current.mixingFrom; - this.queue.interrupt(current); - this.queue.end(current); - this.disposeNext(current); - current = current.mixingFrom; - interrupt = false; - } - else - this.disposeNext(current); - } - var entry = this.trackEntry(trackIndex, animation, loop, current); - this.setCurrent(trackIndex, entry, interrupt); - this.queue.drain(); - return entry; - }; - AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.addAnimationWith(trackIndex, animation, loop, delay); - }; - AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { - if (animation == null) - throw new Error("animation cannot be null."); - var last = this.expandToIndex(trackIndex); - if (last != null) { - while (last.next != null) - last = last.next; - } - var entry = this.trackEntry(trackIndex, animation, loop, last); - if (last == null) { - this.setCurrent(trackIndex, entry, true); - this.queue.drain(); - } - else { - last.next = entry; - if (delay <= 0) { - var duration = last.animationEnd - last.animationStart; - if (duration != 0) - delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); - else - delay = 0; - } - } - entry.delay = delay; - return entry; - }; - AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { - var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { - if (delay <= 0) - delay -= mixDuration; - var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.setEmptyAnimations = function (mixDuration) { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var current = this.tracks[i]; - if (current != null) - this.setEmptyAnimation(current.trackIndex, mixDuration); - } - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.expandToIndex = function (index) { - if (index < this.tracks.length) - return this.tracks[index]; - spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); - this.tracks.length = index + 1; - return null; - }; - AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { - var entry = this.trackEntryPool.obtain(); - entry.trackIndex = trackIndex; - entry.animation = animation; - entry.loop = loop; - entry.eventThreshold = 0; - entry.attachmentThreshold = 0; - entry.drawOrderThreshold = 0; - entry.animationStart = 0; - entry.animationEnd = animation.duration; - entry.animationLast = -1; - entry.nextAnimationLast = -1; - entry.delay = 0; - entry.trackTime = 0; - entry.trackLast = -1; - entry.nextTrackLast = -1; - entry.trackEnd = Number.MAX_VALUE; - entry.timeScale = 1; - entry.alpha = 1; - entry.interruptAlpha = 1; - entry.mixTime = 0; - entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); - return entry; - }; - AnimationState.prototype.disposeNext = function (entry) { - var next = entry.next; - while (next != null) { - this.queue.dispose(next); - next = next.next; - } - entry.next = null; - }; - AnimationState.prototype._animationsChanged = function () { - this.animationsChanged = false; - var propertyIDs = this.propertyIDs; - propertyIDs.clear(); - var mixingTo = this.mixingTo; - var lastEntry = null; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var entry = this.tracks[i]; - if (entry != null) { - entry.setTimelineData(lastEntry, mixingTo, propertyIDs); - lastEntry = entry; - } - } - }; - AnimationState.prototype.getCurrent = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return null; - return this.tracks[trackIndex]; - }; - AnimationState.prototype.addListener = function (listener) { - if (listener == null) - throw new Error("listener cannot be null."); - this.listeners.push(listener); - }; - AnimationState.prototype.removeListener = function (listener) { - var index = this.listeners.indexOf(listener); - if (index >= 0) - this.listeners.splice(index, 1); - }; - AnimationState.prototype.clearListeners = function () { - this.listeners.length = 0; - }; - AnimationState.prototype.clearListenerNotifications = function () { - this.queue.clear(); - }; - AnimationState.emptyAnimation = new spine.Animation("", [], 0); - AnimationState.SUBSEQUENT = 0; - AnimationState.FIRST = 1; - AnimationState.DIP = 2; - AnimationState.DIP_MIX = 3; - return AnimationState; - }()); - spine.AnimationState = AnimationState; - var TrackEntry = (function () { - function TrackEntry() { - this.timelineData = new Array(); - this.timelineDipMix = new Array(); - this.timelinesRotation = new Array(); - } - TrackEntry.prototype.reset = function () { - this.next = null; - this.mixingFrom = null; - this.animation = null; - this.listener = null; - this.timelineData.length = 0; - this.timelineDipMix.length = 0; - this.timelinesRotation.length = 0; - }; - TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { - if (to != null) - mixingToArray.push(to); - var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; - if (to != null) - mixingToArray.pop(); - var mixingTo = mixingToArray; - var mixingToLast = mixingToArray.length - 1; - var timelines = this.animation.timelines; - var timelinesCount = this.animation.timelines.length; - var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); - this.timelineDipMix.length = 0; - var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); - outer: for (var i = 0; i < timelinesCount; i++) { - var id = timelines[i].getPropertyId(); - if (!propertyIDs.add(id)) - timelineData[i] = AnimationState.SUBSEQUENT; - else if (to == null || !to.hasTimeline(id)) - timelineData[i] = AnimationState.FIRST; - else { - for (var ii = mixingToLast; ii >= 0; ii--) { - var entry = mixingTo[ii]; - if (!entry.hasTimeline(id)) { - if (entry.mixDuration > 0) { - timelineData[i] = AnimationState.DIP_MIX; - timelineDipMix[i] = entry; - continue outer; - } - } - } - timelineData[i] = AnimationState.DIP; - } - } - return lastEntry; - }; - TrackEntry.prototype.hasTimeline = function (id) { - var timelines = this.animation.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - if (timelines[i].getPropertyId() == id) - return true; - return false; - }; - TrackEntry.prototype.getAnimationTime = function () { - if (this.loop) { - var duration = this.animationEnd - this.animationStart; - if (duration == 0) - return this.animationStart; - return (this.trackTime % duration) + this.animationStart; - } - return Math.min(this.trackTime + this.animationStart, this.animationEnd); - }; - TrackEntry.prototype.setAnimationLast = function (animationLast) { - this.animationLast = animationLast; - this.nextAnimationLast = animationLast; - }; - TrackEntry.prototype.isComplete = function () { - return this.trackTime >= this.animationEnd - this.animationStart; - }; - TrackEntry.prototype.resetRotationDirections = function () { - this.timelinesRotation.length = 0; - }; - return TrackEntry; - }()); - spine.TrackEntry = TrackEntry; - var EventQueue = (function () { - function EventQueue(animState) { - this.objects = []; - this.drainDisabled = false; - this.animState = animState; - } - EventQueue.prototype.start = function (entry) { - this.objects.push(EventType.start); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.interrupt = function (entry) { - this.objects.push(EventType.interrupt); - this.objects.push(entry); - }; - EventQueue.prototype.end = function (entry) { - this.objects.push(EventType.end); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.dispose = function (entry) { - this.objects.push(EventType.dispose); - this.objects.push(entry); - }; - EventQueue.prototype.complete = function (entry) { - this.objects.push(EventType.complete); - this.objects.push(entry); - }; - EventQueue.prototype.event = function (entry, event) { - this.objects.push(EventType.event); - this.objects.push(entry); - this.objects.push(event); - }; - EventQueue.prototype.drain = function () { - if (this.drainDisabled) - return; - this.drainDisabled = true; - var objects = this.objects; - var listeners = this.animState.listeners; - for (var i = 0; i < objects.length; i += 2) { - var type = objects[i]; - var entry = objects[i + 1]; - switch (type) { - case EventType.start: - if (entry.listener != null && entry.listener.start) - entry.listener.start(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].start) - listeners[ii].start(entry); - break; - case EventType.interrupt: - if (entry.listener != null && entry.listener.interrupt) - entry.listener.interrupt(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].interrupt) - listeners[ii].interrupt(entry); - break; - case EventType.end: - if (entry.listener != null && entry.listener.end) - entry.listener.end(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].end) - listeners[ii].end(entry); - case EventType.dispose: - if (entry.listener != null && entry.listener.dispose) - entry.listener.dispose(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].dispose) - listeners[ii].dispose(entry); - this.animState.trackEntryPool.free(entry); - break; - case EventType.complete: - if (entry.listener != null && entry.listener.complete) - entry.listener.complete(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].complete) - listeners[ii].complete(entry); - break; - case EventType.event: - var event_3 = objects[i++ + 2]; - if (entry.listener != null && entry.listener.event) - entry.listener.event(entry, event_3); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].event) - listeners[ii].event(entry, event_3); - break; - } - } - this.clear(); - this.drainDisabled = false; - }; - EventQueue.prototype.clear = function () { - this.objects.length = 0; - }; - return EventQueue; - }()); - spine.EventQueue = EventQueue; - (function (EventType) { - EventType[EventType["start"] = 0] = "start"; - EventType[EventType["interrupt"] = 1] = "interrupt"; - EventType[EventType["end"] = 2] = "end"; - EventType[EventType["dispose"] = 3] = "dispose"; - EventType[EventType["complete"] = 4] = "complete"; - EventType[EventType["event"] = 5] = "event"; - })(spine.EventType || (spine.EventType = {})); - var EventType = spine.EventType; - var AnimationStateAdapter2 = (function () { - function AnimationStateAdapter2() { - } - AnimationStateAdapter2.prototype.start = function (entry) { - }; - AnimationStateAdapter2.prototype.interrupt = function (entry) { - }; - AnimationStateAdapter2.prototype.end = function (entry) { - }; - AnimationStateAdapter2.prototype.dispose = function (entry) { - }; - AnimationStateAdapter2.prototype.complete = function (entry) { - }; - AnimationStateAdapter2.prototype.event = function (entry, event) { - }; - return AnimationStateAdapter2; - }()); - spine.AnimationStateAdapter2 = AnimationStateAdapter2; + var AnimationState = (function () { + function AnimationState(data) { + this.tracks = new Array(); + this.events = new Array(); + this.listeners = new Array(); + this.queue = new EventQueue(this); + this.propertyIDs = new spine.IntSet(); + this.mixingTo = new Array(); + this.animationsChanged = false; + this.timeScale = 1; + this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); + this.data = data; + } + AnimationState.prototype.update = function (delta) { + delta *= this.timeScale; + var tracks = this.tracks; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null) + continue; + current.animationLast = current.nextAnimationLast; + current.trackLast = current.nextTrackLast; + var currentDelta = delta * current.timeScale; + if (current.delay > 0) { + current.delay -= currentDelta; + if (current.delay > 0) + continue; + currentDelta = -current.delay; + current.delay = 0; + } + var next = current.next; + if (next != null) { + var nextTime = current.trackLast - next.delay; + if (nextTime >= 0) { + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; + this.setCurrent(i, next, true); + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + } + else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; + } + if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { + var from = current.mixingFrom; + current.mixingFrom = null; + while (from != null) { + this.queue.end(from); + from = from.mixingFrom; + } + } + current.trackTime += currentDelta; + } + this.queue.drain(); + }; + AnimationState.prototype.updateMixingFrom = function (to, delta) { + var from = to.mixingFrom; + if (from == null) + return true; + var finished = this.updateMixingFrom(from, delta); + if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { + if (from.totalAlpha == 0) { + to.mixingFrom = from.mixingFrom; + to.interruptAlpha = from.interruptAlpha; + this.queue.end(from); + } + return finished; + } + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + from.trackTime += delta * from.timeScale; + to.mixTime += delta * to.timeScale; + return false; + }; + AnimationState.prototype.apply = function (skeleton) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (this.animationsChanged) + this._animationsChanged(); + var events = this.events; + var tracks = this.tracks; + var applied = false; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null || current.delay > 0) + continue; + applied = true; + var mix = current.alpha; + if (current.mixingFrom != null) + mix *= this.applyMixingFrom(current, skeleton); + else if (current.trackTime >= current.trackEnd && current.next == null) + mix = 0; + var animationLast = current.animationLast, animationTime = current.getAnimationTime(); + var timelineCount = current.animation.timelines.length; + var timelines = current.animation.timelines; + if (mix == 1) { + for (var ii = 0; ii < timelineCount; ii++) + timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); + } + else { + var timelineData = current.timelineData; + var firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = current.timelinesRotation; + for (var ii = 0; ii < timelineCount; ii++) { + var timeline = timelines[ii]; + if (timeline instanceof spine.RotateTimeline) { + this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); + } + else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); + } + } + this.queueEvents(current, animationTime); + events.length = 0; + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; + } + this.queue.drain(); + return applied; + }; + AnimationState.prototype.applyMixingFrom = function (to, skeleton) { + var from = to.mixingFrom; + if (from.mixingFrom != null) + this.applyMixingFrom(from, skeleton); + var mix = 0; + if (to.mixDuration == 0) + mix = 1; + else { + mix = to.mixTime / to.mixDuration; + if (mix > 1) + mix = 1; + } + var events = mix < from.eventThreshold ? this.events : null; + var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; + var animationLast = from.animationLast, animationTime = from.getAnimationTime(); + var timelineCount = from.animation.timelines.length; + var timelines = from.animation.timelines; + var timelineData = from.timelineData; + var timelineDipMix = from.timelineDipMix; + var firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = from.timelinesRotation; + var first = false; + var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; + from.totalAlpha = 0; + for (var i = 0; i < timelineCount; i++) { + var timeline = timelines[i]; + switch (timelineData[i]) { + case AnimationState.SUBSEQUENT: + first = false; + alpha = alphaMix; + break; + case AnimationState.FIRST: + first = true; + alpha = alphaMix; + break; + case AnimationState.DIP: + first = true; + alpha = alphaDip; + break; + default: + first = true; + alpha = alphaDip; + var dipMix = timelineDipMix[i]; + alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); + break; + } + from.totalAlpha += alpha; + if (timeline instanceof spine.RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); + else { + if (!first) { + if (!attachments && timeline instanceof spine.AttachmentTimeline) + continue; + if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) + continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); + } + } + if (to.mixDuration > 0) + this.queueEvents(from, animationTime); + this.events.length = 0; + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + }; + AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { + if (firstFrame) + timelinesRotation[i] = 0; + if (alpha == 1) { + timeline.apply(skeleton, 0, time, null, 1, setupPose, false); + return; + } + var rotateTimeline = timeline; + var frames = rotateTimeline.frames; + var bone = skeleton.bones[rotateTimeline.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + var r2 = 0; + if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) + r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; + else { + var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); + var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); + r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + r2 = prevRotation + r2 * percent + bone.data.rotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + } + var r1 = setupPose ? bone.data.rotation : bone.rotation; + var total = 0, diff = r2 - r1; + if (diff == 0) { + total = timelinesRotation[i]; + } + else { + diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; + var lastTotal = 0, lastDiff = 0; + if (firstFrame) { + lastTotal = 0; + lastDiff = diff; + } + else { + lastTotal = timelinesRotation[i]; + lastDiff = timelinesRotation[i + 1]; + } + var current = diff > 0, dir = lastTotal >= 0; + if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { + if (Math.abs(lastTotal) > 180) + lastTotal += 360 * spine.MathUtils.signum(lastTotal); + dir = current; + } + total = diff + lastTotal - lastTotal % 360; + if (dir != current) + total += 360 * spine.MathUtils.signum(lastTotal); + timelinesRotation[i] = total; + } + timelinesRotation[i + 1] = diff; + r1 += total * alpha; + bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; + }; + AnimationState.prototype.queueEvents = function (entry, animationTime) { + var animationStart = entry.animationStart, animationEnd = entry.animationEnd; + var duration = animationEnd - animationStart; + var trackLastWrapped = entry.trackLast % duration; + var events = this.events; + var i = 0, n = events.length; + for (; i < n; i++) { + var event_1 = events[i]; + if (event_1.time < trackLastWrapped) + break; + if (event_1.time > animationEnd) + continue; + this.queue.event(entry, event_1); + } + if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) + : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { + this.queue.complete(entry); + } + for (; i < n; i++) { + var event_2 = events[i]; + if (event_2.time < animationStart) + continue; + this.queue.event(entry, events[i]); + } + }; + AnimationState.prototype.clearTracks = function () { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) + this.clearTrack(i); + this.tracks.length = 0; + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.clearTrack = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return; + var current = this.tracks[trackIndex]; + if (current == null) + return; + this.queue.end(current); + this.disposeNext(current); + var entry = current; + while (true) { + var from = entry.mixingFrom; + if (from == null) + break; + this.queue.end(from); + entry.mixingFrom = null; + entry = from; + } + this.tracks[current.trackIndex] = null; + this.queue.drain(); + }; + AnimationState.prototype.setCurrent = function (index, current, interrupt) { + var from = this.expandToIndex(index); + this.tracks[index] = current; + if (from != null) { + if (interrupt) + this.queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + if (from.mixingFrom != null && from.mixDuration > 0) + current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); + from.timelinesRotation.length = 0; + } + this.queue.start(current); + }; + AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.setAnimationWith(trackIndex, animation, loop); + }; + AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { + if (animation == null) + throw new Error("animation cannot be null."); + var interrupt = true; + var current = this.expandToIndex(trackIndex); + if (current != null) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = current.mixingFrom; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = current.mixingFrom; + interrupt = false; + } + else + this.disposeNext(current); + } + var entry = this.trackEntry(trackIndex, animation, loop, current); + this.setCurrent(trackIndex, entry, interrupt); + this.queue.drain(); + return entry; + }; + AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.addAnimationWith(trackIndex, animation, loop, delay); + }; + AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { + if (animation == null) + throw new Error("animation cannot be null."); + var last = this.expandToIndex(trackIndex); + if (last != null) { + while (last.next != null) + last = last.next; + } + var entry = this.trackEntry(trackIndex, animation, loop, last); + if (last == null) { + this.setCurrent(trackIndex, entry, true); + this.queue.drain(); + } + else { + last.next = entry; + if (delay <= 0) { + var duration = last.animationEnd - last.animationStart; + if (duration != 0) + delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); + else + delay = 0; + } + } + entry.delay = delay; + return entry; + }; + AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { + var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { + if (delay <= 0) + delay -= mixDuration; + var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.setEmptyAnimations = function (mixDuration) { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var current = this.tracks[i]; + if (current != null) + this.setEmptyAnimation(current.trackIndex, mixDuration); + } + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.expandToIndex = function (index) { + if (index < this.tracks.length) + return this.tracks[index]; + spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); + this.tracks.length = index + 1; + return null; + }; + AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { + var entry = this.trackEntryPool.obtain(); + entry.trackIndex = trackIndex; + entry.animation = animation; + entry.loop = loop; + entry.eventThreshold = 0; + entry.attachmentThreshold = 0; + entry.drawOrderThreshold = 0; + entry.animationStart = 0; + entry.animationEnd = animation.duration; + entry.animationLast = -1; + entry.nextAnimationLast = -1; + entry.delay = 0; + entry.trackTime = 0; + entry.trackLast = -1; + entry.nextTrackLast = -1; + entry.trackEnd = Number.MAX_VALUE; + entry.timeScale = 1; + entry.alpha = 1; + entry.interruptAlpha = 1; + entry.mixTime = 0; + entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); + return entry; + }; + AnimationState.prototype.disposeNext = function (entry) { + var next = entry.next; + while (next != null) { + this.queue.dispose(next); + next = next.next; + } + entry.next = null; + }; + AnimationState.prototype._animationsChanged = function () { + this.animationsChanged = false; + var propertyIDs = this.propertyIDs; + propertyIDs.clear(); + var mixingTo = this.mixingTo; + var lastEntry = null; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var entry = this.tracks[i]; + if (entry != null) { + entry.setTimelineData(lastEntry, mixingTo, propertyIDs); + lastEntry = entry; + } + } + }; + AnimationState.prototype.getCurrent = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return null; + return this.tracks[trackIndex]; + }; + AnimationState.prototype.addListener = function (listener) { + if (listener == null) + throw new Error("listener cannot be null."); + this.listeners.push(listener); + }; + AnimationState.prototype.removeListener = function (listener) { + var index = this.listeners.indexOf(listener); + if (index >= 0) + this.listeners.splice(index, 1); + }; + AnimationState.prototype.clearListeners = function () { + this.listeners.length = 0; + }; + AnimationState.prototype.clearListenerNotifications = function () { + this.queue.clear(); + }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); + AnimationState.SUBSEQUENT = 0; + AnimationState.FIRST = 1; + AnimationState.DIP = 2; + AnimationState.DIP_MIX = 3; + return AnimationState; + }()); + spine.AnimationState = AnimationState; + var TrackEntry = (function () { + function TrackEntry() { + this.timelineData = new Array(); + this.timelineDipMix = new Array(); + this.timelinesRotation = new Array(); + } + TrackEntry.prototype.reset = function () { + this.next = null; + this.mixingFrom = null; + this.animation = null; + this.listener = null; + this.timelineData.length = 0; + this.timelineDipMix.length = 0; + this.timelinesRotation.length = 0; + }; + TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { + if (to != null) + mixingToArray.push(to); + var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; + if (to != null) + mixingToArray.pop(); + var mixingTo = mixingToArray; + var mixingToLast = mixingToArray.length - 1; + var timelines = this.animation.timelines; + var timelinesCount = this.animation.timelines.length; + var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); + this.timelineDipMix.length = 0; + var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); + outer: for (var i = 0; i < timelinesCount; i++) { + var id = timelines[i].getPropertyId(); + if (!propertyIDs.add(id)) + timelineData[i] = AnimationState.SUBSEQUENT; + else if (to == null || !to.hasTimeline(id)) + timelineData[i] = AnimationState.FIRST; + else { + for (var ii = mixingToLast; ii >= 0; ii--) { + var entry = mixingTo[ii]; + if (!entry.hasTimeline(id)) { + if (entry.mixDuration > 0) { + timelineData[i] = AnimationState.DIP_MIX; + timelineDipMix[i] = entry; + continue outer; + } + } + } + timelineData[i] = AnimationState.DIP; + } + } + return lastEntry; + }; + TrackEntry.prototype.hasTimeline = function (id) { + var timelines = this.animation.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + if (timelines[i].getPropertyId() == id) + return true; + return false; + }; + TrackEntry.prototype.getAnimationTime = function () { + if (this.loop) { + var duration = this.animationEnd - this.animationStart; + if (duration == 0) + return this.animationStart; + return (this.trackTime % duration) + this.animationStart; + } + return Math.min(this.trackTime + this.animationStart, this.animationEnd); + }; + TrackEntry.prototype.setAnimationLast = function (animationLast) { + this.animationLast = animationLast; + this.nextAnimationLast = animationLast; + }; + TrackEntry.prototype.isComplete = function () { + return this.trackTime >= this.animationEnd - this.animationStart; + }; + TrackEntry.prototype.resetRotationDirections = function () { + this.timelinesRotation.length = 0; + }; + return TrackEntry; + }()); + spine.TrackEntry = TrackEntry; + var EventQueue = (function () { + function EventQueue(animState) { + this.objects = []; + this.drainDisabled = false; + this.animState = animState; + } + EventQueue.prototype.start = function (entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.interrupt = function (entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); + }; + EventQueue.prototype.end = function (entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.dispose = function (entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); + }; + EventQueue.prototype.complete = function (entry) { + this.objects.push(EventType.complete); + this.objects.push(entry); + }; + EventQueue.prototype.event = function (entry, event) { + this.objects.push(EventType.event); + this.objects.push(entry); + this.objects.push(event); + }; + EventQueue.prototype.drain = function () { + if (this.drainDisabled) + return; + this.drainDisabled = true; + var objects = this.objects; + var listeners = this.animState.listeners; + for (var i = 0; i < objects.length; i += 2) { + var type = objects[i]; + var entry = objects[i + 1]; + switch (type) { + case EventType.start: + if (entry.listener != null && entry.listener.start) + entry.listener.start(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].start) + listeners[ii].start(entry); + break; + case EventType.interrupt: + if (entry.listener != null && entry.listener.interrupt) + entry.listener.interrupt(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].interrupt) + listeners[ii].interrupt(entry); + break; + case EventType.end: + if (entry.listener != null && entry.listener.end) + entry.listener.end(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].end) + listeners[ii].end(entry); + case EventType.dispose: + if (entry.listener != null && entry.listener.dispose) + entry.listener.dispose(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].dispose) + listeners[ii].dispose(entry); + this.animState.trackEntryPool.free(entry); + break; + case EventType.complete: + if (entry.listener != null && entry.listener.complete) + entry.listener.complete(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].complete) + listeners[ii].complete(entry); + break; + case EventType.event: + var event_3 = objects[i++ + 2]; + if (entry.listener != null && entry.listener.event) + entry.listener.event(entry, event_3); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].event) + listeners[ii].event(entry, event_3); + break; + } + } + this.clear(); + this.drainDisabled = false; + }; + EventQueue.prototype.clear = function () { + this.objects.length = 0; + }; + return EventQueue; + }()); + spine.EventQueue = EventQueue; + (function (EventType) { + EventType[EventType["start"] = 0] = "start"; + EventType[EventType["interrupt"] = 1] = "interrupt"; + EventType[EventType["end"] = 2] = "end"; + EventType[EventType["dispose"] = 3] = "dispose"; + EventType[EventType["complete"] = 4] = "complete"; + EventType[EventType["event"] = 5] = "event"; + })(spine.EventType || (spine.EventType = {})); + var EventType = spine.EventType; + var AnimationStateAdapter2 = (function () { + function AnimationStateAdapter2() { + } + AnimationStateAdapter2.prototype.start = function (entry) { + }; + AnimationStateAdapter2.prototype.interrupt = function (entry) { + }; + AnimationStateAdapter2.prototype.end = function (entry) { + }; + AnimationStateAdapter2.prototype.dispose = function (entry) { + }; + AnimationStateAdapter2.prototype.complete = function (entry) { + }; + AnimationStateAdapter2.prototype.event = function (entry, event) { + }; + return AnimationStateAdapter2; + }()); + spine.AnimationStateAdapter2 = AnimationStateAdapter2; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationStateData = (function () { - function AnimationStateData(skeletonData) { - this.animationToMixTime = {}; - this.defaultMix = 0; - if (skeletonData == null) - throw new Error("skeletonData cannot be null."); - this.skeletonData = skeletonData; - } - AnimationStateData.prototype.setMix = function (fromName, toName, duration) { - var from = this.skeletonData.findAnimation(fromName); - if (from == null) - throw new Error("Animation not found: " + fromName); - var to = this.skeletonData.findAnimation(toName); - if (to == null) - throw new Error("Animation not found: " + toName); - this.setMixWith(from, to, duration); - }; - AnimationStateData.prototype.setMixWith = function (from, to, duration) { - if (from == null) - throw new Error("from cannot be null."); - if (to == null) - throw new Error("to cannot be null."); - var key = from.name + to.name; - this.animationToMixTime[key] = duration; - }; - AnimationStateData.prototype.getMix = function (from, to) { - var key = from.name + to.name; - var value = this.animationToMixTime[key]; - return value === undefined ? this.defaultMix : value; - }; - return AnimationStateData; - }()); - spine.AnimationStateData = AnimationStateData; + var AnimationStateData = (function () { + function AnimationStateData(skeletonData) { + this.animationToMixTime = {}; + this.defaultMix = 0; + if (skeletonData == null) + throw new Error("skeletonData cannot be null."); + this.skeletonData = skeletonData; + } + AnimationStateData.prototype.setMix = function (fromName, toName, duration) { + var from = this.skeletonData.findAnimation(fromName); + if (from == null) + throw new Error("Animation not found: " + fromName); + var to = this.skeletonData.findAnimation(toName); + if (to == null) + throw new Error("Animation not found: " + toName); + this.setMixWith(from, to, duration); + }; + AnimationStateData.prototype.setMixWith = function (from, to, duration) { + if (from == null) + throw new Error("from cannot be null."); + if (to == null) + throw new Error("to cannot be null."); + var key = from.name + to.name; + this.animationToMixTime[key] = duration; + }; + AnimationStateData.prototype.getMix = function (from, to) { + var key = from.name + to.name; + var value = this.animationToMixTime[key]; + return value === undefined ? this.defaultMix : value; + }; + return AnimationStateData; + }()); + spine.AnimationStateData = AnimationStateData; })(spine || (spine = {})); var spine; (function (spine) { - var AssetManager = (function () { - function AssetManager(textureLoader, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.assets = {}; - this.errors = {}; - this.toLoad = 0; - this.loaded = 0; - this.textureLoader = textureLoader; - this.pathPrefix = pathPrefix; - } - AssetManager.prototype.loadText = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.assets[path] = request.responseText; - if (success) - success(path, request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - if (error) - error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); - } - _this.toLoad--; - _this.loaded++; - } - }; - request.open("GET", path, true); - request.send(); - }; - AssetManager.prototype.loadTexture = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = path; - }; - AssetManager.prototype.loadTextureData = function (path, data, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = data; - }; - AssetManager.prototype.get = function (path) { - path = this.pathPrefix + path; - return this.assets[path]; - }; - AssetManager.prototype.remove = function (path) { - path = this.pathPrefix + path; - var asset = this.assets[path]; - if (asset.dispose) - asset.dispose(); - this.assets[path] = null; - }; - AssetManager.prototype.removeAll = function () { - for (var key in this.assets) { - var asset = this.assets[key]; - if (asset.dispose) - asset.dispose(); - } - this.assets = {}; - }; - AssetManager.prototype.isLoadingComplete = function () { - return this.toLoad == 0; - }; - AssetManager.prototype.getToLoad = function () { - return this.toLoad; - }; - AssetManager.prototype.getLoaded = function () { - return this.loaded; - }; - AssetManager.prototype.dispose = function () { - this.removeAll(); - }; - AssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - AssetManager.prototype.getErrors = function () { - return this.errors; - }; - return AssetManager; - }()); - spine.AssetManager = AssetManager; + var AssetManager = (function () { + function AssetManager(textureLoader, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.assets = {}; + this.errors = {}; + this.toLoad = 0; + this.loaded = 0; + this.textureLoader = textureLoader; + this.pathPrefix = pathPrefix; + } + AssetManager.prototype.loadText = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.assets[path] = request.responseText; + if (success) + success(path, request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + if (error) + error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); + } + _this.toLoad--; + _this.loaded++; + } + }; + request.open("GET", path, true); + request.send(); + }; + AssetManager.prototype.loadTexture = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = path; + }; + AssetManager.prototype.loadTextureData = function (path, data, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = data; + }; + AssetManager.prototype.get = function (path) { + path = this.pathPrefix + path; + return this.assets[path]; + }; + AssetManager.prototype.remove = function (path) { + path = this.pathPrefix + path; + var asset = this.assets[path]; + if (asset.dispose) + asset.dispose(); + this.assets[path] = null; + }; + AssetManager.prototype.removeAll = function () { + for (var key in this.assets) { + var asset = this.assets[key]; + if (asset.dispose) + asset.dispose(); + } + this.assets = {}; + }; + AssetManager.prototype.isLoadingComplete = function () { + return this.toLoad == 0; + }; + AssetManager.prototype.getToLoad = function () { + return this.toLoad; + }; + AssetManager.prototype.getLoaded = function () { + return this.loaded; + }; + AssetManager.prototype.dispose = function () { + this.removeAll(); + }; + AssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + AssetManager.prototype.getErrors = function () { + return this.errors; + }; + return AssetManager; + }()); + spine.AssetManager = AssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var AtlasAttachmentLoader = (function () { - function AtlasAttachmentLoader(atlas) { - this.atlas = atlas; - } - AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.RegionAttachment(name); - attachment.setRegion(region); - return attachment; - }; - AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.MeshAttachment(name); - attachment.region = region; - return attachment; - }; - AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { - return new spine.BoundingBoxAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { - return new spine.PathAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { - return new spine.PointAttachment(name); - }; - AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { - return new spine.ClippingAttachment(name); - }; - return AtlasAttachmentLoader; - }()); - spine.AtlasAttachmentLoader = AtlasAttachmentLoader; + var AtlasAttachmentLoader = (function () { + function AtlasAttachmentLoader(atlas) { + this.atlas = atlas; + } + AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.RegionAttachment(name); + attachment.setRegion(region); + return attachment; + }; + AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.MeshAttachment(name); + attachment.region = region; + return attachment; + }; + AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { + return new spine.BoundingBoxAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { + return new spine.PathAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { + return new spine.PointAttachment(name); + }; + AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { + return new spine.ClippingAttachment(name); + }; + return AtlasAttachmentLoader; + }()); + spine.AtlasAttachmentLoader = AtlasAttachmentLoader; })(spine || (spine = {})); var spine; (function (spine) { - var Attachment = (function () { - function Attachment(name) { - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return Attachment; - }()); - spine.Attachment = Attachment; - var VertexAttachment = (function (_super) { - __extends(VertexAttachment, _super); - function VertexAttachment(name) { - _super.call(this, name); - this.worldVerticesLength = 0; - } - VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { - count = offset + (count >> 1) * stride; - var skeleton = slot.bone.skeleton; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices; - var bones = this.bones; - if (bones == null) { - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - var x = bone.worldX; - var y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { - var vx = vertices[v_1], vy = vertices[v_1 + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - } - return; - } - var v = 0, skip = 0; - for (var i = 0; i < start; i += 2) { - var n = bones[v]; - v += n + 1; - skip += n; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = offset, b = skip * 3; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - else { - var deform = deformArray; - for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3, f += 2) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - }; - VertexAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment; - }; - return VertexAttachment; - }(Attachment)); - spine.VertexAttachment = VertexAttachment; + var Attachment = (function () { + function Attachment(name) { + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return Attachment; + }()); + spine.Attachment = Attachment; + var VertexAttachment = (function (_super) { + __extends(VertexAttachment, _super); + function VertexAttachment(name) { + _super.call(this, name); + this.worldVerticesLength = 0; + } + VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { + count = offset + (count >> 1) * stride; + var skeleton = slot.bone.skeleton; + var deformArray = slot.attachmentVertices; + var vertices = this.vertices; + var bones = this.bones; + if (bones == null) { + if (deformArray.length > 0) + vertices = deformArray; + var bone = slot.bone; + var x = bone.worldX; + var y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { + var vx = vertices[v_1], vy = vertices[v_1 + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + } + return; + } + var v = 0, skip = 0; + for (var i = 0; i < start; i += 2) { + var n = bones[v]; + v += n + 1; + skip += n; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = offset, b = skip * 3; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + else { + var deform = deformArray; + for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3, f += 2) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + }; + VertexAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment; + }; + return VertexAttachment; + }(Attachment)); + spine.VertexAttachment = VertexAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (AttachmentType) { - AttachmentType[AttachmentType["Region"] = 0] = "Region"; - AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; - AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; - AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; - AttachmentType[AttachmentType["Path"] = 4] = "Path"; - AttachmentType[AttachmentType["Point"] = 5] = "Point"; - })(spine.AttachmentType || (spine.AttachmentType = {})); - var AttachmentType = spine.AttachmentType; + (function (AttachmentType) { + AttachmentType[AttachmentType["Region"] = 0] = "Region"; + AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; + AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; + AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; + AttachmentType[AttachmentType["Path"] = 4] = "Path"; + AttachmentType[AttachmentType["Point"] = 5] = "Point"; + })(spine.AttachmentType || (spine.AttachmentType = {})); + var AttachmentType = spine.AttachmentType; })(spine || (spine = {})); var spine; (function (spine) { - var BoundingBoxAttachment = (function (_super) { - __extends(BoundingBoxAttachment, _super); - function BoundingBoxAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - } - return BoundingBoxAttachment; - }(spine.VertexAttachment)); - spine.BoundingBoxAttachment = BoundingBoxAttachment; + var BoundingBoxAttachment = (function (_super) { + __extends(BoundingBoxAttachment, _super); + function BoundingBoxAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + } + return BoundingBoxAttachment; + }(spine.VertexAttachment)); + spine.BoundingBoxAttachment = BoundingBoxAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var ClippingAttachment = (function (_super) { - __extends(ClippingAttachment, _super); - function ClippingAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); - } - return ClippingAttachment; - }(spine.VertexAttachment)); - spine.ClippingAttachment = ClippingAttachment; + var ClippingAttachment = (function (_super) { + __extends(ClippingAttachment, _super); + function ClippingAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); + } + return ClippingAttachment; + }(spine.VertexAttachment)); + spine.ClippingAttachment = ClippingAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var MeshAttachment = (function (_super) { - __extends(MeshAttachment, _super); - function MeshAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - this.inheritDeform = false; - this.tempColor = new spine.Color(0, 0, 0, 0); - } - MeshAttachment.prototype.updateUVs = function () { - var u = 0, v = 0, width = 0, height = 0; - if (this.region == null) { - u = v = 0; - width = height = 1; - } - else { - u = this.region.u; - v = this.region.v; - width = this.region.u2 - u; - height = this.region.v2 - v; - } - var regionUVs = this.regionUVs; - if (this.uvs == null || this.uvs.length != regionUVs.length) - this.uvs = spine.Utils.newFloatArray(regionUVs.length); - var uvs = this.uvs; - if (this.region.rotate) { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i + 1] * width; - uvs[i + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i] * width; - uvs[i + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); - }; - MeshAttachment.prototype.getParentMesh = function () { - return this.parentMesh; - }; - MeshAttachment.prototype.setParentMesh = function (parentMesh) { - this.parentMesh = parentMesh; - if (parentMesh != null) { - this.bones = parentMesh.bones; - this.vertices = parentMesh.vertices; - this.worldVerticesLength = parentMesh.worldVerticesLength; - this.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - this.worldVerticesLength = parentMesh.worldVerticesLength; - } - }; - return MeshAttachment; - }(spine.VertexAttachment)); - spine.MeshAttachment = MeshAttachment; + var MeshAttachment = (function (_super) { + __extends(MeshAttachment, _super); + function MeshAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + this.inheritDeform = false; + this.tempColor = new spine.Color(0, 0, 0, 0); + } + MeshAttachment.prototype.updateUVs = function () { + var u = 0, v = 0, width = 0, height = 0; + if (this.region == null) { + u = v = 0; + width = height = 1; + } + else { + u = this.region.u; + v = this.region.v; + width = this.region.u2 - u; + height = this.region.v2 - v; + } + var regionUVs = this.regionUVs; + if (this.uvs == null || this.uvs.length != regionUVs.length) + this.uvs = spine.Utils.newFloatArray(regionUVs.length); + var uvs = this.uvs; + if (this.region.rotate) { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); + }; + MeshAttachment.prototype.getParentMesh = function () { + return this.parentMesh; + }; + MeshAttachment.prototype.setParentMesh = function (parentMesh) { + this.parentMesh = parentMesh; + if (parentMesh != null) { + this.bones = parentMesh.bones; + this.vertices = parentMesh.vertices; + this.worldVerticesLength = parentMesh.worldVerticesLength; + this.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + this.worldVerticesLength = parentMesh.worldVerticesLength; + } + }; + return MeshAttachment; + }(spine.VertexAttachment)); + spine.MeshAttachment = MeshAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PathAttachment = (function (_super) { - __extends(PathAttachment, _super); - function PathAttachment(name) { - _super.call(this, name); - this.closed = false; - this.constantSpeed = false; - this.color = new spine.Color(1, 1, 1, 1); - } - return PathAttachment; - }(spine.VertexAttachment)); - spine.PathAttachment = PathAttachment; + var PathAttachment = (function (_super) { + __extends(PathAttachment, _super); + function PathAttachment(name) { + _super.call(this, name); + this.closed = false; + this.constantSpeed = false; + this.color = new spine.Color(1, 1, 1, 1); + } + return PathAttachment; + }(spine.VertexAttachment)); + spine.PathAttachment = PathAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PointAttachment = (function (_super) { - __extends(PointAttachment, _super); - function PointAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.38, 0.94, 0, 1); - } - PointAttachment.prototype.computeWorldPosition = function (bone, point) { - point.x = this.x * bone.a + this.y * bone.b + bone.worldX; - point.y = this.x * bone.c + this.y * bone.d + bone.worldY; - return point; - }; - PointAttachment.prototype.computeWorldRotation = function (bone) { - var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); - var x = cos * bone.a + sin * bone.b; - var y = cos * bone.c + sin * bone.d; - return Math.atan2(y, x) * spine.MathUtils.radDeg; - }; - return PointAttachment; - }(spine.VertexAttachment)); - spine.PointAttachment = PointAttachment; + var PointAttachment = (function (_super) { + __extends(PointAttachment, _super); + function PointAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.38, 0.94, 0, 1); + } + PointAttachment.prototype.computeWorldPosition = function (bone, point) { + point.x = this.x * bone.a + this.y * bone.b + bone.worldX; + point.y = this.x * bone.c + this.y * bone.d + bone.worldY; + return point; + }; + PointAttachment.prototype.computeWorldRotation = function (bone) { + var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); + var x = cos * bone.a + sin * bone.b; + var y = cos * bone.c + sin * bone.d; + return Math.atan2(y, x) * spine.MathUtils.radDeg; + }; + return PointAttachment; + }(spine.VertexAttachment)); + spine.PointAttachment = PointAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var RegionAttachment = (function (_super) { - __extends(RegionAttachment, _super); - function RegionAttachment(name) { - _super.call(this, name); - this.x = 0; - this.y = 0; - this.scaleX = 1; - this.scaleY = 1; - this.rotation = 0; - this.width = 0; - this.height = 0; - this.color = new spine.Color(1, 1, 1, 1); - this.offset = spine.Utils.newFloatArray(8); - this.uvs = spine.Utils.newFloatArray(8); - this.tempColor = new spine.Color(1, 1, 1, 1); - } - RegionAttachment.prototype.updateOffset = function () { - var regionScaleX = this.width / this.region.originalWidth * this.scaleX; - var regionScaleY = this.height / this.region.originalHeight * this.scaleY; - var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; - var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; - var localX2 = localX + this.region.width * regionScaleX; - var localY2 = localY + this.region.height * regionScaleY; - var radians = this.rotation * Math.PI / 180; - var cos = Math.cos(radians); - var sin = Math.sin(radians); - var localXCos = localX * cos + this.x; - var localXSin = localX * sin; - var localYCos = localY * cos + this.y; - var localYSin = localY * sin; - var localX2Cos = localX2 * cos + this.x; - var localX2Sin = localX2 * sin; - var localY2Cos = localY2 * cos + this.y; - var localY2Sin = localY2 * sin; - var offset = this.offset; - offset[RegionAttachment.OX1] = localXCos - localYSin; - offset[RegionAttachment.OY1] = localYCos + localXSin; - offset[RegionAttachment.OX2] = localXCos - localY2Sin; - offset[RegionAttachment.OY2] = localY2Cos + localXSin; - offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; - offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; - offset[RegionAttachment.OX4] = localX2Cos - localYSin; - offset[RegionAttachment.OY4] = localYCos + localX2Sin; - }; - RegionAttachment.prototype.setRegion = function (region) { - this.region = region; - var uvs = this.uvs; - if (region.rotate) { - uvs[2] = region.u; - uvs[3] = region.v2; - uvs[4] = region.u; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v; - uvs[0] = region.u2; - uvs[1] = region.v2; - } - else { - uvs[0] = region.u; - uvs[1] = region.v2; - uvs[2] = region.u; - uvs[3] = region.v; - uvs[4] = region.u2; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v2; - } - }; - RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { - var vertexOffset = this.offset; - var x = bone.worldX, y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = vertexOffset[RegionAttachment.OX1]; - offsetY = vertexOffset[RegionAttachment.OY1]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX2]; - offsetY = vertexOffset[RegionAttachment.OY2]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX3]; - offsetY = vertexOffset[RegionAttachment.OY3]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX4]; - offsetY = vertexOffset[RegionAttachment.OY4]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - }; - RegionAttachment.OX1 = 0; - RegionAttachment.OY1 = 1; - RegionAttachment.OX2 = 2; - RegionAttachment.OY2 = 3; - RegionAttachment.OX3 = 4; - RegionAttachment.OY3 = 5; - RegionAttachment.OX4 = 6; - RegionAttachment.OY4 = 7; - RegionAttachment.X1 = 0; - RegionAttachment.Y1 = 1; - RegionAttachment.C1R = 2; - RegionAttachment.C1G = 3; - RegionAttachment.C1B = 4; - RegionAttachment.C1A = 5; - RegionAttachment.U1 = 6; - RegionAttachment.V1 = 7; - RegionAttachment.X2 = 8; - RegionAttachment.Y2 = 9; - RegionAttachment.C2R = 10; - RegionAttachment.C2G = 11; - RegionAttachment.C2B = 12; - RegionAttachment.C2A = 13; - RegionAttachment.U2 = 14; - RegionAttachment.V2 = 15; - RegionAttachment.X3 = 16; - RegionAttachment.Y3 = 17; - RegionAttachment.C3R = 18; - RegionAttachment.C3G = 19; - RegionAttachment.C3B = 20; - RegionAttachment.C3A = 21; - RegionAttachment.U3 = 22; - RegionAttachment.V3 = 23; - RegionAttachment.X4 = 24; - RegionAttachment.Y4 = 25; - RegionAttachment.C4R = 26; - RegionAttachment.C4G = 27; - RegionAttachment.C4B = 28; - RegionAttachment.C4A = 29; - RegionAttachment.U4 = 30; - RegionAttachment.V4 = 31; - return RegionAttachment; - }(spine.Attachment)); - spine.RegionAttachment = RegionAttachment; + var RegionAttachment = (function (_super) { + __extends(RegionAttachment, _super); + function RegionAttachment(name) { + _super.call(this, name); + this.x = 0; + this.y = 0; + this.scaleX = 1; + this.scaleY = 1; + this.rotation = 0; + this.width = 0; + this.height = 0; + this.color = new spine.Color(1, 1, 1, 1); + this.offset = spine.Utils.newFloatArray(8); + this.uvs = spine.Utils.newFloatArray(8); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.updateOffset = function () { + var regionScaleX = this.width / this.region.originalWidth * this.scaleX; + var regionScaleY = this.height / this.region.originalHeight * this.scaleY; + var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; + var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; + var localX2 = localX + this.region.width * regionScaleX; + var localY2 = localY + this.region.height * regionScaleY; + var radians = this.rotation * Math.PI / 180; + var cos = Math.cos(radians); + var sin = Math.sin(radians); + var localXCos = localX * cos + this.x; + var localXSin = localX * sin; + var localYCos = localY * cos + this.y; + var localYSin = localY * sin; + var localX2Cos = localX2 * cos + this.x; + var localX2Sin = localX2 * sin; + var localY2Cos = localY2 * cos + this.y; + var localY2Sin = localY2 * sin; + var offset = this.offset; + offset[RegionAttachment.OX1] = localXCos - localYSin; + offset[RegionAttachment.OY1] = localYCos + localXSin; + offset[RegionAttachment.OX2] = localXCos - localY2Sin; + offset[RegionAttachment.OY2] = localY2Cos + localXSin; + offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; + offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; + offset[RegionAttachment.OX4] = localX2Cos - localYSin; + offset[RegionAttachment.OY4] = localYCos + localX2Sin; + }; + RegionAttachment.prototype.setRegion = function (region) { + this.region = region; + var uvs = this.uvs; + if (region.rotate) { + uvs[2] = region.u; + uvs[3] = region.v2; + uvs[4] = region.u; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v; + uvs[0] = region.u2; + uvs[1] = region.v2; + } + else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; + } + }; + RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { + var vertexOffset = this.offset; + var x = bone.worldX, y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var offsetX = 0, offsetY = 0; + offsetX = vertexOffset[RegionAttachment.OX1]; + offsetY = vertexOffset[RegionAttachment.OY1]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX2]; + offsetY = vertexOffset[RegionAttachment.OY2]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX3]; + offsetY = vertexOffset[RegionAttachment.OY3]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX4]; + offsetY = vertexOffset[RegionAttachment.OY4]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + }; + RegionAttachment.OX1 = 0; + RegionAttachment.OY1 = 1; + RegionAttachment.OX2 = 2; + RegionAttachment.OY2 = 3; + RegionAttachment.OX3 = 4; + RegionAttachment.OY3 = 5; + RegionAttachment.OX4 = 6; + RegionAttachment.OY4 = 7; + RegionAttachment.X1 = 0; + RegionAttachment.Y1 = 1; + RegionAttachment.C1R = 2; + RegionAttachment.C1G = 3; + RegionAttachment.C1B = 4; + RegionAttachment.C1A = 5; + RegionAttachment.U1 = 6; + RegionAttachment.V1 = 7; + RegionAttachment.X2 = 8; + RegionAttachment.Y2 = 9; + RegionAttachment.C2R = 10; + RegionAttachment.C2G = 11; + RegionAttachment.C2B = 12; + RegionAttachment.C2A = 13; + RegionAttachment.U2 = 14; + RegionAttachment.V2 = 15; + RegionAttachment.X3 = 16; + RegionAttachment.Y3 = 17; + RegionAttachment.C3R = 18; + RegionAttachment.C3G = 19; + RegionAttachment.C3B = 20; + RegionAttachment.C3A = 21; + RegionAttachment.U3 = 22; + RegionAttachment.V3 = 23; + RegionAttachment.X4 = 24; + RegionAttachment.Y4 = 25; + RegionAttachment.C4R = 26; + RegionAttachment.C4G = 27; + RegionAttachment.C4B = 28; + RegionAttachment.C4A = 29; + RegionAttachment.U4 = 30; + RegionAttachment.V4 = 31; + return RegionAttachment; + }(spine.Attachment)); + spine.RegionAttachment = RegionAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (BlendMode) { - BlendMode[BlendMode["Normal"] = 0] = "Normal"; - BlendMode[BlendMode["Additive"] = 1] = "Additive"; - BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; - BlendMode[BlendMode["Screen"] = 3] = "Screen"; - })(spine.BlendMode || (spine.BlendMode = {})); - var BlendMode = spine.BlendMode; + (function (BlendMode) { + BlendMode[BlendMode["Normal"] = 0] = "Normal"; + BlendMode[BlendMode["Additive"] = 1] = "Additive"; + BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; + BlendMode[BlendMode["Screen"] = 3] = "Screen"; + })(spine.BlendMode || (spine.BlendMode = {})); + var BlendMode = spine.BlendMode; })(spine || (spine = {})); var spine; (function (spine) { - var Bone = (function () { - function Bone(data, skeleton, parent) { - this.children = new Array(); - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 0; - this.scaleY = 0; - this.shearX = 0; - this.shearY = 0; - this.ax = 0; - this.ay = 0; - this.arotation = 0; - this.ascaleX = 0; - this.ascaleY = 0; - this.ashearX = 0; - this.ashearY = 0; - this.appliedValid = false; - this.a = 0; - this.b = 0; - this.worldX = 0; - this.c = 0; - this.d = 0; - this.worldY = 0; - this.sorted = false; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.skeleton = skeleton; - this.parent = parent; - this.setToSetupPose(); - } - Bone.prototype.update = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransform = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { - this.ax = x; - this.ay = y; - this.arotation = rotation; - this.ascaleX = scaleX; - this.ascaleY = scaleY; - this.ashearX = shearX; - this.ashearY = shearY; - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - var skeleton = this.skeleton; - if (skeleton.flipX) { - x = -x; - la = -la; - lb = -lb; - } - if (skeleton.flipY) { - y = -y; - lc = -lc; - ld = -ld; - } - this.a = la; - this.b = lb; - this.c = lc; - this.d = ld; - this.worldX = x + skeleton.x; - this.worldY = y + skeleton.y; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - this.worldX = pa * x + pb * y + parent.worldX; - this.worldY = pc * x + pd * y + parent.worldY; - switch (this.data.transformMode) { - case spine.TransformMode.Normal: { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - return; - } - case spine.TransformMode.OnlyTranslation: { - var rotationY = rotation + 90 + shearY; - this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; - this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; - break; - } - case spine.TransformMode.NoRotationOrReflection: { - var s = pa * pa + pc * pc; - var prx = 0; - if (s > 0.0001) { - s = Math.abs(pa * pd - pb * pc) / s; - pb = pc * s; - pd = pa * s; - prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; - } - else { - pa = 0; - pc = 0; - prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; - } - var rx = rotation + shearX - prx; - var ry = rotation + shearY - prx + 90; - var la = spine.MathUtils.cosDeg(rx) * scaleX; - var lb = spine.MathUtils.cosDeg(ry) * scaleY; - var lc = spine.MathUtils.sinDeg(rx) * scaleX; - var ld = spine.MathUtils.sinDeg(ry) * scaleY; - this.a = pa * la - pb * lc; - this.b = pa * lb - pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - break; - } - case spine.TransformMode.NoScale: - case spine.TransformMode.NoScaleOrReflection: { - var cos = spine.MathUtils.cosDeg(rotation); - var sin = spine.MathUtils.sinDeg(rotation); - var za = pa * cos + pb * sin; - var zc = pc * cos + pd * sin; - var s = Math.sqrt(za * za + zc * zc); - if (s > 0.00001) - s = 1 / s; - za *= s; - zc *= s; - s = Math.sqrt(za * za + zc * zc); - var r = Math.PI / 2 + Math.atan2(zc, za); - var zb = Math.cos(r) * s; - var zd = Math.sin(r) * s; - var la = spine.MathUtils.cosDeg(shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; - var lc = spine.MathUtils.sinDeg(shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; - this.a = za * la + zb * lc; - this.b = za * lb + zb * ld; - this.c = zc * la + zd * lc; - this.d = zc * lb + zd * ld; - if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { - this.b = -this.b; - this.d = -this.d; - } - return; - } - } - if (this.skeleton.flipX) { - this.a = -this.a; - this.b = -this.b; - } - if (this.skeleton.flipY) { - this.c = -this.c; - this.d = -this.d; - } - }; - Bone.prototype.setToSetupPose = function () { - var data = this.data; - this.x = data.x; - this.y = data.y; - this.rotation = data.rotation; - this.scaleX = data.scaleX; - this.scaleY = data.scaleY; - this.shearX = data.shearX; - this.shearY = data.shearY; - }; - Bone.prototype.getWorldRotationX = function () { - return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldRotationY = function () { - return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldScaleX = function () { - return Math.sqrt(this.a * this.a + this.c * this.c); - }; - Bone.prototype.getWorldScaleY = function () { - return Math.sqrt(this.b * this.b + this.d * this.d); - }; - Bone.prototype.updateAppliedTransform = function () { - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - this.ax = this.worldX; - this.ay = this.worldY; - this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); - this.ashearX = 0; - this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - var pid = 1 / (pa * pd - pb * pc); - var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; - this.ax = (dx * pd * pid - dy * pb * pid); - this.ay = (dy * pa * pid - dx * pc * pid); - var ia = pid * pd; - var id = pid * pa; - var ib = pid * pb; - var ic = pid * pc; - var ra = ia * this.a - ib * this.c; - var rb = ia * this.b - ib * this.d; - var rc = id * this.c - ic * this.a; - var rd = id * this.d - ic * this.b; - this.ashearX = 0; - this.ascaleX = Math.sqrt(ra * ra + rc * rc); - if (this.ascaleX > 0.0001) { - var det = ra * rd - rb * rc; - this.ascaleY = det / this.ascaleX; - this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; - this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; - } - else { - this.ascaleX = 0; - this.ascaleY = Math.sqrt(rb * rb + rd * rd); - this.ashearY = 0; - this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; - } - }; - Bone.prototype.worldToLocal = function (world) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var invDet = 1 / (a * d - b * c); - var x = world.x - this.worldX, y = world.y - this.worldY; - world.x = (x * d * invDet - y * b * invDet); - world.y = (y * a * invDet - x * c * invDet); - return world; - }; - Bone.prototype.localToWorld = function (local) { - var x = local.x, y = local.y; - local.x = x * this.a + y * this.b + this.worldX; - local.y = x * this.c + y * this.d + this.worldY; - return local; - }; - Bone.prototype.worldToLocalRotation = function (worldRotation) { - var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); - return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; - }; - Bone.prototype.localToWorldRotation = function (localRotation) { - var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); - return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.rotateWorld = function (degrees) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); - this.a = cos * a - sin * c; - this.b = cos * b - sin * d; - this.c = sin * a + cos * c; - this.d = sin * b + cos * d; - this.appliedValid = false; - }; - return Bone; - }()); - spine.Bone = Bone; + var Bone = (function () { + function Bone(data, skeleton, parent) { + this.children = new Array(); + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 0; + this.scaleY = 0; + this.shearX = 0; + this.shearY = 0; + this.ax = 0; + this.ay = 0; + this.arotation = 0; + this.ascaleX = 0; + this.ascaleY = 0; + this.ashearX = 0; + this.ashearY = 0; + this.appliedValid = false; + this.a = 0; + this.b = 0; + this.worldX = 0; + this.c = 0; + this.d = 0; + this.worldY = 0; + this.sorted = false; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.skeleton = skeleton; + this.parent = parent; + this.setToSetupPose(); + } + Bone.prototype.update = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransform = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { + this.ax = x; + this.ay = y; + this.arotation = rotation; + this.ascaleX = scaleX; + this.ascaleY = scaleY; + this.ashearX = shearX; + this.ashearY = shearY; + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + var skeleton = this.skeleton; + if (skeleton.flipX) { + x = -x; + la = -la; + lb = -lb; + } + if (skeleton.flipY) { + y = -y; + lc = -lc; + ld = -ld; + } + this.a = la; + this.b = lb; + this.c = lc; + this.d = ld; + this.worldX = x + skeleton.x; + this.worldY = y + skeleton.y; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + this.worldX = pa * x + pb * y + parent.worldX; + this.worldY = pc * x + pd * y + parent.worldY; + switch (this.data.transformMode) { + case spine.TransformMode.Normal: { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + this.a = pa * la + pb * lc; + this.b = pa * lb + pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + return; + } + case spine.TransformMode.OnlyTranslation: { + var rotationY = rotation + 90 + shearY; + this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; + this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; + break; + } + case spine.TransformMode.NoRotationOrReflection: { + var s = pa * pa + pc * pc; + var prx = 0; + if (s > 0.0001) { + s = Math.abs(pa * pd - pb * pc) / s; + pb = pc * s; + pd = pa * s; + prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; + } + else { + pa = 0; + pc = 0; + prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; + } + var rx = rotation + shearX - prx; + var ry = rotation + shearY - prx + 90; + var la = spine.MathUtils.cosDeg(rx) * scaleX; + var lb = spine.MathUtils.cosDeg(ry) * scaleY; + var lc = spine.MathUtils.sinDeg(rx) * scaleX; + var ld = spine.MathUtils.sinDeg(ry) * scaleY; + this.a = pa * la - pb * lc; + this.b = pa * lb - pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + break; + } + case spine.TransformMode.NoScale: + case spine.TransformMode.NoScaleOrReflection: { + var cos = spine.MathUtils.cosDeg(rotation); + var sin = spine.MathUtils.sinDeg(rotation); + var za = pa * cos + pb * sin; + var zc = pc * cos + pd * sin; + var s = Math.sqrt(za * za + zc * zc); + if (s > 0.00001) + s = 1 / s; + za *= s; + zc *= s; + s = Math.sqrt(za * za + zc * zc); + var r = Math.PI / 2 + Math.atan2(zc, za); + var zb = Math.cos(r) * s; + var zd = Math.sin(r) * s; + var la = spine.MathUtils.cosDeg(shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; + var lc = spine.MathUtils.sinDeg(shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; + this.a = za * la + zb * lc; + this.b = za * lb + zb * ld; + this.c = zc * la + zd * lc; + this.d = zc * lb + zd * ld; + if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { + this.b = -this.b; + this.d = -this.d; + } + return; + } + } + if (this.skeleton.flipX) { + this.a = -this.a; + this.b = -this.b; + } + if (this.skeleton.flipY) { + this.c = -this.c; + this.d = -this.d; + } + }; + Bone.prototype.setToSetupPose = function () { + var data = this.data; + this.x = data.x; + this.y = data.y; + this.rotation = data.rotation; + this.scaleX = data.scaleX; + this.scaleY = data.scaleY; + this.shearX = data.shearX; + this.shearY = data.shearY; + }; + Bone.prototype.getWorldRotationX = function () { + return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldRotationY = function () { + return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldScaleX = function () { + return Math.sqrt(this.a * this.a + this.c * this.c); + }; + Bone.prototype.getWorldScaleY = function () { + return Math.sqrt(this.b * this.b + this.d * this.d); + }; + Bone.prototype.updateAppliedTransform = function () { + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + this.ax = this.worldX; + this.ay = this.worldY; + this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); + this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); + this.ashearX = 0; + this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + var pid = 1 / (pa * pd - pb * pc); + var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; + this.ax = (dx * pd * pid - dy * pb * pid); + this.ay = (dy * pa * pid - dx * pc * pid); + var ia = pid * pd; + var id = pid * pa; + var ib = pid * pb; + var ic = pid * pc; + var ra = ia * this.a - ib * this.c; + var rb = ia * this.b - ib * this.d; + var rc = id * this.c - ic * this.a; + var rd = id * this.d - ic * this.b; + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { + var det = ra * rd - rb * rc; + this.ascaleY = det / this.ascaleX; + this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; + this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; + } + else { + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; + } + }; + Bone.prototype.worldToLocal = function (world) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var invDet = 1 / (a * d - b * c); + var x = world.x - this.worldX, y = world.y - this.worldY; + world.x = (x * d * invDet - y * b * invDet); + world.y = (y * a * invDet - x * c * invDet); + return world; + }; + Bone.prototype.localToWorld = function (local) { + var x = local.x, y = local.y; + local.x = x * this.a + y * this.b + this.worldX; + local.y = x * this.c + y * this.d + this.worldY; + return local; + }; + Bone.prototype.worldToLocalRotation = function (worldRotation) { + var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); + return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; + }; + Bone.prototype.localToWorldRotation = function (localRotation) { + var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); + return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.rotateWorld = function (degrees) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); + this.a = cos * a - sin * c; + this.b = cos * b - sin * d; + this.c = sin * a + cos * c; + this.d = sin * b + cos * d; + this.appliedValid = false; + }; + return Bone; + }()); + spine.Bone = Bone; })(spine || (spine = {})); var spine; (function (spine) { - var BoneData = (function () { - function BoneData(index, name, parent) { - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 1; - this.scaleY = 1; - this.shearX = 0; - this.shearY = 0; - this.transformMode = TransformMode.Normal; - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - this.index = index; - this.name = name; - this.parent = parent; - } - return BoneData; - }()); - spine.BoneData = BoneData; - (function (TransformMode) { - TransformMode[TransformMode["Normal"] = 0] = "Normal"; - TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; - TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; - TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; - TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; - })(spine.TransformMode || (spine.TransformMode = {})); - var TransformMode = spine.TransformMode; + var BoneData = (function () { + function BoneData(index, name, parent) { + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 1; + this.scaleY = 1; + this.shearX = 0; + this.shearY = 0; + this.transformMode = TransformMode.Normal; + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + this.index = index; + this.name = name; + this.parent = parent; + } + return BoneData; + }()); + spine.BoneData = BoneData; + (function (TransformMode) { + TransformMode[TransformMode["Normal"] = 0] = "Normal"; + TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; + TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; + TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; + TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; + })(spine.TransformMode || (spine.TransformMode = {})); + var TransformMode = spine.TransformMode; })(spine || (spine = {})); var spine; (function (spine) { - var Event = (function () { - function Event(time, data) { - if (data == null) - throw new Error("data cannot be null."); - this.time = time; - this.data = data; - } - return Event; - }()); - spine.Event = Event; + var Event = (function () { + function Event(time, data) { + if (data == null) + throw new Error("data cannot be null."); + this.time = time; + this.data = data; + } + return Event; + }()); + spine.Event = Event; })(spine || (spine = {})); var spine; (function (spine) { - var EventData = (function () { - function EventData(name) { - this.name = name; - } - return EventData; - }()); - spine.EventData = EventData; + var EventData = (function () { + function EventData(name) { + this.name = name; + } + return EventData; + }()); + spine.EventData = EventData; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraint = (function () { - function IkConstraint(data, skeleton) { - this.mix = 1; - this.bendDirection = 0; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.mix = data.mix; - this.bendDirection = data.bendDirection; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - IkConstraint.prototype.getOrder = function () { - return this.data.order; - }; - IkConstraint.prototype.apply = function () { - this.update(); - }; - IkConstraint.prototype.update = function () { - var target = this.target; - var bones = this.bones; - switch (bones.length) { - case 1: - this.apply1(bones[0], target.worldX, target.worldY, this.mix); - break; - case 2: - this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); - break; - } - }; - IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var p = bone.parent; - var id = 1 / (p.a * p.d - p.b * p.c); - var x = targetX - p.worldX, y = targetY - p.worldY; - var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; - var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; - if (bone.ascaleX < 0) - rotationIK += 180; - if (rotationIK > 180) - rotationIK -= 360; - else if (rotationIK < -180) - rotationIK += 360; - bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); - }; - IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { - if (alpha == 0) { - child.updateWorldTransform(); - return; - } - if (!parent.appliedValid) - parent.updateAppliedTransform(); - if (!child.appliedValid) - child.updateAppliedTransform(); - var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; - var os1 = 0, os2 = 0, s2 = 0; - if (psx < 0) { - psx = -psx; - os1 = 180; - s2 = -1; - } - else { - os1 = 0; - s2 = 1; - } - if (psy < 0) { - psy = -psy; - s2 = -s2; - } - if (csx < 0) { - csx = -csx; - os2 = 180; - } - else - os2 = 0; - var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; - var u = Math.abs(psx - psy) <= 0.0001; - if (!u) { - cy = 0; - cwx = a * cx + parent.worldX; - cwy = c * cx + parent.worldY; - } - else { - cy = child.ay; - cwx = a * cx + b * cy + parent.worldX; - cwy = c * cx + d * cy + parent.worldY; - } - var pp = parent.parent; - a = pp.a; - b = pp.b; - c = pp.c; - d = pp.d; - var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; - var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; - x = cwx - pp.worldX; - y = cwy - pp.worldY; - var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; - var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; - outer: if (u) { - l2 *= psx; - var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); - if (cos < -1) - cos = -1; - else if (cos > 1) - cos = 1; - a2 = Math.acos(cos) * bendDir; - a = l1 + l2 * cos; - b = l2 * Math.sin(a2); - a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); - } - else { - a = psx * l2; - b = psy * l2; - var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); - c = bb * l1 * l1 + aa * dd - aa * bb; - var c1 = -2 * bb * l1, c2 = bb - aa; - d = c1 * c1 - 4 * c2 * c; - if (d >= 0) { - var q = Math.sqrt(d); - if (c1 < 0) - q = -q; - q = -(c1 + q) / 2; - var r0 = q / c2, r1 = c / q; - var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; - if (r * r <= dd) { - y = Math.sqrt(dd - r * r) * bendDir; - a1 = ta - Math.atan2(y, r); - a2 = Math.atan2(y / psy, (r - l1) / psx); - break outer; - } - } - var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; - var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; - c = -a * l1 / (aa - bb); - if (c >= -1 && c <= 1) { - c = Math.acos(c); - x = a * Math.cos(c) + l1; - y = b * Math.sin(c); - d = x * x + y * y; - if (d < minDist) { - minAngle = c; - minDist = d; - minX = x; - minY = y; - } - if (d > maxDist) { - maxAngle = c; - maxDist = d; - maxX = x; - maxY = y; - } - } - if (dd <= (minDist + maxDist) / 2) { - a1 = ta - Math.atan2(minY * bendDir, minX); - a2 = minAngle * bendDir; - } - else { - a1 = ta - Math.atan2(maxY * bendDir, maxX); - a2 = maxAngle * bendDir; - } - } - var os = Math.atan2(cy, cx) * s2; - var rotation = parent.arotation; - a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; - if (a1 > 180) - a1 -= 360; - else if (a1 < -180) - a1 += 360; - parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); - rotation = child.arotation; - a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; - if (a2 > 180) - a2 -= 360; - else if (a2 < -180) - a2 += 360; - child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); - }; - return IkConstraint; - }()); - spine.IkConstraint = IkConstraint; + var IkConstraint = (function () { + function IkConstraint(data, skeleton) { + this.mix = 1; + this.bendDirection = 0; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.mix = data.mix; + this.bendDirection = data.bendDirection; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + IkConstraint.prototype.getOrder = function () { + return this.data.order; + }; + IkConstraint.prototype.apply = function () { + this.update(); + }; + IkConstraint.prototype.update = function () { + var target = this.target; + var bones = this.bones; + switch (bones.length) { + case 1: + this.apply1(bones[0], target.worldX, target.worldY, this.mix); + break; + case 2: + this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); + break; + } + }; + IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var p = bone.parent; + var id = 1 / (p.a * p.d - p.b * p.c); + var x = targetX - p.worldX, y = targetY - p.worldY; + var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; + var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; + if (bone.ascaleX < 0) + rotationIK += 180; + if (rotationIK > 180) + rotationIK -= 360; + else if (rotationIK < -180) + rotationIK += 360; + bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); + }; + IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { + if (alpha == 0) { + child.updateWorldTransform(); + return; + } + if (!parent.appliedValid) + parent.updateAppliedTransform(); + if (!child.appliedValid) + child.updateAppliedTransform(); + var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; + var os1 = 0, os2 = 0, s2 = 0; + if (psx < 0) { + psx = -psx; + os1 = 180; + s2 = -1; + } + else { + os1 = 0; + s2 = 1; + } + if (psy < 0) { + psy = -psy; + s2 = -s2; + } + if (csx < 0) { + csx = -csx; + os2 = 180; + } + else + os2 = 0; + var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + var u = Math.abs(psx - psy) <= 0.0001; + if (!u) { + cy = 0; + cwx = a * cx + parent.worldX; + cwy = c * cx + parent.worldY; + } + else { + cy = child.ay; + cwx = a * cx + b * cy + parent.worldX; + cwy = c * cx + d * cy + parent.worldY; + } + var pp = parent.parent; + a = pp.a; + b = pp.b; + c = pp.c; + d = pp.d; + var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; + var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; + x = cwx - pp.worldX; + y = cwy - pp.worldY; + var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; + var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; + outer: if (u) { + l2 *= psx; + var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); + if (cos < -1) + cos = -1; + else if (cos > 1) + cos = 1; + a2 = Math.acos(cos) * bendDir; + a = l1 + l2 * cos; + b = l2 * Math.sin(a2); + a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); + } + else { + a = psx * l2; + b = psy * l2; + var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); + c = bb * l1 * l1 + aa * dd - aa * bb; + var c1 = -2 * bb * l1, c2 = bb - aa; + d = c1 * c1 - 4 * c2 * c; + if (d >= 0) { + var q = Math.sqrt(d); + if (c1 < 0) + q = -q; + q = -(c1 + q) / 2; + var r0 = q / c2, r1 = c / q; + var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; + if (r * r <= dd) { + y = Math.sqrt(dd - r * r) * bendDir; + a1 = ta - Math.atan2(y, r); + a2 = Math.atan2(y / psy, (r - l1) / psx); + break outer; + } + } + var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; + var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } + } + if (dd <= (minDist + maxDist) / 2) { + a1 = ta - Math.atan2(minY * bendDir, minX); + a2 = minAngle * bendDir; + } + else { + a1 = ta - Math.atan2(maxY * bendDir, maxX); + a2 = maxAngle * bendDir; + } + } + var os = Math.atan2(cy, cx) * s2; + var rotation = parent.arotation; + a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; + if (a1 > 180) + a1 -= 360; + else if (a1 < -180) + a1 += 360; + parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); + rotation = child.arotation; + a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; + if (a2 > 180) + a2 -= 360; + else if (a2 < -180) + a2 += 360; + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); + }; + return IkConstraint; + }()); + spine.IkConstraint = IkConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraintData = (function () { - function IkConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.bendDirection = 1; - this.mix = 1; - this.name = name; - } - return IkConstraintData; - }()); - spine.IkConstraintData = IkConstraintData; + var IkConstraintData = (function () { + function IkConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.bendDirection = 1; + this.mix = 1; + this.name = name; + } + return IkConstraintData; + }()); + spine.IkConstraintData = IkConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraint = (function () { - function PathConstraint(data, skeleton) { - this.position = 0; - this.spacing = 0; - this.rotateMix = 0; - this.translateMix = 0; - this.spaces = new Array(); - this.positions = new Array(); - this.world = new Array(); - this.curves = new Array(); - this.lengths = new Array(); - this.segments = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0, n = data.bones.length; i < n; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findSlot(data.target.name); - this.position = data.position; - this.spacing = data.spacing; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - } - PathConstraint.prototype.apply = function () { - this.update(); - }; - PathConstraint.prototype.update = function () { - var attachment = this.target.getAttachment(); - if (!(attachment instanceof spine.PathAttachment)) - return; - var rotateMix = this.rotateMix, translateMix = this.translateMix; - var translate = translateMix > 0, rotate = rotateMix > 0; - if (!translate && !rotate) - return; - var data = this.data; - var spacingMode = data.spacingMode; - var lengthSpacing = spacingMode == spine.SpacingMode.Length; - var rotateMode = data.rotateMode; - var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; - var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; - var bones = this.bones; - var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; - var spacing = this.spacing; - if (scale || lengthSpacing) { - if (scale) - lengths = spine.Utils.setArraySize(this.lengths, boneCount); - for (var i = 0, n = spacesCount - 1; i < n;) { - var bone = bones[i]; - var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; - var length_1 = Math.sqrt(x * x + y * y); - if (scale) - lengths[i] = length_1; - spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; - } - } - else { - for (var i = 1; i < spacesCount; i++) - spaces[i] = spacing; - } - var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); - var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - var tip = false; - if (offsetRotation == 0) - tip = rotateMode == spine.RotateMode.Chain; - else { - tip = false; - var p = this.target.bone; - offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - } - for (var i = 0, p = 3; i < boneCount; i++, p += 3) { - var bone = bones[i]; - bone.worldX += (boneX - bone.worldX) * translateMix; - bone.worldY += (boneY - bone.worldY) * translateMix; - var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; - if (scale) { - var length_2 = lengths[i]; - if (length_2 != 0) { - var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; - bone.a *= s; - bone.c *= s; - } - } - boneX = x; - boneY = y; - if (rotate) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; - if (tangents) - r = positions[p - 1]; - else if (spaces[i + 1] == 0) - r = positions[p + 2]; - else - r = Math.atan2(dy, dx); - r -= Math.atan2(c, a); - if (tip) { - cos = Math.cos(r); - sin = Math.sin(r); - var length_3 = bone.data.length; - boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; - boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; - } - else { - r += offsetRotation; - } - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - cos = Math.cos(r); - sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - } - bone.appliedValid = false; - } - }; - PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { - var target = this.target; - var position = this.position; - var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; - var closed = path.closed; - var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; - if (!path.constantSpeed) { - var lengths = path.lengths; - curveCount -= closed ? 1 : 2; - var pathLength_1 = lengths[curveCount]; - if (percentPosition) - position *= pathLength_1; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength_1; - } - world = spine.Utils.setArraySize(this.world, 8); - for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength_1; - if (p < 0) - p += pathLength_1; - curve = 0; - } - else if (p < 0) { - if (prevCurve != PathConstraint.BEFORE) { - prevCurve = PathConstraint.BEFORE; - path.computeWorldVertices(target, 2, 4, world, 0, 2); - } - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength_1) { - if (prevCurve != PathConstraint.AFTER) { - prevCurve = PathConstraint.AFTER; - path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); - } - this.addAfterPosition(p - pathLength_1, world, 0, out, o); - continue; - } - for (;; curve++) { - var length_4 = lengths[curve]; - if (p > length_4) - continue; - if (curve == 0) - p /= length_4; - else { - var prev = lengths[curve - 1]; - p = (p - prev) / (length_4 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - if (closed && curve == curveCount) { - path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); - path.computeWorldVertices(target, 0, 4, world, 4, 2); - } - else - path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); - } - this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); - } - return out; - } - if (closed) { - verticesLength += 2; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); - path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); - world[verticesLength - 2] = world[0]; - world[verticesLength - 1] = world[1]; - } - else { - curveCount--; - verticesLength -= 4; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); - } - var curves = spine.Utils.setArraySize(this.curves, curveCount); - var pathLength = 0; - var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; - var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; - for (var i = 0, w = 2; i < curveCount; i++, w += 6) { - cx1 = world[w]; - cy1 = world[w + 1]; - cx2 = world[w + 2]; - cy2 = world[w + 3]; - x2 = world[w + 4]; - y2 = world[w + 5]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; - tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - curves[i] = pathLength; - x1 = x2; - y1 = y2; - } - if (percentPosition) - position *= pathLength; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength; - } - var segments = this.segments; - var curveLength = 0; - for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength; - if (p < 0) - p += pathLength; - curve = 0; - } - else if (p < 0) { - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength) { - this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); - continue; - } - for (;; curve++) { - var length_5 = curves[curve]; - if (p > length_5) - continue; - if (curve == 0) - p /= length_5; - else { - var prev = curves[curve - 1]; - p = (p - prev) / (length_5 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - var ii = curve * 6; - x1 = world[ii]; - y1 = world[ii + 1]; - cx1 = world[ii + 2]; - cy1 = world[ii + 3]; - cx2 = world[ii + 4]; - cy2 = world[ii + 5]; - x2 = world[ii + 6]; - y2 = world[ii + 7]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.03; - tmpy = (y1 - cy1 * 2 + cy2) * 0.03; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; - curveLength = Math.sqrt(dfx * dfx + dfy * dfy); - segments[0] = curveLength; - for (ii = 1; ii < 8; ii++) { - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[ii] = curveLength; - } - dfx += ddfx; - dfy += ddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[8] = curveLength; - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[9] = curveLength; - segment = 0; - } - p *= curveLength; - for (;; segment++) { - var length_6 = segments[segment]; - if (p > length_6) - continue; - if (segment == 0) - p /= length_6; - else { - var prev = segments[segment - 1]; - p = segment + (p - prev) / (length_6 - prev); - } - break; - } - this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); - } - return out; - }; - PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { - var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { - var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { - if (p == 0 || isNaN(p)) - p = 0.0001; - var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; - var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; - var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; - out[o] = x; - out[o + 1] = y; - if (tangents) - out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); - }; - PathConstraint.prototype.getOrder = function () { - return this.data.order; - }; - PathConstraint.NONE = -1; - PathConstraint.BEFORE = -2; - PathConstraint.AFTER = -3; - return PathConstraint; - }()); - spine.PathConstraint = PathConstraint; + var PathConstraint = (function () { + function PathConstraint(data, skeleton) { + this.position = 0; + this.spacing = 0; + this.rotateMix = 0; + this.translateMix = 0; + this.spaces = new Array(); + this.positions = new Array(); + this.world = new Array(); + this.curves = new Array(); + this.lengths = new Array(); + this.segments = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0, n = data.bones.length; i < n; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findSlot(data.target.name); + this.position = data.position; + this.spacing = data.spacing; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + } + PathConstraint.prototype.apply = function () { + this.update(); + }; + PathConstraint.prototype.update = function () { + var attachment = this.target.getAttachment(); + if (!(attachment instanceof spine.PathAttachment)) + return; + var rotateMix = this.rotateMix, translateMix = this.translateMix; + var translate = translateMix > 0, rotate = rotateMix > 0; + if (!translate && !rotate) + return; + var data = this.data; + var spacingMode = data.spacingMode; + var lengthSpacing = spacingMode == spine.SpacingMode.Length; + var rotateMode = data.rotateMode; + var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; + var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; + var bones = this.bones; + var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; + var spacing = this.spacing; + if (scale || lengthSpacing) { + if (scale) + lengths = spine.Utils.setArraySize(this.lengths, boneCount); + for (var i = 0, n = spacesCount - 1; i < n;) { + var bone = bones[i]; + var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; + var length_1 = Math.sqrt(x * x + y * y); + if (scale) + lengths[i] = length_1; + spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; + } + } + else { + for (var i = 1; i < spacesCount; i++) + spaces[i] = spacing; + } + var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); + var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; + var tip = false; + if (offsetRotation == 0) + tip = rotateMode == spine.RotateMode.Chain; + else { + tip = false; + var p = this.target.bone; + offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + } + for (var i = 0, p = 3; i < boneCount; i++, p += 3) { + var bone = bones[i]; + bone.worldX += (boneX - bone.worldX) * translateMix; + bone.worldY += (boneY - bone.worldY) * translateMix; + var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; + if (scale) { + var length_2 = lengths[i]; + if (length_2 != 0) { + var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; + bone.a *= s; + bone.c *= s; + } + } + boneX = x; + boneY = y; + if (rotate) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; + if (tangents) + r = positions[p - 1]; + else if (spaces[i + 1] == 0) + r = positions[p + 2]; + else + r = Math.atan2(dy, dx); + r -= Math.atan2(c, a); + if (tip) { + cos = Math.cos(r); + sin = Math.sin(r); + var length_3 = bone.data.length; + boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; + boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; + } + else { + r += offsetRotation; + } + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + cos = Math.cos(r); + sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + bone.appliedValid = false; + } + }; + PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { + var target = this.target; + var position = this.position; + var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; + var closed = path.closed; + var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; + if (!path.constantSpeed) { + var lengths = path.lengths; + curveCount -= closed ? 1 : 2; + var pathLength_1 = lengths[curveCount]; + if (percentPosition) + position *= pathLength_1; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength_1; + } + world = spine.Utils.setArraySize(this.world, 8); + for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength_1; + if (p < 0) + p += pathLength_1; + curve = 0; + } + else if (p < 0) { + if (prevCurve != PathConstraint.BEFORE) { + prevCurve = PathConstraint.BEFORE; + path.computeWorldVertices(target, 2, 4, world, 0, 2); + } + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength_1) { + if (prevCurve != PathConstraint.AFTER) { + prevCurve = PathConstraint.AFTER; + path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); + } + this.addAfterPosition(p - pathLength_1, world, 0, out, o); + continue; + } + for (;; curve++) { + var length_4 = lengths[curve]; + if (p > length_4) + continue; + if (curve == 0) + p /= length_4; + else { + var prev = lengths[curve - 1]; + p = (p - prev) / (length_4 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + if (closed && curve == curveCount) { + path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); + path.computeWorldVertices(target, 0, 4, world, 4, 2); + } + else + path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); + } + this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); + } + return out; + } + if (closed) { + verticesLength += 2; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); + path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); + world[verticesLength - 2] = world[0]; + world[verticesLength - 1] = world[1]; + } + else { + curveCount--; + verticesLength -= 4; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); + } + var curves = spine.Utils.setArraySize(this.curves, curveCount); + var pathLength = 0; + var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; + var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; + for (var i = 0, w = 2; i < curveCount; i++, w += 6) { + cx1 = world[w]; + cy1 = world[w + 1]; + cx2 = world[w + 2]; + cy2 = world[w + 3]; + x2 = world[w + 4]; + y2 = world[w + 5]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; + tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + curves[i] = pathLength; + x1 = x2; + y1 = y2; + } + if (percentPosition) + position *= pathLength; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength; + } + var segments = this.segments; + var curveLength = 0; + for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength; + if (p < 0) + p += pathLength; + curve = 0; + } + else if (p < 0) { + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength) { + this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); + continue; + } + for (;; curve++) { + var length_5 = curves[curve]; + if (p > length_5) + continue; + if (curve == 0) + p /= length_5; + else { + var prev = curves[curve - 1]; + p = (p - prev) / (length_5 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + var ii = curve * 6; + x1 = world[ii]; + y1 = world[ii + 1]; + cx1 = world[ii + 2]; + cy1 = world[ii + 3]; + cx2 = world[ii + 4]; + cy2 = world[ii + 5]; + x2 = world[ii + 6]; + y2 = world[ii + 7]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.03; + tmpy = (y1 - cy1 * 2 + cy2) * 0.03; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; + curveLength = Math.sqrt(dfx * dfx + dfy * dfy); + segments[0] = curveLength; + for (ii = 1; ii < 8; ii++) { + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[ii] = curveLength; + } + dfx += ddfx; + dfy += ddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[8] = curveLength; + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[9] = curveLength; + segment = 0; + } + p *= curveLength; + for (;; segment++) { + var length_6 = segments[segment]; + if (p > length_6) + continue; + if (segment == 0) + p /= length_6; + else { + var prev = segments[segment - 1]; + p = segment + (p - prev) / (length_6 - prev); + } + break; + } + this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); + } + return out; + }; + PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { + var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { + var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { + if (p == 0 || isNaN(p)) + p = 0.0001; + var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; + var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; + var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; + out[o] = x; + out[o + 1] = y; + if (tangents) + out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); + }; + PathConstraint.prototype.getOrder = function () { + return this.data.order; + }; + PathConstraint.NONE = -1; + PathConstraint.BEFORE = -2; + PathConstraint.AFTER = -3; + return PathConstraint; + }()); + spine.PathConstraint = PathConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraintData = (function () { - function PathConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.name = name; - } - return PathConstraintData; - }()); - spine.PathConstraintData = PathConstraintData; - (function (PositionMode) { - PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; - PositionMode[PositionMode["Percent"] = 1] = "Percent"; - })(spine.PositionMode || (spine.PositionMode = {})); - var PositionMode = spine.PositionMode; - (function (SpacingMode) { - SpacingMode[SpacingMode["Length"] = 0] = "Length"; - SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; - SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; - })(spine.SpacingMode || (spine.SpacingMode = {})); - var SpacingMode = spine.SpacingMode; - (function (RotateMode) { - RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; - RotateMode[RotateMode["Chain"] = 1] = "Chain"; - RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; - })(spine.RotateMode || (spine.RotateMode = {})); - var RotateMode = spine.RotateMode; + var PathConstraintData = (function () { + function PathConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.name = name; + } + return PathConstraintData; + }()); + spine.PathConstraintData = PathConstraintData; + (function (PositionMode) { + PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; + PositionMode[PositionMode["Percent"] = 1] = "Percent"; + })(spine.PositionMode || (spine.PositionMode = {})); + var PositionMode = spine.PositionMode; + (function (SpacingMode) { + SpacingMode[SpacingMode["Length"] = 0] = "Length"; + SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; + SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; + })(spine.SpacingMode || (spine.SpacingMode = {})); + var SpacingMode = spine.SpacingMode; + (function (RotateMode) { + RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; + RotateMode[RotateMode["Chain"] = 1] = "Chain"; + RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; + })(spine.RotateMode || (spine.RotateMode = {})); + var RotateMode = spine.RotateMode; })(spine || (spine = {})); var spine; (function (spine) { - var Assets = (function () { - function Assets(clientId) { - this.toLoad = new Array(); - this.assets = {}; - this.clientId = clientId; - } - Assets.prototype.loaded = function () { - var i = 0; - for (var v in this.assets) - i++; - return i; - }; - return Assets; - }()); - var SharedAssetManager = (function () { - function SharedAssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.clientAssets = {}; - this.queuedAssets = {}; - this.rawAssets = {}; - this.errors = {}; - this.pathPrefix = pathPrefix; - } - SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) { - clientAssets = new Assets(clientId); - this.clientAssets[clientId] = clientAssets; - } - if (textureLoader !== null) - clientAssets.textureLoader = textureLoader; - clientAssets.toLoad.push(path); - if (this.queuedAssets[path] === path) { - return false; - } - else { - this.queuedAssets[path] = path; - return true; - } - }; - SharedAssetManager.prototype.loadText = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = request.responseText; - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadJson = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = JSON.parse(request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, textureLoader, path)) - return; - var img = new Image(); - img.src = path; - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - _this.rawAssets[path] = img; - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - }; - }; - SharedAssetManager.prototype.get = function (clientId, path) { - path = this.pathPrefix + path; - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - return clientAssets.assets[path]; - }; - SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { - for (var i = 0; i < clientAssets.toLoad.length; i++) { - var path = clientAssets.toLoad[i]; - var asset = clientAssets.assets[path]; - if (asset === null || asset === undefined) { - var rawAsset = this.rawAssets[path]; - if (rawAsset === null || rawAsset === undefined) - continue; - if (rawAsset instanceof HTMLImageElement) { - clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); - } - else { - clientAssets.assets[path] = rawAsset; - } - } - } - }; - SharedAssetManager.prototype.isLoadingComplete = function (clientId) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - this.updateClientAssets(clientAssets); - return clientAssets.toLoad.length == clientAssets.loaded(); - }; - SharedAssetManager.prototype.dispose = function () { - }; - SharedAssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - SharedAssetManager.prototype.getErrors = function () { - return this.errors; - }; - return SharedAssetManager; - }()); - spine.SharedAssetManager = SharedAssetManager; + var Assets = (function () { + function Assets(clientId) { + this.toLoad = new Array(); + this.assets = {}; + this.clientId = clientId; + } + Assets.prototype.loaded = function () { + var i = 0; + for (var v in this.assets) + i++; + return i; + }; + return Assets; + }()); + var SharedAssetManager = (function () { + function SharedAssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.clientAssets = {}; + this.queuedAssets = {}; + this.rawAssets = {}; + this.errors = {}; + this.pathPrefix = pathPrefix; + } + SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) { + clientAssets = new Assets(clientId); + this.clientAssets[clientId] = clientAssets; + } + if (textureLoader !== null) + clientAssets.textureLoader = textureLoader; + clientAssets.toLoad.push(path); + if (this.queuedAssets[path] === path) { + return false; + } + else { + this.queuedAssets[path] = path; + return true; + } + }; + SharedAssetManager.prototype.loadText = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = request.responseText; + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadJson = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = JSON.parse(request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, textureLoader, path)) + return; + var img = new Image(); + img.src = path; + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + _this.rawAssets[path] = img; + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + }; + }; + SharedAssetManager.prototype.get = function (clientId, path) { + path = this.pathPrefix + path; + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + return clientAssets.assets[path]; + }; + SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { + for (var i = 0; i < clientAssets.toLoad.length; i++) { + var path = clientAssets.toLoad[i]; + var asset = clientAssets.assets[path]; + if (asset === null || asset === undefined) { + var rawAsset = this.rawAssets[path]; + if (rawAsset === null || rawAsset === undefined) + continue; + if (rawAsset instanceof HTMLImageElement) { + clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); + } + else { + clientAssets.assets[path] = rawAsset; + } + } + } + }; + SharedAssetManager.prototype.isLoadingComplete = function (clientId) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + this.updateClientAssets(clientAssets); + return clientAssets.toLoad.length == clientAssets.loaded(); + }; + SharedAssetManager.prototype.dispose = function () { + }; + SharedAssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + SharedAssetManager.prototype.getErrors = function () { + return this.errors; + }; + return SharedAssetManager; + }()); + spine.SharedAssetManager = SharedAssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var Skeleton = (function () { - function Skeleton(data) { - this._updateCache = new Array(); - this.updateCacheReset = new Array(); - this.time = 0; - this.flipX = false; - this.flipY = false; - this.x = 0; - this.y = 0; - if (data == null) - throw new Error("data cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) { - var boneData = data.bones[i]; - var bone = void 0; - if (boneData.parent == null) - bone = new spine.Bone(boneData, this, null); - else { - var parent_1 = this.bones[boneData.parent.index]; - bone = new spine.Bone(boneData, this, parent_1); - parent_1.children.push(bone); - } - this.bones.push(bone); - } - this.slots = new Array(); - this.drawOrder = new Array(); - for (var i = 0; i < data.slots.length; i++) { - var slotData = data.slots[i]; - var bone = this.bones[slotData.boneData.index]; - var slot = new spine.Slot(slotData, bone); - this.slots.push(slot); - this.drawOrder.push(slot); - } - this.ikConstraints = new Array(); - for (var i = 0; i < data.ikConstraints.length; i++) { - var ikConstraintData = data.ikConstraints[i]; - this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); - } - this.transformConstraints = new Array(); - for (var i = 0; i < data.transformConstraints.length; i++) { - var transformConstraintData = data.transformConstraints[i]; - this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); - } - this.pathConstraints = new Array(); - for (var i = 0; i < data.pathConstraints.length; i++) { - var pathConstraintData = data.pathConstraints[i]; - this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); - } - this.color = new spine.Color(1, 1, 1, 1); - this.updateCache(); - } - Skeleton.prototype.updateCache = function () { - var updateCache = this._updateCache; - updateCache.length = 0; - this.updateCacheReset.length = 0; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].sorted = false; - var ikConstraints = this.ikConstraints; - var transformConstraints = this.transformConstraints; - var pathConstraints = this.pathConstraints; - var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; - var constraintCount = ikCount + transformCount + pathCount; - outer: for (var i = 0; i < constraintCount; i++) { - for (var ii = 0; ii < ikCount; ii++) { - var constraint = ikConstraints[ii]; - if (constraint.data.order == i) { - this.sortIkConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < transformCount; ii++) { - var constraint = transformConstraints[ii]; - if (constraint.data.order == i) { - this.sortTransformConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < pathCount; ii++) { - var constraint = pathConstraints[ii]; - if (constraint.data.order == i) { - this.sortPathConstraint(constraint); - continue outer; - } - } - } - for (var i = 0, n = bones.length; i < n; i++) - this.sortBone(bones[i]); - }; - Skeleton.prototype.sortIkConstraint = function (constraint) { - var target = constraint.target; - this.sortBone(target); - var constrained = constraint.bones; - var parent = constrained[0]; - this.sortBone(parent); - if (constrained.length > 1) { - var child = constrained[constrained.length - 1]; - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - this._updateCache.push(constraint); - this.sortReset(parent.children); - constrained[constrained.length - 1].sorted = true; - }; - Skeleton.prototype.sortPathConstraint = function (constraint) { - var slot = constraint.target; - var slotIndex = slot.data.index; - var slotBone = slot.bone; - if (this.skin != null) - this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); - if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) - this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); - for (var i = 0, n = this.data.skins.length; i < n; i++) - this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); - var attachment = slot.getAttachment(); - if (attachment instanceof spine.PathAttachment) - this.sortPathConstraintAttachmentWith(attachment, slotBone); - var constrained = constraint.bones; - var boneCount = constrained.length; - for (var i = 0; i < boneCount; i++) - this.sortBone(constrained[i]); - this._updateCache.push(constraint); - for (var i = 0; i < boneCount; i++) - this.sortReset(constrained[i].children); - for (var i = 0; i < boneCount; i++) - constrained[i].sorted = true; - }; - Skeleton.prototype.sortTransformConstraint = function (constraint) { - this.sortBone(constraint.target); - var constrained = constraint.bones; - var boneCount = constrained.length; - if (constraint.data.local) { - for (var i = 0; i < boneCount; i++) { - var child = constrained[i]; - this.sortBone(child.parent); - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - } - else { - for (var i = 0; i < boneCount; i++) { - this.sortBone(constrained[i]); - } - } - this._updateCache.push(constraint); - for (var ii = 0; ii < boneCount; ii++) - this.sortReset(constrained[ii].children); - for (var ii = 0; ii < boneCount; ii++) - constrained[ii].sorted = true; - }; - Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { - var attachments = skin.attachments[slotIndex]; - if (!attachments) - return; - for (var key in attachments) { - this.sortPathConstraintAttachmentWith(attachments[key], slotBone); - } - }; - Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { - if (!(attachment instanceof spine.PathAttachment)) - return; - var pathBones = attachment.bones; - if (pathBones == null) - this.sortBone(slotBone); - else { - var bones = this.bones; - var i = 0; - while (i < pathBones.length) { - var boneCount = pathBones[i++]; - for (var n = i + boneCount; i < n; i++) { - var boneIndex = pathBones[i]; - this.sortBone(bones[boneIndex]); - } - } - } - }; - Skeleton.prototype.sortBone = function (bone) { - if (bone.sorted) - return; - var parent = bone.parent; - if (parent != null) - this.sortBone(parent); - bone.sorted = true; - this._updateCache.push(bone); - }; - Skeleton.prototype.sortReset = function (bones) { - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.sorted) - this.sortReset(bone.children); - bone.sorted = false; - } - }; - Skeleton.prototype.updateWorldTransform = function () { - var updateCacheReset = this.updateCacheReset; - for (var i = 0, n = updateCacheReset.length; i < n; i++) { - var bone = updateCacheReset[i]; - bone.ax = bone.x; - bone.ay = bone.y; - bone.arotation = bone.rotation; - bone.ascaleX = bone.scaleX; - bone.ascaleY = bone.scaleY; - bone.ashearX = bone.shearX; - bone.ashearY = bone.shearY; - bone.appliedValid = true; - } - var updateCache = this._updateCache; - for (var i = 0, n = updateCache.length; i < n; i++) - updateCache[i].update(); - }; - Skeleton.prototype.setToSetupPose = function () { - this.setBonesToSetupPose(); - this.setSlotsToSetupPose(); - }; - Skeleton.prototype.setBonesToSetupPose = function () { - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].setToSetupPose(); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - constraint.bendDirection = constraint.data.bendDirection; - constraint.mix = constraint.data.mix; - } - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - var data = constraint.data; - constraint.position = data.position; - constraint.spacing = data.spacing; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - } - }; - Skeleton.prototype.setSlotsToSetupPose = function () { - var slots = this.slots; - spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); - for (var i = 0, n = slots.length; i < n; i++) - slots[i].setToSetupPose(); - }; - Skeleton.prototype.getRootBone = function () { - if (this.bones.length == 0) - return null; - return this.bones[0]; - }; - Skeleton.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.data.name == boneName) - return bone; - } - return null; - }; - Skeleton.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].data.name == boneName) - return i; - return -1; - }; - Skeleton.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) - return slot; - } - return null; - }; - Skeleton.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].data.name == slotName) - return i; - return -1; - }; - Skeleton.prototype.setSkinByName = function (skinName) { - var skin = this.data.findSkin(skinName); - if (skin == null) - throw new Error("Skin not found: " + skinName); - this.setSkin(skin); - }; - Skeleton.prototype.setSkin = function (newSkin) { - if (newSkin != null) { - if (this.skin != null) - newSkin.attachAll(this, this.skin); - else { - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var name_1 = slot.data.attachmentName; - if (name_1 != null) { - var attachment = newSkin.getAttachment(i, name_1); - if (attachment != null) - slot.setAttachment(attachment); - } - } - } - } - this.skin = newSkin; - }; - Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { - return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); - }; - Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { - if (attachmentName == null) - throw new Error("attachmentName cannot be null."); - if (this.skin != null) { - var attachment = this.skin.getAttachment(slotIndex, attachmentName); - if (attachment != null) - return attachment; - } - if (this.data.defaultSkin != null) - return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); - return null; - }; - Skeleton.prototype.setAttachment = function (slotName, attachmentName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) { - var attachment = null; - if (attachmentName != null) { - attachment = this.getAttachment(i, attachmentName); - if (attachment == null) - throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); - } - slot.setAttachment(attachment); - return; - } - } - throw new Error("Slot not found: " + slotName); - }; - Skeleton.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var ikConstraint = ikConstraints[i]; - if (ikConstraint.data.name == constraintName) - return ikConstraint; - } - return null; - }; - Skeleton.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.getBounds = function (offset, size, temp) { - if (offset == null) - throw new Error("offset cannot be null."); - if (size == null) - throw new Error("size cannot be null."); - var drawOrder = this.drawOrder; - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var verticesLength = 0; - var vertices = null; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.RegionAttachment) { - verticesLength = 8; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - attachment.computeWorldVertices(slot.bone, vertices, 0, 2); - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - verticesLength = mesh.worldVerticesLength; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); - } - if (vertices != null) { - for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { - var x = vertices[ii], y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - } - offset.set(minX, minY); - size.set(maxX - minX, maxY - minY); - }; - Skeleton.prototype.update = function (delta) { - this.time += delta; - }; - return Skeleton; - }()); - spine.Skeleton = Skeleton; + var Skeleton = (function () { + function Skeleton(data) { + this._updateCache = new Array(); + this.updateCacheReset = new Array(); + this.time = 0; + this.flipX = false; + this.flipY = false; + this.x = 0; + this.y = 0; + if (data == null) + throw new Error("data cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) { + var boneData = data.bones[i]; + var bone = void 0; + if (boneData.parent == null) + bone = new spine.Bone(boneData, this, null); + else { + var parent_1 = this.bones[boneData.parent.index]; + bone = new spine.Bone(boneData, this, parent_1); + parent_1.children.push(bone); + } + this.bones.push(bone); + } + this.slots = new Array(); + this.drawOrder = new Array(); + for (var i = 0; i < data.slots.length; i++) { + var slotData = data.slots[i]; + var bone = this.bones[slotData.boneData.index]; + var slot = new spine.Slot(slotData, bone); + this.slots.push(slot); + this.drawOrder.push(slot); + } + this.ikConstraints = new Array(); + for (var i = 0; i < data.ikConstraints.length; i++) { + var ikConstraintData = data.ikConstraints[i]; + this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); + } + this.transformConstraints = new Array(); + for (var i = 0; i < data.transformConstraints.length; i++) { + var transformConstraintData = data.transformConstraints[i]; + this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); + } + this.pathConstraints = new Array(); + for (var i = 0; i < data.pathConstraints.length; i++) { + var pathConstraintData = data.pathConstraints[i]; + this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); + } + this.color = new spine.Color(1, 1, 1, 1); + this.updateCache(); + } + Skeleton.prototype.updateCache = function () { + var updateCache = this._updateCache; + updateCache.length = 0; + this.updateCacheReset.length = 0; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].sorted = false; + var ikConstraints = this.ikConstraints; + var transformConstraints = this.transformConstraints; + var pathConstraints = this.pathConstraints; + var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; + var constraintCount = ikCount + transformCount + pathCount; + outer: for (var i = 0; i < constraintCount; i++) { + for (var ii = 0; ii < ikCount; ii++) { + var constraint = ikConstraints[ii]; + if (constraint.data.order == i) { + this.sortIkConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < transformCount; ii++) { + var constraint = transformConstraints[ii]; + if (constraint.data.order == i) { + this.sortTransformConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < pathCount; ii++) { + var constraint = pathConstraints[ii]; + if (constraint.data.order == i) { + this.sortPathConstraint(constraint); + continue outer; + } + } + } + for (var i = 0, n = bones.length; i < n; i++) + this.sortBone(bones[i]); + }; + Skeleton.prototype.sortIkConstraint = function (constraint) { + var target = constraint.target; + this.sortBone(target); + var constrained = constraint.bones; + var parent = constrained[0]; + this.sortBone(parent); + if (constrained.length > 1) { + var child = constrained[constrained.length - 1]; + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + this._updateCache.push(constraint); + this.sortReset(parent.children); + constrained[constrained.length - 1].sorted = true; + }; + Skeleton.prototype.sortPathConstraint = function (constraint) { + var slot = constraint.target; + var slotIndex = slot.data.index; + var slotBone = slot.bone; + if (this.skin != null) + this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); + if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) + this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); + for (var i = 0, n = this.data.skins.length; i < n; i++) + this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); + var attachment = slot.getAttachment(); + if (attachment instanceof spine.PathAttachment) + this.sortPathConstraintAttachmentWith(attachment, slotBone); + var constrained = constraint.bones; + var boneCount = constrained.length; + for (var i = 0; i < boneCount; i++) + this.sortBone(constrained[i]); + this._updateCache.push(constraint); + for (var i = 0; i < boneCount; i++) + this.sortReset(constrained[i].children); + for (var i = 0; i < boneCount; i++) + constrained[i].sorted = true; + }; + Skeleton.prototype.sortTransformConstraint = function (constraint) { + this.sortBone(constraint.target); + var constrained = constraint.bones; + var boneCount = constrained.length; + if (constraint.data.local) { + for (var i = 0; i < boneCount; i++) { + var child = constrained[i]; + this.sortBone(child.parent); + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + } + else { + for (var i = 0; i < boneCount; i++) { + this.sortBone(constrained[i]); + } + } + this._updateCache.push(constraint); + for (var ii = 0; ii < boneCount; ii++) + this.sortReset(constrained[ii].children); + for (var ii = 0; ii < boneCount; ii++) + constrained[ii].sorted = true; + }; + Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { + var attachments = skin.attachments[slotIndex]; + if (!attachments) + return; + for (var key in attachments) { + this.sortPathConstraintAttachmentWith(attachments[key], slotBone); + } + }; + Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { + if (!(attachment instanceof spine.PathAttachment)) + return; + var pathBones = attachment.bones; + if (pathBones == null) + this.sortBone(slotBone); + else { + var bones = this.bones; + var i = 0; + while (i < pathBones.length) { + var boneCount = pathBones[i++]; + for (var n = i + boneCount; i < n; i++) { + var boneIndex = pathBones[i]; + this.sortBone(bones[boneIndex]); + } + } + } + }; + Skeleton.prototype.sortBone = function (bone) { + if (bone.sorted) + return; + var parent = bone.parent; + if (parent != null) + this.sortBone(parent); + bone.sorted = true; + this._updateCache.push(bone); + }; + Skeleton.prototype.sortReset = function (bones) { + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.sorted) + this.sortReset(bone.children); + bone.sorted = false; + } + }; + Skeleton.prototype.updateWorldTransform = function () { + var updateCacheReset = this.updateCacheReset; + for (var i = 0, n = updateCacheReset.length; i < n; i++) { + var bone = updateCacheReset[i]; + bone.ax = bone.x; + bone.ay = bone.y; + bone.arotation = bone.rotation; + bone.ascaleX = bone.scaleX; + bone.ascaleY = bone.scaleY; + bone.ashearX = bone.shearX; + bone.ashearY = bone.shearY; + bone.appliedValid = true; + } + var updateCache = this._updateCache; + for (var i = 0, n = updateCache.length; i < n; i++) + updateCache[i].update(); + }; + Skeleton.prototype.setToSetupPose = function () { + this.setBonesToSetupPose(); + this.setSlotsToSetupPose(); + }; + Skeleton.prototype.setBonesToSetupPose = function () { + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].setToSetupPose(); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + constraint.bendDirection = constraint.data.bendDirection; + constraint.mix = constraint.data.mix; + } + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + var data = constraint.data; + constraint.position = data.position; + constraint.spacing = data.spacing; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + } + }; + Skeleton.prototype.setSlotsToSetupPose = function () { + var slots = this.slots; + spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); + for (var i = 0, n = slots.length; i < n; i++) + slots[i].setToSetupPose(); + }; + Skeleton.prototype.getRootBone = function () { + if (this.bones.length == 0) + return null; + return this.bones[0]; + }; + Skeleton.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.data.name == boneName) + return bone; + } + return null; + }; + Skeleton.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].data.name == boneName) + return i; + return -1; + }; + Skeleton.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) + return slot; + } + return null; + }; + Skeleton.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].data.name == slotName) + return i; + return -1; + }; + Skeleton.prototype.setSkinByName = function (skinName) { + var skin = this.data.findSkin(skinName); + if (skin == null) + throw new Error("Skin not found: " + skinName); + this.setSkin(skin); + }; + Skeleton.prototype.setSkin = function (newSkin) { + if (newSkin != null) { + if (this.skin != null) + newSkin.attachAll(this, this.skin); + else { + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var name_1 = slot.data.attachmentName; + if (name_1 != null) { + var attachment = newSkin.getAttachment(i, name_1); + if (attachment != null) + slot.setAttachment(attachment); + } + } + } + } + this.skin = newSkin; + }; + Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { + return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); + }; + Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { + if (attachmentName == null) + throw new Error("attachmentName cannot be null."); + if (this.skin != null) { + var attachment = this.skin.getAttachment(slotIndex, attachmentName); + if (attachment != null) + return attachment; + } + if (this.data.defaultSkin != null) + return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); + return null; + }; + Skeleton.prototype.setAttachment = function (slotName, attachmentName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) { + var attachment = null; + if (attachmentName != null) { + attachment = this.getAttachment(i, attachmentName); + if (attachment == null) + throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); + } + slot.setAttachment(attachment); + return; + } + } + throw new Error("Slot not found: " + slotName); + }; + Skeleton.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var ikConstraint = ikConstraints[i]; + if (ikConstraint.data.name == constraintName) + return ikConstraint; + } + return null; + }; + Skeleton.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.getBounds = function (offset, size, temp) { + if (offset == null) + throw new Error("offset cannot be null."); + if (size == null) + throw new Error("size cannot be null."); + var drawOrder = this.drawOrder; + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var verticesLength = 0; + var vertices = null; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.RegionAttachment) { + verticesLength = 8; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + attachment.computeWorldVertices(slot.bone, vertices, 0, 2); + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + verticesLength = mesh.worldVerticesLength; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); + } + if (vertices != null) { + for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { + var x = vertices[ii], y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + } + offset.set(minX, minY); + size.set(maxX - minX, maxY - minY); + }; + Skeleton.prototype.update = function (delta) { + this.time += delta; + }; + return Skeleton; + }()); + spine.Skeleton = Skeleton; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonBounds = (function () { - function SkeletonBounds() { - this.minX = 0; - this.minY = 0; - this.maxX = 0; - this.maxY = 0; - this.boundingBoxes = new Array(); - this.polygons = new Array(); - this.polygonPool = new spine.Pool(function () { - return spine.Utils.newFloatArray(16); - }); - } - SkeletonBounds.prototype.update = function (skeleton, updateAabb) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - var boundingBoxes = this.boundingBoxes; - var polygons = this.polygons; - var polygonPool = this.polygonPool; - var slots = skeleton.slots; - var slotCount = slots.length; - boundingBoxes.length = 0; - polygonPool.freeAll(polygons); - polygons.length = 0; - for (var i = 0; i < slotCount; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.BoundingBoxAttachment) { - var boundingBox = attachment; - boundingBoxes.push(boundingBox); - var polygon = polygonPool.obtain(); - if (polygon.length != boundingBox.worldVerticesLength) { - polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); - } - polygons.push(polygon); - boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); - } - } - if (updateAabb) { - this.aabbCompute(); - } - else { - this.minX = Number.POSITIVE_INFINITY; - this.minY = Number.POSITIVE_INFINITY; - this.maxX = Number.NEGATIVE_INFINITY; - this.maxY = Number.NEGATIVE_INFINITY; - } - }; - SkeletonBounds.prototype.aabbCompute = function () { - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) { - var polygon = polygons[i]; - var vertices = polygon; - for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { - var x = vertices[ii]; - var y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - this.minX = minX; - this.minY = minY; - this.maxX = maxX; - this.maxY = maxY; - }; - SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { - return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; - }; - SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { - var minX = this.minX; - var minY = this.minY; - var maxX = this.maxX; - var maxY = this.maxY; - if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) - return false; - var m = (y2 - y1) / (x2 - x1); - var y = m * (minX - x1) + y1; - if (y > minY && y < maxY) - return true; - y = m * (maxX - x1) + y1; - if (y > minY && y < maxY) - return true; - var x = (minY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - x = (maxY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - return false; - }; - SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { - return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; - }; - SkeletonBounds.prototype.containsPoint = function (x, y) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.containsPointPolygon(polygons[i], x, y)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { - var vertices = polygon; - var nn = polygon.length; - var prevIndex = nn - 2; - var inside = false; - for (var ii = 0; ii < nn; ii += 2) { - var vertexY = vertices[ii + 1]; - var prevY = vertices[prevIndex + 1]; - if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { - var vertexX = vertices[ii]; - if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) - inside = !inside; - } - prevIndex = ii; - } - return inside; - }; - SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { - var vertices = polygon; - var nn = polygon.length; - var width12 = x1 - x2, height12 = y1 - y2; - var det1 = x1 * y2 - y1 * x2; - var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; - for (var ii = 0; ii < nn; ii += 2) { - var x4 = vertices[ii], y4 = vertices[ii + 1]; - var det2 = x3 * y4 - y3 * x4; - var width34 = x3 - x4, height34 = y3 - y4; - var det3 = width12 * height34 - height12 * width34; - var x = (det1 * width34 - width12 * det2) / det3; - if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { - var y = (det1 * height34 - height12 * det2) / det3; - if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) - return true; - } - x3 = x4; - y3 = y4; - } - return false; - }; - SkeletonBounds.prototype.getPolygon = function (boundingBox) { - if (boundingBox == null) - throw new Error("boundingBox cannot be null."); - var index = this.boundingBoxes.indexOf(boundingBox); - return index == -1 ? null : this.polygons[index]; - }; - SkeletonBounds.prototype.getWidth = function () { - return this.maxX - this.minX; - }; - SkeletonBounds.prototype.getHeight = function () { - return this.maxY - this.minY; - }; - return SkeletonBounds; - }()); - spine.SkeletonBounds = SkeletonBounds; + var SkeletonBounds = (function () { + function SkeletonBounds() { + this.minX = 0; + this.minY = 0; + this.maxX = 0; + this.maxY = 0; + this.boundingBoxes = new Array(); + this.polygons = new Array(); + this.polygonPool = new spine.Pool(function () { + return spine.Utils.newFloatArray(16); + }); + } + SkeletonBounds.prototype.update = function (skeleton, updateAabb) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + var boundingBoxes = this.boundingBoxes; + var polygons = this.polygons; + var polygonPool = this.polygonPool; + var slots = skeleton.slots; + var slotCount = slots.length; + boundingBoxes.length = 0; + polygonPool.freeAll(polygons); + polygons.length = 0; + for (var i = 0; i < slotCount; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.BoundingBoxAttachment) { + var boundingBox = attachment; + boundingBoxes.push(boundingBox); + var polygon = polygonPool.obtain(); + if (polygon.length != boundingBox.worldVerticesLength) { + polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); + } + polygons.push(polygon); + boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); + } + } + if (updateAabb) { + this.aabbCompute(); + } + else { + this.minX = Number.POSITIVE_INFINITY; + this.minY = Number.POSITIVE_INFINITY; + this.maxX = Number.NEGATIVE_INFINITY; + this.maxY = Number.NEGATIVE_INFINITY; + } + }; + SkeletonBounds.prototype.aabbCompute = function () { + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) { + var polygon = polygons[i]; + var vertices = polygon; + for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { + var x = vertices[ii]; + var y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + this.minX = minX; + this.minY = minY; + this.maxX = maxX; + this.maxY = maxY; + }; + SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { + return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; + }; + SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { + var minX = this.minX; + var minY = this.minY; + var maxX = this.maxX; + var maxY = this.maxY; + if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) + return false; + var m = (y2 - y1) / (x2 - x1); + var y = m * (minX - x1) + y1; + if (y > minY && y < maxY) + return true; + y = m * (maxX - x1) + y1; + if (y > minY && y < maxY) + return true; + var x = (minY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + x = (maxY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + return false; + }; + SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { + return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; + }; + SkeletonBounds.prototype.containsPoint = function (x, y) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.containsPointPolygon(polygons[i], x, y)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { + var vertices = polygon; + var nn = polygon.length; + var prevIndex = nn - 2; + var inside = false; + for (var ii = 0; ii < nn; ii += 2) { + var vertexY = vertices[ii + 1]; + var prevY = vertices[prevIndex + 1]; + if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { + var vertexX = vertices[ii]; + if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) + inside = !inside; + } + prevIndex = ii; + } + return inside; + }; + SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { + var vertices = polygon; + var nn = polygon.length; + var width12 = x1 - x2, height12 = y1 - y2; + var det1 = x1 * y2 - y1 * x2; + var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; + for (var ii = 0; ii < nn; ii += 2) { + var x4 = vertices[ii], y4 = vertices[ii + 1]; + var det2 = x3 * y4 - y3 * x4; + var width34 = x3 - x4, height34 = y3 - y4; + var det3 = width12 * height34 - height12 * width34; + var x = (det1 * width34 - width12 * det2) / det3; + if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { + var y = (det1 * height34 - height12 * det2) / det3; + if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) + return true; + } + x3 = x4; + y3 = y4; + } + return false; + }; + SkeletonBounds.prototype.getPolygon = function (boundingBox) { + if (boundingBox == null) + throw new Error("boundingBox cannot be null."); + var index = this.boundingBoxes.indexOf(boundingBox); + return index == -1 ? null : this.polygons[index]; + }; + SkeletonBounds.prototype.getWidth = function () { + return this.maxX - this.minX; + }; + SkeletonBounds.prototype.getHeight = function () { + return this.maxY - this.minY; + }; + return SkeletonBounds; + }()); + spine.SkeletonBounds = SkeletonBounds; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonClipping = (function () { - function SkeletonClipping() { - this.triangulator = new spine.Triangulator(); - this.clippingPolygon = new Array(); - this.clipOutput = new Array(); - this.clippedVertices = new Array(); - this.clippedTriangles = new Array(); - this.scratch = new Array(); - } - SkeletonClipping.prototype.clipStart = function (slot, clip) { - if (this.clipAttachment != null) - return 0; - this.clipAttachment = clip; - var n = clip.worldVerticesLength; - var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); - clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); - var clippingPolygon = this.clippingPolygon; - SkeletonClipping.makeClockwise(clippingPolygon); - var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); - for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { - var polygon = clippingPolygons[i]; - SkeletonClipping.makeClockwise(polygon); - polygon.push(polygon[0]); - polygon.push(polygon[1]); - } - return clippingPolygons.length; - }; - SkeletonClipping.prototype.clipEndWithSlot = function (slot) { - if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) - this.clipEnd(); - }; - SkeletonClipping.prototype.clipEnd = function () { - if (this.clipAttachment == null) - return; - this.clipAttachment = null; - this.clippingPolygons = null; - this.clippedVertices.length = 0; - this.clippedTriangles.length = 0; - this.clippingPolygon.length = 0; - }; - SkeletonClipping.prototype.isClipping = function () { - return this.clipAttachment != null; - }; - SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { - var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; - var clippedTriangles = this.clippedTriangles; - var polygons = this.clippingPolygons; - var polygonsCount = this.clippingPolygons.length; - var vertexSize = twoColor ? 12 : 8; - var index = 0; - clippedVertices.length = 0; - clippedTriangles.length = 0; - outer: for (var i = 0; i < trianglesLength; i += 3) { - var vertexOffset = triangles[i] << 1; - var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; - var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 1] << 1; - var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; - var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 2] << 1; - var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; - var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; - for (var p = 0; p < polygonsCount; p++) { - var s = clippedVertices.length; - if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { - var clipOutputLength = clipOutput.length; - if (clipOutputLength == 0) - continue; - var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; - var d = 1 / (d0 * d2 + d1 * (y1 - y3)); - var clipOutputCount = clipOutputLength >> 1; - var clipOutputItems = this.clipOutput; - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); - for (var ii = 0; ii < clipOutputLength; ii += 2) { - var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; - clippedVerticesItems[s] = x; - clippedVerticesItems[s + 1] = y; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - var c0 = x - x3, c1 = y - y3; - var a = (d0 * c0 + d1 * c1) * d; - var b = (d4 * c0 + d2 * c1) * d; - var c = 1 - a - b; - clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; - clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; - if (twoColor) { - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 8] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - } - s += vertexSize; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); - clipOutputCount--; - for (var ii = 1; ii < clipOutputCount; ii++) { - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + ii); - clippedTrianglesItems[s + 2] = (index + ii + 1); - s += 3; - } - index += clipOutputCount + 1; - } - else { - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); - clippedVerticesItems[s] = x1; - clippedVerticesItems[s + 1] = y1; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - if (!twoColor) { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = x2; - clippedVerticesItems[s + 9] = y2; - clippedVerticesItems[s + 10] = light.r; - clippedVerticesItems[s + 11] = light.g; - clippedVerticesItems[s + 12] = light.b; - clippedVerticesItems[s + 13] = light.a; - clippedVerticesItems[s + 14] = u2; - clippedVerticesItems[s + 15] = v2; - clippedVerticesItems[s + 16] = x3; - clippedVerticesItems[s + 17] = y3; - clippedVerticesItems[s + 18] = light.r; - clippedVerticesItems[s + 19] = light.g; - clippedVerticesItems[s + 20] = light.b; - clippedVerticesItems[s + 21] = light.a; - clippedVerticesItems[s + 22] = u3; - clippedVerticesItems[s + 23] = v3; - } - else { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 9] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - clippedVerticesItems[s + 12] = x2; - clippedVerticesItems[s + 13] = y2; - clippedVerticesItems[s + 14] = light.r; - clippedVerticesItems[s + 15] = light.g; - clippedVerticesItems[s + 16] = light.b; - clippedVerticesItems[s + 17] = light.a; - clippedVerticesItems[s + 18] = u2; - clippedVerticesItems[s + 19] = v2; - clippedVerticesItems[s + 20] = dark.r; - clippedVerticesItems[s + 21] = dark.g; - clippedVerticesItems[s + 22] = dark.b; - clippedVerticesItems[s + 23] = dark.a; - clippedVerticesItems[s + 24] = x3; - clippedVerticesItems[s + 25] = y3; - clippedVerticesItems[s + 26] = light.r; - clippedVerticesItems[s + 27] = light.g; - clippedVerticesItems[s + 28] = light.b; - clippedVerticesItems[s + 29] = light.a; - clippedVerticesItems[s + 30] = u3; - clippedVerticesItems[s + 31] = v3; - clippedVerticesItems[s + 32] = dark.r; - clippedVerticesItems[s + 33] = dark.g; - clippedVerticesItems[s + 34] = dark.b; - clippedVerticesItems[s + 35] = dark.a; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + 1); - clippedTrianglesItems[s + 2] = (index + 2); - index += 3; - continue outer; - } - } - } - }; - SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { - var originalOutput = output; - var clipped = false; - var input = null; - if (clippingArea.length % 4 >= 2) { - input = output; - output = this.scratch; - } - else - input = this.scratch; - input.length = 0; - input.push(x1); - input.push(y1); - input.push(x2); - input.push(y2); - input.push(x3); - input.push(y3); - input.push(x1); - input.push(y1); - output.length = 0; - var clippingVertices = clippingArea; - var clippingVerticesLast = clippingArea.length - 4; - for (var i = 0;; i += 2) { - var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; - var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; - var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; - var inputVertices = input; - var inputVerticesLength = input.length - 2, outputStart = output.length; - for (var ii = 0; ii < inputVerticesLength; ii += 2) { - var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; - var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; - var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; - if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { - if (side2) { - output.push(inputX2); - output.push(inputY2); - continue; - } - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - } - else if (side2) { - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - output.push(inputX2); - output.push(inputY2); - } - clipped = true; - } - if (outputStart == output.length) { - originalOutput.length = 0; - return true; - } - output.push(output[0]); - output.push(output[1]); - if (i == clippingVerticesLast) - break; - var temp = output; - output = input; - output.length = 0; - input = temp; - } - if (originalOutput != output) { - originalOutput.length = 0; - for (var i = 0, n = output.length - 2; i < n; i++) - originalOutput[i] = output[i]; - } - else - originalOutput.length = originalOutput.length - 2; - return clipped; - }; - SkeletonClipping.makeClockwise = function (polygon) { - var vertices = polygon; - var verticeslength = polygon.length; - var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; - for (var i = 0, n = verticeslength - 3; i < n; i += 2) { - p1x = vertices[i]; - p1y = vertices[i + 1]; - p2x = vertices[i + 2]; - p2y = vertices[i + 3]; - area += p1x * p2y - p2x * p1y; - } - if (area < 0) - return; - for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { - var x = vertices[i], y = vertices[i + 1]; - var other = lastX - i; - vertices[i] = vertices[other]; - vertices[i + 1] = vertices[other + 1]; - vertices[other] = x; - vertices[other + 1] = y; - } - }; - return SkeletonClipping; - }()); - spine.SkeletonClipping = SkeletonClipping; + var SkeletonClipping = (function () { + function SkeletonClipping() { + this.triangulator = new spine.Triangulator(); + this.clippingPolygon = new Array(); + this.clipOutput = new Array(); + this.clippedVertices = new Array(); + this.clippedTriangles = new Array(); + this.scratch = new Array(); + } + SkeletonClipping.prototype.clipStart = function (slot, clip) { + if (this.clipAttachment != null) + return 0; + this.clipAttachment = clip; + var n = clip.worldVerticesLength; + var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); + clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); + var clippingPolygon = this.clippingPolygon; + SkeletonClipping.makeClockwise(clippingPolygon); + var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); + for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { + var polygon = clippingPolygons[i]; + SkeletonClipping.makeClockwise(polygon); + polygon.push(polygon[0]); + polygon.push(polygon[1]); + } + return clippingPolygons.length; + }; + SkeletonClipping.prototype.clipEndWithSlot = function (slot) { + if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) + this.clipEnd(); + }; + SkeletonClipping.prototype.clipEnd = function () { + if (this.clipAttachment == null) + return; + this.clipAttachment = null; + this.clippingPolygons = null; + this.clippedVertices.length = 0; + this.clippedTriangles.length = 0; + this.clippingPolygon.length = 0; + }; + SkeletonClipping.prototype.isClipping = function () { + return this.clipAttachment != null; + }; + SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { + var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; + var clippedTriangles = this.clippedTriangles; + var polygons = this.clippingPolygons; + var polygonsCount = this.clippingPolygons.length; + var vertexSize = twoColor ? 12 : 8; + var index = 0; + clippedVertices.length = 0; + clippedTriangles.length = 0; + outer: for (var i = 0; i < trianglesLength; i += 3) { + var vertexOffset = triangles[i] << 1; + var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; + var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 1] << 1; + var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; + var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 2] << 1; + var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; + var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; + for (var p = 0; p < polygonsCount; p++) { + var s = clippedVertices.length; + if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { + var clipOutputLength = clipOutput.length; + if (clipOutputLength == 0) + continue; + var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; + var d = 1 / (d0 * d2 + d1 * (y1 - y3)); + var clipOutputCount = clipOutputLength >> 1; + var clipOutputItems = this.clipOutput; + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); + for (var ii = 0; ii < clipOutputLength; ii += 2) { + var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; + clippedVerticesItems[s] = x; + clippedVerticesItems[s + 1] = y; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + var c0 = x - x3, c1 = y - y3; + var a = (d0 * c0 + d1 * c1) * d; + var b = (d4 * c0 + d2 * c1) * d; + var c = 1 - a - b; + clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; + clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; + if (twoColor) { + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 8] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + } + s += vertexSize; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); + clipOutputCount--; + for (var ii = 1; ii < clipOutputCount; ii++) { + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + ii); + clippedTrianglesItems[s + 2] = (index + ii + 1); + s += 3; + } + index += clipOutputCount + 1; + } + else { + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); + clippedVerticesItems[s] = x1; + clippedVerticesItems[s + 1] = y1; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + if (!twoColor) { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = x2; + clippedVerticesItems[s + 9] = y2; + clippedVerticesItems[s + 10] = light.r; + clippedVerticesItems[s + 11] = light.g; + clippedVerticesItems[s + 12] = light.b; + clippedVerticesItems[s + 13] = light.a; + clippedVerticesItems[s + 14] = u2; + clippedVerticesItems[s + 15] = v2; + clippedVerticesItems[s + 16] = x3; + clippedVerticesItems[s + 17] = y3; + clippedVerticesItems[s + 18] = light.r; + clippedVerticesItems[s + 19] = light.g; + clippedVerticesItems[s + 20] = light.b; + clippedVerticesItems[s + 21] = light.a; + clippedVerticesItems[s + 22] = u3; + clippedVerticesItems[s + 23] = v3; + } + else { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 9] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + clippedVerticesItems[s + 12] = x2; + clippedVerticesItems[s + 13] = y2; + clippedVerticesItems[s + 14] = light.r; + clippedVerticesItems[s + 15] = light.g; + clippedVerticesItems[s + 16] = light.b; + clippedVerticesItems[s + 17] = light.a; + clippedVerticesItems[s + 18] = u2; + clippedVerticesItems[s + 19] = v2; + clippedVerticesItems[s + 20] = dark.r; + clippedVerticesItems[s + 21] = dark.g; + clippedVerticesItems[s + 22] = dark.b; + clippedVerticesItems[s + 23] = dark.a; + clippedVerticesItems[s + 24] = x3; + clippedVerticesItems[s + 25] = y3; + clippedVerticesItems[s + 26] = light.r; + clippedVerticesItems[s + 27] = light.g; + clippedVerticesItems[s + 28] = light.b; + clippedVerticesItems[s + 29] = light.a; + clippedVerticesItems[s + 30] = u3; + clippedVerticesItems[s + 31] = v3; + clippedVerticesItems[s + 32] = dark.r; + clippedVerticesItems[s + 33] = dark.g; + clippedVerticesItems[s + 34] = dark.b; + clippedVerticesItems[s + 35] = dark.a; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + 1); + clippedTrianglesItems[s + 2] = (index + 2); + index += 3; + continue outer; + } + } + } + }; + SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { + var originalOutput = output; + var clipped = false; + var input = null; + if (clippingArea.length % 4 >= 2) { + input = output; + output = this.scratch; + } + else + input = this.scratch; + input.length = 0; + input.push(x1); + input.push(y1); + input.push(x2); + input.push(y2); + input.push(x3); + input.push(y3); + input.push(x1); + input.push(y1); + output.length = 0; + var clippingVertices = clippingArea; + var clippingVerticesLast = clippingArea.length - 4; + for (var i = 0;; i += 2) { + var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; + var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; + var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; + var inputVertices = input; + var inputVerticesLength = input.length - 2, outputStart = output.length; + for (var ii = 0; ii < inputVerticesLength; ii += 2) { + var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; + var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; + var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; + if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { + if (side2) { + output.push(inputX2); + output.push(inputY2); + continue; + } + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + } + else if (side2) { + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + output.push(inputX2); + output.push(inputY2); + } + clipped = true; + } + if (outputStart == output.length) { + originalOutput.length = 0; + return true; + } + output.push(output[0]); + output.push(output[1]); + if (i == clippingVerticesLast) + break; + var temp = output; + output = input; + output.length = 0; + input = temp; + } + if (originalOutput != output) { + originalOutput.length = 0; + for (var i = 0, n = output.length - 2; i < n; i++) + originalOutput[i] = output[i]; + } + else + originalOutput.length = originalOutput.length - 2; + return clipped; + }; + SkeletonClipping.makeClockwise = function (polygon) { + var vertices = polygon; + var verticeslength = polygon.length; + var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; + for (var i = 0, n = verticeslength - 3; i < n; i += 2) { + p1x = vertices[i]; + p1y = vertices[i + 1]; + p2x = vertices[i + 2]; + p2y = vertices[i + 3]; + area += p1x * p2y - p2x * p1y; + } + if (area < 0) + return; + for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { + var x = vertices[i], y = vertices[i + 1]; + var other = lastX - i; + vertices[i] = vertices[other]; + vertices[i + 1] = vertices[other + 1]; + vertices[other] = x; + vertices[other + 1] = y; + } + }; + return SkeletonClipping; + }()); + spine.SkeletonClipping = SkeletonClipping; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonData = (function () { - function SkeletonData() { - this.bones = new Array(); - this.slots = new Array(); - this.skins = new Array(); - this.events = new Array(); - this.animations = new Array(); - this.ikConstraints = new Array(); - this.transformConstraints = new Array(); - this.pathConstraints = new Array(); - this.fps = 0; - } - SkeletonData.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.name == boneName) - return bone; - } - return null; - }; - SkeletonData.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].name == boneName) - return i; - return -1; - }; - SkeletonData.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.name == slotName) - return slot; - } - return null; - }; - SkeletonData.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].name == slotName) - return i; - return -1; - }; - SkeletonData.prototype.findSkin = function (skinName) { - if (skinName == null) - throw new Error("skinName cannot be null."); - var skins = this.skins; - for (var i = 0, n = skins.length; i < n; i++) { - var skin = skins[i]; - if (skin.name == skinName) - return skin; - } - return null; - }; - SkeletonData.prototype.findEvent = function (eventDataName) { - if (eventDataName == null) - throw new Error("eventDataName cannot be null."); - var events = this.events; - for (var i = 0, n = events.length; i < n; i++) { - var event_4 = events[i]; - if (event_4.name == eventDataName) - return event_4; - } - return null; - }; - SkeletonData.prototype.findAnimation = function (animationName) { - if (animationName == null) - throw new Error("animationName cannot be null."); - var animations = this.animations; - for (var i = 0, n = animations.length; i < n; i++) { - var animation = animations[i]; - if (animation.name == animationName) - return animation; - } - return null; - }; - SkeletonData.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { - if (pathConstraintName == null) - throw new Error("pathConstraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) - if (pathConstraints[i].name == pathConstraintName) - return i; - return -1; - }; - return SkeletonData; - }()); - spine.SkeletonData = SkeletonData; + var SkeletonData = (function () { + function SkeletonData() { + this.bones = new Array(); + this.slots = new Array(); + this.skins = new Array(); + this.events = new Array(); + this.animations = new Array(); + this.ikConstraints = new Array(); + this.transformConstraints = new Array(); + this.pathConstraints = new Array(); + this.fps = 0; + } + SkeletonData.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.name == boneName) + return bone; + } + return null; + }; + SkeletonData.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].name == boneName) + return i; + return -1; + }; + SkeletonData.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.name == slotName) + return slot; + } + return null; + }; + SkeletonData.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].name == slotName) + return i; + return -1; + }; + SkeletonData.prototype.findSkin = function (skinName) { + if (skinName == null) + throw new Error("skinName cannot be null."); + var skins = this.skins; + for (var i = 0, n = skins.length; i < n; i++) { + var skin = skins[i]; + if (skin.name == skinName) + return skin; + } + return null; + }; + SkeletonData.prototype.findEvent = function (eventDataName) { + if (eventDataName == null) + throw new Error("eventDataName cannot be null."); + var events = this.events; + for (var i = 0, n = events.length; i < n; i++) { + var event_4 = events[i]; + if (event_4.name == eventDataName) + return event_4; + } + return null; + }; + SkeletonData.prototype.findAnimation = function (animationName) { + if (animationName == null) + throw new Error("animationName cannot be null."); + var animations = this.animations; + for (var i = 0, n = animations.length; i < n; i++) { + var animation = animations[i]; + if (animation.name == animationName) + return animation; + } + return null; + }; + SkeletonData.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { + if (pathConstraintName == null) + throw new Error("pathConstraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) + if (pathConstraints[i].name == pathConstraintName) + return i; + return -1; + }; + return SkeletonData; + }()); + spine.SkeletonData = SkeletonData; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonJson = (function () { - function SkeletonJson(attachmentLoader) { - this.scale = 1; - this.linkedMeshes = new Array(); - this.attachmentLoader = attachmentLoader; - } - SkeletonJson.prototype.readSkeletonData = function (json) { - var scale = this.scale; - var skeletonData = new spine.SkeletonData(); - var root = typeof (json) === "string" ? JSON.parse(json) : json; - var skeletonMap = root.skeleton; - if (skeletonMap != null) { - skeletonData.hash = skeletonMap.hash; - skeletonData.version = skeletonMap.spine; - skeletonData.width = skeletonMap.width; - skeletonData.height = skeletonMap.height; - skeletonData.fps = skeletonMap.fps; - skeletonData.imagesPath = skeletonMap.images; - } - if (root.bones) { - for (var i = 0; i < root.bones.length; i++) { - var boneMap = root.bones[i]; - var parent_2 = null; - var parentName = this.getValue(boneMap, "parent", null); - if (parentName != null) { - parent_2 = skeletonData.findBone(parentName); - if (parent_2 == null) - throw new Error("Parent bone not found: " + parentName); - } - var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); - data.length = this.getValue(boneMap, "length", 0) * scale; - data.x = this.getValue(boneMap, "x", 0) * scale; - data.y = this.getValue(boneMap, "y", 0) * scale; - data.rotation = this.getValue(boneMap, "rotation", 0); - data.scaleX = this.getValue(boneMap, "scaleX", 1); - data.scaleY = this.getValue(boneMap, "scaleY", 1); - data.shearX = this.getValue(boneMap, "shearX", 0); - data.shearY = this.getValue(boneMap, "shearY", 0); - data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); - skeletonData.bones.push(data); - } - } - if (root.slots) { - for (var i = 0; i < root.slots.length; i++) { - var slotMap = root.slots[i]; - var slotName = slotMap.name; - var boneName = slotMap.bone; - var boneData = skeletonData.findBone(boneName); - if (boneData == null) - throw new Error("Slot bone not found: " + boneName); - var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); - var color = this.getValue(slotMap, "color", null); - if (color != null) - data.color.setFromString(color); - var dark = this.getValue(slotMap, "dark", null); - if (dark != null) { - data.darkColor = new spine.Color(1, 1, 1, 1); - data.darkColor.setFromString(dark); - } - data.attachmentName = this.getValue(slotMap, "attachment", null); - data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); - skeletonData.slots.push(data); - } - } - if (root.ik) { - for (var i = 0; i < root.ik.length; i++) { - var constraintMap = root.ik[i]; - var data = new spine.IkConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("IK bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("IK target bone not found: " + targetName); - data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; - data.mix = this.getValue(constraintMap, "mix", 1); - skeletonData.ikConstraints.push(data); - } - } - if (root.transform) { - for (var i = 0; i < root.transform.length; i++) { - var constraintMap = root.transform[i]; - var data = new spine.TransformConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("Transform constraint target bone not found: " + targetName); - data.local = this.getValue(constraintMap, "local", false); - data.relative = this.getValue(constraintMap, "relative", false); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.offsetX = this.getValue(constraintMap, "x", 0) * scale; - data.offsetY = this.getValue(constraintMap, "y", 0) * scale; - data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); - data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); - data.offsetShearY = this.getValue(constraintMap, "shearY", 0); - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); - data.shearMix = this.getValue(constraintMap, "shearMix", 1); - skeletonData.transformConstraints.push(data); - } - } - if (root.path) { - for (var i = 0; i < root.path.length; i++) { - var constraintMap = root.path[i]; - var data = new spine.PathConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findSlot(targetName); - if (data.target == null) - throw new Error("Path target slot not found: " + targetName); - data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); - data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); - data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.position = this.getValue(constraintMap, "position", 0); - if (data.positionMode == spine.PositionMode.Fixed) - data.position *= scale; - data.spacing = this.getValue(constraintMap, "spacing", 0); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - data.spacing *= scale; - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - skeletonData.pathConstraints.push(data); - } - } - if (root.skins) { - for (var skinName in root.skins) { - var skinMap = root.skins[skinName]; - var skin = new spine.Skin(skinName); - for (var slotName in skinMap) { - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - var slotMap = skinMap[slotName]; - for (var entryName in slotMap) { - var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); - if (attachment != null) - skin.addAttachment(slotIndex, entryName, attachment); - } - } - skeletonData.skins.push(skin); - if (skin.name == "default") - skeletonData.defaultSkin = skin; - } - } - for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { - var linkedMesh = this.linkedMeshes[i]; - var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); - if (skin == null) - throw new Error("Skin not found: " + linkedMesh.skin); - var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_3 == null) - throw new Error("Parent mesh not found: " + linkedMesh.parent); - linkedMesh.mesh.setParentMesh(parent_3); - linkedMesh.mesh.updateUVs(); - } - this.linkedMeshes.length = 0; - if (root.events) { - for (var eventName in root.events) { - var eventMap = root.events[eventName]; - var data = new spine.EventData(eventName); - data.intValue = this.getValue(eventMap, "int", 0); - data.floatValue = this.getValue(eventMap, "float", 0); - data.stringValue = this.getValue(eventMap, "string", ""); - skeletonData.events.push(data); - } - } - if (root.animations) { - for (var animationName in root.animations) { - var animationMap = root.animations[animationName]; - this.readAnimation(animationMap, animationName, skeletonData); - } - } - return skeletonData; - }; - SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { - var scale = this.scale; - name = this.getValue(map, "name", name); - var type = this.getValue(map, "type", "region"); - switch (type) { - case "region": { - var path = this.getValue(map, "path", name); - var region = this.attachmentLoader.newRegionAttachment(skin, name, path); - if (region == null) - return null; - region.path = path; - region.x = this.getValue(map, "x", 0) * scale; - region.y = this.getValue(map, "y", 0) * scale; - region.scaleX = this.getValue(map, "scaleX", 1); - region.scaleY = this.getValue(map, "scaleY", 1); - region.rotation = this.getValue(map, "rotation", 0); - region.width = map.width * scale; - region.height = map.height * scale; - var color = this.getValue(map, "color", null); - if (color != null) - region.color.setFromString(color); - region.updateOffset(); - return region; - } - case "boundingbox": { - var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); - if (box == null) - return null; - this.readVertices(map, box, map.vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - box.color.setFromString(color); - return box; - } - case "mesh": - case "linkedmesh": { - var path = this.getValue(map, "path", name); - var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); - if (mesh == null) - return null; - mesh.path = path; - var color = this.getValue(map, "color", null); - if (color != null) - mesh.color.setFromString(color); - var parent_4 = this.getValue(map, "parent", null); - if (parent_4 != null) { - mesh.inheritDeform = this.getValue(map, "deform", true); - this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); - return mesh; - } - var uvs = map.uvs; - this.readVertices(map, mesh, uvs.length); - mesh.triangles = map.triangles; - mesh.regionUVs = uvs; - mesh.updateUVs(); - mesh.hullLength = this.getValue(map, "hull", 0) * 2; - return mesh; - } - case "path": { - var path = this.attachmentLoader.newPathAttachment(skin, name); - if (path == null) - return null; - path.closed = this.getValue(map, "closed", false); - path.constantSpeed = this.getValue(map, "constantSpeed", true); - var vertexCount = map.vertexCount; - this.readVertices(map, path, vertexCount << 1); - var lengths = spine.Utils.newArray(vertexCount / 3, 0); - for (var i = 0; i < map.lengths.length; i++) - lengths[i++] = map.lengths[i] * scale; - path.lengths = lengths; - var color = this.getValue(map, "color", null); - if (color != null) - path.color.setFromString(color); - return path; - } - case "point": { - var point = this.attachmentLoader.newPointAttachment(skin, name); - if (point == null) - return null; - point.x = this.getValue(map, "x", 0) * scale; - point.y = this.getValue(map, "y", 0) * scale; - point.rotation = this.getValue(map, "rotation", 0); - var color = this.getValue(map, "color", null); - if (color != null) - point.color.setFromString(color); - return point; - } - case "clipping": { - var clip = this.attachmentLoader.newClippingAttachment(skin, name); - if (clip == null) - return null; - var end = this.getValue(map, "end", null); - if (end != null) { - var slot = skeletonData.findSlot(end); - if (slot == null) - throw new Error("Clipping end slot not found: " + end); - clip.endSlot = slot; - } - var vertexCount = map.vertexCount; - this.readVertices(map, clip, vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - clip.color.setFromString(color); - return clip; - } - } - return null; - }; - SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { - var scale = this.scale; - attachment.worldVerticesLength = verticesLength; - var vertices = map.vertices; - if (verticesLength == vertices.length) { - var scaledVertices = spine.Utils.toFloatArray(vertices); - if (scale != 1) { - for (var i = 0, n = vertices.length; i < n; i++) - scaledVertices[i] *= scale; - } - attachment.vertices = scaledVertices; - return; - } - var weights = new Array(); - var bones = new Array(); - for (var i = 0, n = vertices.length; i < n;) { - var boneCount = vertices[i++]; - bones.push(boneCount); - for (var nn = i + boneCount * 4; i < nn; i += 4) { - bones.push(vertices[i]); - weights.push(vertices[i + 1] * scale); - weights.push(vertices[i + 2] * scale); - weights.push(vertices[i + 3]); - } - } - attachment.bones = bones; - attachment.vertices = spine.Utils.toFloatArray(weights); - }; - SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { - var scale = this.scale; - var timelines = new Array(); - var duration = 0; - if (map.slots) { - for (var slotName in map.slots) { - var slotMap = map.slots[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - if (timelineName == "attachment") { - var timeline = new spine.AttachmentTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - else if (timelineName == "color") { - var timeline = new spine.ColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var color = new spine.Color(); - color.setFromString(valueMap.color); - timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); - } - else if (timelineName == "twoColor") { - var timeline = new spine.TwoColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var light = new spine.Color(); - var dark = new spine.Color(); - light.setFromString(valueMap.light); - dark.setFromString(valueMap.dark); - timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); - } - } - } - if (map.bones) { - for (var boneName in map.bones) { - var boneMap = map.bones[boneName]; - var boneIndex = skeletonData.findBoneIndex(boneName); - if (boneIndex == -1) - throw new Error("Bone not found: " + boneName); - for (var timelineName in boneMap) { - var timelineMap = boneMap[timelineName]; - if (timelineName === "rotate") { - var timeline = new spine.RotateTimeline(timelineMap.length); - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); - } - else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "scale") - timeline = new spine.ScaleTimeline(timelineMap.length); - else if (timelineName === "shear") - timeline = new spine.ShearTimeline(timelineMap.length); - else { - timeline = new spine.TranslateTimeline(timelineMap.length); - timelineScale = scale; - } - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); - timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); - } - } - } - if (map.ik) { - for (var constraintName in map.ik) { - var constraintMap = map.ik[constraintName]; - var constraint = skeletonData.findIkConstraint(constraintName); - var timeline = new spine.IkConstraintTimeline(constraintMap.length); - timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); - } - } - if (map.transform) { - for (var constraintName in map.transform) { - var constraintMap = map.transform[constraintName]; - var constraint = skeletonData.findTransformConstraint(constraintName); - var timeline = new spine.TransformConstraintTimeline(constraintMap.length); - timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); - } - } - if (map.paths) { - for (var constraintName in map.paths) { - var constraintMap = map.paths[constraintName]; - var index = skeletonData.findPathConstraintIndex(constraintName); - if (index == -1) - throw new Error("Path constraint not found: " + constraintName); - var data = skeletonData.pathConstraints[index]; - for (var timelineName in constraintMap) { - var timelineMap = constraintMap[timelineName]; - if (timelineName === "position" || timelineName === "spacing") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "spacing") { - timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - timelineScale = scale; - } - else { - timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); - if (data.positionMode == spine.PositionMode.Fixed) - timelineScale = scale; - } - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); - } - else if (timelineName === "mix") { - var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); - } - } - } - } - if (map.deform) { - for (var deformName in map.deform) { - var deformMap = map.deform[deformName]; - var skin = skeletonData.findSkin(deformName); - if (skin == null) - throw new Error("Skin not found: " + deformName); - for (var slotName in deformMap) { - var slotMap = deformMap[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotMap.name); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - var attachment = skin.getAttachment(slotIndex, timelineName); - if (attachment == null) - throw new Error("Deform attachment not found: " + timelineMap.name); - var weighted = attachment.bones != null; - var vertices = attachment.vertices; - var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; - var timeline = new spine.DeformTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - timeline.attachment = attachment; - var frameIndex = 0; - for (var j = 0; j < timelineMap.length; j++) { - var valueMap = timelineMap[j]; - var deform = void 0; - var verticesValue = this.getValue(valueMap, "vertices", null); - if (verticesValue == null) - deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; - else { - deform = spine.Utils.newFloatArray(deformLength); - var start = this.getValue(valueMap, "offset", 0); - spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); - if (scale != 1) { - for (var i = start, n = i + verticesValue.length; i < n; i++) - deform[i] *= scale; - } - if (!weighted) { - for (var i = 0; i < deformLength; i++) - deform[i] += vertices[i]; - } - } - timeline.setFrame(frameIndex, valueMap.time, deform); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - } - } - } - var drawOrderNode = map.drawOrder; - if (drawOrderNode == null) - drawOrderNode = map.draworder; - if (drawOrderNode != null) { - var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); - var slotCount = skeletonData.slots.length; - var frameIndex = 0; - for (var j = 0; j < drawOrderNode.length; j++) { - var drawOrderMap = drawOrderNode[j]; - var drawOrder = null; - var offsets = this.getValue(drawOrderMap, "offsets", null); - if (offsets != null) { - drawOrder = spine.Utils.newArray(slotCount, -1); - var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); - var originalIndex = 0, unchangedIndex = 0; - for (var i = 0; i < offsets.length; i++) { - var offsetMap = offsets[i]; - var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); - if (slotIndex == -1) - throw new Error("Slot not found: " + offsetMap.slot); - while (originalIndex != slotIndex) - unchanged[unchangedIndex++] = originalIndex++; - drawOrder[originalIndex + offsetMap.offset] = originalIndex++; - } - while (originalIndex < slotCount) - unchanged[unchangedIndex++] = originalIndex++; - for (var i = slotCount - 1; i >= 0; i--) - if (drawOrder[i] == -1) - drawOrder[i] = unchanged[--unchangedIndex]; - } - timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (map.events) { - var timeline = new spine.EventTimeline(map.events.length); - var frameIndex = 0; - for (var i = 0; i < map.events.length; i++) { - var eventMap = map.events[i]; - var eventData = skeletonData.findEvent(eventMap.name); - if (eventData == null) - throw new Error("Event not found: " + eventMap.name); - var event_5 = new spine.Event(eventMap.time, eventData); - event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); - event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); - event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); - timeline.setFrame(frameIndex++, event_5); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (isNaN(duration)) { - throw new Error("Error while parsing animation, duration is NaN"); - } - skeletonData.animations.push(new spine.Animation(name, timelines, duration)); - }; - SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { - if (!map.curve) - return; - if (map.curve === "stepped") - timeline.setStepped(frameIndex); - else if (Object.prototype.toString.call(map.curve) === '[object Array]') { - var curve = map.curve; - timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); - } - }; - SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { - return map[prop] !== undefined ? map[prop] : defaultValue; - }; - SkeletonJson.blendModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.BlendMode.Normal; - if (str == "additive") - return spine.BlendMode.Additive; - if (str == "multiply") - return spine.BlendMode.Multiply; - if (str == "screen") - return spine.BlendMode.Screen; - throw new Error("Unknown blend mode: " + str); - }; - SkeletonJson.positionModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "fixed") - return spine.PositionMode.Fixed; - if (str == "percent") - return spine.PositionMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.spacingModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "length") - return spine.SpacingMode.Length; - if (str == "fixed") - return spine.SpacingMode.Fixed; - if (str == "percent") - return spine.SpacingMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.rotateModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "tangent") - return spine.RotateMode.Tangent; - if (str == "chain") - return spine.RotateMode.Chain; - if (str == "chainscale") - return spine.RotateMode.ChainScale; - throw new Error("Unknown rotate mode: " + str); - }; - SkeletonJson.transformModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.TransformMode.Normal; - if (str == "onlytranslation") - return spine.TransformMode.OnlyTranslation; - if (str == "norotationorreflection") - return spine.TransformMode.NoRotationOrReflection; - if (str == "noscale") - return spine.TransformMode.NoScale; - if (str == "noscaleorreflection") - return spine.TransformMode.NoScaleOrReflection; - throw new Error("Unknown transform mode: " + str); - }; - return SkeletonJson; - }()); - spine.SkeletonJson = SkeletonJson; - var LinkedMesh = (function () { - function LinkedMesh(mesh, skin, slotIndex, parent) { - this.mesh = mesh; - this.skin = skin; - this.slotIndex = slotIndex; - this.parent = parent; - } - return LinkedMesh; - }()); + var SkeletonJson = (function () { + function SkeletonJson(attachmentLoader) { + this.scale = 1; + this.linkedMeshes = new Array(); + this.attachmentLoader = attachmentLoader; + } + SkeletonJson.prototype.readSkeletonData = function (json) { + var scale = this.scale; + var skeletonData = new spine.SkeletonData(); + var root = typeof (json) === "string" ? JSON.parse(json) : json; + var skeletonMap = root.skeleton; + if (skeletonMap != null) { + skeletonData.hash = skeletonMap.hash; + skeletonData.version = skeletonMap.spine; + skeletonData.width = skeletonMap.width; + skeletonData.height = skeletonMap.height; + skeletonData.fps = skeletonMap.fps; + skeletonData.imagesPath = skeletonMap.images; + } + if (root.bones) { + for (var i = 0; i < root.bones.length; i++) { + var boneMap = root.bones[i]; + var parent_2 = null; + var parentName = this.getValue(boneMap, "parent", null); + if (parentName != null) { + parent_2 = skeletonData.findBone(parentName); + if (parent_2 == null) + throw new Error("Parent bone not found: " + parentName); + } + var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); + data.length = this.getValue(boneMap, "length", 0) * scale; + data.x = this.getValue(boneMap, "x", 0) * scale; + data.y = this.getValue(boneMap, "y", 0) * scale; + data.rotation = this.getValue(boneMap, "rotation", 0); + data.scaleX = this.getValue(boneMap, "scaleX", 1); + data.scaleY = this.getValue(boneMap, "scaleY", 1); + data.shearX = this.getValue(boneMap, "shearX", 0); + data.shearY = this.getValue(boneMap, "shearY", 0); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); + skeletonData.bones.push(data); + } + } + if (root.slots) { + for (var i = 0; i < root.slots.length; i++) { + var slotMap = root.slots[i]; + var slotName = slotMap.name; + var boneName = slotMap.bone; + var boneData = skeletonData.findBone(boneName); + if (boneData == null) + throw new Error("Slot bone not found: " + boneName); + var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); + var color = this.getValue(slotMap, "color", null); + if (color != null) + data.color.setFromString(color); + var dark = this.getValue(slotMap, "dark", null); + if (dark != null) { + data.darkColor = new spine.Color(1, 1, 1, 1); + data.darkColor.setFromString(dark); + } + data.attachmentName = this.getValue(slotMap, "attachment", null); + data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); + skeletonData.slots.push(data); + } + } + if (root.ik) { + for (var i = 0; i < root.ik.length; i++) { + var constraintMap = root.ik[i]; + var data = new spine.IkConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("IK bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("IK target bone not found: " + targetName); + data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; + data.mix = this.getValue(constraintMap, "mix", 1); + skeletonData.ikConstraints.push(data); + } + } + if (root.transform) { + for (var i = 0; i < root.transform.length; i++) { + var constraintMap = root.transform[i]; + var data = new spine.TransformConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("Transform constraint target bone not found: " + targetName); + data.local = this.getValue(constraintMap, "local", false); + data.relative = this.getValue(constraintMap, "relative", false); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.offsetX = this.getValue(constraintMap, "x", 0) * scale; + data.offsetY = this.getValue(constraintMap, "y", 0) * scale; + data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); + data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); + data.offsetShearY = this.getValue(constraintMap, "shearY", 0); + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); + data.shearMix = this.getValue(constraintMap, "shearMix", 1); + skeletonData.transformConstraints.push(data); + } + } + if (root.path) { + for (var i = 0; i < root.path.length; i++) { + var constraintMap = root.path[i]; + var data = new spine.PathConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findSlot(targetName); + if (data.target == null) + throw new Error("Path target slot not found: " + targetName); + data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); + data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); + data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.position = this.getValue(constraintMap, "position", 0); + if (data.positionMode == spine.PositionMode.Fixed) + data.position *= scale; + data.spacing = this.getValue(constraintMap, "spacing", 0); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + data.spacing *= scale; + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + skeletonData.pathConstraints.push(data); + } + } + if (root.skins) { + for (var skinName in root.skins) { + var skinMap = root.skins[skinName]; + var skin = new spine.Skin(skinName); + for (var slotName in skinMap) { + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + var slotMap = skinMap[slotName]; + for (var entryName in slotMap) { + var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); + if (attachment != null) + skin.addAttachment(slotIndex, entryName, attachment); + } + } + skeletonData.skins.push(skin); + if (skin.name == "default") + skeletonData.defaultSkin = skin; + } + } + for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { + var linkedMesh = this.linkedMeshes[i]; + var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); + if (skin == null) + throw new Error("Skin not found: " + linkedMesh.skin); + var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); + if (parent_3 == null) + throw new Error("Parent mesh not found: " + linkedMesh.parent); + linkedMesh.mesh.setParentMesh(parent_3); + linkedMesh.mesh.updateUVs(); + } + this.linkedMeshes.length = 0; + if (root.events) { + for (var eventName in root.events) { + var eventMap = root.events[eventName]; + var data = new spine.EventData(eventName); + data.intValue = this.getValue(eventMap, "int", 0); + data.floatValue = this.getValue(eventMap, "float", 0); + data.stringValue = this.getValue(eventMap, "string", ""); + skeletonData.events.push(data); + } + } + if (root.animations) { + for (var animationName in root.animations) { + var animationMap = root.animations[animationName]; + this.readAnimation(animationMap, animationName, skeletonData); + } + } + return skeletonData; + }; + SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { + var scale = this.scale; + name = this.getValue(map, "name", name); + var type = this.getValue(map, "type", "region"); + switch (type) { + case "region": { + var path = this.getValue(map, "path", name); + var region = this.attachmentLoader.newRegionAttachment(skin, name, path); + if (region == null) + return null; + region.path = path; + region.x = this.getValue(map, "x", 0) * scale; + region.y = this.getValue(map, "y", 0) * scale; + region.scaleX = this.getValue(map, "scaleX", 1); + region.scaleY = this.getValue(map, "scaleY", 1); + region.rotation = this.getValue(map, "rotation", 0); + region.width = map.width * scale; + region.height = map.height * scale; + var color = this.getValue(map, "color", null); + if (color != null) + region.color.setFromString(color); + region.updateOffset(); + return region; + } + case "boundingbox": { + var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); + if (box == null) + return null; + this.readVertices(map, box, map.vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + box.color.setFromString(color); + return box; + } + case "mesh": + case "linkedmesh": { + var path = this.getValue(map, "path", name); + var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); + if (mesh == null) + return null; + mesh.path = path; + var color = this.getValue(map, "color", null); + if (color != null) + mesh.color.setFromString(color); + var parent_4 = this.getValue(map, "parent", null); + if (parent_4 != null) { + mesh.inheritDeform = this.getValue(map, "deform", true); + this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); + return mesh; + } + var uvs = map.uvs; + this.readVertices(map, mesh, uvs.length); + mesh.triangles = map.triangles; + mesh.regionUVs = uvs; + mesh.updateUVs(); + mesh.hullLength = this.getValue(map, "hull", 0) * 2; + return mesh; + } + case "path": { + var path = this.attachmentLoader.newPathAttachment(skin, name); + if (path == null) + return null; + path.closed = this.getValue(map, "closed", false); + path.constantSpeed = this.getValue(map, "constantSpeed", true); + var vertexCount = map.vertexCount; + this.readVertices(map, path, vertexCount << 1); + var lengths = spine.Utils.newArray(vertexCount / 3, 0); + for (var i = 0; i < map.lengths.length; i++) + lengths[i++] = map.lengths[i] * scale; + path.lengths = lengths; + var color = this.getValue(map, "color", null); + if (color != null) + path.color.setFromString(color); + return path; + } + case "point": { + var point = this.attachmentLoader.newPointAttachment(skin, name); + if (point == null) + return null; + point.x = this.getValue(map, "x", 0) * scale; + point.y = this.getValue(map, "y", 0) * scale; + point.rotation = this.getValue(map, "rotation", 0); + var color = this.getValue(map, "color", null); + if (color != null) + point.color.setFromString(color); + return point; + } + case "clipping": { + var clip = this.attachmentLoader.newClippingAttachment(skin, name); + if (clip == null) + return null; + var end = this.getValue(map, "end", null); + if (end != null) { + var slot = skeletonData.findSlot(end); + if (slot == null) + throw new Error("Clipping end slot not found: " + end); + clip.endSlot = slot; + } + var vertexCount = map.vertexCount; + this.readVertices(map, clip, vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + clip.color.setFromString(color); + return clip; + } + } + return null; + }; + SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { + var scale = this.scale; + attachment.worldVerticesLength = verticesLength; + var vertices = map.vertices; + if (verticesLength == vertices.length) { + var scaledVertices = spine.Utils.toFloatArray(vertices); + if (scale != 1) { + for (var i = 0, n = vertices.length; i < n; i++) + scaledVertices[i] *= scale; + } + attachment.vertices = scaledVertices; + return; + } + var weights = new Array(); + var bones = new Array(); + for (var i = 0, n = vertices.length; i < n;) { + var boneCount = vertices[i++]; + bones.push(boneCount); + for (var nn = i + boneCount * 4; i < nn; i += 4) { + bones.push(vertices[i]); + weights.push(vertices[i + 1] * scale); + weights.push(vertices[i + 2] * scale); + weights.push(vertices[i + 3]); + } + } + attachment.bones = bones; + attachment.vertices = spine.Utils.toFloatArray(weights); + }; + SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { + var scale = this.scale; + var timelines = new Array(); + var duration = 0; + if (map.slots) { + for (var slotName in map.slots) { + var slotMap = map.slots[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + if (timelineName == "attachment") { + var timeline = new spine.AttachmentTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + else if (timelineName == "color") { + var timeline = new spine.ColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var color = new spine.Color(); + color.setFromString(valueMap.color); + timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); + } + else if (timelineName == "twoColor") { + var timeline = new spine.TwoColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var light = new spine.Color(); + var dark = new spine.Color(); + light.setFromString(valueMap.light); + dark.setFromString(valueMap.dark); + timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); + } + } + } + if (map.bones) { + for (var boneName in map.bones) { + var boneMap = map.bones[boneName]; + var boneIndex = skeletonData.findBoneIndex(boneName); + if (boneIndex == -1) + throw new Error("Bone not found: " + boneName); + for (var timelineName in boneMap) { + var timelineMap = boneMap[timelineName]; + if (timelineName === "rotate") { + var timeline = new spine.RotateTimeline(timelineMap.length); + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); + } + else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "scale") + timeline = new spine.ScaleTimeline(timelineMap.length); + else if (timelineName === "shear") + timeline = new spine.ShearTimeline(timelineMap.length); + else { + timeline = new spine.TranslateTimeline(timelineMap.length); + timelineScale = scale; + } + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); + timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); + } + } + } + if (map.ik) { + for (var constraintName in map.ik) { + var constraintMap = map.ik[constraintName]; + var constraint = skeletonData.findIkConstraint(constraintName); + var timeline = new spine.IkConstraintTimeline(constraintMap.length); + timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); + } + } + if (map.transform) { + for (var constraintName in map.transform) { + var constraintMap = map.transform[constraintName]; + var constraint = skeletonData.findTransformConstraint(constraintName); + var timeline = new spine.TransformConstraintTimeline(constraintMap.length); + timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); + } + } + if (map.paths) { + for (var constraintName in map.paths) { + var constraintMap = map.paths[constraintName]; + var index = skeletonData.findPathConstraintIndex(constraintName); + if (index == -1) + throw new Error("Path constraint not found: " + constraintName); + var data = skeletonData.pathConstraints[index]; + for (var timelineName in constraintMap) { + var timelineMap = constraintMap[timelineName]; + if (timelineName === "position" || timelineName === "spacing") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "spacing") { + timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + timelineScale = scale; + } + else { + timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); + if (data.positionMode == spine.PositionMode.Fixed) + timelineScale = scale; + } + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); + } + else if (timelineName === "mix") { + var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); + } + } + } + } + if (map.deform) { + for (var deformName in map.deform) { + var deformMap = map.deform[deformName]; + var skin = skeletonData.findSkin(deformName); + if (skin == null) + throw new Error("Skin not found: " + deformName); + for (var slotName in deformMap) { + var slotMap = deformMap[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotMap.name); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + var attachment = skin.getAttachment(slotIndex, timelineName); + if (attachment == null) + throw new Error("Deform attachment not found: " + timelineMap.name); + var weighted = attachment.bones != null; + var vertices = attachment.vertices; + var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; + var timeline = new spine.DeformTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + timeline.attachment = attachment; + var frameIndex = 0; + for (var j = 0; j < timelineMap.length; j++) { + var valueMap = timelineMap[j]; + var deform = void 0; + var verticesValue = this.getValue(valueMap, "vertices", null); + if (verticesValue == null) + deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; + else { + deform = spine.Utils.newFloatArray(deformLength); + var start = this.getValue(valueMap, "offset", 0); + spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); + if (scale != 1) { + for (var i = start, n = i + verticesValue.length; i < n; i++) + deform[i] *= scale; + } + if (!weighted) { + for (var i = 0; i < deformLength; i++) + deform[i] += vertices[i]; + } + } + timeline.setFrame(frameIndex, valueMap.time, deform); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + } + } + } + var drawOrderNode = map.drawOrder; + if (drawOrderNode == null) + drawOrderNode = map.draworder; + if (drawOrderNode != null) { + var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); + var slotCount = skeletonData.slots.length; + var frameIndex = 0; + for (var j = 0; j < drawOrderNode.length; j++) { + var drawOrderMap = drawOrderNode[j]; + var drawOrder = null; + var offsets = this.getValue(drawOrderMap, "offsets", null); + if (offsets != null) { + drawOrder = spine.Utils.newArray(slotCount, -1); + var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); + var originalIndex = 0, unchangedIndex = 0; + for (var i = 0; i < offsets.length; i++) { + var offsetMap = offsets[i]; + var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); + if (slotIndex == -1) + throw new Error("Slot not found: " + offsetMap.slot); + while (originalIndex != slotIndex) + unchanged[unchangedIndex++] = originalIndex++; + drawOrder[originalIndex + offsetMap.offset] = originalIndex++; + } + while (originalIndex < slotCount) + unchanged[unchangedIndex++] = originalIndex++; + for (var i = slotCount - 1; i >= 0; i--) + if (drawOrder[i] == -1) + drawOrder[i] = unchanged[--unchangedIndex]; + } + timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (map.events) { + var timeline = new spine.EventTimeline(map.events.length); + var frameIndex = 0; + for (var i = 0; i < map.events.length; i++) { + var eventMap = map.events[i]; + var eventData = skeletonData.findEvent(eventMap.name); + if (eventData == null) + throw new Error("Event not found: " + eventMap.name); + var event_5 = new spine.Event(eventMap.time, eventData); + event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); + event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); + event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); + timeline.setFrame(frameIndex++, event_5); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (isNaN(duration)) { + throw new Error("Error while parsing animation, duration is NaN"); + } + skeletonData.animations.push(new spine.Animation(name, timelines, duration)); + }; + SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { + if (!map.curve) + return; + if (map.curve === "stepped") + timeline.setStepped(frameIndex); + else if (Object.prototype.toString.call(map.curve) === '[object Array]') { + var curve = map.curve; + timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); + } + }; + SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { + return map[prop] !== undefined ? map[prop] : defaultValue; + }; + SkeletonJson.blendModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.BlendMode.Normal; + if (str == "additive") + return spine.BlendMode.Additive; + if (str == "multiply") + return spine.BlendMode.Multiply; + if (str == "screen") + return spine.BlendMode.Screen; + throw new Error("Unknown blend mode: " + str); + }; + SkeletonJson.positionModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "fixed") + return spine.PositionMode.Fixed; + if (str == "percent") + return spine.PositionMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.spacingModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "length") + return spine.SpacingMode.Length; + if (str == "fixed") + return spine.SpacingMode.Fixed; + if (str == "percent") + return spine.SpacingMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.rotateModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "tangent") + return spine.RotateMode.Tangent; + if (str == "chain") + return spine.RotateMode.Chain; + if (str == "chainscale") + return spine.RotateMode.ChainScale; + throw new Error("Unknown rotate mode: " + str); + }; + SkeletonJson.transformModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.TransformMode.Normal; + if (str == "onlytranslation") + return spine.TransformMode.OnlyTranslation; + if (str == "norotationorreflection") + return spine.TransformMode.NoRotationOrReflection; + if (str == "noscale") + return spine.TransformMode.NoScale; + if (str == "noscaleorreflection") + return spine.TransformMode.NoScaleOrReflection; + throw new Error("Unknown transform mode: " + str); + }; + return SkeletonJson; + }()); + spine.SkeletonJson = SkeletonJson; + var LinkedMesh = (function () { + function LinkedMesh(mesh, skin, slotIndex, parent) { + this.mesh = mesh; + this.skin = skin; + this.slotIndex = slotIndex; + this.parent = parent; + } + return LinkedMesh; + }()); })(spine || (spine = {})); var spine; (function (spine) { - var Skin = (function () { - function Skin(name) { - this.attachments = new Array(); - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - Skin.prototype.addAttachment = function (slotIndex, name, attachment) { - if (attachment == null) - throw new Error("attachment cannot be null."); - var attachments = this.attachments; - if (slotIndex >= attachments.length) - attachments.length = slotIndex + 1; - if (!attachments[slotIndex]) - attachments[slotIndex] = {}; - attachments[slotIndex][name] = attachment; - }; - Skin.prototype.getAttachment = function (slotIndex, name) { - var dictionary = this.attachments[slotIndex]; - return dictionary ? dictionary[name] : null; - }; - Skin.prototype.attachAll = function (skeleton, oldSkin) { - var slotIndex = 0; - for (var i = 0; i < skeleton.slots.length; i++) { - var slot = skeleton.slots[i]; - var slotAttachment = slot.getAttachment(); - if (slotAttachment && slotIndex < oldSkin.attachments.length) { - var dictionary = oldSkin.attachments[slotIndex]; - for (var key in dictionary) { - var skinAttachment = dictionary[key]; - if (slotAttachment == skinAttachment) { - var attachment = this.getAttachment(slotIndex, key); - if (attachment != null) - slot.setAttachment(attachment); - break; - } - } - } - slotIndex++; - } - }; - return Skin; - }()); - spine.Skin = Skin; + var Skin = (function () { + function Skin(name) { + this.attachments = new Array(); + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + Skin.prototype.addAttachment = function (slotIndex, name, attachment) { + if (attachment == null) + throw new Error("attachment cannot be null."); + var attachments = this.attachments; + if (slotIndex >= attachments.length) + attachments.length = slotIndex + 1; + if (!attachments[slotIndex]) + attachments[slotIndex] = {}; + attachments[slotIndex][name] = attachment; + }; + Skin.prototype.getAttachment = function (slotIndex, name) { + var dictionary = this.attachments[slotIndex]; + return dictionary ? dictionary[name] : null; + }; + Skin.prototype.attachAll = function (skeleton, oldSkin) { + var slotIndex = 0; + for (var i = 0; i < skeleton.slots.length; i++) { + var slot = skeleton.slots[i]; + var slotAttachment = slot.getAttachment(); + if (slotAttachment && slotIndex < oldSkin.attachments.length) { + var dictionary = oldSkin.attachments[slotIndex]; + for (var key in dictionary) { + var skinAttachment = dictionary[key]; + if (slotAttachment == skinAttachment) { + var attachment = this.getAttachment(slotIndex, key); + if (attachment != null) + slot.setAttachment(attachment); + break; + } + } + } + slotIndex++; + } + }; + return Skin; + }()); + spine.Skin = Skin; })(spine || (spine = {})); var spine; (function (spine) { - var Slot = (function () { - function Slot(data, bone) { - this.attachmentVertices = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (bone == null) - throw new Error("bone cannot be null."); - this.data = data; - this.bone = bone; - this.color = new spine.Color(); - this.darkColor = data.darkColor == null ? null : new spine.Color(); - this.setToSetupPose(); - } - Slot.prototype.getAttachment = function () { - return this.attachment; - }; - Slot.prototype.setAttachment = function (attachment) { - if (this.attachment == attachment) - return; - this.attachment = attachment; - this.attachmentTime = this.bone.skeleton.time; - this.attachmentVertices.length = 0; - }; - Slot.prototype.setAttachmentTime = function (time) { - this.attachmentTime = this.bone.skeleton.time - time; - }; - Slot.prototype.getAttachmentTime = function () { - return this.bone.skeleton.time - this.attachmentTime; - }; - Slot.prototype.setToSetupPose = function () { - this.color.setFromColor(this.data.color); - if (this.darkColor != null) - this.darkColor.setFromColor(this.data.darkColor); - if (this.data.attachmentName == null) - this.attachment = null; - else { - this.attachment = null; - this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); - } - }; - return Slot; - }()); - spine.Slot = Slot; + var Slot = (function () { + function Slot(data, bone) { + this.attachmentVertices = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (bone == null) + throw new Error("bone cannot be null."); + this.data = data; + this.bone = bone; + this.color = new spine.Color(); + this.darkColor = data.darkColor == null ? null : new spine.Color(); + this.setToSetupPose(); + } + Slot.prototype.getAttachment = function () { + return this.attachment; + }; + Slot.prototype.setAttachment = function (attachment) { + if (this.attachment == attachment) + return; + this.attachment = attachment; + this.attachmentTime = this.bone.skeleton.time; + this.attachmentVertices.length = 0; + }; + Slot.prototype.setAttachmentTime = function (time) { + this.attachmentTime = this.bone.skeleton.time - time; + }; + Slot.prototype.getAttachmentTime = function () { + return this.bone.skeleton.time - this.attachmentTime; + }; + Slot.prototype.setToSetupPose = function () { + this.color.setFromColor(this.data.color); + if (this.darkColor != null) + this.darkColor.setFromColor(this.data.darkColor); + if (this.data.attachmentName == null) + this.attachment = null; + else { + this.attachment = null; + this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); + } + }; + return Slot; + }()); + spine.Slot = Slot; })(spine || (spine = {})); var spine; (function (spine) { - var SlotData = (function () { - function SlotData(index, name, boneData) { - this.color = new spine.Color(1, 1, 1, 1); - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - if (boneData == null) - throw new Error("boneData cannot be null."); - this.index = index; - this.name = name; - this.boneData = boneData; - } - return SlotData; - }()); - spine.SlotData = SlotData; + var SlotData = (function () { + function SlotData(index, name, boneData) { + this.color = new spine.Color(1, 1, 1, 1); + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + if (boneData == null) + throw new Error("boneData cannot be null."); + this.index = index; + this.name = name; + this.boneData = boneData; + } + return SlotData; + }()); + spine.SlotData = SlotData; })(spine || (spine = {})); var spine; (function (spine) { - var Texture = (function () { - function Texture(image) { - this._image = image; - } - Texture.prototype.getImage = function () { - return this._image; - }; - Texture.filterFromString = function (text) { - switch (text.toLowerCase()) { - case "nearest": return TextureFilter.Nearest; - case "linear": return TextureFilter.Linear; - case "mipmap": return TextureFilter.MipMap; - case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; - case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; - case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; - case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; - default: throw new Error("Unknown texture filter " + text); - } - }; - Texture.wrapFromString = function (text) { - switch (text.toLowerCase()) { - case "mirroredtepeat": return TextureWrap.MirroredRepeat; - case "clamptoedge": return TextureWrap.ClampToEdge; - case "repeat": return TextureWrap.Repeat; - default: throw new Error("Unknown texture wrap " + text); - } - }; - return Texture; - }()); - spine.Texture = Texture; - (function (TextureFilter) { - TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; - TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; - TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; - TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; - TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; - TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; - TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; - })(spine.TextureFilter || (spine.TextureFilter = {})); - var TextureFilter = spine.TextureFilter; - (function (TextureWrap) { - TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; - TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; - TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; - })(spine.TextureWrap || (spine.TextureWrap = {})); - var TextureWrap = spine.TextureWrap; - var TextureRegion = (function () { - function TextureRegion() { - this.u = 0; - this.v = 0; - this.u2 = 0; - this.v2 = 0; - this.width = 0; - this.height = 0; - this.rotate = false; - this.offsetX = 0; - this.offsetY = 0; - this.originalWidth = 0; - this.originalHeight = 0; - } - return TextureRegion; - }()); - spine.TextureRegion = TextureRegion; + var Texture = (function () { + function Texture(image) { + this._image = image; + } + Texture.prototype.getImage = function () { + return this._image; + }; + Texture.filterFromString = function (text) { + switch (text.toLowerCase()) { + case "nearest": return TextureFilter.Nearest; + case "linear": return TextureFilter.Linear; + case "mipmap": return TextureFilter.MipMap; + case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; + case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; + case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; + case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; + default: throw new Error("Unknown texture filter " + text); + } + }; + Texture.wrapFromString = function (text) { + switch (text.toLowerCase()) { + case "mirroredtepeat": return TextureWrap.MirroredRepeat; + case "clamptoedge": return TextureWrap.ClampToEdge; + case "repeat": return TextureWrap.Repeat; + default: throw new Error("Unknown texture wrap " + text); + } + }; + return Texture; + }()); + spine.Texture = Texture; + (function (TextureFilter) { + TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; + TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; + TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; + TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; + TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; + TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; + TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; + })(spine.TextureFilter || (spine.TextureFilter = {})); + var TextureFilter = spine.TextureFilter; + (function (TextureWrap) { + TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; + TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; + TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; + })(spine.TextureWrap || (spine.TextureWrap = {})); + var TextureWrap = spine.TextureWrap; + var TextureRegion = (function () { + function TextureRegion() { + this.u = 0; + this.v = 0; + this.u2 = 0; + this.v2 = 0; + this.width = 0; + this.height = 0; + this.rotate = false; + this.offsetX = 0; + this.offsetY = 0; + this.originalWidth = 0; + this.originalHeight = 0; + } + return TextureRegion; + }()); + spine.TextureRegion = TextureRegion; })(spine || (spine = {})); var spine; (function (spine) { - var TextureAtlas = (function () { - function TextureAtlas(atlasText, textureLoader) { - this.pages = new Array(); - this.regions = new Array(); - this.load(atlasText, textureLoader); - } - TextureAtlas.prototype.load = function (atlasText, textureLoader) { - if (textureLoader == null) - throw new Error("textureLoader cannot be null."); - var reader = new TextureAtlasReader(atlasText); - var tuple = new Array(4); - var page = null; - while (true) { - var line = reader.readLine(); - if (line == null) - break; - line = line.trim(); - if (line.length == 0) - page = null; - else if (!page) { - page = new TextureAtlasPage(); - page.name = line; - if (reader.readTuple(tuple) == 2) { - page.width = parseInt(tuple[0]); - page.height = parseInt(tuple[1]); - reader.readTuple(tuple); - } - reader.readTuple(tuple); - page.minFilter = spine.Texture.filterFromString(tuple[0]); - page.magFilter = spine.Texture.filterFromString(tuple[1]); - var direction = reader.readValue(); - page.uWrap = spine.TextureWrap.ClampToEdge; - page.vWrap = spine.TextureWrap.ClampToEdge; - if (direction == "x") - page.uWrap = spine.TextureWrap.Repeat; - else if (direction == "y") - page.vWrap = spine.TextureWrap.Repeat; - else if (direction == "xy") - page.uWrap = page.vWrap = spine.TextureWrap.Repeat; - page.texture = textureLoader(line); - page.texture.setFilters(page.minFilter, page.magFilter); - page.texture.setWraps(page.uWrap, page.vWrap); - page.width = page.texture.getImage().width; - page.height = page.texture.getImage().height; - this.pages.push(page); - } - else { - var region = new TextureAtlasRegion(); - region.name = line; - region.page = page; - region.rotate = reader.readValue() == "true"; - reader.readTuple(tuple); - var x = parseInt(tuple[0]); - var y = parseInt(tuple[1]); - reader.readTuple(tuple); - var width = parseInt(tuple[0]); - var height = parseInt(tuple[1]); - region.u = x / page.width; - region.v = y / page.height; - if (region.rotate) { - region.u2 = (x + height) / page.width; - region.v2 = (y + width) / page.height; - } - else { - region.u2 = (x + width) / page.width; - region.v2 = (y + height) / page.height; - } - region.x = x; - region.y = y; - region.width = Math.abs(width); - region.height = Math.abs(height); - if (reader.readTuple(tuple) == 4) { - if (reader.readTuple(tuple) == 4) { - reader.readTuple(tuple); - } - } - region.originalWidth = parseInt(tuple[0]); - region.originalHeight = parseInt(tuple[1]); - reader.readTuple(tuple); - region.offsetX = parseInt(tuple[0]); - region.offsetY = parseInt(tuple[1]); - region.index = parseInt(reader.readValue()); - region.texture = page.texture; - this.regions.push(region); - } - } - }; - TextureAtlas.prototype.findRegion = function (name) { - for (var i = 0; i < this.regions.length; i++) { - if (this.regions[i].name == name) { - return this.regions[i]; - } - } - return null; - }; - TextureAtlas.prototype.dispose = function () { - for (var i = 0; i < this.pages.length; i++) { - this.pages[i].texture.dispose(); - } - }; - return TextureAtlas; - }()); - spine.TextureAtlas = TextureAtlas; - var TextureAtlasReader = (function () { - function TextureAtlasReader(text) { - this.index = 0; - this.lines = text.split(/\r\n|\r|\n/); - } - TextureAtlasReader.prototype.readLine = function () { - if (this.index >= this.lines.length) - return null; - return this.lines[this.index++]; - }; - TextureAtlasReader.prototype.readValue = function () { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - return line.substring(colon + 1).trim(); - }; - TextureAtlasReader.prototype.readTuple = function (tuple) { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - var i = 0, lastMatch = colon + 1; - for (; i < 3; i++) { - var comma = line.indexOf(",", lastMatch); - if (comma == -1) - break; - tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); - lastMatch = comma + 1; - } - tuple[i] = line.substring(lastMatch).trim(); - return i + 1; - }; - return TextureAtlasReader; - }()); - var TextureAtlasPage = (function () { - function TextureAtlasPage() { - } - return TextureAtlasPage; - }()); - spine.TextureAtlasPage = TextureAtlasPage; - var TextureAtlasRegion = (function (_super) { - __extends(TextureAtlasRegion, _super); - function TextureAtlasRegion() { - _super.apply(this, arguments); - } - return TextureAtlasRegion; - }(spine.TextureRegion)); - spine.TextureAtlasRegion = TextureAtlasRegion; + var TextureAtlas = (function () { + function TextureAtlas(atlasText, textureLoader) { + this.pages = new Array(); + this.regions = new Array(); + this.load(atlasText, textureLoader); + } + TextureAtlas.prototype.load = function (atlasText, textureLoader) { + if (textureLoader == null) + throw new Error("textureLoader cannot be null."); + var reader = new TextureAtlasReader(atlasText); + var tuple = new Array(4); + var page = null; + while (true) { + var line = reader.readLine(); + if (line == null) + break; + line = line.trim(); + if (line.length == 0) + page = null; + else if (!page) { + page = new TextureAtlasPage(); + page.name = line; + if (reader.readTuple(tuple) == 2) { + page.width = parseInt(tuple[0]); + page.height = parseInt(tuple[1]); + reader.readTuple(tuple); + } + reader.readTuple(tuple); + page.minFilter = spine.Texture.filterFromString(tuple[0]); + page.magFilter = spine.Texture.filterFromString(tuple[1]); + var direction = reader.readValue(); + page.uWrap = spine.TextureWrap.ClampToEdge; + page.vWrap = spine.TextureWrap.ClampToEdge; + if (direction == "x") + page.uWrap = spine.TextureWrap.Repeat; + else if (direction == "y") + page.vWrap = spine.TextureWrap.Repeat; + else if (direction == "xy") + page.uWrap = page.vWrap = spine.TextureWrap.Repeat; + page.texture = textureLoader(line); + page.texture.setFilters(page.minFilter, page.magFilter); + page.texture.setWraps(page.uWrap, page.vWrap); + page.width = page.texture.getImage().width; + page.height = page.texture.getImage().height; + this.pages.push(page); + } + else { + var region = new TextureAtlasRegion(); + region.name = line; + region.page = page; + region.rotate = reader.readValue() == "true"; + reader.readTuple(tuple); + var x = parseInt(tuple[0]); + var y = parseInt(tuple[1]); + reader.readTuple(tuple); + var width = parseInt(tuple[0]); + var height = parseInt(tuple[1]); + region.u = x / page.width; + region.v = y / page.height; + if (region.rotate) { + region.u2 = (x + height) / page.width; + region.v2 = (y + width) / page.height; + } + else { + region.u2 = (x + width) / page.width; + region.v2 = (y + height) / page.height; + } + region.x = x; + region.y = y; + region.width = Math.abs(width); + region.height = Math.abs(height); + if (reader.readTuple(tuple) == 4) { + if (reader.readTuple(tuple) == 4) { + reader.readTuple(tuple); + } + } + region.originalWidth = parseInt(tuple[0]); + region.originalHeight = parseInt(tuple[1]); + reader.readTuple(tuple); + region.offsetX = parseInt(tuple[0]); + region.offsetY = parseInt(tuple[1]); + region.index = parseInt(reader.readValue()); + region.texture = page.texture; + this.regions.push(region); + } + } + }; + TextureAtlas.prototype.findRegion = function (name) { + for (var i = 0; i < this.regions.length; i++) { + if (this.regions[i].name == name) { + return this.regions[i]; + } + } + return null; + }; + TextureAtlas.prototype.dispose = function () { + for (var i = 0; i < this.pages.length; i++) { + this.pages[i].texture.dispose(); + } + }; + return TextureAtlas; + }()); + spine.TextureAtlas = TextureAtlas; + var TextureAtlasReader = (function () { + function TextureAtlasReader(text) { + this.index = 0; + this.lines = text.split(/\r\n|\r|\n/); + } + TextureAtlasReader.prototype.readLine = function () { + if (this.index >= this.lines.length) + return null; + return this.lines[this.index++]; + }; + TextureAtlasReader.prototype.readValue = function () { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + return line.substring(colon + 1).trim(); + }; + TextureAtlasReader.prototype.readTuple = function (tuple) { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + var i = 0, lastMatch = colon + 1; + for (; i < 3; i++) { + var comma = line.indexOf(",", lastMatch); + if (comma == -1) + break; + tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); + lastMatch = comma + 1; + } + tuple[i] = line.substring(lastMatch).trim(); + return i + 1; + }; + return TextureAtlasReader; + }()); + var TextureAtlasPage = (function () { + function TextureAtlasPage() { + } + return TextureAtlasPage; + }()); + spine.TextureAtlasPage = TextureAtlasPage; + var TextureAtlasRegion = (function (_super) { + __extends(TextureAtlasRegion, _super); + function TextureAtlasRegion() { + _super.apply(this, arguments); + } + return TextureAtlasRegion; + }(spine.TextureRegion)); + spine.TextureAtlasRegion = TextureAtlasRegion; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraint = (function () { - function TransformConstraint(data, skeleton) { - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.temp = new spine.Vector2(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - this.scaleMix = data.scaleMix; - this.shearMix = data.shearMix; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - TransformConstraint.prototype.apply = function () { - this.update(); - }; - TransformConstraint.prototype.update = function () { - if (this.data.local) { - if (this.data.relative) - this.applyRelativeLocal(); - else - this.applyAbsoluteLocal(); - } - else { - if (this.data.relative) - this.applyRelativeWorld(); - else - this.applyAbsoluteWorld(); - } - }; - TransformConstraint.prototype.applyAbsoluteWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect; - var offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += (temp.x - bone.worldX) * translateMix; - bone.worldY += (temp.y - bone.worldY) * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); - var ts = Math.sqrt(ta * ta + tc * tc); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; - bone.a *= s; - bone.c *= s; - s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); - ts = Math.sqrt(tb * tb + td * td); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var b = bone.b, d = bone.d; - var by = Math.atan2(d, b); - var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r = by + (r + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyRelativeWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += temp.x * translateMix; - bone.worldY += temp.y * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; - bone.a *= s; - bone.c *= s; - s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var r = Math.atan2(td, tb) - Math.atan2(tc, ta); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - var b = bone.b, d = bone.d; - r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyAbsoluteLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) { - var r = target.arotation - rotation + this.data.offsetRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - rotation += r * rotateMix; - } - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax - x + this.data.offsetX) * translateMix; - y += (target.ay - y + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; - if (scaleY > 0.00001) - scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; - } - var shearY = bone.ashearY; - if (shearMix > 0) { - var r = target.ashearY - shearY + this.data.offsetShearY; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.shearY += r * shearMix; - } - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.applyRelativeLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) - rotation += (target.arotation + this.data.offsetRotation) * rotateMix; - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax + this.data.offsetX) * translateMix; - y += (target.ay + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; - if (scaleY > 0.00001) - scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; - } - var shearY = bone.ashearY; - if (shearMix > 0) - shearY += (target.ashearY + this.data.offsetShearY) * shearMix; - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.getOrder = function () { - return this.data.order; - }; - return TransformConstraint; - }()); - spine.TransformConstraint = TransformConstraint; + var TransformConstraint = (function () { + function TransformConstraint(data, skeleton) { + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.temp = new spine.Vector2(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + this.scaleMix = data.scaleMix; + this.shearMix = data.shearMix; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + TransformConstraint.prototype.apply = function () { + this.update(); + }; + TransformConstraint.prototype.update = function () { + if (this.data.local) { + if (this.data.relative) + this.applyRelativeLocal(); + else + this.applyAbsoluteLocal(); + } + else { + if (this.data.relative) + this.applyRelativeWorld(); + else + this.applyAbsoluteWorld(); + } + }; + TransformConstraint.prototype.applyAbsoluteWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect; + var offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += (temp.x - bone.worldX) * translateMix; + bone.worldY += (temp.y - bone.worldY) * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var ts = Math.sqrt(ta * ta + tc * tc); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; + bone.a *= s; + bone.c *= s; + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + ts = Math.sqrt(tb * tb + td * td); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var b = bone.b, d = bone.d; + var by = Math.atan2(d, b); + var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r = by + (r + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyRelativeWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += temp.x * translateMix; + bone.worldY += temp.y * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; + bone.a *= s; + bone.c *= s; + s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var r = Math.atan2(td, tb) - Math.atan2(tc, ta); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + var b = bone.b, d = bone.d; + r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyAbsoluteLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) { + var r = target.arotation - rotation + this.data.offsetRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + rotation += r * rotateMix; + } + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax - x + this.data.offsetX) * translateMix; + y += (target.ay - y + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; + if (scaleY > 0.00001) + scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; + } + var shearY = bone.ashearY; + if (shearMix > 0) { + var r = target.ashearY - shearY + this.data.offsetShearY; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.shearY += r * shearMix; + } + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.applyRelativeLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) + rotation += (target.arotation + this.data.offsetRotation) * rotateMix; + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax + this.data.offsetX) * translateMix; + y += (target.ay + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; + if (scaleY > 0.00001) + scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; + } + var shearY = bone.ashearY; + if (shearMix > 0) + shearY += (target.ashearY + this.data.offsetShearY) * shearMix; + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.getOrder = function () { + return this.data.order; + }; + return TransformConstraint; + }()); + spine.TransformConstraint = TransformConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraintData = (function () { - function TransformConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.offsetRotation = 0; - this.offsetX = 0; - this.offsetY = 0; - this.offsetScaleX = 0; - this.offsetScaleY = 0; - this.offsetShearY = 0; - this.relative = false; - this.local = false; - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return TransformConstraintData; - }()); - spine.TransformConstraintData = TransformConstraintData; + var TransformConstraintData = (function () { + function TransformConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.offsetRotation = 0; + this.offsetX = 0; + this.offsetY = 0; + this.offsetScaleX = 0; + this.offsetScaleY = 0; + this.offsetShearY = 0; + this.relative = false; + this.local = false; + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return TransformConstraintData; + }()); + spine.TransformConstraintData = TransformConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var Triangulator = (function () { - function Triangulator() { - this.convexPolygons = new Array(); - this.convexPolygonsIndices = new Array(); - this.indicesArray = new Array(); - this.isConcaveArray = new Array(); - this.triangles = new Array(); - this.polygonPool = new spine.Pool(function () { - return new Array(); - }); - this.polygonIndicesPool = new spine.Pool(function () { - return new Array(); - }); - } - Triangulator.prototype.triangulate = function (verticesArray) { - var vertices = verticesArray; - var vertexCount = verticesArray.length >> 1; - var indices = this.indicesArray; - indices.length = 0; - for (var i = 0; i < vertexCount; i++) - indices[i] = i; - var isConcave = this.isConcaveArray; - isConcave.length = 0; - for (var i = 0, n = vertexCount; i < n; ++i) - isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); - var triangles = this.triangles; - triangles.length = 0; - while (vertexCount > 3) { - var previous = vertexCount - 1, i = 0, next = 1; - while (true) { - outer: if (!isConcave[i]) { - var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; - var p1x = vertices[p1], p1y = vertices[p1 + 1]; - var p2x = vertices[p2], p2y = vertices[p2 + 1]; - var p3x = vertices[p3], p3y = vertices[p3 + 1]; - for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { - if (!isConcave[ii]) - continue; - var v = indices[ii] << 1; - var vx = vertices[v], vy = vertices[v + 1]; - if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { - if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { - if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) - break outer; - } - } - } - break; - } - if (next == 0) { - do { - if (!isConcave[i]) - break; - i--; - } while (i > 0); - break; - } - previous = i; - i = next; - next = (next + 1) % vertexCount; - } - triangles.push(indices[(vertexCount + i - 1) % vertexCount]); - triangles.push(indices[i]); - triangles.push(indices[(i + 1) % vertexCount]); - indices.splice(i, 1); - isConcave.splice(i, 1); - vertexCount--; - var previousIndex = (vertexCount + i - 1) % vertexCount; - var nextIndex = i == vertexCount ? 0 : i; - isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); - isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); - } - if (vertexCount == 3) { - triangles.push(indices[2]); - triangles.push(indices[0]); - triangles.push(indices[1]); - } - return triangles; - }; - Triangulator.prototype.decompose = function (verticesArray, triangles) { - var vertices = verticesArray; - var convexPolygons = this.convexPolygons; - this.polygonPool.freeAll(convexPolygons); - convexPolygons.length = 0; - var convexPolygonsIndices = this.convexPolygonsIndices; - this.polygonIndicesPool.freeAll(convexPolygonsIndices); - convexPolygonsIndices.length = 0; - var polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - var polygon = this.polygonPool.obtain(); - polygon.length = 0; - var fanBaseIndex = -1, lastWinding = 0; - for (var i = 0, n = triangles.length; i < n; i += 3) { - var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; - var x1 = vertices[t1], y1 = vertices[t1 + 1]; - var x2 = vertices[t2], y2 = vertices[t2 + 1]; - var x3 = vertices[t3], y3 = vertices[t3 + 1]; - var merged = false; - if (fanBaseIndex == t1) { - var o = polygon.length - 4; - var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); - var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); - if (winding1 == lastWinding && winding2 == lastWinding) { - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(t3); - merged = true; - } - } - if (!merged) { - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - else { - this.polygonPool.free(polygon); - this.polygonIndicesPool.free(polygonIndices); - } - polygon = this.polygonPool.obtain(); - polygon.length = 0; - polygon.push(x1); - polygon.push(y1); - polygon.push(x2); - polygon.push(y2); - polygon.push(x3); - polygon.push(y3); - polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - polygonIndices.push(t1); - polygonIndices.push(t2); - polygonIndices.push(t3); - lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); - fanBaseIndex = t1; - } - } - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - for (var i = 0, n = convexPolygons.length; i < n; i++) { - polygonIndices = convexPolygonsIndices[i]; - if (polygonIndices.length == 0) - continue; - var firstIndex = polygonIndices[0]; - var lastIndex = polygonIndices[polygonIndices.length - 1]; - polygon = convexPolygons[i]; - var o = polygon.length - 4; - var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; - var prevX = polygon[o + 2], prevY = polygon[o + 3]; - var firstX = polygon[0], firstY = polygon[1]; - var secondX = polygon[2], secondY = polygon[3]; - var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); - for (var ii = 0; ii < n; ii++) { - if (ii == i) - continue; - var otherIndices = convexPolygonsIndices[ii]; - if (otherIndices.length != 3) - continue; - var otherFirstIndex = otherIndices[0]; - var otherSecondIndex = otherIndices[1]; - var otherLastIndex = otherIndices[2]; - var otherPoly = convexPolygons[ii]; - var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; - if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) - continue; - var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); - var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); - if (winding1 == winding && winding2 == winding) { - otherPoly.length = 0; - otherIndices.length = 0; - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(otherLastIndex); - prevPrevX = prevX; - prevPrevY = prevY; - prevX = x3; - prevY = y3; - ii = 0; - } - } - } - for (var i = convexPolygons.length - 1; i >= 0; i--) { - polygon = convexPolygons[i]; - if (polygon.length == 0) { - convexPolygons.splice(i, 1); - this.polygonPool.free(polygon); - polygonIndices = convexPolygonsIndices[i]; - convexPolygonsIndices.splice(i, 1); - this.polygonIndicesPool.free(polygonIndices); - } - } - return convexPolygons; - }; - Triangulator.isConcave = function (index, vertexCount, vertices, indices) { - var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; - var current = indices[index] << 1; - var next = indices[(index + 1) % vertexCount] << 1; - return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); - }; - Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { - return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; - }; - Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { - var px = p2x - p1x, py = p2y - p1y; - return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; - }; - return Triangulator; - }()); - spine.Triangulator = Triangulator; + var Triangulator = (function () { + function Triangulator() { + this.convexPolygons = new Array(); + this.convexPolygonsIndices = new Array(); + this.indicesArray = new Array(); + this.isConcaveArray = new Array(); + this.triangles = new Array(); + this.polygonPool = new spine.Pool(function () { + return new Array(); + }); + this.polygonIndicesPool = new spine.Pool(function () { + return new Array(); + }); + } + Triangulator.prototype.triangulate = function (verticesArray) { + var vertices = verticesArray; + var vertexCount = verticesArray.length >> 1; + var indices = this.indicesArray; + indices.length = 0; + for (var i = 0; i < vertexCount; i++) + indices[i] = i; + var isConcave = this.isConcaveArray; + isConcave.length = 0; + for (var i = 0, n = vertexCount; i < n; ++i) + isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); + var triangles = this.triangles; + triangles.length = 0; + while (vertexCount > 3) { + var previous = vertexCount - 1, i = 0, next = 1; + while (true) { + outer: if (!isConcave[i]) { + var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; + var p1x = vertices[p1], p1y = vertices[p1 + 1]; + var p2x = vertices[p2], p2y = vertices[p2 + 1]; + var p3x = vertices[p3], p3y = vertices[p3 + 1]; + for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { + if (!isConcave[ii]) + continue; + var v = indices[ii] << 1; + var vx = vertices[v], vy = vertices[v + 1]; + if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { + if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { + if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) + break outer; + } + } + } + break; + } + if (next == 0) { + do { + if (!isConcave[i]) + break; + i--; + } while (i > 0); + break; + } + previous = i; + i = next; + next = (next + 1) % vertexCount; + } + triangles.push(indices[(vertexCount + i - 1) % vertexCount]); + triangles.push(indices[i]); + triangles.push(indices[(i + 1) % vertexCount]); + indices.splice(i, 1); + isConcave.splice(i, 1); + vertexCount--; + var previousIndex = (vertexCount + i - 1) % vertexCount; + var nextIndex = i == vertexCount ? 0 : i; + isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); + isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); + } + if (vertexCount == 3) { + triangles.push(indices[2]); + triangles.push(indices[0]); + triangles.push(indices[1]); + } + return triangles; + }; + Triangulator.prototype.decompose = function (verticesArray, triangles) { + var vertices = verticesArray; + var convexPolygons = this.convexPolygons; + this.polygonPool.freeAll(convexPolygons); + convexPolygons.length = 0; + var convexPolygonsIndices = this.convexPolygonsIndices; + this.polygonIndicesPool.freeAll(convexPolygonsIndices); + convexPolygonsIndices.length = 0; + var polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + var polygon = this.polygonPool.obtain(); + polygon.length = 0; + var fanBaseIndex = -1, lastWinding = 0; + for (var i = 0, n = triangles.length; i < n; i += 3) { + var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; + var x1 = vertices[t1], y1 = vertices[t1 + 1]; + var x2 = vertices[t2], y2 = vertices[t2 + 1]; + var x3 = vertices[t3], y3 = vertices[t3 + 1]; + var merged = false; + if (fanBaseIndex == t1) { + var o = polygon.length - 4; + var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); + var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); + if (winding1 == lastWinding && winding2 == lastWinding) { + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(t3); + merged = true; + } + } + if (!merged) { + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + else { + this.polygonPool.free(polygon); + this.polygonIndicesPool.free(polygonIndices); + } + polygon = this.polygonPool.obtain(); + polygon.length = 0; + polygon.push(x1); + polygon.push(y1); + polygon.push(x2); + polygon.push(y2); + polygon.push(x3); + polygon.push(y3); + polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + polygonIndices.push(t1); + polygonIndices.push(t2); + polygonIndices.push(t3); + lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); + fanBaseIndex = t1; + } + } + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + for (var i = 0, n = convexPolygons.length; i < n; i++) { + polygonIndices = convexPolygonsIndices[i]; + if (polygonIndices.length == 0) + continue; + var firstIndex = polygonIndices[0]; + var lastIndex = polygonIndices[polygonIndices.length - 1]; + polygon = convexPolygons[i]; + var o = polygon.length - 4; + var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; + var prevX = polygon[o + 2], prevY = polygon[o + 3]; + var firstX = polygon[0], firstY = polygon[1]; + var secondX = polygon[2], secondY = polygon[3]; + var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); + for (var ii = 0; ii < n; ii++) { + if (ii == i) + continue; + var otherIndices = convexPolygonsIndices[ii]; + if (otherIndices.length != 3) + continue; + var otherFirstIndex = otherIndices[0]; + var otherSecondIndex = otherIndices[1]; + var otherLastIndex = otherIndices[2]; + var otherPoly = convexPolygons[ii]; + var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; + if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) + continue; + var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); + var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); + if (winding1 == winding && winding2 == winding) { + otherPoly.length = 0; + otherIndices.length = 0; + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(otherLastIndex); + prevPrevX = prevX; + prevPrevY = prevY; + prevX = x3; + prevY = y3; + ii = 0; + } + } + } + for (var i = convexPolygons.length - 1; i >= 0; i--) { + polygon = convexPolygons[i]; + if (polygon.length == 0) { + convexPolygons.splice(i, 1); + this.polygonPool.free(polygon); + polygonIndices = convexPolygonsIndices[i]; + convexPolygonsIndices.splice(i, 1); + this.polygonIndicesPool.free(polygonIndices); + } + } + return convexPolygons; + }; + Triangulator.isConcave = function (index, vertexCount, vertices, indices) { + var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; + var current = indices[index] << 1; + var next = indices[(index + 1) % vertexCount] << 1; + return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); + }; + Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { + return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; + }; + Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { + var px = p2x - p1x, py = p2y - p1y; + return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; + }; + return Triangulator; + }()); + spine.Triangulator = Triangulator; })(spine || (spine = {})); var spine; (function (spine) { - var IntSet = (function () { - function IntSet() { - this.array = new Array(); - } - IntSet.prototype.add = function (value) { - var contains = this.contains(value); - this.array[value | 0] = value | 0; - return !contains; - }; - IntSet.prototype.contains = function (value) { - return this.array[value | 0] != undefined; - }; - IntSet.prototype.remove = function (value) { - this.array[value | 0] = undefined; - }; - IntSet.prototype.clear = function () { - this.array.length = 0; - }; - return IntSet; - }()); - spine.IntSet = IntSet; - var Color = (function () { - function Color(r, g, b, a) { - if (r === void 0) { r = 0; } - if (g === void 0) { g = 0; } - if (b === void 0) { b = 0; } - if (a === void 0) { a = 0; } - this.r = r; - this.g = g; - this.b = b; - this.a = a; - } - Color.prototype.set = function (r, g, b, a) { - this.r = r; - this.g = g; - this.b = b; - this.a = a; - this.clamp(); - return this; - }; - Color.prototype.setFromColor = function (c) { - this.r = c.r; - this.g = c.g; - this.b = c.b; - this.a = c.a; - return this; - }; - Color.prototype.setFromString = function (hex) { - hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; - this.r = parseInt(hex.substr(0, 2), 16) / 255.0; - this.g = parseInt(hex.substr(2, 2), 16) / 255.0; - this.b = parseInt(hex.substr(4, 2), 16) / 255.0; - this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; - return this; - }; - Color.prototype.add = function (r, g, b, a) { - this.r += r; - this.g += g; - this.b += b; - this.a += a; - this.clamp(); - return this; - }; - Color.prototype.clamp = function () { - if (this.r < 0) - this.r = 0; - else if (this.r > 1) - this.r = 1; - if (this.g < 0) - this.g = 0; - else if (this.g > 1) - this.g = 1; - if (this.b < 0) - this.b = 0; - else if (this.b > 1) - this.b = 1; - if (this.a < 0) - this.a = 0; - else if (this.a > 1) - this.a = 1; - return this; - }; - Color.WHITE = new Color(1, 1, 1, 1); - Color.RED = new Color(1, 0, 0, 1); - Color.GREEN = new Color(0, 1, 0, 1); - Color.BLUE = new Color(0, 0, 1, 1); - Color.MAGENTA = new Color(1, 0, 1, 1); - return Color; - }()); - spine.Color = Color; - var MathUtils = (function () { - function MathUtils() { - } - MathUtils.clamp = function (value, min, max) { - if (value < min) - return min; - if (value > max) - return max; - return value; - }; - MathUtils.cosDeg = function (degrees) { - return Math.cos(degrees * MathUtils.degRad); - }; - MathUtils.sinDeg = function (degrees) { - return Math.sin(degrees * MathUtils.degRad); - }; - MathUtils.signum = function (value) { - return value > 0 ? 1 : value < 0 ? -1 : 0; - }; - MathUtils.toInt = function (x) { - return x > 0 ? Math.floor(x) : Math.ceil(x); - }; - MathUtils.cbrt = function (x) { - var y = Math.pow(Math.abs(x), 1 / 3); - return x < 0 ? -y : y; - }; - MathUtils.PI = 3.1415927; - MathUtils.PI2 = MathUtils.PI * 2; - MathUtils.radiansToDegrees = 180 / MathUtils.PI; - MathUtils.radDeg = MathUtils.radiansToDegrees; - MathUtils.degreesToRadians = MathUtils.PI / 180; - MathUtils.degRad = MathUtils.degreesToRadians; - return MathUtils; - }()); - spine.MathUtils = MathUtils; - var Utils = (function () { - function Utils() { - } - Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { - for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { - dest[j] = source[i]; - } - }; - Utils.setArraySize = function (array, size, value) { - if (value === void 0) { value = 0; } - var oldSize = array.length; - if (oldSize == size) - return array; - array.length = size; - if (oldSize < size) { - for (var i = oldSize; i < size; i++) - array[i] = value; - } - return array; - }; - Utils.ensureArrayCapacity = function (array, size, value) { - if (value === void 0) { value = 0; } - if (array.length >= size) - return array; - return Utils.setArraySize(array, size, value); - }; - Utils.newArray = function (size, defaultValue) { - var array = new Array(size); - for (var i = 0; i < size; i++) - array[i] = defaultValue; - return array; - }; - Utils.newFloatArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Float32Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.newShortArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Int16Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.toFloatArray = function (array) { - return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; - }; - Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; - return Utils; - }()); - spine.Utils = Utils; - var DebugUtils = (function () { - function DebugUtils() { - } - DebugUtils.logBones = function (skeleton) { - for (var i = 0; i < skeleton.bones.length; i++) { - var bone = skeleton.bones[i]; - console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); - } - }; - return DebugUtils; - }()); - spine.DebugUtils = DebugUtils; - var Pool = (function () { - function Pool(instantiator) { - this.items = new Array(); - this.instantiator = instantiator; - } - Pool.prototype.obtain = function () { - return this.items.length > 0 ? this.items.pop() : this.instantiator(); - }; - Pool.prototype.free = function (item) { - if (item.reset) - item.reset(); - this.items.push(item); - }; - Pool.prototype.freeAll = function (items) { - for (var i = 0; i < items.length; i++) { - if (items[i].reset) - items[i].reset(); - this.items[i] = items[i]; - } - }; - Pool.prototype.clear = function () { - this.items.length = 0; - }; - return Pool; - }()); - spine.Pool = Pool; - var Vector2 = (function () { - function Vector2(x, y) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - this.x = x; - this.y = y; - } - Vector2.prototype.set = function (x, y) { - this.x = x; - this.y = y; - return this; - }; - Vector2.prototype.length = function () { - var x = this.x; - var y = this.y; - return Math.sqrt(x * x + y * y); - }; - Vector2.prototype.normalize = function () { - var len = this.length(); - if (len != 0) { - this.x /= len; - this.y /= len; - } - return this; - }; - return Vector2; - }()); - spine.Vector2 = Vector2; - var TimeKeeper = (function () { - function TimeKeeper() { - this.maxDelta = 0.064; - this.framesPerSecond = 0; - this.delta = 0; - this.totalTime = 0; - this.lastTime = Date.now() / 1000; - this.frameCount = 0; - this.frameTime = 0; - } - TimeKeeper.prototype.update = function () { - var now = Date.now() / 1000; - this.delta = now - this.lastTime; - this.frameTime += this.delta; - this.totalTime += this.delta; - if (this.delta > this.maxDelta) - this.delta = this.maxDelta; - this.lastTime = now; - this.frameCount++; - if (this.frameTime > 1) { - this.framesPerSecond = this.frameCount / this.frameTime; - this.frameTime = 0; - this.frameCount = 0; - } - }; - return TimeKeeper; - }()); - spine.TimeKeeper = TimeKeeper; - var WindowedMean = (function () { - function WindowedMean(windowSize) { - if (windowSize === void 0) { windowSize = 32; } - this.addedValues = 0; - this.lastValue = 0; - this.mean = 0; - this.dirty = true; - this.values = new Array(windowSize); - } - WindowedMean.prototype.hasEnoughData = function () { - return this.addedValues >= this.values.length; - }; - WindowedMean.prototype.addValue = function (value) { - if (this.addedValues < this.values.length) - this.addedValues++; - this.values[this.lastValue++] = value; - if (this.lastValue > this.values.length - 1) - this.lastValue = 0; - this.dirty = true; - }; - WindowedMean.prototype.getMean = function () { - if (this.hasEnoughData()) { - if (this.dirty) { - var mean = 0; - for (var i = 0; i < this.values.length; i++) { - mean += this.values[i]; - } - this.mean = mean / this.values.length; - this.dirty = false; - } - return this.mean; - } - else { - return 0; - } - }; - return WindowedMean; - }()); - spine.WindowedMean = WindowedMean; + var IntSet = (function () { + function IntSet() { + this.array = new Array(); + } + IntSet.prototype.add = function (value) { + var contains = this.contains(value); + this.array[value | 0] = value | 0; + return !contains; + }; + IntSet.prototype.contains = function (value) { + return this.array[value | 0] != undefined; + }; + IntSet.prototype.remove = function (value) { + this.array[value | 0] = undefined; + }; + IntSet.prototype.clear = function () { + this.array.length = 0; + }; + return IntSet; + }()); + spine.IntSet = IntSet; + var Color = (function () { + function Color(r, g, b, a) { + if (r === void 0) { r = 0; } + if (g === void 0) { g = 0; } + if (b === void 0) { b = 0; } + if (a === void 0) { a = 0; } + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + Color.prototype.set = function (r, g, b, a) { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + this.clamp(); + return this; + }; + Color.prototype.setFromColor = function (c) { + this.r = c.r; + this.g = c.g; + this.b = c.b; + this.a = c.a; + return this; + }; + Color.prototype.setFromString = function (hex) { + hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; + this.r = parseInt(hex.substr(0, 2), 16) / 255.0; + this.g = parseInt(hex.substr(2, 2), 16) / 255.0; + this.b = parseInt(hex.substr(4, 2), 16) / 255.0; + this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; + return this; + }; + Color.prototype.add = function (r, g, b, a) { + this.r += r; + this.g += g; + this.b += b; + this.a += a; + this.clamp(); + return this; + }; + Color.prototype.clamp = function () { + if (this.r < 0) + this.r = 0; + else if (this.r > 1) + this.r = 1; + if (this.g < 0) + this.g = 0; + else if (this.g > 1) + this.g = 1; + if (this.b < 0) + this.b = 0; + else if (this.b > 1) + this.b = 1; + if (this.a < 0) + this.a = 0; + else if (this.a > 1) + this.a = 1; + return this; + }; + Color.WHITE = new Color(1, 1, 1, 1); + Color.RED = new Color(1, 0, 0, 1); + Color.GREEN = new Color(0, 1, 0, 1); + Color.BLUE = new Color(0, 0, 1, 1); + Color.MAGENTA = new Color(1, 0, 1, 1); + return Color; + }()); + spine.Color = Color; + var MathUtils = (function () { + function MathUtils() { + } + MathUtils.clamp = function (value, min, max) { + if (value < min) + return min; + if (value > max) + return max; + return value; + }; + MathUtils.cosDeg = function (degrees) { + return Math.cos(degrees * MathUtils.degRad); + }; + MathUtils.sinDeg = function (degrees) { + return Math.sin(degrees * MathUtils.degRad); + }; + MathUtils.signum = function (value) { + return value > 0 ? 1 : value < 0 ? -1 : 0; + }; + MathUtils.toInt = function (x) { + return x > 0 ? Math.floor(x) : Math.ceil(x); + }; + MathUtils.cbrt = function (x) { + var y = Math.pow(Math.abs(x), 1 / 3); + return x < 0 ? -y : y; + }; + MathUtils.PI = 3.1415927; + MathUtils.PI2 = MathUtils.PI * 2; + MathUtils.radiansToDegrees = 180 / MathUtils.PI; + MathUtils.radDeg = MathUtils.radiansToDegrees; + MathUtils.degreesToRadians = MathUtils.PI / 180; + MathUtils.degRad = MathUtils.degreesToRadians; + return MathUtils; + }()); + spine.MathUtils = MathUtils; + var Utils = (function () { + function Utils() { + } + Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { + for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { + dest[j] = source[i]; + } + }; + Utils.setArraySize = function (array, size, value) { + if (value === void 0) { value = 0; } + var oldSize = array.length; + if (oldSize == size) + return array; + array.length = size; + if (oldSize < size) { + for (var i = oldSize; i < size; i++) + array[i] = value; + } + return array; + }; + Utils.ensureArrayCapacity = function (array, size, value) { + if (value === void 0) { value = 0; } + if (array.length >= size) + return array; + return Utils.setArraySize(array, size, value); + }; + Utils.newArray = function (size, defaultValue) { + var array = new Array(size); + for (var i = 0; i < size; i++) + array[i] = defaultValue; + return array; + }; + Utils.newFloatArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Float32Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.newShortArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Int16Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.toFloatArray = function (array) { + return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; + }; + Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; + return Utils; + }()); + spine.Utils = Utils; + var DebugUtils = (function () { + function DebugUtils() { + } + DebugUtils.logBones = function (skeleton) { + for (var i = 0; i < skeleton.bones.length; i++) { + var bone = skeleton.bones[i]; + console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); + } + }; + return DebugUtils; + }()); + spine.DebugUtils = DebugUtils; + var Pool = (function () { + function Pool(instantiator) { + this.items = new Array(); + this.instantiator = instantiator; + } + Pool.prototype.obtain = function () { + return this.items.length > 0 ? this.items.pop() : this.instantiator(); + }; + Pool.prototype.free = function (item) { + if (item.reset) + item.reset(); + this.items.push(item); + }; + Pool.prototype.freeAll = function (items) { + for (var i = 0; i < items.length; i++) { + if (items[i].reset) + items[i].reset(); + this.items[i] = items[i]; + } + }; + Pool.prototype.clear = function () { + this.items.length = 0; + }; + return Pool; + }()); + spine.Pool = Pool; + var Vector2 = (function () { + function Vector2(x, y) { + if (x === void 0) { x = 0; } + if (y === void 0) { y = 0; } + this.x = x; + this.y = y; + } + Vector2.prototype.set = function (x, y) { + this.x = x; + this.y = y; + return this; + }; + Vector2.prototype.length = function () { + var x = this.x; + var y = this.y; + return Math.sqrt(x * x + y * y); + }; + Vector2.prototype.normalize = function () { + var len = this.length(); + if (len != 0) { + this.x /= len; + this.y /= len; + } + return this; + }; + return Vector2; + }()); + spine.Vector2 = Vector2; + var TimeKeeper = (function () { + function TimeKeeper() { + this.maxDelta = 0.064; + this.framesPerSecond = 0; + this.delta = 0; + this.totalTime = 0; + this.lastTime = Date.now() / 1000; + this.frameCount = 0; + this.frameTime = 0; + } + TimeKeeper.prototype.update = function () { + var now = Date.now() / 1000; + this.delta = now - this.lastTime; + this.frameTime += this.delta; + this.totalTime += this.delta; + if (this.delta > this.maxDelta) + this.delta = this.maxDelta; + this.lastTime = now; + this.frameCount++; + if (this.frameTime > 1) { + this.framesPerSecond = this.frameCount / this.frameTime; + this.frameTime = 0; + this.frameCount = 0; + } + }; + return TimeKeeper; + }()); + spine.TimeKeeper = TimeKeeper; + var WindowedMean = (function () { + function WindowedMean(windowSize) { + if (windowSize === void 0) { windowSize = 32; } + this.addedValues = 0; + this.lastValue = 0; + this.mean = 0; + this.dirty = true; + this.values = new Array(windowSize); + } + WindowedMean.prototype.hasEnoughData = function () { + return this.addedValues >= this.values.length; + }; + WindowedMean.prototype.addValue = function (value) { + if (this.addedValues < this.values.length) + this.addedValues++; + this.values[this.lastValue++] = value; + if (this.lastValue > this.values.length - 1) + this.lastValue = 0; + this.dirty = true; + }; + WindowedMean.prototype.getMean = function () { + if (this.hasEnoughData()) { + if (this.dirty) { + var mean = 0; + for (var i = 0; i < this.values.length; i++) { + mean += this.values[i]; + } + this.mean = mean / this.values.length; + this.dirty = false; + } + return this.mean; + } + else { + return 0; + } + }; + return WindowedMean; + }()); + spine.WindowedMean = WindowedMean; })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var AssetManager = (function (_super) { - __extends(AssetManager, _super); - function AssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - _super.call(this, function (image) { - return new threejs.ThreeJsTexture(image); - }, pathPrefix); - } - return AssetManager; - }(spine.AssetManager)); - threejs.AssetManager = AssetManager; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var AssetManager = (function (_super) { + __extends(AssetManager, _super); + function AssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + _super.call(this, function (image) { + return new threejs.ThreeJsTexture(image); + }, pathPrefix); + } + return AssetManager; + }(spine.AssetManager)); + threejs.AssetManager = AssetManager; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var MeshBatcher = (function () { - function MeshBatcher(mesh, maxVertices) { - if (maxVertices === void 0) { maxVertices = 10920; } - this.verticesLength = 0; - this.indicesLength = 0; - if (maxVertices > 10920) - throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); - var vertices = this.vertices = new Float32Array(maxVertices * MeshBatcher.VERTEX_SIZE); - var indices = this.indices = new Uint16Array(maxVertices * 3); - this.mesh = mesh; - var geo = new THREE.BufferGeometry(); - var vertexBuffer = this.vertexBuffer = new THREE.InterleavedBuffer(vertices, MeshBatcher.VERTEX_SIZE); - vertexBuffer.dynamic = true; - geo.addAttribute("position", new THREE.InterleavedBufferAttribute(vertexBuffer, 3, 0, false)); - geo.addAttribute("color", new THREE.InterleavedBufferAttribute(vertexBuffer, 4, 3, false)); - geo.addAttribute("uv", new THREE.InterleavedBufferAttribute(vertexBuffer, 2, 7, false)); - geo.setIndex(new THREE.BufferAttribute(indices, 1)); - geo.getIndex().dynamic = true; - geo.drawRange.start = 0; - geo.drawRange.count = 0; - mesh.geometry = geo; - } - MeshBatcher.prototype.begin = function () { - this.verticesLength = 0; - this.indicesLength = 0; - }; - MeshBatcher.prototype.batch = function (vertices, verticesLength, indices, indicesLength, z) { - if (z === void 0) { z = 0; } - var indexStart = this.verticesLength / MeshBatcher.VERTEX_SIZE; - var vertexBuffer = this.vertices; - var i = this.verticesLength; - var j = 0; - for (; j < verticesLength;) { - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = z; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - } - this.verticesLength = i; - var indicesArray = this.indices; - for (i = this.indicesLength, j = 0; j < indicesLength; i++, j++) - indicesArray[i] = indices[j] + indexStart; - this.indicesLength += indicesLength; - }; - MeshBatcher.prototype.end = function () { - this.vertexBuffer.needsUpdate = true; - this.vertexBuffer.updateRange.offset = 0; - this.vertexBuffer.updateRange.count = this.verticesLength; - var geo = this.mesh.geometry; - geo.getIndex().needsUpdate = true; - geo.getIndex().updateRange.offset = 0; - geo.getIndex().updateRange.count = this.indicesLength; - geo.drawRange.start = 0; - geo.drawRange.count = this.indicesLength; - }; - MeshBatcher.VERTEX_SIZE = 9; - return MeshBatcher; - }()); - threejs.MeshBatcher = MeshBatcher; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var MeshBatcher = (function () { + function MeshBatcher(mesh, maxVertices) { + if (maxVertices === void 0) { maxVertices = 10920; } + this.verticesLength = 0; + this.indicesLength = 0; + if (maxVertices > 10920) + throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); + var vertices = this.vertices = new Float32Array(maxVertices * MeshBatcher.VERTEX_SIZE); + var indices = this.indices = new Uint16Array(maxVertices * 3); + this.mesh = mesh; + var geo = new THREE.BufferGeometry(); + var vertexBuffer = this.vertexBuffer = new THREE.InterleavedBuffer(vertices, MeshBatcher.VERTEX_SIZE); + vertexBuffer.dynamic = true; + geo.addAttribute("position", new THREE.InterleavedBufferAttribute(vertexBuffer, 3, 0, false)); + geo.addAttribute("color", new THREE.InterleavedBufferAttribute(vertexBuffer, 4, 3, false)); + geo.addAttribute("uv", new THREE.InterleavedBufferAttribute(vertexBuffer, 2, 7, false)); + geo.setIndex(new THREE.BufferAttribute(indices, 1)); + geo.getIndex().dynamic = true; + geo.drawRange.start = 0; + geo.drawRange.count = 0; + mesh.geometry = geo; + } + MeshBatcher.prototype.begin = function () { + this.verticesLength = 0; + this.indicesLength = 0; + }; + MeshBatcher.prototype.batch = function (vertices, verticesLength, indices, indicesLength, z) { + if (z === void 0) { z = 0; } + var indexStart = this.verticesLength / MeshBatcher.VERTEX_SIZE; + var vertexBuffer = this.vertices; + var i = this.verticesLength; + var j = 0; + for (; j < verticesLength;) { + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = z; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + } + this.verticesLength = i; + var indicesArray = this.indices; + for (i = this.indicesLength, j = 0; j < indicesLength; i++, j++) + indicesArray[i] = indices[j] + indexStart; + this.indicesLength += indicesLength; + }; + MeshBatcher.prototype.end = function () { + this.vertexBuffer.needsUpdate = true; + this.vertexBuffer.updateRange.offset = 0; + this.vertexBuffer.updateRange.count = this.verticesLength; + var geo = this.mesh.geometry; + geo.getIndex().needsUpdate = true; + geo.getIndex().updateRange.offset = 0; + geo.getIndex().updateRange.count = this.indicesLength; + geo.drawRange.start = 0; + geo.drawRange.count = this.indicesLength; + }; + MeshBatcher.VERTEX_SIZE = 9; + return MeshBatcher; + }()); + threejs.MeshBatcher = MeshBatcher; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var SkeletonMesh = (function (_super) { - __extends(SkeletonMesh, _super); - function SkeletonMesh(skeletonData) { - _super.call(this); - this.zOffset = 0.1; - this.clipper = new spine.SkeletonClipping(); - this.vertices = spine.Utils.newFloatArray(1024); - this.tempColor = new spine.Color(); - this.skeleton = new spine.Skeleton(skeletonData); - var animData = new spine.AnimationStateData(skeletonData); - this.state = new spine.AnimationState(animData); - var material = this.material = new THREE.MeshBasicMaterial(); - material.side = THREE.DoubleSide; - material.transparent = true; - material.alphaTest = 0.5; - this.batcher = new threejs.MeshBatcher(this); - } - SkeletonMesh.prototype.update = function (deltaTime) { - var state = this.state; - var skeleton = this.skeleton; - state.update(deltaTime); - state.apply(skeleton); - skeleton.updateWorldTransform(); - this.updateGeometry(); - }; - SkeletonMesh.prototype.updateGeometry = function () { - var geometry = this.geometry; - var numVertices = 0; - var verticesLength = 0; - var indicesLength = 0; - var blendMode = null; - var clipper = this.clipper; - var vertices = this.vertices; - var triangles = null; - var uvs = null; - var drawOrder = this.skeleton.drawOrder; - var batcher = this.batcher; - batcher.begin(); - var z = 0; - var zOffset = this.zOffset; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var vertexSize = clipper.isClipping() ? 2 : SkeletonMesh.VERTEX_SIZE; - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var attachmentColor = null; - var texture = null; - var numFloats = 0; - if (attachment instanceof spine.RegionAttachment) { - var region = attachment; - attachmentColor = region.color; - vertices = this.vertices; - numFloats = vertexSize * 4; - region.computeWorldVertices(slot.bone, vertices, 0, vertexSize); - triangles = SkeletonMesh.QUAD_TRIANGLES; - uvs = region.uvs; - texture = region.region.renderObject.texture; - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - attachmentColor = mesh.color; - vertices = this.vertices; - numFloats = (mesh.worldVerticesLength >> 1) * vertexSize; - if (numFloats > vertices.length) { - vertices = this.vertices = spine.Utils.newFloatArray(numFloats); - } - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, vertexSize); - triangles = mesh.triangles; - uvs = mesh.uvs; - texture = mesh.region.renderObject.texture; - } - else if (attachment instanceof spine.ClippingAttachment) { - var clip = (attachment); - clipper.clipStart(slot, clip); - continue; - } - else - continue; - if (texture != null) { - if (!this.material.map) { - var mat = this.material; - mat.map = texture.texture; - mat.needsUpdate = true; - } - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var alpha = skeletonColor.a * slotColor.a * attachmentColor.a; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * attachmentColor.r, skeletonColor.g * slotColor.g * attachmentColor.g, skeletonColor.b * slotColor.b * attachmentColor.b, alpha); - if (clipper.isClipping()) { - clipper.clipTriangles(vertices, numFloats, triangles, triangles.length, uvs, color, null, false); - var clippedVertices = clipper.clippedVertices; - var clippedTriangles = clipper.clippedTriangles; - batcher.batch(clippedVertices, clippedVertices.length, clippedTriangles, clippedTriangles.length, z); - } - else { - var verts = vertices; - for (var v = 2, u = 0, n_2 = numFloats; v < n_2; v += vertexSize, u += 2) { - verts[v] = color.r; - verts[v + 1] = color.g; - verts[v + 2] = color.b; - verts[v + 3] = color.a; - verts[v + 4] = uvs[u]; - verts[v + 5] = uvs[u + 1]; - } - batcher.batch(vertices, numFloats, triangles, triangles.length, z); - } - z += zOffset; - } - } - batcher.end(); - }; - SkeletonMesh.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - SkeletonMesh.VERTEX_SIZE = 2 + 2 + 4; - return SkeletonMesh; - }(THREE.Mesh)); - threejs.SkeletonMesh = SkeletonMesh; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var SkeletonMesh = (function (_super) { + __extends(SkeletonMesh, _super); + function SkeletonMesh(skeletonData) { + _super.call(this); + this.zOffset = 0.1; + this.clipper = new spine.SkeletonClipping(); + this.vertices = spine.Utils.newFloatArray(1024); + this.tempColor = new spine.Color(); + this.skeleton = new spine.Skeleton(skeletonData); + var animData = new spine.AnimationStateData(skeletonData); + this.state = new spine.AnimationState(animData); + var material = this.material = new THREE.MeshBasicMaterial(); + material.side = THREE.DoubleSide; + material.transparent = true; + material.alphaTest = 0.5; + this.batcher = new threejs.MeshBatcher(this); + } + SkeletonMesh.prototype.update = function (deltaTime) { + var state = this.state; + var skeleton = this.skeleton; + state.update(deltaTime); + state.apply(skeleton); + skeleton.updateWorldTransform(); + this.updateGeometry(); + }; + SkeletonMesh.prototype.updateGeometry = function () { + var geometry = this.geometry; + var numVertices = 0; + var verticesLength = 0; + var indicesLength = 0; + var blendMode = null; + var clipper = this.clipper; + var vertices = this.vertices; + var triangles = null; + var uvs = null; + var drawOrder = this.skeleton.drawOrder; + var batcher = this.batcher; + batcher.begin(); + var z = 0; + var zOffset = this.zOffset; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var vertexSize = clipper.isClipping() ? 2 : SkeletonMesh.VERTEX_SIZE; + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var attachmentColor = null; + var texture = null; + var numFloats = 0; + if (attachment instanceof spine.RegionAttachment) { + var region = attachment; + attachmentColor = region.color; + vertices = this.vertices; + numFloats = vertexSize * 4; + region.computeWorldVertices(slot.bone, vertices, 0, vertexSize); + triangles = SkeletonMesh.QUAD_TRIANGLES; + uvs = region.uvs; + texture = region.region.renderObject.texture; + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + attachmentColor = mesh.color; + vertices = this.vertices; + numFloats = (mesh.worldVerticesLength >> 1) * vertexSize; + if (numFloats > vertices.length) { + vertices = this.vertices = spine.Utils.newFloatArray(numFloats); + } + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, vertexSize); + triangles = mesh.triangles; + uvs = mesh.uvs; + texture = mesh.region.renderObject.texture; + } + else if (attachment instanceof spine.ClippingAttachment) { + var clip = (attachment); + clipper.clipStart(slot, clip); + continue; + } + else + continue; + if (texture != null) { + if (!this.material.map) { + var mat = this.material; + mat.map = texture.texture; + mat.needsUpdate = true; + } + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var alpha = skeletonColor.a * slotColor.a * attachmentColor.a; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * attachmentColor.r, skeletonColor.g * slotColor.g * attachmentColor.g, skeletonColor.b * slotColor.b * attachmentColor.b, alpha); + if (clipper.isClipping()) { + clipper.clipTriangles(vertices, numFloats, triangles, triangles.length, uvs, color, null, false); + var clippedVertices = clipper.clippedVertices; + var clippedTriangles = clipper.clippedTriangles; + batcher.batch(clippedVertices, clippedVertices.length, clippedTriangles, clippedTriangles.length, z); + } + else { + var verts = vertices; + for (var v = 2, u = 0, n_2 = numFloats; v < n_2; v += vertexSize, u += 2) { + verts[v] = color.r; + verts[v + 1] = color.g; + verts[v + 2] = color.b; + verts[v + 3] = color.a; + verts[v + 4] = uvs[u]; + verts[v + 5] = uvs[u + 1]; + } + batcher.batch(vertices, numFloats, triangles, triangles.length, z); + } + z += zOffset; + } + } + batcher.end(); + }; + SkeletonMesh.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + SkeletonMesh.VERTEX_SIZE = 2 + 2 + 4; + return SkeletonMesh; + }(THREE.Mesh)); + threejs.SkeletonMesh = SkeletonMesh; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var ThreeJsTexture = (function (_super) { - __extends(ThreeJsTexture, _super); - function ThreeJsTexture(image) { - _super.call(this, image); - this.texture = new THREE.Texture(image); - this.texture.flipY = false; - this.texture.needsUpdate = true; - } - ThreeJsTexture.prototype.setFilters = function (minFilter, magFilter) { - this.texture.minFilter = ThreeJsTexture.toThreeJsTextureFilter(minFilter); - this.texture.magFilter = ThreeJsTexture.toThreeJsTextureFilter(magFilter); - }; - ThreeJsTexture.prototype.setWraps = function (uWrap, vWrap) { - this.texture.wrapS = ThreeJsTexture.toThreeJsTextureWrap(uWrap); - this.texture.wrapT = ThreeJsTexture.toThreeJsTextureWrap(vWrap); - }; - ThreeJsTexture.prototype.dispose = function () { - this.texture.dispose(); - }; - ThreeJsTexture.toThreeJsTextureFilter = function (filter) { - if (filter === spine.TextureFilter.Linear) - return THREE.LinearFilter; - else if (filter === spine.TextureFilter.MipMap) - return THREE.LinearMipMapLinearFilter; - else if (filter === spine.TextureFilter.MipMapLinearNearest) - return THREE.LinearMipMapNearestFilter; - else if (filter === spine.TextureFilter.MipMapNearestLinear) - return THREE.NearestMipMapLinearFilter; - else if (filter === spine.TextureFilter.MipMapNearestNearest) - return THREE.NearestMipMapNearestFilter; - else if (filter === spine.TextureFilter.Nearest) - return THREE.NearestFilter; - else - throw new Error("Unknown texture filter: " + filter); - }; - ThreeJsTexture.toThreeJsTextureWrap = function (wrap) { - if (wrap === spine.TextureWrap.ClampToEdge) - return THREE.ClampToEdgeWrapping; - else if (wrap === spine.TextureWrap.MirroredRepeat) - return THREE.MirroredRepeatWrapping; - else if (wrap === spine.TextureWrap.Repeat) - return THREE.RepeatWrapping; - else - throw new Error("Unknown texture wrap: " + wrap); - }; - return ThreeJsTexture; - }(spine.Texture)); - threejs.ThreeJsTexture = ThreeJsTexture; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var ThreeJsTexture = (function (_super) { + __extends(ThreeJsTexture, _super); + function ThreeJsTexture(image) { + _super.call(this, image); + this.texture = new THREE.Texture(image); + this.texture.flipY = false; + this.texture.needsUpdate = true; + } + ThreeJsTexture.prototype.setFilters = function (minFilter, magFilter) { + this.texture.minFilter = ThreeJsTexture.toThreeJsTextureFilter(minFilter); + this.texture.magFilter = ThreeJsTexture.toThreeJsTextureFilter(magFilter); + }; + ThreeJsTexture.prototype.setWraps = function (uWrap, vWrap) { + this.texture.wrapS = ThreeJsTexture.toThreeJsTextureWrap(uWrap); + this.texture.wrapT = ThreeJsTexture.toThreeJsTextureWrap(vWrap); + }; + ThreeJsTexture.prototype.dispose = function () { + this.texture.dispose(); + }; + ThreeJsTexture.toThreeJsTextureFilter = function (filter) { + if (filter === spine.TextureFilter.Linear) + return THREE.LinearFilter; + else if (filter === spine.TextureFilter.MipMap) + return THREE.LinearMipMapLinearFilter; + else if (filter === spine.TextureFilter.MipMapLinearNearest) + return THREE.LinearMipMapNearestFilter; + else if (filter === spine.TextureFilter.MipMapNearestLinear) + return THREE.NearestMipMapLinearFilter; + else if (filter === spine.TextureFilter.MipMapNearestNearest) + return THREE.NearestMipMapNearestFilter; + else if (filter === spine.TextureFilter.Nearest) + return THREE.NearestFilter; + else + throw new Error("Unknown texture filter: " + filter); + }; + ThreeJsTexture.toThreeJsTextureWrap = function (wrap) { + if (wrap === spine.TextureWrap.ClampToEdge) + return THREE.ClampToEdgeWrapping; + else if (wrap === spine.TextureWrap.MirroredRepeat) + return THREE.MirroredRepeatWrapping; + else if (wrap === spine.TextureWrap.Repeat) + return THREE.RepeatWrapping; + else + throw new Error("Unknown texture wrap: " + wrap); + }; + return ThreeJsTexture; + }(spine.Texture)); + threejs.ThreeJsTexture = ThreeJsTexture; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); //# sourceMappingURL=spine-threejs.js.map \ No newline at end of file diff --git a/spine-ts/build/spine-threejs.js.map b/spine-ts/build/spine-threejs.js.map index c472858df..db6c25b37 100644 --- a/spine-ts/build/spine-threejs.js.map +++ b/spine-ts/build/spine-threejs.js.map @@ -1 +1 @@ -{"version":3,"file":"spine-threejs.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../threejs/src/AssetManager.ts","../threejs/src/MeshBatcher.ts","../threejs/src/SkeletonMesh.ts","../threejs/src/ThreeJsTexture.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"spine-threejs.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../threejs/src/AssetManager.ts","../threejs/src/MeshBatcher.ts","../threejs/src/SkeletonMesh.ts","../threejs/src/ThreeJsTexture.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/spine-ts/build/spine-webgl.d.ts b/spine-ts/build/spine-webgl.d.ts index d0a848017..abf0d7da3 100644 --- a/spine-ts/build/spine-webgl.d.ts +++ b/spine-ts/build/spine-webgl.d.ts @@ -1,1585 +1,1585 @@ declare module spine { - class Animation { - name: string; - timelines: Array; - duration: number; - constructor(name: string, timelines: Array, duration: number); - apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - static binarySearch(values: ArrayLike, target: number, step?: number): number; - static linearSearch(values: ArrayLike, target: number, step: number): number; - } - interface Timeline { - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - getPropertyId(): number; - } - enum TimelineType { - rotate = 0, - translate = 1, - scale = 2, - shear = 3, - attachment = 4, - color = 5, - deform = 6, - event = 7, - drawOrder = 8, - ikConstraint = 9, - transformConstraint = 10, - pathConstraintPosition = 11, - pathConstraintSpacing = 12, - pathConstraintMix = 13, - twoColor = 14, - } - abstract class CurveTimeline implements Timeline { - static LINEAR: number; - static STEPPED: number; - static BEZIER: number; - static BEZIER_SIZE: number; - private curves; - abstract getPropertyId(): number; - constructor(frameCount: number); - getFrameCount(): number; - setLinear(frameIndex: number): void; - setStepped(frameIndex: number): void; - getCurveType(frameIndex: number): number; - setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; - getCurvePercent(frameIndex: number, percent: number): number; - abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class RotateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATION: number; - static ROTATION: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, degrees: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TranslateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_X: number; - static PREV_Y: number; - static X: number; - static Y: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, x: number, y: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ScaleTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ShearTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static R: number; - static G: number; - static B: number; - static A: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TwoColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static PREV_R2: number; - static PREV_G2: number; - static PREV_B2: number; - static R: number; - static G: number; - static B: number; - static A: number; - static R2: number; - static G2: number; - static B2: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class AttachmentTimeline implements Timeline { - slotIndex: number; - frames: ArrayLike; - attachmentNames: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, attachmentName: string): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DeformTimeline extends CurveTimeline { - slotIndex: number; - attachment: VertexAttachment; - frames: ArrayLike; - frameVertices: Array>; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class EventTimeline implements Timeline { - frames: ArrayLike; - events: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, event: Event): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DrawOrderTimeline implements Timeline { - frames: ArrayLike; - drawOrders: Array>; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, drawOrder: Array): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class IkConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_MIX: number; - static PREV_BEND_DIRECTION: number; - static MIX: number; - static BEND_DIRECTION: number; - ikConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TransformConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static PREV_SCALE: number; - static PREV_SHEAR: number; - static ROTATE: number; - static TRANSLATE: number; - static SCALE: number; - static SHEAR: number; - transformConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintPositionTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_VALUE: number; - static VALUE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, value: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintMixTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static ROTATE: number; - static TRANSLATE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } + class Animation { + name: string; + timelines: Array; + duration: number; + constructor(name: string, timelines: Array, duration: number); + apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + static binarySearch(values: ArrayLike, target: number, step?: number): number; + static linearSearch(values: ArrayLike, target: number, step: number): number; + } + interface Timeline { + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + getPropertyId(): number; + } + enum TimelineType { + rotate = 0, + translate = 1, + scale = 2, + shear = 3, + attachment = 4, + color = 5, + deform = 6, + event = 7, + drawOrder = 8, + ikConstraint = 9, + transformConstraint = 10, + pathConstraintPosition = 11, + pathConstraintSpacing = 12, + pathConstraintMix = 13, + twoColor = 14, + } + abstract class CurveTimeline implements Timeline { + static LINEAR: number; + static STEPPED: number; + static BEZIER: number; + static BEZIER_SIZE: number; + private curves; + abstract getPropertyId(): number; + constructor(frameCount: number); + getFrameCount(): number; + setLinear(frameIndex: number): void; + setStepped(frameIndex: number): void; + getCurveType(frameIndex: number): number; + setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; + getCurvePercent(frameIndex: number, percent: number): number; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class RotateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATION: number; + static ROTATION: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, degrees: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TranslateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_X: number; + static PREV_Y: number; + static X: number; + static Y: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, x: number, y: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ScaleTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ShearTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static R: number; + static G: number; + static B: number; + static A: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TwoColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static PREV_R2: number; + static PREV_G2: number; + static PREV_B2: number; + static R: number; + static G: number; + static B: number; + static A: number; + static R2: number; + static G2: number; + static B2: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class AttachmentTimeline implements Timeline { + slotIndex: number; + frames: ArrayLike; + attachmentNames: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, attachmentName: string): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DeformTimeline extends CurveTimeline { + slotIndex: number; + attachment: VertexAttachment; + frames: ArrayLike; + frameVertices: Array>; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class EventTimeline implements Timeline { + frames: ArrayLike; + events: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, event: Event): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DrawOrderTimeline implements Timeline { + frames: ArrayLike; + drawOrders: Array>; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, drawOrder: Array): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class IkConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_MIX: number; + static PREV_BEND_DIRECTION: number; + static MIX: number; + static BEND_DIRECTION: number; + ikConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TransformConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static PREV_SCALE: number; + static PREV_SHEAR: number; + static ROTATE: number; + static TRANSLATE: number; + static SCALE: number; + static SHEAR: number; + transformConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintPositionTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_VALUE: number; + static VALUE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, value: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintMixTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static ROTATE: number; + static TRANSLATE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } } declare module spine { - class AnimationState { - static emptyAnimation: Animation; - static SUBSEQUENT: number; - static FIRST: number; - static DIP: number; - static DIP_MIX: number; - data: AnimationStateData; - tracks: TrackEntry[]; - events: Event[]; - listeners: AnimationStateListener2[]; - queue: EventQueue; - propertyIDs: IntSet; - mixingTo: TrackEntry[]; - animationsChanged: boolean; - timeScale: number; - trackEntryPool: Pool; - constructor(data: AnimationStateData); - update(delta: number): void; - updateMixingFrom(to: TrackEntry, delta: number): boolean; - apply(skeleton: Skeleton): boolean; - applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; - applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; - queueEvents(entry: TrackEntry, animationTime: number): void; - clearTracks(): void; - clearTrack(trackIndex: number): void; - setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; - setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; - setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; - addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; - addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; - setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; - addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; - setEmptyAnimations(mixDuration: number): void; - expandToIndex(index: number): TrackEntry; - trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; - disposeNext(entry: TrackEntry): void; - _animationsChanged(): void; - getCurrent(trackIndex: number): TrackEntry; - addListener(listener: AnimationStateListener2): void; - removeListener(listener: AnimationStateListener2): void; - clearListeners(): void; - clearListenerNotifications(): void; - } - class TrackEntry { - animation: Animation; - next: TrackEntry; - mixingFrom: TrackEntry; - listener: AnimationStateListener2; - trackIndex: number; - loop: boolean; - eventThreshold: number; - attachmentThreshold: number; - drawOrderThreshold: number; - animationStart: number; - animationEnd: number; - animationLast: number; - nextAnimationLast: number; - delay: number; - trackTime: number; - trackLast: number; - nextTrackLast: number; - trackEnd: number; - timeScale: number; - alpha: number; - mixTime: number; - mixDuration: number; - interruptAlpha: number; - totalAlpha: number; - timelineData: number[]; - timelineDipMix: TrackEntry[]; - timelinesRotation: number[]; - reset(): void; - setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; - hasTimeline(id: number): boolean; - getAnimationTime(): number; - setAnimationLast(animationLast: number): void; - isComplete(): boolean; - resetRotationDirections(): void; - } - class EventQueue { - objects: Array; - drainDisabled: boolean; - animState: AnimationState; - constructor(animState: AnimationState); - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - drain(): void; - clear(): void; - } - enum EventType { - start = 0, - interrupt = 1, - end = 2, - dispose = 3, - complete = 4, - event = 5, - } - interface AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } - abstract class AnimationStateAdapter2 implements AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } + class AnimationState { + static emptyAnimation: Animation; + static SUBSEQUENT: number; + static FIRST: number; + static DIP: number; + static DIP_MIX: number; + data: AnimationStateData; + tracks: TrackEntry[]; + events: Event[]; + listeners: AnimationStateListener2[]; + queue: EventQueue; + propertyIDs: IntSet; + mixingTo: TrackEntry[]; + animationsChanged: boolean; + timeScale: number; + trackEntryPool: Pool; + constructor(data: AnimationStateData); + update(delta: number): void; + updateMixingFrom(to: TrackEntry, delta: number): boolean; + apply(skeleton: Skeleton): boolean; + applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; + applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; + queueEvents(entry: TrackEntry, animationTime: number): void; + clearTracks(): void; + clearTrack(trackIndex: number): void; + setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; + setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; + setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; + addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; + addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; + setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; + addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; + setEmptyAnimations(mixDuration: number): void; + expandToIndex(index: number): TrackEntry; + trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; + disposeNext(entry: TrackEntry): void; + _animationsChanged(): void; + getCurrent(trackIndex: number): TrackEntry; + addListener(listener: AnimationStateListener2): void; + removeListener(listener: AnimationStateListener2): void; + clearListeners(): void; + clearListenerNotifications(): void; + } + class TrackEntry { + animation: Animation; + next: TrackEntry; + mixingFrom: TrackEntry; + listener: AnimationStateListener2; + trackIndex: number; + loop: boolean; + eventThreshold: number; + attachmentThreshold: number; + drawOrderThreshold: number; + animationStart: number; + animationEnd: number; + animationLast: number; + nextAnimationLast: number; + delay: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; + timeScale: number; + alpha: number; + mixTime: number; + mixDuration: number; + interruptAlpha: number; + totalAlpha: number; + timelineData: number[]; + timelineDipMix: TrackEntry[]; + timelinesRotation: number[]; + reset(): void; + setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; + hasTimeline(id: number): boolean; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; + isComplete(): boolean; + resetRotationDirections(): void; + } + class EventQueue { + objects: Array; + drainDisabled: boolean; + animState: AnimationState; + constructor(animState: AnimationState); + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + drain(): void; + clear(): void; + } + enum EventType { + start = 0, + interrupt = 1, + end = 2, + dispose = 3, + complete = 4, + event = 5, + } + interface AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } + abstract class AnimationStateAdapter2 implements AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } } declare module spine { - class AnimationStateData { - skeletonData: SkeletonData; - animationToMixTime: Map; - defaultMix: number; - constructor(skeletonData: SkeletonData); - setMix(fromName: string, toName: string, duration: number): void; - setMixWith(from: Animation, to: Animation, duration: number): void; - getMix(from: Animation, to: Animation): number; - } + class AnimationStateData { + skeletonData: SkeletonData; + animationToMixTime: Map; + defaultMix: number; + constructor(skeletonData: SkeletonData); + setMix(fromName: string, toName: string, duration: number): void; + setMixWith(from: Animation, to: Animation, duration: number): void; + getMix(from: Animation, to: Animation): number; + } } declare module spine { - class AssetManager implements Disposable { - private pathPrefix; - private textureLoader; - private assets; - private errors; - private toLoad; - private loaded; - constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); - loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; - loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - get(path: string): any; - remove(path: string): void; - removeAll(): void; - isLoadingComplete(): boolean; - getToLoad(): number; - getLoaded(): number; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class AssetManager implements Disposable { + private pathPrefix; + private textureLoader; + private assets; + private errors; + private toLoad; + private loaded; + constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); + loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; + loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + get(path: string): any; + remove(path: string): void; + removeAll(): void; + isLoadingComplete(): boolean; + getToLoad(): number; + getLoaded(): number; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class AtlasAttachmentLoader implements AttachmentLoader { - atlas: TextureAtlas; - constructor(atlas: TextureAtlas); - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + class AtlasAttachmentLoader implements AttachmentLoader { + atlas: TextureAtlas; + constructor(atlas: TextureAtlas); + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - abstract class Attachment { - name: string; - constructor(name: string); - } - abstract class VertexAttachment extends Attachment { - bones: Array; - vertices: ArrayLike; - worldVerticesLength: number; - constructor(name: string); - computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - } + abstract class Attachment { + name: string; + constructor(name: string); + } + abstract class VertexAttachment extends Attachment { + bones: Array; + vertices: ArrayLike; + worldVerticesLength: number; + constructor(name: string); + computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + } } declare module spine { - interface AttachmentLoader { - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + interface AttachmentLoader { + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - enum AttachmentType { - Region = 0, - BoundingBox = 1, - Mesh = 2, - LinkedMesh = 3, - Path = 4, - Point = 5, - } + enum AttachmentType { + Region = 0, + BoundingBox = 1, + Mesh = 2, + LinkedMesh = 3, + Path = 4, + Point = 5, + } } declare module spine { - class BoundingBoxAttachment extends VertexAttachment { - color: Color; - constructor(name: string); - } + class BoundingBoxAttachment extends VertexAttachment { + color: Color; + constructor(name: string); + } } declare module spine { - class ClippingAttachment extends VertexAttachment { - endSlot: SlotData; - color: Color; - constructor(name: string); - } + class ClippingAttachment extends VertexAttachment { + endSlot: SlotData; + color: Color; + constructor(name: string); + } } declare module spine { - class MeshAttachment extends VertexAttachment { - region: TextureRegion; - path: string; - regionUVs: ArrayLike; - uvs: ArrayLike; - triangles: Array; - color: Color; - hullLength: number; - private parentMesh; - inheritDeform: boolean; - tempColor: Color; - constructor(name: string); - updateUVs(): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - getParentMesh(): MeshAttachment; - setParentMesh(parentMesh: MeshAttachment): void; - } + class MeshAttachment extends VertexAttachment { + region: TextureRegion; + path: string; + regionUVs: ArrayLike; + uvs: ArrayLike; + triangles: Array; + color: Color; + hullLength: number; + private parentMesh; + inheritDeform: boolean; + tempColor: Color; + constructor(name: string); + updateUVs(): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + getParentMesh(): MeshAttachment; + setParentMesh(parentMesh: MeshAttachment): void; + } } declare module spine { - class PathAttachment extends VertexAttachment { - lengths: Array; - closed: boolean; - constantSpeed: boolean; - color: Color; - constructor(name: string); - } + class PathAttachment extends VertexAttachment { + lengths: Array; + closed: boolean; + constantSpeed: boolean; + color: Color; + constructor(name: string); + } } declare module spine { - class PointAttachment extends VertexAttachment { - x: number; - y: number; - rotation: number; - color: Color; - constructor(name: string); - computeWorldPosition(bone: Bone, point: Vector2): Vector2; - computeWorldRotation(bone: Bone): number; - } + class PointAttachment extends VertexAttachment { + x: number; + y: number; + rotation: number; + color: Color; + constructor(name: string); + computeWorldPosition(bone: Bone, point: Vector2): Vector2; + computeWorldRotation(bone: Bone): number; + } } declare module spine { - class RegionAttachment extends Attachment { - static OX1: number; - static OY1: number; - static OX2: number; - static OY2: number; - static OX3: number; - static OY3: number; - static OX4: number; - static OY4: number; - static X1: number; - static Y1: number; - static C1R: number; - static C1G: number; - static C1B: number; - static C1A: number; - static U1: number; - static V1: number; - static X2: number; - static Y2: number; - static C2R: number; - static C2G: number; - static C2B: number; - static C2A: number; - static U2: number; - static V2: number; - static X3: number; - static Y3: number; - static C3R: number; - static C3G: number; - static C3B: number; - static C3A: number; - static U3: number; - static V3: number; - static X4: number; - static Y4: number; - static C4R: number; - static C4G: number; - static C4B: number; - static C4A: number; - static U4: number; - static V4: number; - x: number; - y: number; - scaleX: number; - scaleY: number; - rotation: number; - width: number; - height: number; - color: Color; - path: string; - rendererObject: any; - region: TextureRegion; - offset: ArrayLike; - uvs: ArrayLike; - tempColor: Color; - constructor(name: string); - updateOffset(): void; - setRegion(region: TextureRegion): void; - computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; - } + class RegionAttachment extends Attachment { + static OX1: number; + static OY1: number; + static OX2: number; + static OY2: number; + static OX3: number; + static OY3: number; + static OX4: number; + static OY4: number; + static X1: number; + static Y1: number; + static C1R: number; + static C1G: number; + static C1B: number; + static C1A: number; + static U1: number; + static V1: number; + static X2: number; + static Y2: number; + static C2R: number; + static C2G: number; + static C2B: number; + static C2A: number; + static U2: number; + static V2: number; + static X3: number; + static Y3: number; + static C3R: number; + static C3G: number; + static C3B: number; + static C3A: number; + static U3: number; + static V3: number; + static X4: number; + static Y4: number; + static C4R: number; + static C4G: number; + static C4B: number; + static C4A: number; + static U4: number; + static V4: number; + x: number; + y: number; + scaleX: number; + scaleY: number; + rotation: number; + width: number; + height: number; + color: Color; + path: string; + rendererObject: any; + region: TextureRegion; + offset: ArrayLike; + uvs: ArrayLike; + tempColor: Color; + constructor(name: string); + updateOffset(): void; + setRegion(region: TextureRegion): void; + computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; + } } declare module spine { - enum BlendMode { - Normal = 0, - Additive = 1, - Multiply = 2, - Screen = 3, - } + enum BlendMode { + Normal = 0, + Additive = 1, + Multiply = 2, + Screen = 3, + } } declare module spine { - class Bone implements Updatable { - data: BoneData; - skeleton: Skeleton; - parent: Bone; - children: Bone[]; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - ax: number; - ay: number; - arotation: number; - ascaleX: number; - ascaleY: number; - ashearX: number; - ashearY: number; - appliedValid: boolean; - a: number; - b: number; - worldX: number; - c: number; - d: number; - worldY: number; - sorted: boolean; - constructor(data: BoneData, skeleton: Skeleton, parent: Bone); - update(): void; - updateWorldTransform(): void; - updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; - setToSetupPose(): void; - getWorldRotationX(): number; - getWorldRotationY(): number; - getWorldScaleX(): number; - getWorldScaleY(): number; - updateAppliedTransform(): void; - worldToLocal(world: Vector2): Vector2; - localToWorld(local: Vector2): Vector2; - worldToLocalRotation(worldRotation: number): number; - localToWorldRotation(localRotation: number): number; - rotateWorld(degrees: number): void; - } + class Bone implements Updatable { + data: BoneData; + skeleton: Skeleton; + parent: Bone; + children: Bone[]; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + ax: number; + ay: number; + arotation: number; + ascaleX: number; + ascaleY: number; + ashearX: number; + ashearY: number; + appliedValid: boolean; + a: number; + b: number; + worldX: number; + c: number; + d: number; + worldY: number; + sorted: boolean; + constructor(data: BoneData, skeleton: Skeleton, parent: Bone); + update(): void; + updateWorldTransform(): void; + updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; + setToSetupPose(): void; + getWorldRotationX(): number; + getWorldRotationY(): number; + getWorldScaleX(): number; + getWorldScaleY(): number; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + worldToLocalRotation(worldRotation: number): number; + localToWorldRotation(localRotation: number): number; + rotateWorld(degrees: number): void; + } } declare module spine { - class BoneData { - index: number; - name: string; - parent: BoneData; - length: number; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - transformMode: TransformMode; - constructor(index: number, name: string, parent: BoneData); - } - enum TransformMode { - Normal = 0, - OnlyTranslation = 1, - NoRotationOrReflection = 2, - NoScale = 3, - NoScaleOrReflection = 4, - } + class BoneData { + index: number; + name: string; + parent: BoneData; + length: number; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + transformMode: TransformMode; + constructor(index: number, name: string, parent: BoneData); + } + enum TransformMode { + Normal = 0, + OnlyTranslation = 1, + NoRotationOrReflection = 2, + NoScale = 3, + NoScaleOrReflection = 4, + } } declare module spine { - interface Constraint extends Updatable { - getOrder(): number; - } + interface Constraint extends Updatable { + getOrder(): number; + } } declare module spine { - class Event { - data: EventData; - intValue: number; - floatValue: number; - stringValue: string; - time: number; - constructor(time: number, data: EventData); - } + class Event { + data: EventData; + intValue: number; + floatValue: number; + stringValue: string; + time: number; + constructor(time: number, data: EventData); + } } declare module spine { - class EventData { - name: string; - intValue: number; - floatValue: number; - stringValue: string; - constructor(name: string); - } + class EventData { + name: string; + intValue: number; + floatValue: number; + stringValue: string; + constructor(name: string); + } } declare module spine { - class IkConstraint implements Constraint { - data: IkConstraintData; - bones: Array; - target: Bone; - mix: number; - bendDirection: number; - constructor(data: IkConstraintData, skeleton: Skeleton); - getOrder(): number; - apply(): void; - update(): void; - apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; - apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; - } + class IkConstraint implements Constraint { + data: IkConstraintData; + bones: Array; + target: Bone; + mix: number; + bendDirection: number; + constructor(data: IkConstraintData, skeleton: Skeleton); + getOrder(): number; + apply(): void; + update(): void; + apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; + apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; + } } declare module spine { - class IkConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - bendDirection: number; - mix: number; - constructor(name: string); - } + class IkConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + bendDirection: number; + mix: number; + constructor(name: string); + } } declare module spine { - class PathConstraint implements Constraint { - static NONE: number; - static BEFORE: number; - static AFTER: number; - data: PathConstraintData; - bones: Array; - target: Slot; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - spaces: number[]; - positions: number[]; - world: number[]; - curves: number[]; - lengths: number[]; - segments: number[]; - constructor(data: PathConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; - addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; - getOrder(): number; - } + class PathConstraint implements Constraint { + static NONE: number; + static BEFORE: number; + static AFTER: number; + data: PathConstraintData; + bones: Array; + target: Slot; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + spaces: number[]; + positions: number[]; + world: number[]; + curves: number[]; + lengths: number[]; + segments: number[]; + constructor(data: PathConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; + addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; + getOrder(): number; + } } declare module spine { - class PathConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: SlotData; - positionMode: PositionMode; - spacingMode: SpacingMode; - rotateMode: RotateMode; - offsetRotation: number; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - constructor(name: string); - } - enum PositionMode { - Fixed = 0, - Percent = 1, - } - enum SpacingMode { - Length = 0, - Fixed = 1, - Percent = 2, - } - enum RotateMode { - Tangent = 0, - Chain = 1, - ChainScale = 2, - } + class PathConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: SlotData; + positionMode: PositionMode; + spacingMode: SpacingMode; + rotateMode: RotateMode; + offsetRotation: number; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + constructor(name: string); + } + enum PositionMode { + Fixed = 0, + Percent = 1, + } + enum SpacingMode { + Length = 0, + Fixed = 1, + Percent = 2, + } + enum RotateMode { + Tangent = 0, + Chain = 1, + ChainScale = 2, + } } declare module spine { - class SharedAssetManager implements Disposable { - private pathPrefix; - private clientAssets; - private queuedAssets; - private rawAssets; - private errors; - constructor(pathPrefix?: string); - private queueAsset(clientId, textureLoader, path); - loadText(clientId: string, path: string): void; - loadJson(clientId: string, path: string): void; - loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; - get(clientId: string, path: string): any; - private updateClientAssets(clientAssets); - isLoadingComplete(clientId: string): boolean; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class SharedAssetManager implements Disposable { + private pathPrefix; + private clientAssets; + private queuedAssets; + private rawAssets; + private errors; + constructor(pathPrefix?: string); + private queueAsset(clientId, textureLoader, path); + loadText(clientId: string, path: string): void; + loadJson(clientId: string, path: string): void; + loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; + get(clientId: string, path: string): any; + private updateClientAssets(clientAssets); + isLoadingComplete(clientId: string): boolean; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class Skeleton { - data: SkeletonData; - bones: Array; - slots: Array; - drawOrder: Array; - ikConstraints: Array; - transformConstraints: Array; - pathConstraints: Array; - _updateCache: Updatable[]; - updateCacheReset: Updatable[]; - skin: Skin; - color: Color; - time: number; - flipX: boolean; - flipY: boolean; - x: number; - y: number; - constructor(data: SkeletonData); - updateCache(): void; - sortIkConstraint(constraint: IkConstraint): void; - sortPathConstraint(constraint: PathConstraint): void; - sortTransformConstraint(constraint: TransformConstraint): void; - sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; - sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; - sortBone(bone: Bone): void; - sortReset(bones: Array): void; - updateWorldTransform(): void; - setToSetupPose(): void; - setBonesToSetupPose(): void; - setSlotsToSetupPose(): void; - getRootBone(): Bone; - findBone(boneName: string): Bone; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): Slot; - findSlotIndex(slotName: string): number; - setSkinByName(skinName: string): void; - setSkin(newSkin: Skin): void; - getAttachmentByName(slotName: string, attachmentName: string): Attachment; - getAttachment(slotIndex: number, attachmentName: string): Attachment; - setAttachment(slotName: string, attachmentName: string): void; - findIkConstraint(constraintName: string): IkConstraint; - findTransformConstraint(constraintName: string): TransformConstraint; - findPathConstraint(constraintName: string): PathConstraint; - getBounds(offset: Vector2, size: Vector2, temp: Array): void; - update(delta: number): void; - } + class Skeleton { + data: SkeletonData; + bones: Array; + slots: Array; + drawOrder: Array; + ikConstraints: Array; + transformConstraints: Array; + pathConstraints: Array; + _updateCache: Updatable[]; + updateCacheReset: Updatable[]; + skin: Skin; + color: Color; + time: number; + flipX: boolean; + flipY: boolean; + x: number; + y: number; + constructor(data: SkeletonData); + updateCache(): void; + sortIkConstraint(constraint: IkConstraint): void; + sortPathConstraint(constraint: PathConstraint): void; + sortTransformConstraint(constraint: TransformConstraint): void; + sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; + sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; + sortBone(bone: Bone): void; + sortReset(bones: Array): void; + updateWorldTransform(): void; + setToSetupPose(): void; + setBonesToSetupPose(): void; + setSlotsToSetupPose(): void; + getRootBone(): Bone; + findBone(boneName: string): Bone; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): Slot; + findSlotIndex(slotName: string): number; + setSkinByName(skinName: string): void; + setSkin(newSkin: Skin): void; + getAttachmentByName(slotName: string, attachmentName: string): Attachment; + getAttachment(slotIndex: number, attachmentName: string): Attachment; + setAttachment(slotName: string, attachmentName: string): void; + findIkConstraint(constraintName: string): IkConstraint; + findTransformConstraint(constraintName: string): TransformConstraint; + findPathConstraint(constraintName: string): PathConstraint; + getBounds(offset: Vector2, size: Vector2, temp: Array): void; + update(delta: number): void; + } } declare module spine { - class SkeletonBounds { - minX: number; - minY: number; - maxX: number; - maxY: number; - boundingBoxes: BoundingBoxAttachment[]; - polygons: ArrayLike[]; - private polygonPool; - update(skeleton: Skeleton, updateAabb: boolean): void; - aabbCompute(): void; - aabbContainsPoint(x: number, y: number): boolean; - aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; - aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; - containsPoint(x: number, y: number): BoundingBoxAttachment; - containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; - intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; - intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; - getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; - getWidth(): number; - getHeight(): number; - } + class SkeletonBounds { + minX: number; + minY: number; + maxX: number; + maxY: number; + boundingBoxes: BoundingBoxAttachment[]; + polygons: ArrayLike[]; + private polygonPool; + update(skeleton: Skeleton, updateAabb: boolean): void; + aabbCompute(): void; + aabbContainsPoint(x: number, y: number): boolean; + aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; + aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; + containsPoint(x: number, y: number): BoundingBoxAttachment; + containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; + intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; + intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; + getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; + getWidth(): number; + getHeight(): number; + } } declare module spine { - class SkeletonClipping { - private triangulator; - private clippingPolygon; - private clipOutput; - clippedVertices: number[]; - clippedTriangles: number[]; - private scratch; - private clipAttachment; - private clippingPolygons; - clipStart(slot: Slot, clip: ClippingAttachment): number; - clipEndWithSlot(slot: Slot): void; - clipEnd(): void; - isClipping(): boolean; - clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; - clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; - static makeClockwise(polygon: ArrayLike): void; - } + class SkeletonClipping { + private triangulator; + private clippingPolygon; + private clipOutput; + clippedVertices: number[]; + clippedTriangles: number[]; + private scratch; + private clipAttachment; + private clippingPolygons; + clipStart(slot: Slot, clip: ClippingAttachment): number; + clipEndWithSlot(slot: Slot): void; + clipEnd(): void; + isClipping(): boolean; + clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; + clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; + static makeClockwise(polygon: ArrayLike): void; + } } declare module spine { - class SkeletonData { - name: string; - bones: BoneData[]; - slots: SlotData[]; - skins: Skin[]; - defaultSkin: Skin; - events: EventData[]; - animations: Animation[]; - ikConstraints: IkConstraintData[]; - transformConstraints: TransformConstraintData[]; - pathConstraints: PathConstraintData[]; - width: number; - height: number; - version: string; - hash: string; - fps: number; - imagesPath: string; - findBone(boneName: string): BoneData; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): SlotData; - findSlotIndex(slotName: string): number; - findSkin(skinName: string): Skin; - findEvent(eventDataName: string): EventData; - findAnimation(animationName: string): Animation; - findIkConstraint(constraintName: string): IkConstraintData; - findTransformConstraint(constraintName: string): TransformConstraintData; - findPathConstraint(constraintName: string): PathConstraintData; - findPathConstraintIndex(pathConstraintName: string): number; - } + class SkeletonData { + name: string; + bones: BoneData[]; + slots: SlotData[]; + skins: Skin[]; + defaultSkin: Skin; + events: EventData[]; + animations: Animation[]; + ikConstraints: IkConstraintData[]; + transformConstraints: TransformConstraintData[]; + pathConstraints: PathConstraintData[]; + width: number; + height: number; + version: string; + hash: string; + fps: number; + imagesPath: string; + findBone(boneName: string): BoneData; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): SlotData; + findSlotIndex(slotName: string): number; + findSkin(skinName: string): Skin; + findEvent(eventDataName: string): EventData; + findAnimation(animationName: string): Animation; + findIkConstraint(constraintName: string): IkConstraintData; + findTransformConstraint(constraintName: string): TransformConstraintData; + findPathConstraint(constraintName: string): PathConstraintData; + findPathConstraintIndex(pathConstraintName: string): number; + } } declare module spine { - class SkeletonJson { - attachmentLoader: AttachmentLoader; - scale: number; - private linkedMeshes; - constructor(attachmentLoader: AttachmentLoader); - readSkeletonData(json: string | any): SkeletonData; - readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; - readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; - readAnimation(map: any, name: string, skeletonData: SkeletonData): void; - readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; - getValue(map: any, prop: string, defaultValue: any): any; - static blendModeFromString(str: string): BlendMode; - static positionModeFromString(str: string): PositionMode; - static spacingModeFromString(str: string): SpacingMode; - static rotateModeFromString(str: string): RotateMode; - static transformModeFromString(str: string): TransformMode; - } + class SkeletonJson { + attachmentLoader: AttachmentLoader; + scale: number; + private linkedMeshes; + constructor(attachmentLoader: AttachmentLoader); + readSkeletonData(json: string | any): SkeletonData; + readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; + readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; + readAnimation(map: any, name: string, skeletonData: SkeletonData): void; + readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; + getValue(map: any, prop: string, defaultValue: any): any; + static blendModeFromString(str: string): BlendMode; + static positionModeFromString(str: string): PositionMode; + static spacingModeFromString(str: string): SpacingMode; + static rotateModeFromString(str: string): RotateMode; + static transformModeFromString(str: string): TransformMode; + } } declare module spine { - class Skin { - name: string; - attachments: Map[]; - constructor(name: string); - addAttachment(slotIndex: number, name: string, attachment: Attachment): void; - getAttachment(slotIndex: number, name: string): Attachment; - attachAll(skeleton: Skeleton, oldSkin: Skin): void; - } + class Skin { + name: string; + attachments: Map[]; + constructor(name: string); + addAttachment(slotIndex: number, name: string, attachment: Attachment): void; + getAttachment(slotIndex: number, name: string): Attachment; + attachAll(skeleton: Skeleton, oldSkin: Skin): void; + } } declare module spine { - class Slot { - data: SlotData; - bone: Bone; - color: Color; - darkColor: Color; - private attachment; - private attachmentTime; - attachmentVertices: number[]; - constructor(data: SlotData, bone: Bone); - getAttachment(): Attachment; - setAttachment(attachment: Attachment): void; - setAttachmentTime(time: number): void; - getAttachmentTime(): number; - setToSetupPose(): void; - } + class Slot { + data: SlotData; + bone: Bone; + color: Color; + darkColor: Color; + private attachment; + private attachmentTime; + attachmentVertices: number[]; + constructor(data: SlotData, bone: Bone); + getAttachment(): Attachment; + setAttachment(attachment: Attachment): void; + setAttachmentTime(time: number): void; + getAttachmentTime(): number; + setToSetupPose(): void; + } } declare module spine { - class SlotData { - index: number; - name: string; - boneData: BoneData; - color: Color; - darkColor: Color; - attachmentName: string; - blendMode: BlendMode; - constructor(index: number, name: string, boneData: BoneData); - } + class SlotData { + index: number; + name: string; + boneData: BoneData; + color: Color; + darkColor: Color; + attachmentName: string; + blendMode: BlendMode; + constructor(index: number, name: string, boneData: BoneData); + } } declare module spine { - abstract class Texture { - protected _image: HTMLImageElement; - constructor(image: HTMLImageElement); - getImage(): HTMLImageElement; - abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - abstract dispose(): void; - static filterFromString(text: string): TextureFilter; - static wrapFromString(text: string): TextureWrap; - } - enum TextureFilter { - Nearest = 9728, - Linear = 9729, - MipMap = 9987, - MipMapNearestNearest = 9984, - MipMapLinearNearest = 9985, - MipMapNearestLinear = 9986, - MipMapLinearLinear = 9987, - } - enum TextureWrap { - MirroredRepeat = 33648, - ClampToEdge = 33071, - Repeat = 10497, - } - class TextureRegion { - renderObject: any; - u: number; - v: number; - u2: number; - v2: number; - width: number; - height: number; - rotate: boolean; - offsetX: number; - offsetY: number; - originalWidth: number; - originalHeight: number; - } + abstract class Texture { + protected _image: HTMLImageElement; + constructor(image: HTMLImageElement); + getImage(): HTMLImageElement; + abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + abstract dispose(): void; + static filterFromString(text: string): TextureFilter; + static wrapFromString(text: string): TextureWrap; + } + enum TextureFilter { + Nearest = 9728, + Linear = 9729, + MipMap = 9987, + MipMapNearestNearest = 9984, + MipMapLinearNearest = 9985, + MipMapNearestLinear = 9986, + MipMapLinearLinear = 9987, + } + enum TextureWrap { + MirroredRepeat = 33648, + ClampToEdge = 33071, + Repeat = 10497, + } + class TextureRegion { + renderObject: any; + u: number; + v: number; + u2: number; + v2: number; + width: number; + height: number; + rotate: boolean; + offsetX: number; + offsetY: number; + originalWidth: number; + originalHeight: number; + } } declare module spine { - class TextureAtlas implements Disposable { - pages: TextureAtlasPage[]; - regions: TextureAtlasRegion[]; - constructor(atlasText: string, textureLoader: (path: string) => any); - private load(atlasText, textureLoader); - findRegion(name: string): TextureAtlasRegion; - dispose(): void; - } - class TextureAtlasPage { - name: string; - minFilter: TextureFilter; - magFilter: TextureFilter; - uWrap: TextureWrap; - vWrap: TextureWrap; - texture: Texture; - width: number; - height: number; - } - class TextureAtlasRegion extends TextureRegion { - page: TextureAtlasPage; - name: string; - x: number; - y: number; - index: number; - rotate: boolean; - texture: Texture; - } + class TextureAtlas implements Disposable { + pages: TextureAtlasPage[]; + regions: TextureAtlasRegion[]; + constructor(atlasText: string, textureLoader: (path: string) => any); + private load(atlasText, textureLoader); + findRegion(name: string): TextureAtlasRegion; + dispose(): void; + } + class TextureAtlasPage { + name: string; + minFilter: TextureFilter; + magFilter: TextureFilter; + uWrap: TextureWrap; + vWrap: TextureWrap; + texture: Texture; + width: number; + height: number; + } + class TextureAtlasRegion extends TextureRegion { + page: TextureAtlasPage; + name: string; + x: number; + y: number; + index: number; + rotate: boolean; + texture: Texture; + } } declare module spine { - class TransformConstraint implements Constraint { - data: TransformConstraintData; - bones: Array; - target: Bone; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - temp: Vector2; - constructor(data: TransformConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - applyAbsoluteWorld(): void; - applyRelativeWorld(): void; - applyAbsoluteLocal(): void; - applyRelativeLocal(): void; - getOrder(): number; - } + class TransformConstraint implements Constraint { + data: TransformConstraintData; + bones: Array; + target: Bone; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + temp: Vector2; + constructor(data: TransformConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + applyAbsoluteWorld(): void; + applyRelativeWorld(): void; + applyAbsoluteLocal(): void; + applyRelativeLocal(): void; + getOrder(): number; + } } declare module spine { - class TransformConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - offsetRotation: number; - offsetX: number; - offsetY: number; - offsetScaleX: number; - offsetScaleY: number; - offsetShearY: number; - relative: boolean; - local: boolean; - constructor(name: string); - } + class TransformConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + offsetRotation: number; + offsetX: number; + offsetY: number; + offsetScaleX: number; + offsetScaleY: number; + offsetShearY: number; + relative: boolean; + local: boolean; + constructor(name: string); + } } declare module spine { - class Triangulator { - private convexPolygons; - private convexPolygonsIndices; - private indicesArray; - private isConcaveArray; - private triangles; - private polygonPool; - private polygonIndicesPool; - triangulate(verticesArray: ArrayLike): Array; - decompose(verticesArray: Array, triangles: Array): Array>; - private static isConcave(index, vertexCount, vertices, indices); - private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); - private static winding(p1x, p1y, p2x, p2y, p3x, p3y); - } + class Triangulator { + private convexPolygons; + private convexPolygonsIndices; + private indicesArray; + private isConcaveArray; + private triangles; + private polygonPool; + private polygonIndicesPool; + triangulate(verticesArray: ArrayLike): Array; + decompose(verticesArray: Array, triangles: Array): Array>; + private static isConcave(index, vertexCount, vertices, indices); + private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); + private static winding(p1x, p1y, p2x, p2y, p3x, p3y); + } } declare module spine { - interface Updatable { - update(): void; - } + interface Updatable { + update(): void; + } } declare module spine { - interface Map { - [key: string]: T; - } - class IntSet { - array: number[]; - add(value: number): boolean; - contains(value: number): boolean; - remove(value: number): void; - clear(): void; - } - interface Disposable { - dispose(): void; - } - interface Restorable { - restore(): void; - } - class Color { - r: number; - g: number; - b: number; - a: number; - static WHITE: Color; - static RED: Color; - static GREEN: Color; - static BLUE: Color; - static MAGENTA: Color; - constructor(r?: number, g?: number, b?: number, a?: number); - set(r: number, g: number, b: number, a: number): this; - setFromColor(c: Color): this; - setFromString(hex: string): this; - add(r: number, g: number, b: number, a: number): this; - clamp(): this; - } - class MathUtils { - static PI: number; - static PI2: number; - static radiansToDegrees: number; - static radDeg: number; - static degreesToRadians: number; - static degRad: number; - static clamp(value: number, min: number, max: number): number; - static cosDeg(degrees: number): number; - static sinDeg(degrees: number): number; - static signum(value: number): number; - static toInt(x: number): number; - static cbrt(x: number): number; - } - class Utils { - static SUPPORTS_TYPED_ARRAYS: boolean; - static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; - static setArraySize(array: Array, size: number, value?: any): Array; - static ensureArrayCapacity(array: Array, size: number, value?: any): Array; - static newArray(size: number, defaultValue: T): Array; - static newFloatArray(size: number): ArrayLike; - static newShortArray(size: number): ArrayLike; - static toFloatArray(array: Array): number[] | Float32Array; - } - class DebugUtils { - static logBones(skeleton: Skeleton): void; - } - class Pool { - private items; - private instantiator; - constructor(instantiator: () => T); - obtain(): T; - free(item: T): void; - freeAll(items: ArrayLike): void; - clear(): void; - } - class Vector2 { - x: number; - y: number; - constructor(x?: number, y?: number); - set(x: number, y: number): Vector2; - length(): number; - normalize(): this; - } - class TimeKeeper { - maxDelta: number; - framesPerSecond: number; - delta: number; - totalTime: number; - private lastTime; - private frameCount; - private frameTime; - update(): void; - } - interface ArrayLike { - length: number; - [n: number]: T; - } - class WindowedMean { - values: Array; - addedValues: number; - lastValue: number; - mean: number; - dirty: boolean; - constructor(windowSize?: number); - hasEnoughData(): boolean; - addValue(value: number): void; - getMean(): number; - } + interface Map { + [key: string]: T; + } + class IntSet { + array: number[]; + add(value: number): boolean; + contains(value: number): boolean; + remove(value: number): void; + clear(): void; + } + interface Disposable { + dispose(): void; + } + interface Restorable { + restore(): void; + } + class Color { + r: number; + g: number; + b: number; + a: number; + static WHITE: Color; + static RED: Color; + static GREEN: Color; + static BLUE: Color; + static MAGENTA: Color; + constructor(r?: number, g?: number, b?: number, a?: number); + set(r: number, g: number, b: number, a: number): this; + setFromColor(c: Color): this; + setFromString(hex: string): this; + add(r: number, g: number, b: number, a: number): this; + clamp(): this; + } + class MathUtils { + static PI: number; + static PI2: number; + static radiansToDegrees: number; + static radDeg: number; + static degreesToRadians: number; + static degRad: number; + static clamp(value: number, min: number, max: number): number; + static cosDeg(degrees: number): number; + static sinDeg(degrees: number): number; + static signum(value: number): number; + static toInt(x: number): number; + static cbrt(x: number): number; + } + class Utils { + static SUPPORTS_TYPED_ARRAYS: boolean; + static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; + static setArraySize(array: Array, size: number, value?: any): Array; + static ensureArrayCapacity(array: Array, size: number, value?: any): Array; + static newArray(size: number, defaultValue: T): Array; + static newFloatArray(size: number): ArrayLike; + static newShortArray(size: number): ArrayLike; + static toFloatArray(array: Array): number[] | Float32Array; + } + class DebugUtils { + static logBones(skeleton: Skeleton): void; + } + class Pool { + private items; + private instantiator; + constructor(instantiator: () => T); + obtain(): T; + free(item: T): void; + freeAll(items: ArrayLike): void; + clear(): void; + } + class Vector2 { + x: number; + y: number; + constructor(x?: number, y?: number); + set(x: number, y: number): Vector2; + length(): number; + normalize(): this; + } + class TimeKeeper { + maxDelta: number; + framesPerSecond: number; + delta: number; + totalTime: number; + private lastTime; + private frameCount; + private frameTime; + update(): void; + } + interface ArrayLike { + length: number; + [n: number]: T; + } + class WindowedMean { + values: Array; + addedValues: number; + lastValue: number; + mean: number; + dirty: boolean; + constructor(windowSize?: number); + hasEnoughData(): boolean; + addValue(value: number): void; + getMean(): number; + } } declare module spine.webgl { - class AssetManager extends spine.AssetManager { - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, pathPrefix?: string); - } + class AssetManager extends spine.AssetManager { + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, pathPrefix?: string); + } } declare module spine.webgl { - class OrthoCamera { - position: Vector3; - direction: Vector3; - up: Vector3; - near: number; - far: number; - zoom: number; - viewportWidth: number; - viewportHeight: number; - projectionView: Matrix4; - inverseProjectionView: Matrix4; - projection: Matrix4; - view: Matrix4; - private tmp; - constructor(viewportWidth: number, viewportHeight: number); - update(): void; - screenToWorld(screenCoords: Vector3, screenWidth: number, screenHeight: number): Vector3; - setViewport(viewportWidth: number, viewportHeight: number): void; - } + class OrthoCamera { + position: Vector3; + direction: Vector3; + up: Vector3; + near: number; + far: number; + zoom: number; + viewportWidth: number; + viewportHeight: number; + projectionView: Matrix4; + inverseProjectionView: Matrix4; + projection: Matrix4; + view: Matrix4; + private tmp; + constructor(viewportWidth: number, viewportHeight: number); + update(): void; + screenToWorld(screenCoords: Vector3, screenWidth: number, screenHeight: number): Vector3; + setViewport(viewportWidth: number, viewportHeight: number): void; + } } declare module spine.webgl { - class GLTexture extends Texture implements Disposable, Restorable { - private context; - private texture; - private boundUnit; - private useMipMaps; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, image: HTMLImageElement, useMipMaps?: boolean); - setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - update(useMipMaps: boolean): void; - restore(): void; - bind(unit?: number): void; - unbind(): void; - dispose(): void; - } + class GLTexture extends Texture implements Disposable, Restorable { + private context; + private texture; + private boundUnit; + private useMipMaps; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, image: HTMLImageElement, useMipMaps?: boolean); + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + update(useMipMaps: boolean): void; + restore(): void; + bind(unit?: number): void; + unbind(): void; + dispose(): void; + } } declare module spine.webgl { - class Input { - element: HTMLElement; - lastX: number; - lastY: number; - buttonDown: boolean; - currTouch: Touch; - touchesPool: Pool; - private listeners; - constructor(element: HTMLElement); - private setupCallbacks(element); - addListener(listener: InputListener): void; - removeListener(listener: InputListener): void; - } - class Touch { - identifier: number; - x: number; - y: number; - constructor(identifier: number, x: number, y: number); - } - interface InputListener { - down(x: number, y: number): void; - up(x: number, y: number): void; - moved(x: number, y: number): void; - dragged(x: number, y: number): void; - } + class Input { + element: HTMLElement; + lastX: number; + lastY: number; + buttonDown: boolean; + currTouch: Touch; + touchesPool: Pool; + private listeners; + constructor(element: HTMLElement); + private setupCallbacks(element); + addListener(listener: InputListener): void; + removeListener(listener: InputListener): void; + } + class Touch { + identifier: number; + x: number; + y: number; + constructor(identifier: number, x: number, y: number); + } + interface InputListener { + down(x: number, y: number): void; + up(x: number, y: number): void; + moved(x: number, y: number): void; + dragged(x: number, y: number): void; + } } declare module spine.webgl { - class LoadingScreen { - static FADE_SECONDS: number; - private static loaded; - private static spinnerImg; - private static logoImg; - private renderer; - private logo; - private spinner; - private angle; - private fadeOut; - private timeKeeper; - backgroundColor: Color; - private tempColor; - private firstDraw; - private static SPINNER_DATA; - private static SPINE_LOGO_DATA; - constructor(renderer: SceneRenderer); - draw(complete?: boolean): void; - } + class LoadingScreen { + static FADE_SECONDS: number; + private static loaded; + private static spinnerImg; + private static logoImg; + private renderer; + private logo; + private spinner; + private angle; + private fadeOut; + private timeKeeper; + backgroundColor: Color; + private tempColor; + private firstDraw; + private static SPINNER_DATA; + private static SPINE_LOGO_DATA; + constructor(renderer: SceneRenderer); + draw(complete?: boolean): void; + } } declare module spine.webgl { - const M00: number; - const M01: number; - const M02: number; - const M03: number; - const M10: number; - const M11: number; - const M12: number; - const M13: number; - const M20: number; - const M21: number; - const M22: number; - const M23: number; - const M30: number; - const M31: number; - const M32: number; - const M33: number; - class Matrix4 { - temp: Float32Array; - values: Float32Array; - private static xAxis; - private static yAxis; - private static zAxis; - private static tmpMatrix; - constructor(); - set(values: ArrayLike): Matrix4; - transpose(): Matrix4; - identity(): Matrix4; - invert(): Matrix4; - determinant(): number; - translate(x: number, y: number, z: number): Matrix4; - copy(): Matrix4; - projection(near: number, far: number, fovy: number, aspectRatio: number): Matrix4; - ortho2d(x: number, y: number, width: number, height: number): Matrix4; - ortho(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4; - multiply(matrix: Matrix4): Matrix4; - multiplyLeft(matrix: Matrix4): Matrix4; - lookAt(position: Vector3, direction: Vector3, up: Vector3): this; - static initTemps(): void; - } + const M00: number; + const M01: number; + const M02: number; + const M03: number; + const M10: number; + const M11: number; + const M12: number; + const M13: number; + const M20: number; + const M21: number; + const M22: number; + const M23: number; + const M30: number; + const M31: number; + const M32: number; + const M33: number; + class Matrix4 { + temp: Float32Array; + values: Float32Array; + private static xAxis; + private static yAxis; + private static zAxis; + private static tmpMatrix; + constructor(); + set(values: ArrayLike): Matrix4; + transpose(): Matrix4; + identity(): Matrix4; + invert(): Matrix4; + determinant(): number; + translate(x: number, y: number, z: number): Matrix4; + copy(): Matrix4; + projection(near: number, far: number, fovy: number, aspectRatio: number): Matrix4; + ortho2d(x: number, y: number, width: number, height: number): Matrix4; + ortho(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4; + multiply(matrix: Matrix4): Matrix4; + multiplyLeft(matrix: Matrix4): Matrix4; + lookAt(position: Vector3, direction: Vector3, up: Vector3): this; + static initTemps(): void; + } } declare module spine.webgl { - class Mesh implements Disposable, Restorable { - private attributes; - private context; - private vertices; - private verticesBuffer; - private verticesLength; - private dirtyVertices; - private indices; - private indicesBuffer; - private indicesLength; - private dirtyIndices; - private elementsPerVertex; - getAttributes(): VertexAttribute[]; - maxVertices(): number; - numVertices(): number; - setVerticesLength(length: number): void; - getVertices(): Float32Array; - maxIndices(): number; - numIndices(): number; - setIndicesLength(length: number): void; - getIndices(): Uint16Array; - getVertexSizeInFloats(): number; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, attributes: VertexAttribute[], maxVertices: number, maxIndices: number); - setVertices(vertices: Array): void; - setIndices(indices: Array): void; - draw(shader: Shader, primitiveType: number): void; - drawWithOffset(shader: Shader, primitiveType: number, offset: number, count: number): void; - bind(shader: Shader): void; - unbind(shader: Shader): void; - private update(); - restore(): void; - dispose(): void; - } - class VertexAttribute { - name: string; - type: VertexAttributeType; - numElements: number; - constructor(name: string, type: VertexAttributeType, numElements: number); - } - class Position2Attribute extends VertexAttribute { - constructor(); - } - class Position3Attribute extends VertexAttribute { - constructor(); - } - class TexCoordAttribute extends VertexAttribute { - constructor(unit?: number); - } - class ColorAttribute extends VertexAttribute { - constructor(); - } - class Color2Attribute extends VertexAttribute { - constructor(); - } - enum VertexAttributeType { - Float = 0, - } + class Mesh implements Disposable, Restorable { + private attributes; + private context; + private vertices; + private verticesBuffer; + private verticesLength; + private dirtyVertices; + private indices; + private indicesBuffer; + private indicesLength; + private dirtyIndices; + private elementsPerVertex; + getAttributes(): VertexAttribute[]; + maxVertices(): number; + numVertices(): number; + setVerticesLength(length: number): void; + getVertices(): Float32Array; + maxIndices(): number; + numIndices(): number; + setIndicesLength(length: number): void; + getIndices(): Uint16Array; + getVertexSizeInFloats(): number; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, attributes: VertexAttribute[], maxVertices: number, maxIndices: number); + setVertices(vertices: Array): void; + setIndices(indices: Array): void; + draw(shader: Shader, primitiveType: number): void; + drawWithOffset(shader: Shader, primitiveType: number, offset: number, count: number): void; + bind(shader: Shader): void; + unbind(shader: Shader): void; + private update(); + restore(): void; + dispose(): void; + } + class VertexAttribute { + name: string; + type: VertexAttributeType; + numElements: number; + constructor(name: string, type: VertexAttributeType, numElements: number); + } + class Position2Attribute extends VertexAttribute { + constructor(); + } + class Position3Attribute extends VertexAttribute { + constructor(); + } + class TexCoordAttribute extends VertexAttribute { + constructor(unit?: number); + } + class ColorAttribute extends VertexAttribute { + constructor(); + } + class Color2Attribute extends VertexAttribute { + constructor(); + } + enum VertexAttributeType { + Float = 0, + } } declare module spine.webgl { - class PolygonBatcher implements Disposable { - private context; - private drawCalls; - private isDrawing; - private mesh; - private shader; - private lastTexture; - private verticesLength; - private indicesLength; - private srcBlend; - private dstBlend; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean, maxVertices?: number); - begin(shader: Shader): void; - setBlendMode(srcBlend: number, dstBlend: number): void; - draw(texture: GLTexture, vertices: ArrayLike, indices: Array): void; - private flush(); - end(): void; - getDrawCalls(): number; - dispose(): void; - } + class PolygonBatcher implements Disposable { + private context; + private drawCalls; + private isDrawing; + private mesh; + private shader; + private lastTexture; + private verticesLength; + private indicesLength; + private srcBlend; + private dstBlend; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean, maxVertices?: number); + begin(shader: Shader): void; + setBlendMode(srcBlend: number, dstBlend: number): void; + draw(texture: GLTexture, vertices: ArrayLike, indices: Array): void; + private flush(); + end(): void; + getDrawCalls(): number; + dispose(): void; + } } declare module spine.webgl { - class SceneRenderer implements Disposable { - context: ManagedWebGLRenderingContext; - canvas: HTMLCanvasElement; - camera: OrthoCamera; - batcher: PolygonBatcher; - private twoColorTint; - private batcherShader; - private shapes; - private shapesShader; - private activeRenderer; - private skeletonRenderer; - private skeletonDebugRenderer; - private QUAD; - private QUAD_TRIANGLES; - private WHITE; - constructor(canvas: HTMLCanvasElement, context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean); - begin(): void; - drawSkeleton(skeleton: Skeleton, premultipliedAlpha?: boolean): void; - drawSkeletonDebug(skeleton: Skeleton, premultipliedAlpha?: boolean, ignoredBones?: Array): void; - drawTexture(texture: GLTexture, x: number, y: number, width: number, height: number, color?: Color): void; - drawTextureRotated(texture: GLTexture, x: number, y: number, width: number, height: number, pivotX: number, pivotY: number, angle: number, color?: Color, premultipliedAlpha?: boolean): void; - drawRegion(region: TextureAtlasRegion, x: number, y: number, width: number, height: number, color?: Color, premultipliedAlpha?: boolean): void; - line(x: number, y: number, x2: number, y2: number, color?: Color, color2?: Color): void; - triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; - quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; - rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; - rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; - polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; - circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; - curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; - end(): void; - resize(resizeMode: ResizeMode): void; - private enableRenderer(renderer); - dispose(): void; - } - enum ResizeMode { - Stretch = 0, - Expand = 1, - Fit = 2, - } + class SceneRenderer implements Disposable { + context: ManagedWebGLRenderingContext; + canvas: HTMLCanvasElement; + camera: OrthoCamera; + batcher: PolygonBatcher; + private twoColorTint; + private batcherShader; + private shapes; + private shapesShader; + private activeRenderer; + private skeletonRenderer; + private skeletonDebugRenderer; + private QUAD; + private QUAD_TRIANGLES; + private WHITE; + constructor(canvas: HTMLCanvasElement, context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean); + begin(): void; + drawSkeleton(skeleton: Skeleton, premultipliedAlpha?: boolean): void; + drawSkeletonDebug(skeleton: Skeleton, premultipliedAlpha?: boolean, ignoredBones?: Array): void; + drawTexture(texture: GLTexture, x: number, y: number, width: number, height: number, color?: Color): void; + drawTextureRotated(texture: GLTexture, x: number, y: number, width: number, height: number, pivotX: number, pivotY: number, angle: number, color?: Color, premultipliedAlpha?: boolean): void; + drawRegion(region: TextureAtlasRegion, x: number, y: number, width: number, height: number, color?: Color, premultipliedAlpha?: boolean): void; + line(x: number, y: number, x2: number, y2: number, color?: Color, color2?: Color): void; + triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; + quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; + rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; + rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; + polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; + circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; + curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; + end(): void; + resize(resizeMode: ResizeMode): void; + private enableRenderer(renderer); + dispose(): void; + } + enum ResizeMode { + Stretch = 0, + Expand = 1, + Fit = 2, + } } declare module spine.webgl { - class Shader implements Disposable, Restorable { - private vertexShader; - private fragmentShader; - static MVP_MATRIX: string; - static POSITION: string; - static COLOR: string; - static COLOR2: string; - static TEXCOORDS: string; - static SAMPLER: string; - private context; - private vs; - private fs; - private program; - private tmp2x2; - private tmp3x3; - private tmp4x4; - getProgram(): WebGLProgram; - getVertexShader(): string; - getFragmentShader(): string; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, vertexShader: string, fragmentShader: string); - private compile(); - private compileShader(type, source); - private compileProgram(vs, fs); - restore(): void; - bind(): void; - unbind(): void; - setUniformi(uniform: string, value: number): void; - setUniformf(uniform: string, value: number): void; - setUniform2f(uniform: string, value: number, value2: number): void; - setUniform3f(uniform: string, value: number, value2: number, value3: number): void; - setUniform4f(uniform: string, value: number, value2: number, value3: number, value4: number): void; - setUniform2x2f(uniform: string, value: ArrayLike): void; - setUniform3x3f(uniform: string, value: ArrayLike): void; - setUniform4x4f(uniform: string, value: ArrayLike): void; - getUniformLocation(uniform: string): WebGLUniformLocation; - getAttributeLocation(attribute: string): number; - dispose(): void; - static newColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; - static newTwoColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; - static newColored(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; - } + class Shader implements Disposable, Restorable { + private vertexShader; + private fragmentShader; + static MVP_MATRIX: string; + static POSITION: string; + static COLOR: string; + static COLOR2: string; + static TEXCOORDS: string; + static SAMPLER: string; + private context; + private vs; + private fs; + private program; + private tmp2x2; + private tmp3x3; + private tmp4x4; + getProgram(): WebGLProgram; + getVertexShader(): string; + getFragmentShader(): string; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, vertexShader: string, fragmentShader: string); + private compile(); + private compileShader(type, source); + private compileProgram(vs, fs); + restore(): void; + bind(): void; + unbind(): void; + setUniformi(uniform: string, value: number): void; + setUniformf(uniform: string, value: number): void; + setUniform2f(uniform: string, value: number, value2: number): void; + setUniform3f(uniform: string, value: number, value2: number, value3: number): void; + setUniform4f(uniform: string, value: number, value2: number, value3: number, value4: number): void; + setUniform2x2f(uniform: string, value: ArrayLike): void; + setUniform3x3f(uniform: string, value: ArrayLike): void; + setUniform4x4f(uniform: string, value: ArrayLike): void; + getUniformLocation(uniform: string): WebGLUniformLocation; + getAttributeLocation(attribute: string): number; + dispose(): void; + static newColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; + static newTwoColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; + static newColored(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; + } } declare module spine.webgl { - class ShapeRenderer implements Disposable { - private context; - private isDrawing; - private mesh; - private shapeType; - private color; - private shader; - private vertexIndex; - private tmp; - private srcBlend; - private dstBlend; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, maxVertices?: number); - begin(shader: Shader): void; - setBlendMode(srcBlend: number, dstBlend: number): void; - setColor(color: Color): void; - setColorWith(r: number, g: number, b: number, a: number): void; - point(x: number, y: number, color?: Color): void; - line(x: number, y: number, x2: number, y2: number, color?: Color): void; - triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; - quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; - rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; - rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; - x(x: number, y: number, size: number): void; - polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; - circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; - curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; - private vertex(x, y, color); - end(): void; - private flush(); - private check(shapeType, numVertices); - dispose(): void; - } - enum ShapeType { - Point = 0, - Line = 1, - Filled = 4, - } + class ShapeRenderer implements Disposable { + private context; + private isDrawing; + private mesh; + private shapeType; + private color; + private shader; + private vertexIndex; + private tmp; + private srcBlend; + private dstBlend; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, maxVertices?: number); + begin(shader: Shader): void; + setBlendMode(srcBlend: number, dstBlend: number): void; + setColor(color: Color): void; + setColorWith(r: number, g: number, b: number, a: number): void; + point(x: number, y: number, color?: Color): void; + line(x: number, y: number, x2: number, y2: number, color?: Color): void; + triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; + quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; + rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; + rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; + x(x: number, y: number, size: number): void; + polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; + circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; + curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; + private vertex(x, y, color); + end(): void; + private flush(); + private check(shapeType, numVertices); + dispose(): void; + } + enum ShapeType { + Point = 0, + Line = 1, + Filled = 4, + } } declare module spine.webgl { - class SkeletonDebugRenderer implements Disposable { - boneLineColor: Color; - boneOriginColor: Color; - attachmentLineColor: Color; - triangleLineColor: Color; - pathColor: Color; - clipColor: Color; - aabbColor: Color; - drawBones: boolean; - drawRegionAttachments: boolean; - drawBoundingBoxes: boolean; - drawMeshHull: boolean; - drawMeshTriangles: boolean; - drawPaths: boolean; - drawSkeletonXY: boolean; - drawClipping: boolean; - premultipliedAlpha: boolean; - scale: number; - boneWidth: number; - private context; - private bounds; - private temp; - private vertices; - private static LIGHT_GRAY; - private static GREEN; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext); - draw(shapes: ShapeRenderer, skeleton: Skeleton, ignoredBones?: Array): void; - dispose(): void; - } + class SkeletonDebugRenderer implements Disposable { + boneLineColor: Color; + boneOriginColor: Color; + attachmentLineColor: Color; + triangleLineColor: Color; + pathColor: Color; + clipColor: Color; + aabbColor: Color; + drawBones: boolean; + drawRegionAttachments: boolean; + drawBoundingBoxes: boolean; + drawMeshHull: boolean; + drawMeshTriangles: boolean; + drawPaths: boolean; + drawSkeletonXY: boolean; + drawClipping: boolean; + premultipliedAlpha: boolean; + scale: number; + boneWidth: number; + private context; + private bounds; + private temp; + private vertices; + private static LIGHT_GRAY; + private static GREEN; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext); + draw(shapes: ShapeRenderer, skeleton: Skeleton, ignoredBones?: Array): void; + dispose(): void; + } } declare module spine.webgl { - class SkeletonRenderer { - static QUAD_TRIANGLES: number[]; - premultipliedAlpha: boolean; - private tempColor; - private tempColor2; - private vertices; - private vertexSize; - private twoColorTint; - private renderable; - private clipper; - constructor(context: ManagedWebGLRenderingContext, twoColorTint?: boolean); - draw(batcher: PolygonBatcher, skeleton: Skeleton): void; - } + class SkeletonRenderer { + static QUAD_TRIANGLES: number[]; + premultipliedAlpha: boolean; + private tempColor; + private tempColor2; + private vertices; + private vertexSize; + private twoColorTint; + private renderable; + private clipper; + constructor(context: ManagedWebGLRenderingContext, twoColorTint?: boolean); + draw(batcher: PolygonBatcher, skeleton: Skeleton): void; + } } declare module spine.webgl { - class Vector3 { - x: number; - y: number; - z: number; - constructor(x?: number, y?: number, z?: number); - setFrom(v: Vector3): Vector3; - set(x: number, y: number, z: number): Vector3; - add(v: Vector3): Vector3; - sub(v: Vector3): Vector3; - scale(s: number): Vector3; - normalize(): Vector3; - cross(v: Vector3): Vector3; - multiply(matrix: Matrix4): Vector3; - project(matrix: Matrix4): Vector3; - dot(v: Vector3): number; - length(): number; - distance(v: Vector3): number; - } + class Vector3 { + x: number; + y: number; + z: number; + constructor(x?: number, y?: number, z?: number); + setFrom(v: Vector3): Vector3; + set(x: number, y: number, z: number): Vector3; + add(v: Vector3): Vector3; + sub(v: Vector3): Vector3; + scale(s: number): Vector3; + normalize(): Vector3; + cross(v: Vector3): Vector3; + multiply(matrix: Matrix4): Vector3; + project(matrix: Matrix4): Vector3; + dot(v: Vector3): number; + length(): number; + distance(v: Vector3): number; + } } declare module spine.webgl { - class ManagedWebGLRenderingContext { - canvas: HTMLCanvasElement; - gl: WebGLRenderingContext; - private restorables; - constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext, contextConfig?: any); - addRestorable(restorable: Restorable): void; - removeRestorable(restorable: Restorable): void; - } - class WebGLBlendModeConverter { - static ZERO: number; - static ONE: number; - static SRC_COLOR: number; - static ONE_MINUS_SRC_COLOR: number; - static SRC_ALPHA: number; - static ONE_MINUS_SRC_ALPHA: number; - static DST_ALPHA: number; - static ONE_MINUS_DST_ALPHA: number; - static DST_COLOR: number; - static getDestGLBlendMode(blendMode: BlendMode): number; - static getSourceGLBlendMode(blendMode: BlendMode, premultipliedAlpha?: boolean): number; - } + class ManagedWebGLRenderingContext { + canvas: HTMLCanvasElement; + gl: WebGLRenderingContext; + private restorables; + constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext, contextConfig?: any); + addRestorable(restorable: Restorable): void; + removeRestorable(restorable: Restorable): void; + } + class WebGLBlendModeConverter { + static ZERO: number; + static ONE: number; + static SRC_COLOR: number; + static ONE_MINUS_SRC_COLOR: number; + static SRC_ALPHA: number; + static ONE_MINUS_SRC_ALPHA: number; + static DST_ALPHA: number; + static ONE_MINUS_DST_ALPHA: number; + static DST_COLOR: number; + static getDestGLBlendMode(blendMode: BlendMode): number; + static getSourceGLBlendMode(blendMode: BlendMode, premultipliedAlpha?: boolean): number; + } } diff --git a/spine-ts/build/spine-webgl.js b/spine-ts/build/spine-webgl.js index 54ed8a874..0b5a7c4a7 100644 --- a/spine-ts/build/spine-webgl.js +++ b/spine-ts/build/spine-webgl.js @@ -1,8611 +1,8611 @@ var __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var spine; (function (spine) { - var Animation = (function () { - function Animation(name, timelines, duration) { - if (name == null) - throw new Error("name cannot be null."); - if (timelines == null) - throw new Error("timelines cannot be null."); - this.name = name; - this.timelines = timelines; - this.duration = duration; - } - Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (loop && this.duration != 0) { - time %= this.duration; - if (lastTime > 0) - lastTime %= this.duration; - } - var timelines = this.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); - }; - Animation.binarySearch = function (values, target, step) { - if (step === void 0) { step = 1; } - var low = 0; - var high = values.length / step - 2; - if (high == 0) - return step; - var current = high >>> 1; - while (true) { - if (values[(current + 1) * step] <= target) - low = current + 1; - else - high = current; - if (low == high) - return (low + 1) * step; - current = (low + high) >>> 1; - } - }; - Animation.linearSearch = function (values, target, step) { - for (var i = 0, last = values.length - step; i <= last; i += step) - if (values[i] > target) - return i; - return -1; - }; - return Animation; - }()); - spine.Animation = Animation; - (function (TimelineType) { - TimelineType[TimelineType["rotate"] = 0] = "rotate"; - TimelineType[TimelineType["translate"] = 1] = "translate"; - TimelineType[TimelineType["scale"] = 2] = "scale"; - TimelineType[TimelineType["shear"] = 3] = "shear"; - TimelineType[TimelineType["attachment"] = 4] = "attachment"; - TimelineType[TimelineType["color"] = 5] = "color"; - TimelineType[TimelineType["deform"] = 6] = "deform"; - TimelineType[TimelineType["event"] = 7] = "event"; - TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; - TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; - TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; - TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; - TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; - TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; - TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; - })(spine.TimelineType || (spine.TimelineType = {})); - var TimelineType = spine.TimelineType; - var CurveTimeline = (function () { - function CurveTimeline(frameCount) { - if (frameCount <= 0) - throw new Error("frameCount must be > 0: " + frameCount); - this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); - } - CurveTimeline.prototype.getFrameCount = function () { - return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; - }; - CurveTimeline.prototype.setLinear = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; - }; - CurveTimeline.prototype.setStepped = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; - }; - CurveTimeline.prototype.getCurveType = function (frameIndex) { - var index = frameIndex * CurveTimeline.BEZIER_SIZE; - if (index == this.curves.length) - return CurveTimeline.LINEAR; - var type = this.curves[index]; - if (type == CurveTimeline.LINEAR) - return CurveTimeline.LINEAR; - if (type == CurveTimeline.STEPPED) - return CurveTimeline.STEPPED; - return CurveTimeline.BEZIER; - }; - CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { - var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; - var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; - var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; - var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var curves = this.curves; - curves[i++] = CurveTimeline.BEZIER; - var x = dfx, y = dfy; - for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - curves[i] = x; - curves[i + 1] = y; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - x += dfx; - y += dfy; - } - }; - CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { - percent = spine.MathUtils.clamp(percent, 0, 1); - var curves = this.curves; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var type = curves[i]; - if (type == CurveTimeline.LINEAR) - return percent; - if (type == CurveTimeline.STEPPED) - return 0; - i++; - var x = 0; - for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - x = curves[i]; - if (x >= percent) { - var prevX = void 0, prevY = void 0; - if (i == start) { - prevX = 0; - prevY = 0; - } - else { - prevX = curves[i - 2]; - prevY = curves[i - 1]; - } - return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); - } - } - var y = curves[i - 1]; - return y + (1 - y) * (percent - x) / (1 - x); - }; - CurveTimeline.LINEAR = 0; - CurveTimeline.STEPPED = 1; - CurveTimeline.BEZIER = 2; - CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; - return CurveTimeline; - }()); - spine.CurveTimeline = CurveTimeline; - var RotateTimeline = (function (_super) { - __extends(RotateTimeline, _super); - function RotateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount << 1); - } - RotateTimeline.prototype.getPropertyId = function () { - return (TimelineType.rotate << 24) + this.boneIndex; - }; - RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { - frameIndex <<= 1; - this.frames[frameIndex] = time; - this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; - }; - RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { - if (setupPose) - bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; - else { - var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; - r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; - bone.rotation += r_1 * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); - var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); - var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - r = prevRotation + r * percent; - if (setupPose) { - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation = bone.data.rotation + r * alpha; - } - else { - r = bone.data.rotation + r - bone.rotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation += r * alpha; - } - }; - RotateTimeline.ENTRIES = 2; - RotateTimeline.PREV_TIME = -2; - RotateTimeline.PREV_ROTATION = -1; - RotateTimeline.ROTATION = 1; - return RotateTimeline; - }(CurveTimeline)); - spine.RotateTimeline = RotateTimeline; - var TranslateTimeline = (function (_super) { - __extends(TranslateTimeline, _super); - function TranslateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); - } - TranslateTimeline.prototype.getPropertyId = function () { - return (TimelineType.translate << 24) + this.boneIndex; - }; - TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { - frameIndex *= TranslateTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TranslateTimeline.X] = x; - this.frames[frameIndex + TranslateTimeline.Y] = y; - }; - TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.x = bone.data.x; - bone.y = bone.data.y; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { - x = frames[frames.length + TranslateTimeline.PREV_X]; - y = frames[frames.length + TranslateTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - x = frames[frame + TranslateTimeline.PREV_X]; - y = frames[frame + TranslateTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); - x += (frames[frame + TranslateTimeline.X] - x) * percent; - y += (frames[frame + TranslateTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.x = bone.data.x + x * alpha; - bone.y = bone.data.y + y * alpha; - } - else { - bone.x += (bone.data.x + x - bone.x) * alpha; - bone.y += (bone.data.y + y - bone.y) * alpha; - } - }; - TranslateTimeline.ENTRIES = 3; - TranslateTimeline.PREV_TIME = -3; - TranslateTimeline.PREV_X = -2; - TranslateTimeline.PREV_Y = -1; - TranslateTimeline.X = 1; - TranslateTimeline.Y = 2; - return TranslateTimeline; - }(CurveTimeline)); - spine.TranslateTimeline = TranslateTimeline; - var ScaleTimeline = (function (_super) { - __extends(ScaleTimeline, _super); - function ScaleTimeline(frameCount) { - _super.call(this, frameCount); - } - ScaleTimeline.prototype.getPropertyId = function () { - return (TimelineType.scale << 24) + this.boneIndex; - }; - ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.scaleX = bone.data.scaleX; - bone.scaleY = bone.data.scaleY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { - x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; - y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; - } - else { - var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - x = frames[frame + ScaleTimeline.PREV_X]; - y = frames[frame + ScaleTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); - x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; - y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; - } - if (alpha == 1) { - bone.scaleX = x; - bone.scaleY = y; - } - else { - var bx = 0, by = 0; - if (setupPose) { - bx = bone.data.scaleX; - by = bone.data.scaleY; - } - else { - bx = bone.scaleX; - by = bone.scaleY; - } - if (mixingOut) { - x = Math.abs(x) * spine.MathUtils.signum(bx); - y = Math.abs(y) * spine.MathUtils.signum(by); - } - else { - bx = Math.abs(bx) * spine.MathUtils.signum(x); - by = Math.abs(by) * spine.MathUtils.signum(y); - } - bone.scaleX = bx + (x - bx) * alpha; - bone.scaleY = by + (y - by) * alpha; - } - }; - return ScaleTimeline; - }(TranslateTimeline)); - spine.ScaleTimeline = ScaleTimeline; - var ShearTimeline = (function (_super) { - __extends(ShearTimeline, _super); - function ShearTimeline(frameCount) { - _super.call(this, frameCount); - } - ShearTimeline.prototype.getPropertyId = function () { - return (TimelineType.shear << 24) + this.boneIndex; - }; - ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.shearX = bone.data.shearX; - bone.shearY = bone.data.shearY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { - x = frames[frames.length + ShearTimeline.PREV_X]; - y = frames[frames.length + ShearTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - x = frames[frame + ShearTimeline.PREV_X]; - y = frames[frame + ShearTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); - x = x + (frames[frame + ShearTimeline.X] - x) * percent; - y = y + (frames[frame + ShearTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.shearX = bone.data.shearX + x * alpha; - bone.shearY = bone.data.shearY + y * alpha; - } - else { - bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; - } - }; - return ShearTimeline; - }(TranslateTimeline)); - spine.ShearTimeline = ShearTimeline; - var ColorTimeline = (function (_super) { - __extends(ColorTimeline, _super); - function ColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); - } - ColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.color << 24) + this.slotIndex; - }; - ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { - frameIndex *= ColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + ColorTimeline.R] = r; - this.frames[frameIndex + ColorTimeline.G] = g; - this.frames[frameIndex + ColorTimeline.B] = b; - this.frames[frameIndex + ColorTimeline.A] = a; - }; - ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - slot.color.setFromColor(slot.data.color); - return; - } - var r = 0, g = 0, b = 0, a = 0; - if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + ColorTimeline.PREV_R]; - g = frames[i + ColorTimeline.PREV_G]; - b = frames[i + ColorTimeline.PREV_B]; - a = frames[i + ColorTimeline.PREV_A]; - } - else { - var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); - r = frames[frame + ColorTimeline.PREV_R]; - g = frames[frame + ColorTimeline.PREV_G]; - b = frames[frame + ColorTimeline.PREV_B]; - a = frames[frame + ColorTimeline.PREV_A]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + ColorTimeline.R] - r) * percent; - g += (frames[frame + ColorTimeline.G] - g) * percent; - b += (frames[frame + ColorTimeline.B] - b) * percent; - a += (frames[frame + ColorTimeline.A] - a) * percent; - } - if (alpha == 1) - slot.color.set(r, g, b, a); - else { - var color = slot.color; - if (setupPose) - color.setFromColor(slot.data.color); - color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); - } - }; - ColorTimeline.ENTRIES = 5; - ColorTimeline.PREV_TIME = -5; - ColorTimeline.PREV_R = -4; - ColorTimeline.PREV_G = -3; - ColorTimeline.PREV_B = -2; - ColorTimeline.PREV_A = -1; - ColorTimeline.R = 1; - ColorTimeline.G = 2; - ColorTimeline.B = 3; - ColorTimeline.A = 4; - return ColorTimeline; - }(CurveTimeline)); - spine.ColorTimeline = ColorTimeline; - var TwoColorTimeline = (function (_super) { - __extends(TwoColorTimeline, _super); - function TwoColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); - } - TwoColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.twoColor << 24) + this.slotIndex; - }; - TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { - frameIndex *= TwoColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TwoColorTimeline.R] = r; - this.frames[frameIndex + TwoColorTimeline.G] = g; - this.frames[frameIndex + TwoColorTimeline.B] = b; - this.frames[frameIndex + TwoColorTimeline.A] = a; - this.frames[frameIndex + TwoColorTimeline.R2] = r2; - this.frames[frameIndex + TwoColorTimeline.G2] = g2; - this.frames[frameIndex + TwoColorTimeline.B2] = b2; - }; - TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - slot.color.setFromColor(slot.data.color); - slot.darkColor.setFromColor(slot.data.darkColor); - } - return; - } - var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; - if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + TwoColorTimeline.PREV_R]; - g = frames[i + TwoColorTimeline.PREV_G]; - b = frames[i + TwoColorTimeline.PREV_B]; - a = frames[i + TwoColorTimeline.PREV_A]; - r2 = frames[i + TwoColorTimeline.PREV_R2]; - g2 = frames[i + TwoColorTimeline.PREV_G2]; - b2 = frames[i + TwoColorTimeline.PREV_B2]; - } - else { - var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); - r = frames[frame + TwoColorTimeline.PREV_R]; - g = frames[frame + TwoColorTimeline.PREV_G]; - b = frames[frame + TwoColorTimeline.PREV_B]; - a = frames[frame + TwoColorTimeline.PREV_A]; - r2 = frames[frame + TwoColorTimeline.PREV_R2]; - g2 = frames[frame + TwoColorTimeline.PREV_G2]; - b2 = frames[frame + TwoColorTimeline.PREV_B2]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + TwoColorTimeline.R] - r) * percent; - g += (frames[frame + TwoColorTimeline.G] - g) * percent; - b += (frames[frame + TwoColorTimeline.B] - b) * percent; - a += (frames[frame + TwoColorTimeline.A] - a) * percent; - r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; - g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; - b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; - } - if (alpha == 1) { - slot.color.set(r, g, b, a); - slot.darkColor.set(r2, g2, b2, 1); - } - else { - var light = slot.color; - var dark = slot.darkColor; - if (setupPose) { - light.setFromColor(slot.data.color); - dark.setFromColor(slot.data.darkColor); - } - light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); - dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); - } - }; - TwoColorTimeline.ENTRIES = 8; - TwoColorTimeline.PREV_TIME = -8; - TwoColorTimeline.PREV_R = -7; - TwoColorTimeline.PREV_G = -6; - TwoColorTimeline.PREV_B = -5; - TwoColorTimeline.PREV_A = -4; - TwoColorTimeline.PREV_R2 = -3; - TwoColorTimeline.PREV_G2 = -2; - TwoColorTimeline.PREV_B2 = -1; - TwoColorTimeline.R = 1; - TwoColorTimeline.G = 2; - TwoColorTimeline.B = 3; - TwoColorTimeline.A = 4; - TwoColorTimeline.R2 = 5; - TwoColorTimeline.G2 = 6; - TwoColorTimeline.B2 = 7; - return TwoColorTimeline; - }(CurveTimeline)); - spine.TwoColorTimeline = TwoColorTimeline; - var AttachmentTimeline = (function () { - function AttachmentTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.attachmentNames = new Array(frameCount); - } - AttachmentTimeline.prototype.getPropertyId = function () { - return (TimelineType.attachment << 24) + this.slotIndex; - }; - AttachmentTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { - this.frames[frameIndex] = time; - this.attachmentNames[frameIndex] = attachmentName; - }; - AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - if (mixingOut && setupPose) { - var attachmentName_1 = slot.data.attachmentName; - slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - var attachmentName_2 = slot.data.attachmentName; - slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); - } - return; - } - var frameIndex = 0; - if (time >= frames[frames.length - 1]) - frameIndex = frames.length - 1; - else - frameIndex = Animation.binarySearch(frames, time, 1) - 1; - var attachmentName = this.attachmentNames[frameIndex]; - skeleton.slots[this.slotIndex] - .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); - }; - return AttachmentTimeline; - }()); - spine.AttachmentTimeline = AttachmentTimeline; - var DeformTimeline = (function (_super) { - __extends(DeformTimeline, _super); - function DeformTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount); - this.frameVertices = new Array(frameCount); - } - DeformTimeline.prototype.getPropertyId = function () { - return (TimelineType.deform << 24) + this.slotIndex; - }; - DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { - this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; - }; - DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var slotAttachment = slot.getAttachment(); - if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) - return; - var frames = this.frames; - var verticesArray = slot.attachmentVertices; - if (time < frames[0]) { - if (setupPose) - spine.Utils.setArraySize(verticesArray, 0); - return; - } - var frameVertices = this.frameVertices; - var vertexCount = frameVertices[0].length; - if (verticesArray.length != vertexCount) - alpha = 1; - var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); - if (time >= frames[frames.length - 1]) { - var lastVertices = frameVertices[frames.length - 1]; - if (alpha == 1) { - spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var setup = setupVertices[i]; - vertices[i] = setup + (lastVertices[i] - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] = lastVertices[i] * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time); - var prevVertices = frameVertices[frame - 1]; - var nextVertices = frameVertices[frame]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); - if (alpha == 1) { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i], setup = setupVertices[i]; - vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; - } - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; - } - } - }; - return DeformTimeline; - }(CurveTimeline)); - spine.DeformTimeline = DeformTimeline; - var EventTimeline = (function () { - function EventTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.events = new Array(frameCount); - } - EventTimeline.prototype.getPropertyId = function () { - return TimelineType.event << 24; - }; - EventTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - EventTimeline.prototype.setFrame = function (frameIndex, event) { - this.frames[frameIndex] = event.time; - this.events[frameIndex] = event; - }; - EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - if (firedEvents == null) - return; - var frames = this.frames; - var frameCount = this.frames.length; - if (lastTime > time) { - this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); - lastTime = -1; - } - else if (lastTime >= frames[frameCount - 1]) - return; - if (time < frames[0]) - return; - var frame = 0; - if (lastTime < frames[0]) - frame = 0; - else { - frame = Animation.binarySearch(frames, lastTime); - var frameTime = frames[frame]; - while (frame > 0) { - if (frames[frame - 1] != frameTime) - break; - frame--; - } - } - for (; frame < frameCount && time >= frames[frame]; frame++) - firedEvents.push(this.events[frame]); - }; - return EventTimeline; - }()); - spine.EventTimeline = EventTimeline; - var DrawOrderTimeline = (function () { - function DrawOrderTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.drawOrders = new Array(frameCount); - } - DrawOrderTimeline.prototype.getPropertyId = function () { - return TimelineType.drawOrder << 24; - }; - DrawOrderTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { - this.frames[frameIndex] = time; - this.drawOrders[frameIndex] = drawOrder; - }; - DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var drawOrder = skeleton.drawOrder; - var slots = skeleton.slots; - if (mixingOut && setupPose) { - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frame = 0; - if (time >= frames[frames.length - 1]) - frame = frames.length - 1; - else - frame = Animation.binarySearch(frames, time) - 1; - var drawOrderToSetupIndex = this.drawOrders[frame]; - if (drawOrderToSetupIndex == null) - spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); - else { - for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) - drawOrder[i] = slots[drawOrderToSetupIndex[i]]; - } - }; - return DrawOrderTimeline; - }()); - spine.DrawOrderTimeline = DrawOrderTimeline; - var IkConstraintTimeline = (function (_super) { - __extends(IkConstraintTimeline, _super); - function IkConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); - } - IkConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; - }; - IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { - frameIndex *= IkConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; - this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; - }; - IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.mix = constraint.data.mix; - constraint.bendDirection = constraint.data.bendDirection; - } - return; - } - if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { - if (setupPose) { - constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection - : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - return; - } - var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); - var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); - if (setupPose) { - constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - }; - IkConstraintTimeline.ENTRIES = 3; - IkConstraintTimeline.PREV_TIME = -3; - IkConstraintTimeline.PREV_MIX = -2; - IkConstraintTimeline.PREV_BEND_DIRECTION = -1; - IkConstraintTimeline.MIX = 1; - IkConstraintTimeline.BEND_DIRECTION = 2; - return IkConstraintTimeline; - }(CurveTimeline)); - spine.IkConstraintTimeline = IkConstraintTimeline; - var TransformConstraintTimeline = (function (_super) { - __extends(TransformConstraintTimeline, _super); - function TransformConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); - } - TransformConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; - }; - TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { - frameIndex *= TransformConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; - this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; - this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; - }; - TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.rotateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - return; - } - var rotate = 0, translate = 0, scale = 0, shear = 0; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { - var i = frames.length; - rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; - } - else { - var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; - scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; - shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; - } - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; - constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; - constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; - constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - constraint.scaleMix += (scale - constraint.scaleMix) * alpha; - constraint.shearMix += (shear - constraint.shearMix) * alpha; - } - }; - TransformConstraintTimeline.ENTRIES = 5; - TransformConstraintTimeline.PREV_TIME = -5; - TransformConstraintTimeline.PREV_ROTATE = -4; - TransformConstraintTimeline.PREV_TRANSLATE = -3; - TransformConstraintTimeline.PREV_SCALE = -2; - TransformConstraintTimeline.PREV_SHEAR = -1; - TransformConstraintTimeline.ROTATE = 1; - TransformConstraintTimeline.TRANSLATE = 2; - TransformConstraintTimeline.SCALE = 3; - TransformConstraintTimeline.SHEAR = 4; - return TransformConstraintTimeline; - }(CurveTimeline)); - spine.TransformConstraintTimeline = TransformConstraintTimeline; - var PathConstraintPositionTimeline = (function (_super) { - __extends(PathConstraintPositionTimeline, _super); - function PathConstraintPositionTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); - } - PathConstraintPositionTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; - }; - PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { - frameIndex *= PathConstraintPositionTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; - }; - PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.position = constraint.data.position; - return; - } - var position = 0; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) - position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); - position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; - } - if (setupPose) - constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; - else - constraint.position += (position - constraint.position) * alpha; - }; - PathConstraintPositionTimeline.ENTRIES = 2; - PathConstraintPositionTimeline.PREV_TIME = -2; - PathConstraintPositionTimeline.PREV_VALUE = -1; - PathConstraintPositionTimeline.VALUE = 1; - return PathConstraintPositionTimeline; - }(CurveTimeline)); - spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; - var PathConstraintSpacingTimeline = (function (_super) { - __extends(PathConstraintSpacingTimeline, _super); - function PathConstraintSpacingTimeline(frameCount) { - _super.call(this, frameCount); - } - PathConstraintSpacingTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; - }; - PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.spacing = constraint.data.spacing; - return; - } - var spacing = 0; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) - spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); - spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; - } - if (setupPose) - constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; - else - constraint.spacing += (spacing - constraint.spacing) * alpha; - }; - return PathConstraintSpacingTimeline; - }(PathConstraintPositionTimeline)); - spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; - var PathConstraintMixTimeline = (function (_super) { - __extends(PathConstraintMixTimeline, _super); - function PathConstraintMixTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); - } - PathConstraintMixTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; - }; - PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { - frameIndex *= PathConstraintMixTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; - }; - PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix; - constraint.translateMix = constraint.data.translateMix; - } - return; - } - var rotate = 0, translate = 0; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { - rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; - } - else { - var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; - } - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; - constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - } - }; - PathConstraintMixTimeline.ENTRIES = 3; - PathConstraintMixTimeline.PREV_TIME = -3; - PathConstraintMixTimeline.PREV_ROTATE = -2; - PathConstraintMixTimeline.PREV_TRANSLATE = -1; - PathConstraintMixTimeline.ROTATE = 1; - PathConstraintMixTimeline.TRANSLATE = 2; - return PathConstraintMixTimeline; - }(CurveTimeline)); - spine.PathConstraintMixTimeline = PathConstraintMixTimeline; + var Animation = (function () { + function Animation(name, timelines, duration) { + if (name == null) + throw new Error("name cannot be null."); + if (timelines == null) + throw new Error("timelines cannot be null."); + this.name = name; + this.timelines = timelines; + this.duration = duration; + } + Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (loop && this.duration != 0) { + time %= this.duration; + if (lastTime > 0) + lastTime %= this.duration; + } + var timelines = this.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); + }; + Animation.binarySearch = function (values, target, step) { + if (step === void 0) { step = 1; } + var low = 0; + var high = values.length / step - 2; + if (high == 0) + return step; + var current = high >>> 1; + while (true) { + if (values[(current + 1) * step] <= target) + low = current + 1; + else + high = current; + if (low == high) + return (low + 1) * step; + current = (low + high) >>> 1; + } + }; + Animation.linearSearch = function (values, target, step) { + for (var i = 0, last = values.length - step; i <= last; i += step) + if (values[i] > target) + return i; + return -1; + }; + return Animation; + }()); + spine.Animation = Animation; + (function (TimelineType) { + TimelineType[TimelineType["rotate"] = 0] = "rotate"; + TimelineType[TimelineType["translate"] = 1] = "translate"; + TimelineType[TimelineType["scale"] = 2] = "scale"; + TimelineType[TimelineType["shear"] = 3] = "shear"; + TimelineType[TimelineType["attachment"] = 4] = "attachment"; + TimelineType[TimelineType["color"] = 5] = "color"; + TimelineType[TimelineType["deform"] = 6] = "deform"; + TimelineType[TimelineType["event"] = 7] = "event"; + TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; + TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; + TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; + TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; + TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; + TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; + TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; + var CurveTimeline = (function () { + function CurveTimeline(frameCount) { + if (frameCount <= 0) + throw new Error("frameCount must be > 0: " + frameCount); + this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); + } + CurveTimeline.prototype.getFrameCount = function () { + return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; + }; + CurveTimeline.prototype.setLinear = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; + }; + CurveTimeline.prototype.setStepped = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; + }; + CurveTimeline.prototype.getCurveType = function (frameIndex) { + var index = frameIndex * CurveTimeline.BEZIER_SIZE; + if (index == this.curves.length) + return CurveTimeline.LINEAR; + var type = this.curves[index]; + if (type == CurveTimeline.LINEAR) + return CurveTimeline.LINEAR; + if (type == CurveTimeline.STEPPED) + return CurveTimeline.STEPPED; + return CurveTimeline.BEZIER; + }; + CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { + var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; + var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; + var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; + var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var curves = this.curves; + curves[i++] = CurveTimeline.BEZIER; + var x = dfx, y = dfy; + for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + curves[i] = x; + curves[i + 1] = y; + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + x += dfx; + y += dfy; + } + }; + CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { + percent = spine.MathUtils.clamp(percent, 0, 1); + var curves = this.curves; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var type = curves[i]; + if (type == CurveTimeline.LINEAR) + return percent; + if (type == CurveTimeline.STEPPED) + return 0; + i++; + var x = 0; + for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + x = curves[i]; + if (x >= percent) { + var prevX = void 0, prevY = void 0; + if (i == start) { + prevX = 0; + prevY = 0; + } + else { + prevX = curves[i - 2]; + prevY = curves[i - 1]; + } + return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); + } + } + var y = curves[i - 1]; + return y + (1 - y) * (percent - x) / (1 - x); + }; + CurveTimeline.LINEAR = 0; + CurveTimeline.STEPPED = 1; + CurveTimeline.BEZIER = 2; + CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; + return CurveTimeline; + }()); + spine.CurveTimeline = CurveTimeline; + var RotateTimeline = (function (_super) { + __extends(RotateTimeline, _super); + function RotateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount << 1); + } + RotateTimeline.prototype.getPropertyId = function () { + return (TimelineType.rotate << 24) + this.boneIndex; + }; + RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { + frameIndex <<= 1; + this.frames[frameIndex] = time; + this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; + }; + RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { + if (setupPose) + bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; + else { + var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; + r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; + bone.rotation += r_1 * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); + var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); + var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + r = prevRotation + r * percent; + if (setupPose) { + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation = bone.data.rotation + r * alpha; + } + else { + r = bone.data.rotation + r - bone.rotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation += r * alpha; + } + }; + RotateTimeline.ENTRIES = 2; + RotateTimeline.PREV_TIME = -2; + RotateTimeline.PREV_ROTATION = -1; + RotateTimeline.ROTATION = 1; + return RotateTimeline; + }(CurveTimeline)); + spine.RotateTimeline = RotateTimeline; + var TranslateTimeline = (function (_super) { + __extends(TranslateTimeline, _super); + function TranslateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); + } + TranslateTimeline.prototype.getPropertyId = function () { + return (TimelineType.translate << 24) + this.boneIndex; + }; + TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { + frameIndex *= TranslateTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TranslateTimeline.X] = x; + this.frames[frameIndex + TranslateTimeline.Y] = y; + }; + TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { + x = frames[frames.length + TranslateTimeline.PREV_X]; + y = frames[frames.length + TranslateTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); + x = frames[frame + TranslateTimeline.PREV_X]; + y = frames[frame + TranslateTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); + x += (frames[frame + TranslateTimeline.X] - x) * percent; + y += (frames[frame + TranslateTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.x = bone.data.x + x * alpha; + bone.y = bone.data.y + y * alpha; + } + else { + bone.x += (bone.data.x + x - bone.x) * alpha; + bone.y += (bone.data.y + y - bone.y) * alpha; + } + }; + TranslateTimeline.ENTRIES = 3; + TranslateTimeline.PREV_TIME = -3; + TranslateTimeline.PREV_X = -2; + TranslateTimeline.PREV_Y = -1; + TranslateTimeline.X = 1; + TranslateTimeline.Y = 2; + return TranslateTimeline; + }(CurveTimeline)); + spine.TranslateTimeline = TranslateTimeline; + var ScaleTimeline = (function (_super) { + __extends(ScaleTimeline, _super); + function ScaleTimeline(frameCount) { + _super.call(this, frameCount); + } + ScaleTimeline.prototype.getPropertyId = function () { + return (TimelineType.scale << 24) + this.boneIndex; + }; + ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { + x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; + y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; + } + else { + var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); + x = frames[frame + ScaleTimeline.PREV_X]; + y = frames[frame + ScaleTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); + x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; + y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; + } + if (alpha == 1) { + bone.scaleX = x; + bone.scaleY = y; + } + else { + var bx = 0, by = 0; + if (setupPose) { + bx = bone.data.scaleX; + by = bone.data.scaleY; + } + else { + bx = bone.scaleX; + by = bone.scaleY; + } + if (mixingOut) { + x = Math.abs(x) * spine.MathUtils.signum(bx); + y = Math.abs(y) * spine.MathUtils.signum(by); + } + else { + bx = Math.abs(bx) * spine.MathUtils.signum(x); + by = Math.abs(by) * spine.MathUtils.signum(y); + } + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + } + }; + return ScaleTimeline; + }(TranslateTimeline)); + spine.ScaleTimeline = ScaleTimeline; + var ShearTimeline = (function (_super) { + __extends(ShearTimeline, _super); + function ShearTimeline(frameCount) { + _super.call(this, frameCount); + } + ShearTimeline.prototype.getPropertyId = function () { + return (TimelineType.shear << 24) + this.boneIndex; + }; + ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { + x = frames[frames.length + ShearTimeline.PREV_X]; + y = frames[frames.length + ShearTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); + x = frames[frame + ShearTimeline.PREV_X]; + y = frames[frame + ShearTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); + x = x + (frames[frame + ShearTimeline.X] - x) * percent; + y = y + (frames[frame + ShearTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.shearX = bone.data.shearX + x * alpha; + bone.shearY = bone.data.shearY + y * alpha; + } + else { + bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; + bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; + } + }; + return ShearTimeline; + }(TranslateTimeline)); + spine.ShearTimeline = ShearTimeline; + var ColorTimeline = (function (_super) { + __extends(ColorTimeline, _super); + function ColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); + } + ColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.color << 24) + this.slotIndex; + }; + ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { + frameIndex *= ColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + ColorTimeline.R] = r; + this.frames[frameIndex + ColorTimeline.G] = g; + this.frames[frameIndex + ColorTimeline.B] = b; + this.frames[frameIndex + ColorTimeline.A] = a; + }; + ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + slot.color.setFromColor(slot.data.color); + return; + } + var r = 0, g = 0, b = 0, a = 0; + if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + ColorTimeline.PREV_R]; + g = frames[i + ColorTimeline.PREV_G]; + b = frames[i + ColorTimeline.PREV_B]; + a = frames[i + ColorTimeline.PREV_A]; + } + else { + var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); + r = frames[frame + ColorTimeline.PREV_R]; + g = frames[frame + ColorTimeline.PREV_G]; + b = frames[frame + ColorTimeline.PREV_B]; + a = frames[frame + ColorTimeline.PREV_A]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + ColorTimeline.R] - r) * percent; + g += (frames[frame + ColorTimeline.G] - g) * percent; + b += (frames[frame + ColorTimeline.B] - b) * percent; + a += (frames[frame + ColorTimeline.A] - a) * percent; + } + if (alpha == 1) + slot.color.set(r, g, b, a); + else { + var color = slot.color; + if (setupPose) + color.setFromColor(slot.data.color); + color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); + } + }; + ColorTimeline.ENTRIES = 5; + ColorTimeline.PREV_TIME = -5; + ColorTimeline.PREV_R = -4; + ColorTimeline.PREV_G = -3; + ColorTimeline.PREV_B = -2; + ColorTimeline.PREV_A = -1; + ColorTimeline.R = 1; + ColorTimeline.G = 2; + ColorTimeline.B = 3; + ColorTimeline.A = 4; + return ColorTimeline; + }(CurveTimeline)); + spine.ColorTimeline = ColorTimeline; + var TwoColorTimeline = (function (_super) { + __extends(TwoColorTimeline, _super); + function TwoColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); + } + TwoColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.twoColor << 24) + this.slotIndex; + }; + TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { + frameIndex *= TwoColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TwoColorTimeline.R] = r; + this.frames[frameIndex + TwoColorTimeline.G] = g; + this.frames[frameIndex + TwoColorTimeline.B] = b; + this.frames[frameIndex + TwoColorTimeline.A] = a; + this.frames[frameIndex + TwoColorTimeline.R2] = r2; + this.frames[frameIndex + TwoColorTimeline.G2] = g2; + this.frames[frameIndex + TwoColorTimeline.B2] = b2; + }; + TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + slot.color.setFromColor(slot.data.color); + slot.darkColor.setFromColor(slot.data.darkColor); + } + return; + } + var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; + if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + TwoColorTimeline.PREV_R]; + g = frames[i + TwoColorTimeline.PREV_G]; + b = frames[i + TwoColorTimeline.PREV_B]; + a = frames[i + TwoColorTimeline.PREV_A]; + r2 = frames[i + TwoColorTimeline.PREV_R2]; + g2 = frames[i + TwoColorTimeline.PREV_G2]; + b2 = frames[i + TwoColorTimeline.PREV_B2]; + } + else { + var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); + r = frames[frame + TwoColorTimeline.PREV_R]; + g = frames[frame + TwoColorTimeline.PREV_G]; + b = frames[frame + TwoColorTimeline.PREV_B]; + a = frames[frame + TwoColorTimeline.PREV_A]; + r2 = frames[frame + TwoColorTimeline.PREV_R2]; + g2 = frames[frame + TwoColorTimeline.PREV_G2]; + b2 = frames[frame + TwoColorTimeline.PREV_B2]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + TwoColorTimeline.R] - r) * percent; + g += (frames[frame + TwoColorTimeline.G] - g) * percent; + b += (frames[frame + TwoColorTimeline.B] - b) * percent; + a += (frames[frame + TwoColorTimeline.A] - a) * percent; + r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; + g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; + b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; + } + if (alpha == 1) { + slot.color.set(r, g, b, a); + slot.darkColor.set(r2, g2, b2, 1); + } + else { + var light = slot.color; + var dark = slot.darkColor; + if (setupPose) { + light.setFromColor(slot.data.color); + dark.setFromColor(slot.data.darkColor); + } + light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); + dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); + } + }; + TwoColorTimeline.ENTRIES = 8; + TwoColorTimeline.PREV_TIME = -8; + TwoColorTimeline.PREV_R = -7; + TwoColorTimeline.PREV_G = -6; + TwoColorTimeline.PREV_B = -5; + TwoColorTimeline.PREV_A = -4; + TwoColorTimeline.PREV_R2 = -3; + TwoColorTimeline.PREV_G2 = -2; + TwoColorTimeline.PREV_B2 = -1; + TwoColorTimeline.R = 1; + TwoColorTimeline.G = 2; + TwoColorTimeline.B = 3; + TwoColorTimeline.A = 4; + TwoColorTimeline.R2 = 5; + TwoColorTimeline.G2 = 6; + TwoColorTimeline.B2 = 7; + return TwoColorTimeline; + }(CurveTimeline)); + spine.TwoColorTimeline = TwoColorTimeline; + var AttachmentTimeline = (function () { + function AttachmentTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.attachmentNames = new Array(frameCount); + } + AttachmentTimeline.prototype.getPropertyId = function () { + return (TimelineType.attachment << 24) + this.slotIndex; + }; + AttachmentTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { + this.frames[frameIndex] = time; + this.attachmentNames[frameIndex] = attachmentName; + }; + AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + if (mixingOut && setupPose) { + var attachmentName_1 = slot.data.attachmentName; + slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + var attachmentName_2 = slot.data.attachmentName; + slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); + } + return; + } + var frameIndex = 0; + if (time >= frames[frames.length - 1]) + frameIndex = frames.length - 1; + else + frameIndex = Animation.binarySearch(frames, time, 1) - 1; + var attachmentName = this.attachmentNames[frameIndex]; + skeleton.slots[this.slotIndex] + .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); + }; + return AttachmentTimeline; + }()); + spine.AttachmentTimeline = AttachmentTimeline; + var DeformTimeline = (function (_super) { + __extends(DeformTimeline, _super); + function DeformTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount); + this.frameVertices = new Array(frameCount); + } + DeformTimeline.prototype.getPropertyId = function () { + return (TimelineType.deform << 24) + this.slotIndex; + }; + DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { + this.frames[frameIndex] = time; + this.frameVertices[frameIndex] = vertices; + }; + DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var slotAttachment = slot.getAttachment(); + if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) + return; + var frames = this.frames; + var verticesArray = slot.attachmentVertices; + if (time < frames[0]) { + if (setupPose) + spine.Utils.setArraySize(verticesArray, 0); + return; + } + var frameVertices = this.frameVertices; + var vertexCount = frameVertices[0].length; + if (verticesArray.length != vertexCount && !setupPose) + alpha = 1; + var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); + if (time >= frames[frames.length - 1]) { + var lastVertices = frameVertices[frames.length - 1]; + if (alpha == 1) { + spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var setup = setupVertices[i]; + vertices[i] = setup + (lastVertices[i] - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] = lastVertices[i] * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] += (lastVertices[i] - vertices[i]) * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time); + var prevVertices = frameVertices[frame - 1]; + var nextVertices = frameVertices[frame]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); + if (alpha == 1) { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = prev + (nextVertices[i] - prev) * percent; + } + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i], setup = setupVertices[i]; + vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; + } + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; + } + } + }; + return DeformTimeline; + }(CurveTimeline)); + spine.DeformTimeline = DeformTimeline; + var EventTimeline = (function () { + function EventTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.events = new Array(frameCount); + } + EventTimeline.prototype.getPropertyId = function () { + return TimelineType.event << 24; + }; + EventTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + EventTimeline.prototype.setFrame = function (frameIndex, event) { + this.frames[frameIndex] = event.time; + this.events[frameIndex] = event; + }; + EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + if (firedEvents == null) + return; + var frames = this.frames; + var frameCount = this.frames.length; + if (lastTime > time) { + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); + lastTime = -1; + } + else if (lastTime >= frames[frameCount - 1]) + return; + if (time < frames[0]) + return; + var frame = 0; + if (lastTime < frames[0]) + frame = 0; + else { + frame = Animation.binarySearch(frames, lastTime); + var frameTime = frames[frame]; + while (frame > 0) { + if (frames[frame - 1] != frameTime) + break; + frame--; + } + } + for (; frame < frameCount && time >= frames[frame]; frame++) + firedEvents.push(this.events[frame]); + }; + return EventTimeline; + }()); + spine.EventTimeline = EventTimeline; + var DrawOrderTimeline = (function () { + function DrawOrderTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.drawOrders = new Array(frameCount); + } + DrawOrderTimeline.prototype.getPropertyId = function () { + return TimelineType.drawOrder << 24; + }; + DrawOrderTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { + this.frames[frameIndex] = time; + this.drawOrders[frameIndex] = drawOrder; + }; + DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var drawOrder = skeleton.drawOrder; + var slots = skeleton.slots; + if (mixingOut && setupPose) { + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frame = 0; + if (time >= frames[frames.length - 1]) + frame = frames.length - 1; + else + frame = Animation.binarySearch(frames, time) - 1; + var drawOrderToSetupIndex = this.drawOrders[frame]; + if (drawOrderToSetupIndex == null) + spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); + else { + for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) + drawOrder[i] = slots[drawOrderToSetupIndex[i]]; + } + }; + return DrawOrderTimeline; + }()); + spine.DrawOrderTimeline = DrawOrderTimeline; + var IkConstraintTimeline = (function (_super) { + __extends(IkConstraintTimeline, _super); + function IkConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); + } + IkConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; + }; + IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { + frameIndex *= IkConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; + this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; + }; + IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.mix = constraint.data.mix; + constraint.bendDirection = constraint.data.bendDirection; + } + return; + } + if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { + if (setupPose) { + constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection + : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + return; + } + var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); + var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); + if (setupPose) { + constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + }; + IkConstraintTimeline.ENTRIES = 3; + IkConstraintTimeline.PREV_TIME = -3; + IkConstraintTimeline.PREV_MIX = -2; + IkConstraintTimeline.PREV_BEND_DIRECTION = -1; + IkConstraintTimeline.MIX = 1; + IkConstraintTimeline.BEND_DIRECTION = 2; + return IkConstraintTimeline; + }(CurveTimeline)); + spine.IkConstraintTimeline = IkConstraintTimeline; + var TransformConstraintTimeline = (function (_super) { + __extends(TransformConstraintTimeline, _super); + function TransformConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); + } + TransformConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; + }; + TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { + frameIndex *= TransformConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; + this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; + this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; + }; + TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.rotateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + return; + } + var rotate = 0, translate = 0, scale = 0, shear = 0; + if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { + var i = frames.length; + rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; + } + else { + var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); + rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; + scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; + shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; + } + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; + constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; + constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; + constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + constraint.scaleMix += (scale - constraint.scaleMix) * alpha; + constraint.shearMix += (shear - constraint.shearMix) * alpha; + } + }; + TransformConstraintTimeline.ENTRIES = 5; + TransformConstraintTimeline.PREV_TIME = -5; + TransformConstraintTimeline.PREV_ROTATE = -4; + TransformConstraintTimeline.PREV_TRANSLATE = -3; + TransformConstraintTimeline.PREV_SCALE = -2; + TransformConstraintTimeline.PREV_SHEAR = -1; + TransformConstraintTimeline.ROTATE = 1; + TransformConstraintTimeline.TRANSLATE = 2; + TransformConstraintTimeline.SCALE = 3; + TransformConstraintTimeline.SHEAR = 4; + return TransformConstraintTimeline; + }(CurveTimeline)); + spine.TransformConstraintTimeline = TransformConstraintTimeline; + var PathConstraintPositionTimeline = (function (_super) { + __extends(PathConstraintPositionTimeline, _super); + function PathConstraintPositionTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); + } + PathConstraintPositionTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; + }; + PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { + frameIndex *= PathConstraintPositionTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; + }; + PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.position = constraint.data.position; + return; + } + var position = 0; + if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) + position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); + position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); + position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; + } + if (setupPose) + constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; + else + constraint.position += (position - constraint.position) * alpha; + }; + PathConstraintPositionTimeline.ENTRIES = 2; + PathConstraintPositionTimeline.PREV_TIME = -2; + PathConstraintPositionTimeline.PREV_VALUE = -1; + PathConstraintPositionTimeline.VALUE = 1; + return PathConstraintPositionTimeline; + }(CurveTimeline)); + spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; + var PathConstraintSpacingTimeline = (function (_super) { + __extends(PathConstraintSpacingTimeline, _super); + function PathConstraintSpacingTimeline(frameCount) { + _super.call(this, frameCount); + } + PathConstraintSpacingTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; + }; + PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.spacing = constraint.data.spacing; + return; + } + var spacing = 0; + if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) + spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); + spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); + spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; + } + if (setupPose) + constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; + else + constraint.spacing += (spacing - constraint.spacing) * alpha; + }; + return PathConstraintSpacingTimeline; + }(PathConstraintPositionTimeline)); + spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; + var PathConstraintMixTimeline = (function (_super) { + __extends(PathConstraintMixTimeline, _super); + function PathConstraintMixTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); + } + PathConstraintMixTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; + }; + PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { + frameIndex *= PathConstraintMixTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; + }; + PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } + return; + } + var rotate = 0, translate = 0; + if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { + rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; + } + else { + var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); + rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; + } + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; + constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + } + }; + PathConstraintMixTimeline.ENTRIES = 3; + PathConstraintMixTimeline.PREV_TIME = -3; + PathConstraintMixTimeline.PREV_ROTATE = -2; + PathConstraintMixTimeline.PREV_TRANSLATE = -1; + PathConstraintMixTimeline.ROTATE = 1; + PathConstraintMixTimeline.TRANSLATE = 2; + return PathConstraintMixTimeline; + }(CurveTimeline)); + spine.PathConstraintMixTimeline = PathConstraintMixTimeline; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationState = (function () { - function AnimationState(data) { - this.tracks = new Array(); - this.events = new Array(); - this.listeners = new Array(); - this.queue = new EventQueue(this); - this.propertyIDs = new spine.IntSet(); - this.mixingTo = new Array(); - this.animationsChanged = false; - this.timeScale = 1; - this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); - this.data = data; - } - AnimationState.prototype.update = function (delta) { - delta *= this.timeScale; - var tracks = this.tracks; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null) - continue; - current.animationLast = current.nextAnimationLast; - current.trackLast = current.nextTrackLast; - var currentDelta = delta * current.timeScale; - if (current.delay > 0) { - current.delay -= currentDelta; - if (current.delay > 0) - continue; - currentDelta = -current.delay; - current.delay = 0; - } - var next = current.next; - if (next != null) { - var nextTime = current.trackLast - next.delay; - if (nextTime >= 0) { - next.delay = 0; - next.trackTime = nextTime + delta * next.timeScale; - current.trackTime += currentDelta; - this.setCurrent(i, next, true); - while (next.mixingFrom != null) { - next.mixTime += currentDelta; - next = next.mixingFrom; - } - continue; - } - } - else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { - tracks[i] = null; - this.queue.end(current); - this.disposeNext(current); - continue; - } - if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { - var from = current.mixingFrom; - current.mixingFrom = null; - while (from != null) { - this.queue.end(from); - from = from.mixingFrom; - } - } - current.trackTime += currentDelta; - } - this.queue.drain(); - }; - AnimationState.prototype.updateMixingFrom = function (to, delta) { - var from = to.mixingFrom; - if (from == null) - return true; - var finished = this.updateMixingFrom(from, delta); - if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { - if (from.totalAlpha == 0) { - to.mixingFrom = from.mixingFrom; - to.interruptAlpha = from.interruptAlpha; - this.queue.end(from); - } - return finished; - } - from.animationLast = from.nextAnimationLast; - from.trackLast = from.nextTrackLast; - from.trackTime += delta * from.timeScale; - to.mixTime += delta * to.timeScale; - return false; - }; - AnimationState.prototype.apply = function (skeleton) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (this.animationsChanged) - this._animationsChanged(); - var events = this.events; - var tracks = this.tracks; - var applied = false; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null || current.delay > 0) - continue; - applied = true; - var mix = current.alpha; - if (current.mixingFrom != null) - mix *= this.applyMixingFrom(current, skeleton); - else if (current.trackTime >= current.trackEnd && current.next == null) - mix = 0; - var animationLast = current.animationLast, animationTime = current.getAnimationTime(); - var timelineCount = current.animation.timelines.length; - var timelines = current.animation.timelines; - if (mix == 1) { - for (var ii = 0; ii < timelineCount; ii++) - timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); - } - else { - var timelineData = current.timelineData; - var firstFrame = current.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = current.timelinesRotation; - for (var ii = 0; ii < timelineCount; ii++) { - var timeline = timelines[ii]; - if (timeline instanceof spine.RotateTimeline) { - this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); - } - else - timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); - } - } - this.queueEvents(current, animationTime); - events.length = 0; - current.nextAnimationLast = animationTime; - current.nextTrackLast = current.trackTime; - } - this.queue.drain(); - return applied; - }; - AnimationState.prototype.applyMixingFrom = function (to, skeleton) { - var from = to.mixingFrom; - if (from.mixingFrom != null) - this.applyMixingFrom(from, skeleton); - var mix = 0; - if (to.mixDuration == 0) - mix = 1; - else { - mix = to.mixTime / to.mixDuration; - if (mix > 1) - mix = 1; - } - var events = mix < from.eventThreshold ? this.events : null; - var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; - var animationLast = from.animationLast, animationTime = from.getAnimationTime(); - var timelineCount = from.animation.timelines.length; - var timelines = from.animation.timelines; - var timelineData = from.timelineData; - var timelineDipMix = from.timelineDipMix; - var firstFrame = from.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = from.timelinesRotation; - var first = false; - var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; - from.totalAlpha = 0; - for (var i = 0; i < timelineCount; i++) { - var timeline = timelines[i]; - switch (timelineData[i]) { - case AnimationState.SUBSEQUENT: - first = false; - alpha = alphaMix; - break; - case AnimationState.FIRST: - first = true; - alpha = alphaMix; - break; - case AnimationState.DIP: - first = true; - alpha = alphaDip; - break; - default: - first = true; - alpha = alphaDip; - var dipMix = timelineDipMix[i]; - alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); - break; - } - from.totalAlpha += alpha; - if (timeline instanceof spine.RotateTimeline) - this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); - else { - if (!first) { - if (!attachments && timeline instanceof spine.AttachmentTimeline) - continue; - if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) - continue; - } - timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); - } - } - if (to.mixDuration > 0) - this.queueEvents(from, animationTime); - this.events.length = 0; - from.nextAnimationLast = animationTime; - from.nextTrackLast = from.trackTime; - return mix; - }; - AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { - if (firstFrame) - timelinesRotation[i] = 0; - if (alpha == 1) { - timeline.apply(skeleton, 0, time, null, 1, setupPose, false); - return; - } - var rotateTimeline = timeline; - var frames = rotateTimeline.frames; - var bone = skeleton.bones[rotateTimeline.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - var r2 = 0; - if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) - r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; - else { - var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); - var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); - r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - r2 = prevRotation + r2 * percent + bone.data.rotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - } - var r1 = setupPose ? bone.data.rotation : bone.rotation; - var total = 0, diff = r2 - r1; - if (diff == 0) { - total = timelinesRotation[i]; - } - else { - diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; - var lastTotal = 0, lastDiff = 0; - if (firstFrame) { - lastTotal = 0; - lastDiff = diff; - } - else { - lastTotal = timelinesRotation[i]; - lastDiff = timelinesRotation[i + 1]; - } - var current = diff > 0, dir = lastTotal >= 0; - if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { - if (Math.abs(lastTotal) > 180) - lastTotal += 360 * spine.MathUtils.signum(lastTotal); - dir = current; - } - total = diff + lastTotal - lastTotal % 360; - if (dir != current) - total += 360 * spine.MathUtils.signum(lastTotal); - timelinesRotation[i] = total; - } - timelinesRotation[i + 1] = diff; - r1 += total * alpha; - bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; - }; - AnimationState.prototype.queueEvents = function (entry, animationTime) { - var animationStart = entry.animationStart, animationEnd = entry.animationEnd; - var duration = animationEnd - animationStart; - var trackLastWrapped = entry.trackLast % duration; - var events = this.events; - var i = 0, n = events.length; - for (; i < n; i++) { - var event_1 = events[i]; - if (event_1.time < trackLastWrapped) - break; - if (event_1.time > animationEnd) - continue; - this.queue.event(entry, event_1); - } - if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) - : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { - this.queue.complete(entry); - } - for (; i < n; i++) { - var event_2 = events[i]; - if (event_2.time < animationStart) - continue; - this.queue.event(entry, events[i]); - } - }; - AnimationState.prototype.clearTracks = function () { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) - this.clearTrack(i); - this.tracks.length = 0; - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.clearTrack = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return; - var current = this.tracks[trackIndex]; - if (current == null) - return; - this.queue.end(current); - this.disposeNext(current); - var entry = current; - while (true) { - var from = entry.mixingFrom; - if (from == null) - break; - this.queue.end(from); - entry.mixingFrom = null; - entry = from; - } - this.tracks[current.trackIndex] = null; - this.queue.drain(); - }; - AnimationState.prototype.setCurrent = function (index, current, interrupt) { - var from = this.expandToIndex(index); - this.tracks[index] = current; - if (from != null) { - if (interrupt) - this.queue.interrupt(from); - current.mixingFrom = from; - current.mixTime = 0; - if (from.mixingFrom != null && from.mixDuration > 0) - current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); - from.timelinesRotation.length = 0; - } - this.queue.start(current); - }; - AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.setAnimationWith(trackIndex, animation, loop); - }; - AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { - if (animation == null) - throw new Error("animation cannot be null."); - var interrupt = true; - var current = this.expandToIndex(trackIndex); - if (current != null) { - if (current.nextTrackLast == -1) { - this.tracks[trackIndex] = current.mixingFrom; - this.queue.interrupt(current); - this.queue.end(current); - this.disposeNext(current); - current = current.mixingFrom; - interrupt = false; - } - else - this.disposeNext(current); - } - var entry = this.trackEntry(trackIndex, animation, loop, current); - this.setCurrent(trackIndex, entry, interrupt); - this.queue.drain(); - return entry; - }; - AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.addAnimationWith(trackIndex, animation, loop, delay); - }; - AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { - if (animation == null) - throw new Error("animation cannot be null."); - var last = this.expandToIndex(trackIndex); - if (last != null) { - while (last.next != null) - last = last.next; - } - var entry = this.trackEntry(trackIndex, animation, loop, last); - if (last == null) { - this.setCurrent(trackIndex, entry, true); - this.queue.drain(); - } - else { - last.next = entry; - if (delay <= 0) { - var duration = last.animationEnd - last.animationStart; - if (duration != 0) - delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); - else - delay = 0; - } - } - entry.delay = delay; - return entry; - }; - AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { - var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { - if (delay <= 0) - delay -= mixDuration; - var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.setEmptyAnimations = function (mixDuration) { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var current = this.tracks[i]; - if (current != null) - this.setEmptyAnimation(current.trackIndex, mixDuration); - } - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.expandToIndex = function (index) { - if (index < this.tracks.length) - return this.tracks[index]; - spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); - this.tracks.length = index + 1; - return null; - }; - AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { - var entry = this.trackEntryPool.obtain(); - entry.trackIndex = trackIndex; - entry.animation = animation; - entry.loop = loop; - entry.eventThreshold = 0; - entry.attachmentThreshold = 0; - entry.drawOrderThreshold = 0; - entry.animationStart = 0; - entry.animationEnd = animation.duration; - entry.animationLast = -1; - entry.nextAnimationLast = -1; - entry.delay = 0; - entry.trackTime = 0; - entry.trackLast = -1; - entry.nextTrackLast = -1; - entry.trackEnd = Number.MAX_VALUE; - entry.timeScale = 1; - entry.alpha = 1; - entry.interruptAlpha = 1; - entry.mixTime = 0; - entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); - return entry; - }; - AnimationState.prototype.disposeNext = function (entry) { - var next = entry.next; - while (next != null) { - this.queue.dispose(next); - next = next.next; - } - entry.next = null; - }; - AnimationState.prototype._animationsChanged = function () { - this.animationsChanged = false; - var propertyIDs = this.propertyIDs; - propertyIDs.clear(); - var mixingTo = this.mixingTo; - var lastEntry = null; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var entry = this.tracks[i]; - if (entry != null) { - entry.setTimelineData(lastEntry, mixingTo, propertyIDs); - lastEntry = entry; - } - } - }; - AnimationState.prototype.getCurrent = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return null; - return this.tracks[trackIndex]; - }; - AnimationState.prototype.addListener = function (listener) { - if (listener == null) - throw new Error("listener cannot be null."); - this.listeners.push(listener); - }; - AnimationState.prototype.removeListener = function (listener) { - var index = this.listeners.indexOf(listener); - if (index >= 0) - this.listeners.splice(index, 1); - }; - AnimationState.prototype.clearListeners = function () { - this.listeners.length = 0; - }; - AnimationState.prototype.clearListenerNotifications = function () { - this.queue.clear(); - }; - AnimationState.emptyAnimation = new spine.Animation("", [], 0); - AnimationState.SUBSEQUENT = 0; - AnimationState.FIRST = 1; - AnimationState.DIP = 2; - AnimationState.DIP_MIX = 3; - return AnimationState; - }()); - spine.AnimationState = AnimationState; - var TrackEntry = (function () { - function TrackEntry() { - this.timelineData = new Array(); - this.timelineDipMix = new Array(); - this.timelinesRotation = new Array(); - } - TrackEntry.prototype.reset = function () { - this.next = null; - this.mixingFrom = null; - this.animation = null; - this.listener = null; - this.timelineData.length = 0; - this.timelineDipMix.length = 0; - this.timelinesRotation.length = 0; - }; - TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { - if (to != null) - mixingToArray.push(to); - var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; - if (to != null) - mixingToArray.pop(); - var mixingTo = mixingToArray; - var mixingToLast = mixingToArray.length - 1; - var timelines = this.animation.timelines; - var timelinesCount = this.animation.timelines.length; - var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); - this.timelineDipMix.length = 0; - var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); - outer: for (var i = 0; i < timelinesCount; i++) { - var id = timelines[i].getPropertyId(); - if (!propertyIDs.add(id)) - timelineData[i] = AnimationState.SUBSEQUENT; - else if (to == null || !to.hasTimeline(id)) - timelineData[i] = AnimationState.FIRST; - else { - for (var ii = mixingToLast; ii >= 0; ii--) { - var entry = mixingTo[ii]; - if (!entry.hasTimeline(id)) { - if (entry.mixDuration > 0) { - timelineData[i] = AnimationState.DIP_MIX; - timelineDipMix[i] = entry; - continue outer; - } - } - } - timelineData[i] = AnimationState.DIP; - } - } - return lastEntry; - }; - TrackEntry.prototype.hasTimeline = function (id) { - var timelines = this.animation.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - if (timelines[i].getPropertyId() == id) - return true; - return false; - }; - TrackEntry.prototype.getAnimationTime = function () { - if (this.loop) { - var duration = this.animationEnd - this.animationStart; - if (duration == 0) - return this.animationStart; - return (this.trackTime % duration) + this.animationStart; - } - return Math.min(this.trackTime + this.animationStart, this.animationEnd); - }; - TrackEntry.prototype.setAnimationLast = function (animationLast) { - this.animationLast = animationLast; - this.nextAnimationLast = animationLast; - }; - TrackEntry.prototype.isComplete = function () { - return this.trackTime >= this.animationEnd - this.animationStart; - }; - TrackEntry.prototype.resetRotationDirections = function () { - this.timelinesRotation.length = 0; - }; - return TrackEntry; - }()); - spine.TrackEntry = TrackEntry; - var EventQueue = (function () { - function EventQueue(animState) { - this.objects = []; - this.drainDisabled = false; - this.animState = animState; - } - EventQueue.prototype.start = function (entry) { - this.objects.push(EventType.start); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.interrupt = function (entry) { - this.objects.push(EventType.interrupt); - this.objects.push(entry); - }; - EventQueue.prototype.end = function (entry) { - this.objects.push(EventType.end); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.dispose = function (entry) { - this.objects.push(EventType.dispose); - this.objects.push(entry); - }; - EventQueue.prototype.complete = function (entry) { - this.objects.push(EventType.complete); - this.objects.push(entry); - }; - EventQueue.prototype.event = function (entry, event) { - this.objects.push(EventType.event); - this.objects.push(entry); - this.objects.push(event); - }; - EventQueue.prototype.drain = function () { - if (this.drainDisabled) - return; - this.drainDisabled = true; - var objects = this.objects; - var listeners = this.animState.listeners; - for (var i = 0; i < objects.length; i += 2) { - var type = objects[i]; - var entry = objects[i + 1]; - switch (type) { - case EventType.start: - if (entry.listener != null && entry.listener.start) - entry.listener.start(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].start) - listeners[ii].start(entry); - break; - case EventType.interrupt: - if (entry.listener != null && entry.listener.interrupt) - entry.listener.interrupt(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].interrupt) - listeners[ii].interrupt(entry); - break; - case EventType.end: - if (entry.listener != null && entry.listener.end) - entry.listener.end(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].end) - listeners[ii].end(entry); - case EventType.dispose: - if (entry.listener != null && entry.listener.dispose) - entry.listener.dispose(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].dispose) - listeners[ii].dispose(entry); - this.animState.trackEntryPool.free(entry); - break; - case EventType.complete: - if (entry.listener != null && entry.listener.complete) - entry.listener.complete(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].complete) - listeners[ii].complete(entry); - break; - case EventType.event: - var event_3 = objects[i++ + 2]; - if (entry.listener != null && entry.listener.event) - entry.listener.event(entry, event_3); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].event) - listeners[ii].event(entry, event_3); - break; - } - } - this.clear(); - this.drainDisabled = false; - }; - EventQueue.prototype.clear = function () { - this.objects.length = 0; - }; - return EventQueue; - }()); - spine.EventQueue = EventQueue; - (function (EventType) { - EventType[EventType["start"] = 0] = "start"; - EventType[EventType["interrupt"] = 1] = "interrupt"; - EventType[EventType["end"] = 2] = "end"; - EventType[EventType["dispose"] = 3] = "dispose"; - EventType[EventType["complete"] = 4] = "complete"; - EventType[EventType["event"] = 5] = "event"; - })(spine.EventType || (spine.EventType = {})); - var EventType = spine.EventType; - var AnimationStateAdapter2 = (function () { - function AnimationStateAdapter2() { - } - AnimationStateAdapter2.prototype.start = function (entry) { - }; - AnimationStateAdapter2.prototype.interrupt = function (entry) { - }; - AnimationStateAdapter2.prototype.end = function (entry) { - }; - AnimationStateAdapter2.prototype.dispose = function (entry) { - }; - AnimationStateAdapter2.prototype.complete = function (entry) { - }; - AnimationStateAdapter2.prototype.event = function (entry, event) { - }; - return AnimationStateAdapter2; - }()); - spine.AnimationStateAdapter2 = AnimationStateAdapter2; + var AnimationState = (function () { + function AnimationState(data) { + this.tracks = new Array(); + this.events = new Array(); + this.listeners = new Array(); + this.queue = new EventQueue(this); + this.propertyIDs = new spine.IntSet(); + this.mixingTo = new Array(); + this.animationsChanged = false; + this.timeScale = 1; + this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); + this.data = data; + } + AnimationState.prototype.update = function (delta) { + delta *= this.timeScale; + var tracks = this.tracks; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null) + continue; + current.animationLast = current.nextAnimationLast; + current.trackLast = current.nextTrackLast; + var currentDelta = delta * current.timeScale; + if (current.delay > 0) { + current.delay -= currentDelta; + if (current.delay > 0) + continue; + currentDelta = -current.delay; + current.delay = 0; + } + var next = current.next; + if (next != null) { + var nextTime = current.trackLast - next.delay; + if (nextTime >= 0) { + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; + this.setCurrent(i, next, true); + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + } + else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; + } + if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { + var from = current.mixingFrom; + current.mixingFrom = null; + while (from != null) { + this.queue.end(from); + from = from.mixingFrom; + } + } + current.trackTime += currentDelta; + } + this.queue.drain(); + }; + AnimationState.prototype.updateMixingFrom = function (to, delta) { + var from = to.mixingFrom; + if (from == null) + return true; + var finished = this.updateMixingFrom(from, delta); + if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { + if (from.totalAlpha == 0) { + to.mixingFrom = from.mixingFrom; + to.interruptAlpha = from.interruptAlpha; + this.queue.end(from); + } + return finished; + } + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + from.trackTime += delta * from.timeScale; + to.mixTime += delta * to.timeScale; + return false; + }; + AnimationState.prototype.apply = function (skeleton) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (this.animationsChanged) + this._animationsChanged(); + var events = this.events; + var tracks = this.tracks; + var applied = false; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null || current.delay > 0) + continue; + applied = true; + var mix = current.alpha; + if (current.mixingFrom != null) + mix *= this.applyMixingFrom(current, skeleton); + else if (current.trackTime >= current.trackEnd && current.next == null) + mix = 0; + var animationLast = current.animationLast, animationTime = current.getAnimationTime(); + var timelineCount = current.animation.timelines.length; + var timelines = current.animation.timelines; + if (mix == 1) { + for (var ii = 0; ii < timelineCount; ii++) + timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); + } + else { + var timelineData = current.timelineData; + var firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = current.timelinesRotation; + for (var ii = 0; ii < timelineCount; ii++) { + var timeline = timelines[ii]; + if (timeline instanceof spine.RotateTimeline) { + this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); + } + else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); + } + } + this.queueEvents(current, animationTime); + events.length = 0; + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; + } + this.queue.drain(); + return applied; + }; + AnimationState.prototype.applyMixingFrom = function (to, skeleton) { + var from = to.mixingFrom; + if (from.mixingFrom != null) + this.applyMixingFrom(from, skeleton); + var mix = 0; + if (to.mixDuration == 0) + mix = 1; + else { + mix = to.mixTime / to.mixDuration; + if (mix > 1) + mix = 1; + } + var events = mix < from.eventThreshold ? this.events : null; + var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; + var animationLast = from.animationLast, animationTime = from.getAnimationTime(); + var timelineCount = from.animation.timelines.length; + var timelines = from.animation.timelines; + var timelineData = from.timelineData; + var timelineDipMix = from.timelineDipMix; + var firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = from.timelinesRotation; + var first = false; + var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; + from.totalAlpha = 0; + for (var i = 0; i < timelineCount; i++) { + var timeline = timelines[i]; + switch (timelineData[i]) { + case AnimationState.SUBSEQUENT: + first = false; + alpha = alphaMix; + break; + case AnimationState.FIRST: + first = true; + alpha = alphaMix; + break; + case AnimationState.DIP: + first = true; + alpha = alphaDip; + break; + default: + first = true; + alpha = alphaDip; + var dipMix = timelineDipMix[i]; + alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); + break; + } + from.totalAlpha += alpha; + if (timeline instanceof spine.RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); + else { + if (!first) { + if (!attachments && timeline instanceof spine.AttachmentTimeline) + continue; + if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) + continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); + } + } + if (to.mixDuration > 0) + this.queueEvents(from, animationTime); + this.events.length = 0; + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + }; + AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { + if (firstFrame) + timelinesRotation[i] = 0; + if (alpha == 1) { + timeline.apply(skeleton, 0, time, null, 1, setupPose, false); + return; + } + var rotateTimeline = timeline; + var frames = rotateTimeline.frames; + var bone = skeleton.bones[rotateTimeline.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + var r2 = 0; + if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) + r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; + else { + var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); + var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); + r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + r2 = prevRotation + r2 * percent + bone.data.rotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + } + var r1 = setupPose ? bone.data.rotation : bone.rotation; + var total = 0, diff = r2 - r1; + if (diff == 0) { + total = timelinesRotation[i]; + } + else { + diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; + var lastTotal = 0, lastDiff = 0; + if (firstFrame) { + lastTotal = 0; + lastDiff = diff; + } + else { + lastTotal = timelinesRotation[i]; + lastDiff = timelinesRotation[i + 1]; + } + var current = diff > 0, dir = lastTotal >= 0; + if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { + if (Math.abs(lastTotal) > 180) + lastTotal += 360 * spine.MathUtils.signum(lastTotal); + dir = current; + } + total = diff + lastTotal - lastTotal % 360; + if (dir != current) + total += 360 * spine.MathUtils.signum(lastTotal); + timelinesRotation[i] = total; + } + timelinesRotation[i + 1] = diff; + r1 += total * alpha; + bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; + }; + AnimationState.prototype.queueEvents = function (entry, animationTime) { + var animationStart = entry.animationStart, animationEnd = entry.animationEnd; + var duration = animationEnd - animationStart; + var trackLastWrapped = entry.trackLast % duration; + var events = this.events; + var i = 0, n = events.length; + for (; i < n; i++) { + var event_1 = events[i]; + if (event_1.time < trackLastWrapped) + break; + if (event_1.time > animationEnd) + continue; + this.queue.event(entry, event_1); + } + if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) + : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { + this.queue.complete(entry); + } + for (; i < n; i++) { + var event_2 = events[i]; + if (event_2.time < animationStart) + continue; + this.queue.event(entry, events[i]); + } + }; + AnimationState.prototype.clearTracks = function () { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) + this.clearTrack(i); + this.tracks.length = 0; + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.clearTrack = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return; + var current = this.tracks[trackIndex]; + if (current == null) + return; + this.queue.end(current); + this.disposeNext(current); + var entry = current; + while (true) { + var from = entry.mixingFrom; + if (from == null) + break; + this.queue.end(from); + entry.mixingFrom = null; + entry = from; + } + this.tracks[current.trackIndex] = null; + this.queue.drain(); + }; + AnimationState.prototype.setCurrent = function (index, current, interrupt) { + var from = this.expandToIndex(index); + this.tracks[index] = current; + if (from != null) { + if (interrupt) + this.queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + if (from.mixingFrom != null && from.mixDuration > 0) + current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); + from.timelinesRotation.length = 0; + } + this.queue.start(current); + }; + AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.setAnimationWith(trackIndex, animation, loop); + }; + AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { + if (animation == null) + throw new Error("animation cannot be null."); + var interrupt = true; + var current = this.expandToIndex(trackIndex); + if (current != null) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = current.mixingFrom; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = current.mixingFrom; + interrupt = false; + } + else + this.disposeNext(current); + } + var entry = this.trackEntry(trackIndex, animation, loop, current); + this.setCurrent(trackIndex, entry, interrupt); + this.queue.drain(); + return entry; + }; + AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.addAnimationWith(trackIndex, animation, loop, delay); + }; + AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { + if (animation == null) + throw new Error("animation cannot be null."); + var last = this.expandToIndex(trackIndex); + if (last != null) { + while (last.next != null) + last = last.next; + } + var entry = this.trackEntry(trackIndex, animation, loop, last); + if (last == null) { + this.setCurrent(trackIndex, entry, true); + this.queue.drain(); + } + else { + last.next = entry; + if (delay <= 0) { + var duration = last.animationEnd - last.animationStart; + if (duration != 0) + delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); + else + delay = 0; + } + } + entry.delay = delay; + return entry; + }; + AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { + var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { + if (delay <= 0) + delay -= mixDuration; + var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.setEmptyAnimations = function (mixDuration) { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var current = this.tracks[i]; + if (current != null) + this.setEmptyAnimation(current.trackIndex, mixDuration); + } + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.expandToIndex = function (index) { + if (index < this.tracks.length) + return this.tracks[index]; + spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); + this.tracks.length = index + 1; + return null; + }; + AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { + var entry = this.trackEntryPool.obtain(); + entry.trackIndex = trackIndex; + entry.animation = animation; + entry.loop = loop; + entry.eventThreshold = 0; + entry.attachmentThreshold = 0; + entry.drawOrderThreshold = 0; + entry.animationStart = 0; + entry.animationEnd = animation.duration; + entry.animationLast = -1; + entry.nextAnimationLast = -1; + entry.delay = 0; + entry.trackTime = 0; + entry.trackLast = -1; + entry.nextTrackLast = -1; + entry.trackEnd = Number.MAX_VALUE; + entry.timeScale = 1; + entry.alpha = 1; + entry.interruptAlpha = 1; + entry.mixTime = 0; + entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); + return entry; + }; + AnimationState.prototype.disposeNext = function (entry) { + var next = entry.next; + while (next != null) { + this.queue.dispose(next); + next = next.next; + } + entry.next = null; + }; + AnimationState.prototype._animationsChanged = function () { + this.animationsChanged = false; + var propertyIDs = this.propertyIDs; + propertyIDs.clear(); + var mixingTo = this.mixingTo; + var lastEntry = null; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var entry = this.tracks[i]; + if (entry != null) { + entry.setTimelineData(lastEntry, mixingTo, propertyIDs); + lastEntry = entry; + } + } + }; + AnimationState.prototype.getCurrent = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return null; + return this.tracks[trackIndex]; + }; + AnimationState.prototype.addListener = function (listener) { + if (listener == null) + throw new Error("listener cannot be null."); + this.listeners.push(listener); + }; + AnimationState.prototype.removeListener = function (listener) { + var index = this.listeners.indexOf(listener); + if (index >= 0) + this.listeners.splice(index, 1); + }; + AnimationState.prototype.clearListeners = function () { + this.listeners.length = 0; + }; + AnimationState.prototype.clearListenerNotifications = function () { + this.queue.clear(); + }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); + AnimationState.SUBSEQUENT = 0; + AnimationState.FIRST = 1; + AnimationState.DIP = 2; + AnimationState.DIP_MIX = 3; + return AnimationState; + }()); + spine.AnimationState = AnimationState; + var TrackEntry = (function () { + function TrackEntry() { + this.timelineData = new Array(); + this.timelineDipMix = new Array(); + this.timelinesRotation = new Array(); + } + TrackEntry.prototype.reset = function () { + this.next = null; + this.mixingFrom = null; + this.animation = null; + this.listener = null; + this.timelineData.length = 0; + this.timelineDipMix.length = 0; + this.timelinesRotation.length = 0; + }; + TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { + if (to != null) + mixingToArray.push(to); + var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; + if (to != null) + mixingToArray.pop(); + var mixingTo = mixingToArray; + var mixingToLast = mixingToArray.length - 1; + var timelines = this.animation.timelines; + var timelinesCount = this.animation.timelines.length; + var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); + this.timelineDipMix.length = 0; + var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); + outer: for (var i = 0; i < timelinesCount; i++) { + var id = timelines[i].getPropertyId(); + if (!propertyIDs.add(id)) + timelineData[i] = AnimationState.SUBSEQUENT; + else if (to == null || !to.hasTimeline(id)) + timelineData[i] = AnimationState.FIRST; + else { + for (var ii = mixingToLast; ii >= 0; ii--) { + var entry = mixingTo[ii]; + if (!entry.hasTimeline(id)) { + if (entry.mixDuration > 0) { + timelineData[i] = AnimationState.DIP_MIX; + timelineDipMix[i] = entry; + continue outer; + } + } + } + timelineData[i] = AnimationState.DIP; + } + } + return lastEntry; + }; + TrackEntry.prototype.hasTimeline = function (id) { + var timelines = this.animation.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + if (timelines[i].getPropertyId() == id) + return true; + return false; + }; + TrackEntry.prototype.getAnimationTime = function () { + if (this.loop) { + var duration = this.animationEnd - this.animationStart; + if (duration == 0) + return this.animationStart; + return (this.trackTime % duration) + this.animationStart; + } + return Math.min(this.trackTime + this.animationStart, this.animationEnd); + }; + TrackEntry.prototype.setAnimationLast = function (animationLast) { + this.animationLast = animationLast; + this.nextAnimationLast = animationLast; + }; + TrackEntry.prototype.isComplete = function () { + return this.trackTime >= this.animationEnd - this.animationStart; + }; + TrackEntry.prototype.resetRotationDirections = function () { + this.timelinesRotation.length = 0; + }; + return TrackEntry; + }()); + spine.TrackEntry = TrackEntry; + var EventQueue = (function () { + function EventQueue(animState) { + this.objects = []; + this.drainDisabled = false; + this.animState = animState; + } + EventQueue.prototype.start = function (entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.interrupt = function (entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); + }; + EventQueue.prototype.end = function (entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.dispose = function (entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); + }; + EventQueue.prototype.complete = function (entry) { + this.objects.push(EventType.complete); + this.objects.push(entry); + }; + EventQueue.prototype.event = function (entry, event) { + this.objects.push(EventType.event); + this.objects.push(entry); + this.objects.push(event); + }; + EventQueue.prototype.drain = function () { + if (this.drainDisabled) + return; + this.drainDisabled = true; + var objects = this.objects; + var listeners = this.animState.listeners; + for (var i = 0; i < objects.length; i += 2) { + var type = objects[i]; + var entry = objects[i + 1]; + switch (type) { + case EventType.start: + if (entry.listener != null && entry.listener.start) + entry.listener.start(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].start) + listeners[ii].start(entry); + break; + case EventType.interrupt: + if (entry.listener != null && entry.listener.interrupt) + entry.listener.interrupt(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].interrupt) + listeners[ii].interrupt(entry); + break; + case EventType.end: + if (entry.listener != null && entry.listener.end) + entry.listener.end(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].end) + listeners[ii].end(entry); + case EventType.dispose: + if (entry.listener != null && entry.listener.dispose) + entry.listener.dispose(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].dispose) + listeners[ii].dispose(entry); + this.animState.trackEntryPool.free(entry); + break; + case EventType.complete: + if (entry.listener != null && entry.listener.complete) + entry.listener.complete(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].complete) + listeners[ii].complete(entry); + break; + case EventType.event: + var event_3 = objects[i++ + 2]; + if (entry.listener != null && entry.listener.event) + entry.listener.event(entry, event_3); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].event) + listeners[ii].event(entry, event_3); + break; + } + } + this.clear(); + this.drainDisabled = false; + }; + EventQueue.prototype.clear = function () { + this.objects.length = 0; + }; + return EventQueue; + }()); + spine.EventQueue = EventQueue; + (function (EventType) { + EventType[EventType["start"] = 0] = "start"; + EventType[EventType["interrupt"] = 1] = "interrupt"; + EventType[EventType["end"] = 2] = "end"; + EventType[EventType["dispose"] = 3] = "dispose"; + EventType[EventType["complete"] = 4] = "complete"; + EventType[EventType["event"] = 5] = "event"; + })(spine.EventType || (spine.EventType = {})); + var EventType = spine.EventType; + var AnimationStateAdapter2 = (function () { + function AnimationStateAdapter2() { + } + AnimationStateAdapter2.prototype.start = function (entry) { + }; + AnimationStateAdapter2.prototype.interrupt = function (entry) { + }; + AnimationStateAdapter2.prototype.end = function (entry) { + }; + AnimationStateAdapter2.prototype.dispose = function (entry) { + }; + AnimationStateAdapter2.prototype.complete = function (entry) { + }; + AnimationStateAdapter2.prototype.event = function (entry, event) { + }; + return AnimationStateAdapter2; + }()); + spine.AnimationStateAdapter2 = AnimationStateAdapter2; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationStateData = (function () { - function AnimationStateData(skeletonData) { - this.animationToMixTime = {}; - this.defaultMix = 0; - if (skeletonData == null) - throw new Error("skeletonData cannot be null."); - this.skeletonData = skeletonData; - } - AnimationStateData.prototype.setMix = function (fromName, toName, duration) { - var from = this.skeletonData.findAnimation(fromName); - if (from == null) - throw new Error("Animation not found: " + fromName); - var to = this.skeletonData.findAnimation(toName); - if (to == null) - throw new Error("Animation not found: " + toName); - this.setMixWith(from, to, duration); - }; - AnimationStateData.prototype.setMixWith = function (from, to, duration) { - if (from == null) - throw new Error("from cannot be null."); - if (to == null) - throw new Error("to cannot be null."); - var key = from.name + to.name; - this.animationToMixTime[key] = duration; - }; - AnimationStateData.prototype.getMix = function (from, to) { - var key = from.name + to.name; - var value = this.animationToMixTime[key]; - return value === undefined ? this.defaultMix : value; - }; - return AnimationStateData; - }()); - spine.AnimationStateData = AnimationStateData; + var AnimationStateData = (function () { + function AnimationStateData(skeletonData) { + this.animationToMixTime = {}; + this.defaultMix = 0; + if (skeletonData == null) + throw new Error("skeletonData cannot be null."); + this.skeletonData = skeletonData; + } + AnimationStateData.prototype.setMix = function (fromName, toName, duration) { + var from = this.skeletonData.findAnimation(fromName); + if (from == null) + throw new Error("Animation not found: " + fromName); + var to = this.skeletonData.findAnimation(toName); + if (to == null) + throw new Error("Animation not found: " + toName); + this.setMixWith(from, to, duration); + }; + AnimationStateData.prototype.setMixWith = function (from, to, duration) { + if (from == null) + throw new Error("from cannot be null."); + if (to == null) + throw new Error("to cannot be null."); + var key = from.name + to.name; + this.animationToMixTime[key] = duration; + }; + AnimationStateData.prototype.getMix = function (from, to) { + var key = from.name + to.name; + var value = this.animationToMixTime[key]; + return value === undefined ? this.defaultMix : value; + }; + return AnimationStateData; + }()); + spine.AnimationStateData = AnimationStateData; })(spine || (spine = {})); var spine; (function (spine) { - var AssetManager = (function () { - function AssetManager(textureLoader, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.assets = {}; - this.errors = {}; - this.toLoad = 0; - this.loaded = 0; - this.textureLoader = textureLoader; - this.pathPrefix = pathPrefix; - } - AssetManager.prototype.loadText = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.assets[path] = request.responseText; - if (success) - success(path, request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - if (error) - error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); - } - _this.toLoad--; - _this.loaded++; - } - }; - request.open("GET", path, true); - request.send(); - }; - AssetManager.prototype.loadTexture = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = path; - }; - AssetManager.prototype.loadTextureData = function (path, data, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = data; - }; - AssetManager.prototype.get = function (path) { - path = this.pathPrefix + path; - return this.assets[path]; - }; - AssetManager.prototype.remove = function (path) { - path = this.pathPrefix + path; - var asset = this.assets[path]; - if (asset.dispose) - asset.dispose(); - this.assets[path] = null; - }; - AssetManager.prototype.removeAll = function () { - for (var key in this.assets) { - var asset = this.assets[key]; - if (asset.dispose) - asset.dispose(); - } - this.assets = {}; - }; - AssetManager.prototype.isLoadingComplete = function () { - return this.toLoad == 0; - }; - AssetManager.prototype.getToLoad = function () { - return this.toLoad; - }; - AssetManager.prototype.getLoaded = function () { - return this.loaded; - }; - AssetManager.prototype.dispose = function () { - this.removeAll(); - }; - AssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - AssetManager.prototype.getErrors = function () { - return this.errors; - }; - return AssetManager; - }()); - spine.AssetManager = AssetManager; + var AssetManager = (function () { + function AssetManager(textureLoader, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.assets = {}; + this.errors = {}; + this.toLoad = 0; + this.loaded = 0; + this.textureLoader = textureLoader; + this.pathPrefix = pathPrefix; + } + AssetManager.prototype.loadText = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.assets[path] = request.responseText; + if (success) + success(path, request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + if (error) + error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); + } + _this.toLoad--; + _this.loaded++; + } + }; + request.open("GET", path, true); + request.send(); + }; + AssetManager.prototype.loadTexture = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = path; + }; + AssetManager.prototype.loadTextureData = function (path, data, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = data; + }; + AssetManager.prototype.get = function (path) { + path = this.pathPrefix + path; + return this.assets[path]; + }; + AssetManager.prototype.remove = function (path) { + path = this.pathPrefix + path; + var asset = this.assets[path]; + if (asset.dispose) + asset.dispose(); + this.assets[path] = null; + }; + AssetManager.prototype.removeAll = function () { + for (var key in this.assets) { + var asset = this.assets[key]; + if (asset.dispose) + asset.dispose(); + } + this.assets = {}; + }; + AssetManager.prototype.isLoadingComplete = function () { + return this.toLoad == 0; + }; + AssetManager.prototype.getToLoad = function () { + return this.toLoad; + }; + AssetManager.prototype.getLoaded = function () { + return this.loaded; + }; + AssetManager.prototype.dispose = function () { + this.removeAll(); + }; + AssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + AssetManager.prototype.getErrors = function () { + return this.errors; + }; + return AssetManager; + }()); + spine.AssetManager = AssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var AtlasAttachmentLoader = (function () { - function AtlasAttachmentLoader(atlas) { - this.atlas = atlas; - } - AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.RegionAttachment(name); - attachment.setRegion(region); - return attachment; - }; - AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.MeshAttachment(name); - attachment.region = region; - return attachment; - }; - AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { - return new spine.BoundingBoxAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { - return new spine.PathAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { - return new spine.PointAttachment(name); - }; - AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { - return new spine.ClippingAttachment(name); - }; - return AtlasAttachmentLoader; - }()); - spine.AtlasAttachmentLoader = AtlasAttachmentLoader; + var AtlasAttachmentLoader = (function () { + function AtlasAttachmentLoader(atlas) { + this.atlas = atlas; + } + AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.RegionAttachment(name); + attachment.setRegion(region); + return attachment; + }; + AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.MeshAttachment(name); + attachment.region = region; + return attachment; + }; + AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { + return new spine.BoundingBoxAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { + return new spine.PathAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { + return new spine.PointAttachment(name); + }; + AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { + return new spine.ClippingAttachment(name); + }; + return AtlasAttachmentLoader; + }()); + spine.AtlasAttachmentLoader = AtlasAttachmentLoader; })(spine || (spine = {})); var spine; (function (spine) { - var Attachment = (function () { - function Attachment(name) { - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return Attachment; - }()); - spine.Attachment = Attachment; - var VertexAttachment = (function (_super) { - __extends(VertexAttachment, _super); - function VertexAttachment(name) { - _super.call(this, name); - this.worldVerticesLength = 0; - } - VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { - count = offset + (count >> 1) * stride; - var skeleton = slot.bone.skeleton; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices; - var bones = this.bones; - if (bones == null) { - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - var x = bone.worldX; - var y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { - var vx = vertices[v_1], vy = vertices[v_1 + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - } - return; - } - var v = 0, skip = 0; - for (var i = 0; i < start; i += 2) { - var n = bones[v]; - v += n + 1; - skip += n; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = offset, b = skip * 3; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - else { - var deform = deformArray; - for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3, f += 2) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - }; - VertexAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment; - }; - return VertexAttachment; - }(Attachment)); - spine.VertexAttachment = VertexAttachment; + var Attachment = (function () { + function Attachment(name) { + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return Attachment; + }()); + spine.Attachment = Attachment; + var VertexAttachment = (function (_super) { + __extends(VertexAttachment, _super); + function VertexAttachment(name) { + _super.call(this, name); + this.worldVerticesLength = 0; + } + VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { + count = offset + (count >> 1) * stride; + var skeleton = slot.bone.skeleton; + var deformArray = slot.attachmentVertices; + var vertices = this.vertices; + var bones = this.bones; + if (bones == null) { + if (deformArray.length > 0) + vertices = deformArray; + var bone = slot.bone; + var x = bone.worldX; + var y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { + var vx = vertices[v_1], vy = vertices[v_1 + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + } + return; + } + var v = 0, skip = 0; + for (var i = 0; i < start; i += 2) { + var n = bones[v]; + v += n + 1; + skip += n; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = offset, b = skip * 3; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + else { + var deform = deformArray; + for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3, f += 2) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + }; + VertexAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment; + }; + return VertexAttachment; + }(Attachment)); + spine.VertexAttachment = VertexAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (AttachmentType) { - AttachmentType[AttachmentType["Region"] = 0] = "Region"; - AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; - AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; - AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; - AttachmentType[AttachmentType["Path"] = 4] = "Path"; - AttachmentType[AttachmentType["Point"] = 5] = "Point"; - })(spine.AttachmentType || (spine.AttachmentType = {})); - var AttachmentType = spine.AttachmentType; + (function (AttachmentType) { + AttachmentType[AttachmentType["Region"] = 0] = "Region"; + AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; + AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; + AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; + AttachmentType[AttachmentType["Path"] = 4] = "Path"; + AttachmentType[AttachmentType["Point"] = 5] = "Point"; + })(spine.AttachmentType || (spine.AttachmentType = {})); + var AttachmentType = spine.AttachmentType; })(spine || (spine = {})); var spine; (function (spine) { - var BoundingBoxAttachment = (function (_super) { - __extends(BoundingBoxAttachment, _super); - function BoundingBoxAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - } - return BoundingBoxAttachment; - }(spine.VertexAttachment)); - spine.BoundingBoxAttachment = BoundingBoxAttachment; + var BoundingBoxAttachment = (function (_super) { + __extends(BoundingBoxAttachment, _super); + function BoundingBoxAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + } + return BoundingBoxAttachment; + }(spine.VertexAttachment)); + spine.BoundingBoxAttachment = BoundingBoxAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var ClippingAttachment = (function (_super) { - __extends(ClippingAttachment, _super); - function ClippingAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); - } - return ClippingAttachment; - }(spine.VertexAttachment)); - spine.ClippingAttachment = ClippingAttachment; + var ClippingAttachment = (function (_super) { + __extends(ClippingAttachment, _super); + function ClippingAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); + } + return ClippingAttachment; + }(spine.VertexAttachment)); + spine.ClippingAttachment = ClippingAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var MeshAttachment = (function (_super) { - __extends(MeshAttachment, _super); - function MeshAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - this.inheritDeform = false; - this.tempColor = new spine.Color(0, 0, 0, 0); - } - MeshAttachment.prototype.updateUVs = function () { - var u = 0, v = 0, width = 0, height = 0; - if (this.region == null) { - u = v = 0; - width = height = 1; - } - else { - u = this.region.u; - v = this.region.v; - width = this.region.u2 - u; - height = this.region.v2 - v; - } - var regionUVs = this.regionUVs; - if (this.uvs == null || this.uvs.length != regionUVs.length) - this.uvs = spine.Utils.newFloatArray(regionUVs.length); - var uvs = this.uvs; - if (this.region.rotate) { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i + 1] * width; - uvs[i + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i] * width; - uvs[i + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); - }; - MeshAttachment.prototype.getParentMesh = function () { - return this.parentMesh; - }; - MeshAttachment.prototype.setParentMesh = function (parentMesh) { - this.parentMesh = parentMesh; - if (parentMesh != null) { - this.bones = parentMesh.bones; - this.vertices = parentMesh.vertices; - this.worldVerticesLength = parentMesh.worldVerticesLength; - this.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - this.worldVerticesLength = parentMesh.worldVerticesLength; - } - }; - return MeshAttachment; - }(spine.VertexAttachment)); - spine.MeshAttachment = MeshAttachment; + var MeshAttachment = (function (_super) { + __extends(MeshAttachment, _super); + function MeshAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + this.inheritDeform = false; + this.tempColor = new spine.Color(0, 0, 0, 0); + } + MeshAttachment.prototype.updateUVs = function () { + var u = 0, v = 0, width = 0, height = 0; + if (this.region == null) { + u = v = 0; + width = height = 1; + } + else { + u = this.region.u; + v = this.region.v; + width = this.region.u2 - u; + height = this.region.v2 - v; + } + var regionUVs = this.regionUVs; + if (this.uvs == null || this.uvs.length != regionUVs.length) + this.uvs = spine.Utils.newFloatArray(regionUVs.length); + var uvs = this.uvs; + if (this.region.rotate) { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); + }; + MeshAttachment.prototype.getParentMesh = function () { + return this.parentMesh; + }; + MeshAttachment.prototype.setParentMesh = function (parentMesh) { + this.parentMesh = parentMesh; + if (parentMesh != null) { + this.bones = parentMesh.bones; + this.vertices = parentMesh.vertices; + this.worldVerticesLength = parentMesh.worldVerticesLength; + this.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + this.worldVerticesLength = parentMesh.worldVerticesLength; + } + }; + return MeshAttachment; + }(spine.VertexAttachment)); + spine.MeshAttachment = MeshAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PathAttachment = (function (_super) { - __extends(PathAttachment, _super); - function PathAttachment(name) { - _super.call(this, name); - this.closed = false; - this.constantSpeed = false; - this.color = new spine.Color(1, 1, 1, 1); - } - return PathAttachment; - }(spine.VertexAttachment)); - spine.PathAttachment = PathAttachment; + var PathAttachment = (function (_super) { + __extends(PathAttachment, _super); + function PathAttachment(name) { + _super.call(this, name); + this.closed = false; + this.constantSpeed = false; + this.color = new spine.Color(1, 1, 1, 1); + } + return PathAttachment; + }(spine.VertexAttachment)); + spine.PathAttachment = PathAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PointAttachment = (function (_super) { - __extends(PointAttachment, _super); - function PointAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.38, 0.94, 0, 1); - } - PointAttachment.prototype.computeWorldPosition = function (bone, point) { - point.x = this.x * bone.a + this.y * bone.b + bone.worldX; - point.y = this.x * bone.c + this.y * bone.d + bone.worldY; - return point; - }; - PointAttachment.prototype.computeWorldRotation = function (bone) { - var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); - var x = cos * bone.a + sin * bone.b; - var y = cos * bone.c + sin * bone.d; - return Math.atan2(y, x) * spine.MathUtils.radDeg; - }; - return PointAttachment; - }(spine.VertexAttachment)); - spine.PointAttachment = PointAttachment; + var PointAttachment = (function (_super) { + __extends(PointAttachment, _super); + function PointAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.38, 0.94, 0, 1); + } + PointAttachment.prototype.computeWorldPosition = function (bone, point) { + point.x = this.x * bone.a + this.y * bone.b + bone.worldX; + point.y = this.x * bone.c + this.y * bone.d + bone.worldY; + return point; + }; + PointAttachment.prototype.computeWorldRotation = function (bone) { + var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); + var x = cos * bone.a + sin * bone.b; + var y = cos * bone.c + sin * bone.d; + return Math.atan2(y, x) * spine.MathUtils.radDeg; + }; + return PointAttachment; + }(spine.VertexAttachment)); + spine.PointAttachment = PointAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var RegionAttachment = (function (_super) { - __extends(RegionAttachment, _super); - function RegionAttachment(name) { - _super.call(this, name); - this.x = 0; - this.y = 0; - this.scaleX = 1; - this.scaleY = 1; - this.rotation = 0; - this.width = 0; - this.height = 0; - this.color = new spine.Color(1, 1, 1, 1); - this.offset = spine.Utils.newFloatArray(8); - this.uvs = spine.Utils.newFloatArray(8); - this.tempColor = new spine.Color(1, 1, 1, 1); - } - RegionAttachment.prototype.updateOffset = function () { - var regionScaleX = this.width / this.region.originalWidth * this.scaleX; - var regionScaleY = this.height / this.region.originalHeight * this.scaleY; - var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; - var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; - var localX2 = localX + this.region.width * regionScaleX; - var localY2 = localY + this.region.height * regionScaleY; - var radians = this.rotation * Math.PI / 180; - var cos = Math.cos(radians); - var sin = Math.sin(radians); - var localXCos = localX * cos + this.x; - var localXSin = localX * sin; - var localYCos = localY * cos + this.y; - var localYSin = localY * sin; - var localX2Cos = localX2 * cos + this.x; - var localX2Sin = localX2 * sin; - var localY2Cos = localY2 * cos + this.y; - var localY2Sin = localY2 * sin; - var offset = this.offset; - offset[RegionAttachment.OX1] = localXCos - localYSin; - offset[RegionAttachment.OY1] = localYCos + localXSin; - offset[RegionAttachment.OX2] = localXCos - localY2Sin; - offset[RegionAttachment.OY2] = localY2Cos + localXSin; - offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; - offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; - offset[RegionAttachment.OX4] = localX2Cos - localYSin; - offset[RegionAttachment.OY4] = localYCos + localX2Sin; - }; - RegionAttachment.prototype.setRegion = function (region) { - this.region = region; - var uvs = this.uvs; - if (region.rotate) { - uvs[2] = region.u; - uvs[3] = region.v2; - uvs[4] = region.u; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v; - uvs[0] = region.u2; - uvs[1] = region.v2; - } - else { - uvs[0] = region.u; - uvs[1] = region.v2; - uvs[2] = region.u; - uvs[3] = region.v; - uvs[4] = region.u2; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v2; - } - }; - RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { - var vertexOffset = this.offset; - var x = bone.worldX, y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = vertexOffset[RegionAttachment.OX1]; - offsetY = vertexOffset[RegionAttachment.OY1]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX2]; - offsetY = vertexOffset[RegionAttachment.OY2]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX3]; - offsetY = vertexOffset[RegionAttachment.OY3]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX4]; - offsetY = vertexOffset[RegionAttachment.OY4]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - }; - RegionAttachment.OX1 = 0; - RegionAttachment.OY1 = 1; - RegionAttachment.OX2 = 2; - RegionAttachment.OY2 = 3; - RegionAttachment.OX3 = 4; - RegionAttachment.OY3 = 5; - RegionAttachment.OX4 = 6; - RegionAttachment.OY4 = 7; - RegionAttachment.X1 = 0; - RegionAttachment.Y1 = 1; - RegionAttachment.C1R = 2; - RegionAttachment.C1G = 3; - RegionAttachment.C1B = 4; - RegionAttachment.C1A = 5; - RegionAttachment.U1 = 6; - RegionAttachment.V1 = 7; - RegionAttachment.X2 = 8; - RegionAttachment.Y2 = 9; - RegionAttachment.C2R = 10; - RegionAttachment.C2G = 11; - RegionAttachment.C2B = 12; - RegionAttachment.C2A = 13; - RegionAttachment.U2 = 14; - RegionAttachment.V2 = 15; - RegionAttachment.X3 = 16; - RegionAttachment.Y3 = 17; - RegionAttachment.C3R = 18; - RegionAttachment.C3G = 19; - RegionAttachment.C3B = 20; - RegionAttachment.C3A = 21; - RegionAttachment.U3 = 22; - RegionAttachment.V3 = 23; - RegionAttachment.X4 = 24; - RegionAttachment.Y4 = 25; - RegionAttachment.C4R = 26; - RegionAttachment.C4G = 27; - RegionAttachment.C4B = 28; - RegionAttachment.C4A = 29; - RegionAttachment.U4 = 30; - RegionAttachment.V4 = 31; - return RegionAttachment; - }(spine.Attachment)); - spine.RegionAttachment = RegionAttachment; + var RegionAttachment = (function (_super) { + __extends(RegionAttachment, _super); + function RegionAttachment(name) { + _super.call(this, name); + this.x = 0; + this.y = 0; + this.scaleX = 1; + this.scaleY = 1; + this.rotation = 0; + this.width = 0; + this.height = 0; + this.color = new spine.Color(1, 1, 1, 1); + this.offset = spine.Utils.newFloatArray(8); + this.uvs = spine.Utils.newFloatArray(8); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.updateOffset = function () { + var regionScaleX = this.width / this.region.originalWidth * this.scaleX; + var regionScaleY = this.height / this.region.originalHeight * this.scaleY; + var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; + var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; + var localX2 = localX + this.region.width * regionScaleX; + var localY2 = localY + this.region.height * regionScaleY; + var radians = this.rotation * Math.PI / 180; + var cos = Math.cos(radians); + var sin = Math.sin(radians); + var localXCos = localX * cos + this.x; + var localXSin = localX * sin; + var localYCos = localY * cos + this.y; + var localYSin = localY * sin; + var localX2Cos = localX2 * cos + this.x; + var localX2Sin = localX2 * sin; + var localY2Cos = localY2 * cos + this.y; + var localY2Sin = localY2 * sin; + var offset = this.offset; + offset[RegionAttachment.OX1] = localXCos - localYSin; + offset[RegionAttachment.OY1] = localYCos + localXSin; + offset[RegionAttachment.OX2] = localXCos - localY2Sin; + offset[RegionAttachment.OY2] = localY2Cos + localXSin; + offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; + offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; + offset[RegionAttachment.OX4] = localX2Cos - localYSin; + offset[RegionAttachment.OY4] = localYCos + localX2Sin; + }; + RegionAttachment.prototype.setRegion = function (region) { + this.region = region; + var uvs = this.uvs; + if (region.rotate) { + uvs[2] = region.u; + uvs[3] = region.v2; + uvs[4] = region.u; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v; + uvs[0] = region.u2; + uvs[1] = region.v2; + } + else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; + } + }; + RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { + var vertexOffset = this.offset; + var x = bone.worldX, y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var offsetX = 0, offsetY = 0; + offsetX = vertexOffset[RegionAttachment.OX1]; + offsetY = vertexOffset[RegionAttachment.OY1]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX2]; + offsetY = vertexOffset[RegionAttachment.OY2]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX3]; + offsetY = vertexOffset[RegionAttachment.OY3]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX4]; + offsetY = vertexOffset[RegionAttachment.OY4]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + }; + RegionAttachment.OX1 = 0; + RegionAttachment.OY1 = 1; + RegionAttachment.OX2 = 2; + RegionAttachment.OY2 = 3; + RegionAttachment.OX3 = 4; + RegionAttachment.OY3 = 5; + RegionAttachment.OX4 = 6; + RegionAttachment.OY4 = 7; + RegionAttachment.X1 = 0; + RegionAttachment.Y1 = 1; + RegionAttachment.C1R = 2; + RegionAttachment.C1G = 3; + RegionAttachment.C1B = 4; + RegionAttachment.C1A = 5; + RegionAttachment.U1 = 6; + RegionAttachment.V1 = 7; + RegionAttachment.X2 = 8; + RegionAttachment.Y2 = 9; + RegionAttachment.C2R = 10; + RegionAttachment.C2G = 11; + RegionAttachment.C2B = 12; + RegionAttachment.C2A = 13; + RegionAttachment.U2 = 14; + RegionAttachment.V2 = 15; + RegionAttachment.X3 = 16; + RegionAttachment.Y3 = 17; + RegionAttachment.C3R = 18; + RegionAttachment.C3G = 19; + RegionAttachment.C3B = 20; + RegionAttachment.C3A = 21; + RegionAttachment.U3 = 22; + RegionAttachment.V3 = 23; + RegionAttachment.X4 = 24; + RegionAttachment.Y4 = 25; + RegionAttachment.C4R = 26; + RegionAttachment.C4G = 27; + RegionAttachment.C4B = 28; + RegionAttachment.C4A = 29; + RegionAttachment.U4 = 30; + RegionAttachment.V4 = 31; + return RegionAttachment; + }(spine.Attachment)); + spine.RegionAttachment = RegionAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (BlendMode) { - BlendMode[BlendMode["Normal"] = 0] = "Normal"; - BlendMode[BlendMode["Additive"] = 1] = "Additive"; - BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; - BlendMode[BlendMode["Screen"] = 3] = "Screen"; - })(spine.BlendMode || (spine.BlendMode = {})); - var BlendMode = spine.BlendMode; + (function (BlendMode) { + BlendMode[BlendMode["Normal"] = 0] = "Normal"; + BlendMode[BlendMode["Additive"] = 1] = "Additive"; + BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; + BlendMode[BlendMode["Screen"] = 3] = "Screen"; + })(spine.BlendMode || (spine.BlendMode = {})); + var BlendMode = spine.BlendMode; })(spine || (spine = {})); var spine; (function (spine) { - var Bone = (function () { - function Bone(data, skeleton, parent) { - this.children = new Array(); - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 0; - this.scaleY = 0; - this.shearX = 0; - this.shearY = 0; - this.ax = 0; - this.ay = 0; - this.arotation = 0; - this.ascaleX = 0; - this.ascaleY = 0; - this.ashearX = 0; - this.ashearY = 0; - this.appliedValid = false; - this.a = 0; - this.b = 0; - this.worldX = 0; - this.c = 0; - this.d = 0; - this.worldY = 0; - this.sorted = false; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.skeleton = skeleton; - this.parent = parent; - this.setToSetupPose(); - } - Bone.prototype.update = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransform = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { - this.ax = x; - this.ay = y; - this.arotation = rotation; - this.ascaleX = scaleX; - this.ascaleY = scaleY; - this.ashearX = shearX; - this.ashearY = shearY; - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - var skeleton = this.skeleton; - if (skeleton.flipX) { - x = -x; - la = -la; - lb = -lb; - } - if (skeleton.flipY) { - y = -y; - lc = -lc; - ld = -ld; - } - this.a = la; - this.b = lb; - this.c = lc; - this.d = ld; - this.worldX = x + skeleton.x; - this.worldY = y + skeleton.y; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - this.worldX = pa * x + pb * y + parent.worldX; - this.worldY = pc * x + pd * y + parent.worldY; - switch (this.data.transformMode) { - case spine.TransformMode.Normal: { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - return; - } - case spine.TransformMode.OnlyTranslation: { - var rotationY = rotation + 90 + shearY; - this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; - this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; - break; - } - case spine.TransformMode.NoRotationOrReflection: { - var s = pa * pa + pc * pc; - var prx = 0; - if (s > 0.0001) { - s = Math.abs(pa * pd - pb * pc) / s; - pb = pc * s; - pd = pa * s; - prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; - } - else { - pa = 0; - pc = 0; - prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; - } - var rx = rotation + shearX - prx; - var ry = rotation + shearY - prx + 90; - var la = spine.MathUtils.cosDeg(rx) * scaleX; - var lb = spine.MathUtils.cosDeg(ry) * scaleY; - var lc = spine.MathUtils.sinDeg(rx) * scaleX; - var ld = spine.MathUtils.sinDeg(ry) * scaleY; - this.a = pa * la - pb * lc; - this.b = pa * lb - pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - break; - } - case spine.TransformMode.NoScale: - case spine.TransformMode.NoScaleOrReflection: { - var cos = spine.MathUtils.cosDeg(rotation); - var sin = spine.MathUtils.sinDeg(rotation); - var za = pa * cos + pb * sin; - var zc = pc * cos + pd * sin; - var s = Math.sqrt(za * za + zc * zc); - if (s > 0.00001) - s = 1 / s; - za *= s; - zc *= s; - s = Math.sqrt(za * za + zc * zc); - var r = Math.PI / 2 + Math.atan2(zc, za); - var zb = Math.cos(r) * s; - var zd = Math.sin(r) * s; - var la = spine.MathUtils.cosDeg(shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; - var lc = spine.MathUtils.sinDeg(shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; - this.a = za * la + zb * lc; - this.b = za * lb + zb * ld; - this.c = zc * la + zd * lc; - this.d = zc * lb + zd * ld; - if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { - this.b = -this.b; - this.d = -this.d; - } - return; - } - } - if (this.skeleton.flipX) { - this.a = -this.a; - this.b = -this.b; - } - if (this.skeleton.flipY) { - this.c = -this.c; - this.d = -this.d; - } - }; - Bone.prototype.setToSetupPose = function () { - var data = this.data; - this.x = data.x; - this.y = data.y; - this.rotation = data.rotation; - this.scaleX = data.scaleX; - this.scaleY = data.scaleY; - this.shearX = data.shearX; - this.shearY = data.shearY; - }; - Bone.prototype.getWorldRotationX = function () { - return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldRotationY = function () { - return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldScaleX = function () { - return Math.sqrt(this.a * this.a + this.c * this.c); - }; - Bone.prototype.getWorldScaleY = function () { - return Math.sqrt(this.b * this.b + this.d * this.d); - }; - Bone.prototype.updateAppliedTransform = function () { - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - this.ax = this.worldX; - this.ay = this.worldY; - this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); - this.ashearX = 0; - this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - var pid = 1 / (pa * pd - pb * pc); - var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; - this.ax = (dx * pd * pid - dy * pb * pid); - this.ay = (dy * pa * pid - dx * pc * pid); - var ia = pid * pd; - var id = pid * pa; - var ib = pid * pb; - var ic = pid * pc; - var ra = ia * this.a - ib * this.c; - var rb = ia * this.b - ib * this.d; - var rc = id * this.c - ic * this.a; - var rd = id * this.d - ic * this.b; - this.ashearX = 0; - this.ascaleX = Math.sqrt(ra * ra + rc * rc); - if (this.ascaleX > 0.0001) { - var det = ra * rd - rb * rc; - this.ascaleY = det / this.ascaleX; - this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; - this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; - } - else { - this.ascaleX = 0; - this.ascaleY = Math.sqrt(rb * rb + rd * rd); - this.ashearY = 0; - this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; - } - }; - Bone.prototype.worldToLocal = function (world) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var invDet = 1 / (a * d - b * c); - var x = world.x - this.worldX, y = world.y - this.worldY; - world.x = (x * d * invDet - y * b * invDet); - world.y = (y * a * invDet - x * c * invDet); - return world; - }; - Bone.prototype.localToWorld = function (local) { - var x = local.x, y = local.y; - local.x = x * this.a + y * this.b + this.worldX; - local.y = x * this.c + y * this.d + this.worldY; - return local; - }; - Bone.prototype.worldToLocalRotation = function (worldRotation) { - var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); - return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; - }; - Bone.prototype.localToWorldRotation = function (localRotation) { - var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); - return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.rotateWorld = function (degrees) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); - this.a = cos * a - sin * c; - this.b = cos * b - sin * d; - this.c = sin * a + cos * c; - this.d = sin * b + cos * d; - this.appliedValid = false; - }; - return Bone; - }()); - spine.Bone = Bone; + var Bone = (function () { + function Bone(data, skeleton, parent) { + this.children = new Array(); + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 0; + this.scaleY = 0; + this.shearX = 0; + this.shearY = 0; + this.ax = 0; + this.ay = 0; + this.arotation = 0; + this.ascaleX = 0; + this.ascaleY = 0; + this.ashearX = 0; + this.ashearY = 0; + this.appliedValid = false; + this.a = 0; + this.b = 0; + this.worldX = 0; + this.c = 0; + this.d = 0; + this.worldY = 0; + this.sorted = false; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.skeleton = skeleton; + this.parent = parent; + this.setToSetupPose(); + } + Bone.prototype.update = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransform = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { + this.ax = x; + this.ay = y; + this.arotation = rotation; + this.ascaleX = scaleX; + this.ascaleY = scaleY; + this.ashearX = shearX; + this.ashearY = shearY; + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + var skeleton = this.skeleton; + if (skeleton.flipX) { + x = -x; + la = -la; + lb = -lb; + } + if (skeleton.flipY) { + y = -y; + lc = -lc; + ld = -ld; + } + this.a = la; + this.b = lb; + this.c = lc; + this.d = ld; + this.worldX = x + skeleton.x; + this.worldY = y + skeleton.y; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + this.worldX = pa * x + pb * y + parent.worldX; + this.worldY = pc * x + pd * y + parent.worldY; + switch (this.data.transformMode) { + case spine.TransformMode.Normal: { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + this.a = pa * la + pb * lc; + this.b = pa * lb + pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + return; + } + case spine.TransformMode.OnlyTranslation: { + var rotationY = rotation + 90 + shearY; + this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; + this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; + break; + } + case spine.TransformMode.NoRotationOrReflection: { + var s = pa * pa + pc * pc; + var prx = 0; + if (s > 0.0001) { + s = Math.abs(pa * pd - pb * pc) / s; + pb = pc * s; + pd = pa * s; + prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; + } + else { + pa = 0; + pc = 0; + prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; + } + var rx = rotation + shearX - prx; + var ry = rotation + shearY - prx + 90; + var la = spine.MathUtils.cosDeg(rx) * scaleX; + var lb = spine.MathUtils.cosDeg(ry) * scaleY; + var lc = spine.MathUtils.sinDeg(rx) * scaleX; + var ld = spine.MathUtils.sinDeg(ry) * scaleY; + this.a = pa * la - pb * lc; + this.b = pa * lb - pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + break; + } + case spine.TransformMode.NoScale: + case spine.TransformMode.NoScaleOrReflection: { + var cos = spine.MathUtils.cosDeg(rotation); + var sin = spine.MathUtils.sinDeg(rotation); + var za = pa * cos + pb * sin; + var zc = pc * cos + pd * sin; + var s = Math.sqrt(za * za + zc * zc); + if (s > 0.00001) + s = 1 / s; + za *= s; + zc *= s; + s = Math.sqrt(za * za + zc * zc); + var r = Math.PI / 2 + Math.atan2(zc, za); + var zb = Math.cos(r) * s; + var zd = Math.sin(r) * s; + var la = spine.MathUtils.cosDeg(shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; + var lc = spine.MathUtils.sinDeg(shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; + this.a = za * la + zb * lc; + this.b = za * lb + zb * ld; + this.c = zc * la + zd * lc; + this.d = zc * lb + zd * ld; + if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { + this.b = -this.b; + this.d = -this.d; + } + return; + } + } + if (this.skeleton.flipX) { + this.a = -this.a; + this.b = -this.b; + } + if (this.skeleton.flipY) { + this.c = -this.c; + this.d = -this.d; + } + }; + Bone.prototype.setToSetupPose = function () { + var data = this.data; + this.x = data.x; + this.y = data.y; + this.rotation = data.rotation; + this.scaleX = data.scaleX; + this.scaleY = data.scaleY; + this.shearX = data.shearX; + this.shearY = data.shearY; + }; + Bone.prototype.getWorldRotationX = function () { + return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldRotationY = function () { + return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldScaleX = function () { + return Math.sqrt(this.a * this.a + this.c * this.c); + }; + Bone.prototype.getWorldScaleY = function () { + return Math.sqrt(this.b * this.b + this.d * this.d); + }; + Bone.prototype.updateAppliedTransform = function () { + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + this.ax = this.worldX; + this.ay = this.worldY; + this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); + this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); + this.ashearX = 0; + this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + var pid = 1 / (pa * pd - pb * pc); + var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; + this.ax = (dx * pd * pid - dy * pb * pid); + this.ay = (dy * pa * pid - dx * pc * pid); + var ia = pid * pd; + var id = pid * pa; + var ib = pid * pb; + var ic = pid * pc; + var ra = ia * this.a - ib * this.c; + var rb = ia * this.b - ib * this.d; + var rc = id * this.c - ic * this.a; + var rd = id * this.d - ic * this.b; + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { + var det = ra * rd - rb * rc; + this.ascaleY = det / this.ascaleX; + this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; + this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; + } + else { + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; + } + }; + Bone.prototype.worldToLocal = function (world) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var invDet = 1 / (a * d - b * c); + var x = world.x - this.worldX, y = world.y - this.worldY; + world.x = (x * d * invDet - y * b * invDet); + world.y = (y * a * invDet - x * c * invDet); + return world; + }; + Bone.prototype.localToWorld = function (local) { + var x = local.x, y = local.y; + local.x = x * this.a + y * this.b + this.worldX; + local.y = x * this.c + y * this.d + this.worldY; + return local; + }; + Bone.prototype.worldToLocalRotation = function (worldRotation) { + var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); + return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; + }; + Bone.prototype.localToWorldRotation = function (localRotation) { + var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); + return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.rotateWorld = function (degrees) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); + this.a = cos * a - sin * c; + this.b = cos * b - sin * d; + this.c = sin * a + cos * c; + this.d = sin * b + cos * d; + this.appliedValid = false; + }; + return Bone; + }()); + spine.Bone = Bone; })(spine || (spine = {})); var spine; (function (spine) { - var BoneData = (function () { - function BoneData(index, name, parent) { - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 1; - this.scaleY = 1; - this.shearX = 0; - this.shearY = 0; - this.transformMode = TransformMode.Normal; - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - this.index = index; - this.name = name; - this.parent = parent; - } - return BoneData; - }()); - spine.BoneData = BoneData; - (function (TransformMode) { - TransformMode[TransformMode["Normal"] = 0] = "Normal"; - TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; - TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; - TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; - TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; - })(spine.TransformMode || (spine.TransformMode = {})); - var TransformMode = spine.TransformMode; + var BoneData = (function () { + function BoneData(index, name, parent) { + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 1; + this.scaleY = 1; + this.shearX = 0; + this.shearY = 0; + this.transformMode = TransformMode.Normal; + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + this.index = index; + this.name = name; + this.parent = parent; + } + return BoneData; + }()); + spine.BoneData = BoneData; + (function (TransformMode) { + TransformMode[TransformMode["Normal"] = 0] = "Normal"; + TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; + TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; + TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; + TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; + })(spine.TransformMode || (spine.TransformMode = {})); + var TransformMode = spine.TransformMode; })(spine || (spine = {})); var spine; (function (spine) { - var Event = (function () { - function Event(time, data) { - if (data == null) - throw new Error("data cannot be null."); - this.time = time; - this.data = data; - } - return Event; - }()); - spine.Event = Event; + var Event = (function () { + function Event(time, data) { + if (data == null) + throw new Error("data cannot be null."); + this.time = time; + this.data = data; + } + return Event; + }()); + spine.Event = Event; })(spine || (spine = {})); var spine; (function (spine) { - var EventData = (function () { - function EventData(name) { - this.name = name; - } - return EventData; - }()); - spine.EventData = EventData; + var EventData = (function () { + function EventData(name) { + this.name = name; + } + return EventData; + }()); + spine.EventData = EventData; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraint = (function () { - function IkConstraint(data, skeleton) { - this.mix = 1; - this.bendDirection = 0; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.mix = data.mix; - this.bendDirection = data.bendDirection; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - IkConstraint.prototype.getOrder = function () { - return this.data.order; - }; - IkConstraint.prototype.apply = function () { - this.update(); - }; - IkConstraint.prototype.update = function () { - var target = this.target; - var bones = this.bones; - switch (bones.length) { - case 1: - this.apply1(bones[0], target.worldX, target.worldY, this.mix); - break; - case 2: - this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); - break; - } - }; - IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var p = bone.parent; - var id = 1 / (p.a * p.d - p.b * p.c); - var x = targetX - p.worldX, y = targetY - p.worldY; - var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; - var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; - if (bone.ascaleX < 0) - rotationIK += 180; - if (rotationIK > 180) - rotationIK -= 360; - else if (rotationIK < -180) - rotationIK += 360; - bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); - }; - IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { - if (alpha == 0) { - child.updateWorldTransform(); - return; - } - if (!parent.appliedValid) - parent.updateAppliedTransform(); - if (!child.appliedValid) - child.updateAppliedTransform(); - var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; - var os1 = 0, os2 = 0, s2 = 0; - if (psx < 0) { - psx = -psx; - os1 = 180; - s2 = -1; - } - else { - os1 = 0; - s2 = 1; - } - if (psy < 0) { - psy = -psy; - s2 = -s2; - } - if (csx < 0) { - csx = -csx; - os2 = 180; - } - else - os2 = 0; - var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; - var u = Math.abs(psx - psy) <= 0.0001; - if (!u) { - cy = 0; - cwx = a * cx + parent.worldX; - cwy = c * cx + parent.worldY; - } - else { - cy = child.ay; - cwx = a * cx + b * cy + parent.worldX; - cwy = c * cx + d * cy + parent.worldY; - } - var pp = parent.parent; - a = pp.a; - b = pp.b; - c = pp.c; - d = pp.d; - var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; - var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; - x = cwx - pp.worldX; - y = cwy - pp.worldY; - var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; - var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; - outer: if (u) { - l2 *= psx; - var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); - if (cos < -1) - cos = -1; - else if (cos > 1) - cos = 1; - a2 = Math.acos(cos) * bendDir; - a = l1 + l2 * cos; - b = l2 * Math.sin(a2); - a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); - } - else { - a = psx * l2; - b = psy * l2; - var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); - c = bb * l1 * l1 + aa * dd - aa * bb; - var c1 = -2 * bb * l1, c2 = bb - aa; - d = c1 * c1 - 4 * c2 * c; - if (d >= 0) { - var q = Math.sqrt(d); - if (c1 < 0) - q = -q; - q = -(c1 + q) / 2; - var r0 = q / c2, r1 = c / q; - var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; - if (r * r <= dd) { - y = Math.sqrt(dd - r * r) * bendDir; - a1 = ta - Math.atan2(y, r); - a2 = Math.atan2(y / psy, (r - l1) / psx); - break outer; - } - } - var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; - var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; - c = -a * l1 / (aa - bb); - if (c >= -1 && c <= 1) { - c = Math.acos(c); - x = a * Math.cos(c) + l1; - y = b * Math.sin(c); - d = x * x + y * y; - if (d < minDist) { - minAngle = c; - minDist = d; - minX = x; - minY = y; - } - if (d > maxDist) { - maxAngle = c; - maxDist = d; - maxX = x; - maxY = y; - } - } - if (dd <= (minDist + maxDist) / 2) { - a1 = ta - Math.atan2(minY * bendDir, minX); - a2 = minAngle * bendDir; - } - else { - a1 = ta - Math.atan2(maxY * bendDir, maxX); - a2 = maxAngle * bendDir; - } - } - var os = Math.atan2(cy, cx) * s2; - var rotation = parent.arotation; - a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; - if (a1 > 180) - a1 -= 360; - else if (a1 < -180) - a1 += 360; - parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); - rotation = child.arotation; - a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; - if (a2 > 180) - a2 -= 360; - else if (a2 < -180) - a2 += 360; - child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); - }; - return IkConstraint; - }()); - spine.IkConstraint = IkConstraint; + var IkConstraint = (function () { + function IkConstraint(data, skeleton) { + this.mix = 1; + this.bendDirection = 0; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.mix = data.mix; + this.bendDirection = data.bendDirection; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + IkConstraint.prototype.getOrder = function () { + return this.data.order; + }; + IkConstraint.prototype.apply = function () { + this.update(); + }; + IkConstraint.prototype.update = function () { + var target = this.target; + var bones = this.bones; + switch (bones.length) { + case 1: + this.apply1(bones[0], target.worldX, target.worldY, this.mix); + break; + case 2: + this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); + break; + } + }; + IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var p = bone.parent; + var id = 1 / (p.a * p.d - p.b * p.c); + var x = targetX - p.worldX, y = targetY - p.worldY; + var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; + var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; + if (bone.ascaleX < 0) + rotationIK += 180; + if (rotationIK > 180) + rotationIK -= 360; + else if (rotationIK < -180) + rotationIK += 360; + bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); + }; + IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { + if (alpha == 0) { + child.updateWorldTransform(); + return; + } + if (!parent.appliedValid) + parent.updateAppliedTransform(); + if (!child.appliedValid) + child.updateAppliedTransform(); + var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; + var os1 = 0, os2 = 0, s2 = 0; + if (psx < 0) { + psx = -psx; + os1 = 180; + s2 = -1; + } + else { + os1 = 0; + s2 = 1; + } + if (psy < 0) { + psy = -psy; + s2 = -s2; + } + if (csx < 0) { + csx = -csx; + os2 = 180; + } + else + os2 = 0; + var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + var u = Math.abs(psx - psy) <= 0.0001; + if (!u) { + cy = 0; + cwx = a * cx + parent.worldX; + cwy = c * cx + parent.worldY; + } + else { + cy = child.ay; + cwx = a * cx + b * cy + parent.worldX; + cwy = c * cx + d * cy + parent.worldY; + } + var pp = parent.parent; + a = pp.a; + b = pp.b; + c = pp.c; + d = pp.d; + var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; + var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; + x = cwx - pp.worldX; + y = cwy - pp.worldY; + var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; + var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; + outer: if (u) { + l2 *= psx; + var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); + if (cos < -1) + cos = -1; + else if (cos > 1) + cos = 1; + a2 = Math.acos(cos) * bendDir; + a = l1 + l2 * cos; + b = l2 * Math.sin(a2); + a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); + } + else { + a = psx * l2; + b = psy * l2; + var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); + c = bb * l1 * l1 + aa * dd - aa * bb; + var c1 = -2 * bb * l1, c2 = bb - aa; + d = c1 * c1 - 4 * c2 * c; + if (d >= 0) { + var q = Math.sqrt(d); + if (c1 < 0) + q = -q; + q = -(c1 + q) / 2; + var r0 = q / c2, r1 = c / q; + var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; + if (r * r <= dd) { + y = Math.sqrt(dd - r * r) * bendDir; + a1 = ta - Math.atan2(y, r); + a2 = Math.atan2(y / psy, (r - l1) / psx); + break outer; + } + } + var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; + var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } + } + if (dd <= (minDist + maxDist) / 2) { + a1 = ta - Math.atan2(minY * bendDir, minX); + a2 = minAngle * bendDir; + } + else { + a1 = ta - Math.atan2(maxY * bendDir, maxX); + a2 = maxAngle * bendDir; + } + } + var os = Math.atan2(cy, cx) * s2; + var rotation = parent.arotation; + a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; + if (a1 > 180) + a1 -= 360; + else if (a1 < -180) + a1 += 360; + parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); + rotation = child.arotation; + a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; + if (a2 > 180) + a2 -= 360; + else if (a2 < -180) + a2 += 360; + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); + }; + return IkConstraint; + }()); + spine.IkConstraint = IkConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraintData = (function () { - function IkConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.bendDirection = 1; - this.mix = 1; - this.name = name; - } - return IkConstraintData; - }()); - spine.IkConstraintData = IkConstraintData; + var IkConstraintData = (function () { + function IkConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.bendDirection = 1; + this.mix = 1; + this.name = name; + } + return IkConstraintData; + }()); + spine.IkConstraintData = IkConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraint = (function () { - function PathConstraint(data, skeleton) { - this.position = 0; - this.spacing = 0; - this.rotateMix = 0; - this.translateMix = 0; - this.spaces = new Array(); - this.positions = new Array(); - this.world = new Array(); - this.curves = new Array(); - this.lengths = new Array(); - this.segments = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0, n = data.bones.length; i < n; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findSlot(data.target.name); - this.position = data.position; - this.spacing = data.spacing; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - } - PathConstraint.prototype.apply = function () { - this.update(); - }; - PathConstraint.prototype.update = function () { - var attachment = this.target.getAttachment(); - if (!(attachment instanceof spine.PathAttachment)) - return; - var rotateMix = this.rotateMix, translateMix = this.translateMix; - var translate = translateMix > 0, rotate = rotateMix > 0; - if (!translate && !rotate) - return; - var data = this.data; - var spacingMode = data.spacingMode; - var lengthSpacing = spacingMode == spine.SpacingMode.Length; - var rotateMode = data.rotateMode; - var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; - var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; - var bones = this.bones; - var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; - var spacing = this.spacing; - if (scale || lengthSpacing) { - if (scale) - lengths = spine.Utils.setArraySize(this.lengths, boneCount); - for (var i = 0, n = spacesCount - 1; i < n;) { - var bone = bones[i]; - var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; - var length_1 = Math.sqrt(x * x + y * y); - if (scale) - lengths[i] = length_1; - spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; - } - } - else { - for (var i = 1; i < spacesCount; i++) - spaces[i] = spacing; - } - var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); - var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - var tip = false; - if (offsetRotation == 0) - tip = rotateMode == spine.RotateMode.Chain; - else { - tip = false; - var p = this.target.bone; - offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - } - for (var i = 0, p = 3; i < boneCount; i++, p += 3) { - var bone = bones[i]; - bone.worldX += (boneX - bone.worldX) * translateMix; - bone.worldY += (boneY - bone.worldY) * translateMix; - var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; - if (scale) { - var length_2 = lengths[i]; - if (length_2 != 0) { - var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; - bone.a *= s; - bone.c *= s; - } - } - boneX = x; - boneY = y; - if (rotate) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; - if (tangents) - r = positions[p - 1]; - else if (spaces[i + 1] == 0) - r = positions[p + 2]; - else - r = Math.atan2(dy, dx); - r -= Math.atan2(c, a); - if (tip) { - cos = Math.cos(r); - sin = Math.sin(r); - var length_3 = bone.data.length; - boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; - boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; - } - else { - r += offsetRotation; - } - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - cos = Math.cos(r); - sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - } - bone.appliedValid = false; - } - }; - PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { - var target = this.target; - var position = this.position; - var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; - var closed = path.closed; - var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; - if (!path.constantSpeed) { - var lengths = path.lengths; - curveCount -= closed ? 1 : 2; - var pathLength_1 = lengths[curveCount]; - if (percentPosition) - position *= pathLength_1; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength_1; - } - world = spine.Utils.setArraySize(this.world, 8); - for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength_1; - if (p < 0) - p += pathLength_1; - curve = 0; - } - else if (p < 0) { - if (prevCurve != PathConstraint.BEFORE) { - prevCurve = PathConstraint.BEFORE; - path.computeWorldVertices(target, 2, 4, world, 0, 2); - } - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength_1) { - if (prevCurve != PathConstraint.AFTER) { - prevCurve = PathConstraint.AFTER; - path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); - } - this.addAfterPosition(p - pathLength_1, world, 0, out, o); - continue; - } - for (;; curve++) { - var length_4 = lengths[curve]; - if (p > length_4) - continue; - if (curve == 0) - p /= length_4; - else { - var prev = lengths[curve - 1]; - p = (p - prev) / (length_4 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - if (closed && curve == curveCount) { - path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); - path.computeWorldVertices(target, 0, 4, world, 4, 2); - } - else - path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); - } - this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); - } - return out; - } - if (closed) { - verticesLength += 2; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); - path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); - world[verticesLength - 2] = world[0]; - world[verticesLength - 1] = world[1]; - } - else { - curveCount--; - verticesLength -= 4; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); - } - var curves = spine.Utils.setArraySize(this.curves, curveCount); - var pathLength = 0; - var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; - var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; - for (var i = 0, w = 2; i < curveCount; i++, w += 6) { - cx1 = world[w]; - cy1 = world[w + 1]; - cx2 = world[w + 2]; - cy2 = world[w + 3]; - x2 = world[w + 4]; - y2 = world[w + 5]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; - tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - curves[i] = pathLength; - x1 = x2; - y1 = y2; - } - if (percentPosition) - position *= pathLength; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength; - } - var segments = this.segments; - var curveLength = 0; - for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength; - if (p < 0) - p += pathLength; - curve = 0; - } - else if (p < 0) { - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength) { - this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); - continue; - } - for (;; curve++) { - var length_5 = curves[curve]; - if (p > length_5) - continue; - if (curve == 0) - p /= length_5; - else { - var prev = curves[curve - 1]; - p = (p - prev) / (length_5 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - var ii = curve * 6; - x1 = world[ii]; - y1 = world[ii + 1]; - cx1 = world[ii + 2]; - cy1 = world[ii + 3]; - cx2 = world[ii + 4]; - cy2 = world[ii + 5]; - x2 = world[ii + 6]; - y2 = world[ii + 7]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.03; - tmpy = (y1 - cy1 * 2 + cy2) * 0.03; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; - curveLength = Math.sqrt(dfx * dfx + dfy * dfy); - segments[0] = curveLength; - for (ii = 1; ii < 8; ii++) { - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[ii] = curveLength; - } - dfx += ddfx; - dfy += ddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[8] = curveLength; - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[9] = curveLength; - segment = 0; - } - p *= curveLength; - for (;; segment++) { - var length_6 = segments[segment]; - if (p > length_6) - continue; - if (segment == 0) - p /= length_6; - else { - var prev = segments[segment - 1]; - p = segment + (p - prev) / (length_6 - prev); - } - break; - } - this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); - } - return out; - }; - PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { - var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { - var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { - if (p == 0 || isNaN(p)) - p = 0.0001; - var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; - var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; - var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; - out[o] = x; - out[o + 1] = y; - if (tangents) - out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); - }; - PathConstraint.prototype.getOrder = function () { - return this.data.order; - }; - PathConstraint.NONE = -1; - PathConstraint.BEFORE = -2; - PathConstraint.AFTER = -3; - return PathConstraint; - }()); - spine.PathConstraint = PathConstraint; + var PathConstraint = (function () { + function PathConstraint(data, skeleton) { + this.position = 0; + this.spacing = 0; + this.rotateMix = 0; + this.translateMix = 0; + this.spaces = new Array(); + this.positions = new Array(); + this.world = new Array(); + this.curves = new Array(); + this.lengths = new Array(); + this.segments = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0, n = data.bones.length; i < n; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findSlot(data.target.name); + this.position = data.position; + this.spacing = data.spacing; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + } + PathConstraint.prototype.apply = function () { + this.update(); + }; + PathConstraint.prototype.update = function () { + var attachment = this.target.getAttachment(); + if (!(attachment instanceof spine.PathAttachment)) + return; + var rotateMix = this.rotateMix, translateMix = this.translateMix; + var translate = translateMix > 0, rotate = rotateMix > 0; + if (!translate && !rotate) + return; + var data = this.data; + var spacingMode = data.spacingMode; + var lengthSpacing = spacingMode == spine.SpacingMode.Length; + var rotateMode = data.rotateMode; + var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; + var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; + var bones = this.bones; + var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; + var spacing = this.spacing; + if (scale || lengthSpacing) { + if (scale) + lengths = spine.Utils.setArraySize(this.lengths, boneCount); + for (var i = 0, n = spacesCount - 1; i < n;) { + var bone = bones[i]; + var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; + var length_1 = Math.sqrt(x * x + y * y); + if (scale) + lengths[i] = length_1; + spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; + } + } + else { + for (var i = 1; i < spacesCount; i++) + spaces[i] = spacing; + } + var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); + var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; + var tip = false; + if (offsetRotation == 0) + tip = rotateMode == spine.RotateMode.Chain; + else { + tip = false; + var p = this.target.bone; + offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + } + for (var i = 0, p = 3; i < boneCount; i++, p += 3) { + var bone = bones[i]; + bone.worldX += (boneX - bone.worldX) * translateMix; + bone.worldY += (boneY - bone.worldY) * translateMix; + var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; + if (scale) { + var length_2 = lengths[i]; + if (length_2 != 0) { + var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; + bone.a *= s; + bone.c *= s; + } + } + boneX = x; + boneY = y; + if (rotate) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; + if (tangents) + r = positions[p - 1]; + else if (spaces[i + 1] == 0) + r = positions[p + 2]; + else + r = Math.atan2(dy, dx); + r -= Math.atan2(c, a); + if (tip) { + cos = Math.cos(r); + sin = Math.sin(r); + var length_3 = bone.data.length; + boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; + boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; + } + else { + r += offsetRotation; + } + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + cos = Math.cos(r); + sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + bone.appliedValid = false; + } + }; + PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { + var target = this.target; + var position = this.position; + var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; + var closed = path.closed; + var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; + if (!path.constantSpeed) { + var lengths = path.lengths; + curveCount -= closed ? 1 : 2; + var pathLength_1 = lengths[curveCount]; + if (percentPosition) + position *= pathLength_1; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength_1; + } + world = spine.Utils.setArraySize(this.world, 8); + for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength_1; + if (p < 0) + p += pathLength_1; + curve = 0; + } + else if (p < 0) { + if (prevCurve != PathConstraint.BEFORE) { + prevCurve = PathConstraint.BEFORE; + path.computeWorldVertices(target, 2, 4, world, 0, 2); + } + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength_1) { + if (prevCurve != PathConstraint.AFTER) { + prevCurve = PathConstraint.AFTER; + path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); + } + this.addAfterPosition(p - pathLength_1, world, 0, out, o); + continue; + } + for (;; curve++) { + var length_4 = lengths[curve]; + if (p > length_4) + continue; + if (curve == 0) + p /= length_4; + else { + var prev = lengths[curve - 1]; + p = (p - prev) / (length_4 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + if (closed && curve == curveCount) { + path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); + path.computeWorldVertices(target, 0, 4, world, 4, 2); + } + else + path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); + } + this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); + } + return out; + } + if (closed) { + verticesLength += 2; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); + path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); + world[verticesLength - 2] = world[0]; + world[verticesLength - 1] = world[1]; + } + else { + curveCount--; + verticesLength -= 4; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); + } + var curves = spine.Utils.setArraySize(this.curves, curveCount); + var pathLength = 0; + var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; + var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; + for (var i = 0, w = 2; i < curveCount; i++, w += 6) { + cx1 = world[w]; + cy1 = world[w + 1]; + cx2 = world[w + 2]; + cy2 = world[w + 3]; + x2 = world[w + 4]; + y2 = world[w + 5]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; + tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + curves[i] = pathLength; + x1 = x2; + y1 = y2; + } + if (percentPosition) + position *= pathLength; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength; + } + var segments = this.segments; + var curveLength = 0; + for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength; + if (p < 0) + p += pathLength; + curve = 0; + } + else if (p < 0) { + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength) { + this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); + continue; + } + for (;; curve++) { + var length_5 = curves[curve]; + if (p > length_5) + continue; + if (curve == 0) + p /= length_5; + else { + var prev = curves[curve - 1]; + p = (p - prev) / (length_5 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + var ii = curve * 6; + x1 = world[ii]; + y1 = world[ii + 1]; + cx1 = world[ii + 2]; + cy1 = world[ii + 3]; + cx2 = world[ii + 4]; + cy2 = world[ii + 5]; + x2 = world[ii + 6]; + y2 = world[ii + 7]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.03; + tmpy = (y1 - cy1 * 2 + cy2) * 0.03; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; + curveLength = Math.sqrt(dfx * dfx + dfy * dfy); + segments[0] = curveLength; + for (ii = 1; ii < 8; ii++) { + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[ii] = curveLength; + } + dfx += ddfx; + dfy += ddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[8] = curveLength; + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[9] = curveLength; + segment = 0; + } + p *= curveLength; + for (;; segment++) { + var length_6 = segments[segment]; + if (p > length_6) + continue; + if (segment == 0) + p /= length_6; + else { + var prev = segments[segment - 1]; + p = segment + (p - prev) / (length_6 - prev); + } + break; + } + this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); + } + return out; + }; + PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { + var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { + var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { + if (p == 0 || isNaN(p)) + p = 0.0001; + var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; + var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; + var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; + out[o] = x; + out[o + 1] = y; + if (tangents) + out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); + }; + PathConstraint.prototype.getOrder = function () { + return this.data.order; + }; + PathConstraint.NONE = -1; + PathConstraint.BEFORE = -2; + PathConstraint.AFTER = -3; + return PathConstraint; + }()); + spine.PathConstraint = PathConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraintData = (function () { - function PathConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.name = name; - } - return PathConstraintData; - }()); - spine.PathConstraintData = PathConstraintData; - (function (PositionMode) { - PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; - PositionMode[PositionMode["Percent"] = 1] = "Percent"; - })(spine.PositionMode || (spine.PositionMode = {})); - var PositionMode = spine.PositionMode; - (function (SpacingMode) { - SpacingMode[SpacingMode["Length"] = 0] = "Length"; - SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; - SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; - })(spine.SpacingMode || (spine.SpacingMode = {})); - var SpacingMode = spine.SpacingMode; - (function (RotateMode) { - RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; - RotateMode[RotateMode["Chain"] = 1] = "Chain"; - RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; - })(spine.RotateMode || (spine.RotateMode = {})); - var RotateMode = spine.RotateMode; + var PathConstraintData = (function () { + function PathConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.name = name; + } + return PathConstraintData; + }()); + spine.PathConstraintData = PathConstraintData; + (function (PositionMode) { + PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; + PositionMode[PositionMode["Percent"] = 1] = "Percent"; + })(spine.PositionMode || (spine.PositionMode = {})); + var PositionMode = spine.PositionMode; + (function (SpacingMode) { + SpacingMode[SpacingMode["Length"] = 0] = "Length"; + SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; + SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; + })(spine.SpacingMode || (spine.SpacingMode = {})); + var SpacingMode = spine.SpacingMode; + (function (RotateMode) { + RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; + RotateMode[RotateMode["Chain"] = 1] = "Chain"; + RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; + })(spine.RotateMode || (spine.RotateMode = {})); + var RotateMode = spine.RotateMode; })(spine || (spine = {})); var spine; (function (spine) { - var Assets = (function () { - function Assets(clientId) { - this.toLoad = new Array(); - this.assets = {}; - this.clientId = clientId; - } - Assets.prototype.loaded = function () { - var i = 0; - for (var v in this.assets) - i++; - return i; - }; - return Assets; - }()); - var SharedAssetManager = (function () { - function SharedAssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.clientAssets = {}; - this.queuedAssets = {}; - this.rawAssets = {}; - this.errors = {}; - this.pathPrefix = pathPrefix; - } - SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) { - clientAssets = new Assets(clientId); - this.clientAssets[clientId] = clientAssets; - } - if (textureLoader !== null) - clientAssets.textureLoader = textureLoader; - clientAssets.toLoad.push(path); - if (this.queuedAssets[path] === path) { - return false; - } - else { - this.queuedAssets[path] = path; - return true; - } - }; - SharedAssetManager.prototype.loadText = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = request.responseText; - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadJson = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = JSON.parse(request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, textureLoader, path)) - return; - var img = new Image(); - img.src = path; - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - _this.rawAssets[path] = img; - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - }; - }; - SharedAssetManager.prototype.get = function (clientId, path) { - path = this.pathPrefix + path; - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - return clientAssets.assets[path]; - }; - SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { - for (var i = 0; i < clientAssets.toLoad.length; i++) { - var path = clientAssets.toLoad[i]; - var asset = clientAssets.assets[path]; - if (asset === null || asset === undefined) { - var rawAsset = this.rawAssets[path]; - if (rawAsset === null || rawAsset === undefined) - continue; - if (rawAsset instanceof HTMLImageElement) { - clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); - } - else { - clientAssets.assets[path] = rawAsset; - } - } - } - }; - SharedAssetManager.prototype.isLoadingComplete = function (clientId) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - this.updateClientAssets(clientAssets); - return clientAssets.toLoad.length == clientAssets.loaded(); - }; - SharedAssetManager.prototype.dispose = function () { - }; - SharedAssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - SharedAssetManager.prototype.getErrors = function () { - return this.errors; - }; - return SharedAssetManager; - }()); - spine.SharedAssetManager = SharedAssetManager; + var Assets = (function () { + function Assets(clientId) { + this.toLoad = new Array(); + this.assets = {}; + this.clientId = clientId; + } + Assets.prototype.loaded = function () { + var i = 0; + for (var v in this.assets) + i++; + return i; + }; + return Assets; + }()); + var SharedAssetManager = (function () { + function SharedAssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.clientAssets = {}; + this.queuedAssets = {}; + this.rawAssets = {}; + this.errors = {}; + this.pathPrefix = pathPrefix; + } + SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) { + clientAssets = new Assets(clientId); + this.clientAssets[clientId] = clientAssets; + } + if (textureLoader !== null) + clientAssets.textureLoader = textureLoader; + clientAssets.toLoad.push(path); + if (this.queuedAssets[path] === path) { + return false; + } + else { + this.queuedAssets[path] = path; + return true; + } + }; + SharedAssetManager.prototype.loadText = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = request.responseText; + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadJson = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = JSON.parse(request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, textureLoader, path)) + return; + var img = new Image(); + img.src = path; + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + _this.rawAssets[path] = img; + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + }; + }; + SharedAssetManager.prototype.get = function (clientId, path) { + path = this.pathPrefix + path; + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + return clientAssets.assets[path]; + }; + SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { + for (var i = 0; i < clientAssets.toLoad.length; i++) { + var path = clientAssets.toLoad[i]; + var asset = clientAssets.assets[path]; + if (asset === null || asset === undefined) { + var rawAsset = this.rawAssets[path]; + if (rawAsset === null || rawAsset === undefined) + continue; + if (rawAsset instanceof HTMLImageElement) { + clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); + } + else { + clientAssets.assets[path] = rawAsset; + } + } + } + }; + SharedAssetManager.prototype.isLoadingComplete = function (clientId) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + this.updateClientAssets(clientAssets); + return clientAssets.toLoad.length == clientAssets.loaded(); + }; + SharedAssetManager.prototype.dispose = function () { + }; + SharedAssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + SharedAssetManager.prototype.getErrors = function () { + return this.errors; + }; + return SharedAssetManager; + }()); + spine.SharedAssetManager = SharedAssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var Skeleton = (function () { - function Skeleton(data) { - this._updateCache = new Array(); - this.updateCacheReset = new Array(); - this.time = 0; - this.flipX = false; - this.flipY = false; - this.x = 0; - this.y = 0; - if (data == null) - throw new Error("data cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) { - var boneData = data.bones[i]; - var bone = void 0; - if (boneData.parent == null) - bone = new spine.Bone(boneData, this, null); - else { - var parent_1 = this.bones[boneData.parent.index]; - bone = new spine.Bone(boneData, this, parent_1); - parent_1.children.push(bone); - } - this.bones.push(bone); - } - this.slots = new Array(); - this.drawOrder = new Array(); - for (var i = 0; i < data.slots.length; i++) { - var slotData = data.slots[i]; - var bone = this.bones[slotData.boneData.index]; - var slot = new spine.Slot(slotData, bone); - this.slots.push(slot); - this.drawOrder.push(slot); - } - this.ikConstraints = new Array(); - for (var i = 0; i < data.ikConstraints.length; i++) { - var ikConstraintData = data.ikConstraints[i]; - this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); - } - this.transformConstraints = new Array(); - for (var i = 0; i < data.transformConstraints.length; i++) { - var transformConstraintData = data.transformConstraints[i]; - this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); - } - this.pathConstraints = new Array(); - for (var i = 0; i < data.pathConstraints.length; i++) { - var pathConstraintData = data.pathConstraints[i]; - this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); - } - this.color = new spine.Color(1, 1, 1, 1); - this.updateCache(); - } - Skeleton.prototype.updateCache = function () { - var updateCache = this._updateCache; - updateCache.length = 0; - this.updateCacheReset.length = 0; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].sorted = false; - var ikConstraints = this.ikConstraints; - var transformConstraints = this.transformConstraints; - var pathConstraints = this.pathConstraints; - var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; - var constraintCount = ikCount + transformCount + pathCount; - outer: for (var i = 0; i < constraintCount; i++) { - for (var ii = 0; ii < ikCount; ii++) { - var constraint = ikConstraints[ii]; - if (constraint.data.order == i) { - this.sortIkConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < transformCount; ii++) { - var constraint = transformConstraints[ii]; - if (constraint.data.order == i) { - this.sortTransformConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < pathCount; ii++) { - var constraint = pathConstraints[ii]; - if (constraint.data.order == i) { - this.sortPathConstraint(constraint); - continue outer; - } - } - } - for (var i = 0, n = bones.length; i < n; i++) - this.sortBone(bones[i]); - }; - Skeleton.prototype.sortIkConstraint = function (constraint) { - var target = constraint.target; - this.sortBone(target); - var constrained = constraint.bones; - var parent = constrained[0]; - this.sortBone(parent); - if (constrained.length > 1) { - var child = constrained[constrained.length - 1]; - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - this._updateCache.push(constraint); - this.sortReset(parent.children); - constrained[constrained.length - 1].sorted = true; - }; - Skeleton.prototype.sortPathConstraint = function (constraint) { - var slot = constraint.target; - var slotIndex = slot.data.index; - var slotBone = slot.bone; - if (this.skin != null) - this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); - if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) - this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); - for (var i = 0, n = this.data.skins.length; i < n; i++) - this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); - var attachment = slot.getAttachment(); - if (attachment instanceof spine.PathAttachment) - this.sortPathConstraintAttachmentWith(attachment, slotBone); - var constrained = constraint.bones; - var boneCount = constrained.length; - for (var i = 0; i < boneCount; i++) - this.sortBone(constrained[i]); - this._updateCache.push(constraint); - for (var i = 0; i < boneCount; i++) - this.sortReset(constrained[i].children); - for (var i = 0; i < boneCount; i++) - constrained[i].sorted = true; - }; - Skeleton.prototype.sortTransformConstraint = function (constraint) { - this.sortBone(constraint.target); - var constrained = constraint.bones; - var boneCount = constrained.length; - if (constraint.data.local) { - for (var i = 0; i < boneCount; i++) { - var child = constrained[i]; - this.sortBone(child.parent); - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - } - else { - for (var i = 0; i < boneCount; i++) { - this.sortBone(constrained[i]); - } - } - this._updateCache.push(constraint); - for (var ii = 0; ii < boneCount; ii++) - this.sortReset(constrained[ii].children); - for (var ii = 0; ii < boneCount; ii++) - constrained[ii].sorted = true; - }; - Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { - var attachments = skin.attachments[slotIndex]; - if (!attachments) - return; - for (var key in attachments) { - this.sortPathConstraintAttachmentWith(attachments[key], slotBone); - } - }; - Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { - if (!(attachment instanceof spine.PathAttachment)) - return; - var pathBones = attachment.bones; - if (pathBones == null) - this.sortBone(slotBone); - else { - var bones = this.bones; - var i = 0; - while (i < pathBones.length) { - var boneCount = pathBones[i++]; - for (var n = i + boneCount; i < n; i++) { - var boneIndex = pathBones[i]; - this.sortBone(bones[boneIndex]); - } - } - } - }; - Skeleton.prototype.sortBone = function (bone) { - if (bone.sorted) - return; - var parent = bone.parent; - if (parent != null) - this.sortBone(parent); - bone.sorted = true; - this._updateCache.push(bone); - }; - Skeleton.prototype.sortReset = function (bones) { - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.sorted) - this.sortReset(bone.children); - bone.sorted = false; - } - }; - Skeleton.prototype.updateWorldTransform = function () { - var updateCacheReset = this.updateCacheReset; - for (var i = 0, n = updateCacheReset.length; i < n; i++) { - var bone = updateCacheReset[i]; - bone.ax = bone.x; - bone.ay = bone.y; - bone.arotation = bone.rotation; - bone.ascaleX = bone.scaleX; - bone.ascaleY = bone.scaleY; - bone.ashearX = bone.shearX; - bone.ashearY = bone.shearY; - bone.appliedValid = true; - } - var updateCache = this._updateCache; - for (var i = 0, n = updateCache.length; i < n; i++) - updateCache[i].update(); - }; - Skeleton.prototype.setToSetupPose = function () { - this.setBonesToSetupPose(); - this.setSlotsToSetupPose(); - }; - Skeleton.prototype.setBonesToSetupPose = function () { - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].setToSetupPose(); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - constraint.bendDirection = constraint.data.bendDirection; - constraint.mix = constraint.data.mix; - } - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - var data = constraint.data; - constraint.position = data.position; - constraint.spacing = data.spacing; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - } - }; - Skeleton.prototype.setSlotsToSetupPose = function () { - var slots = this.slots; - spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); - for (var i = 0, n = slots.length; i < n; i++) - slots[i].setToSetupPose(); - }; - Skeleton.prototype.getRootBone = function () { - if (this.bones.length == 0) - return null; - return this.bones[0]; - }; - Skeleton.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.data.name == boneName) - return bone; - } - return null; - }; - Skeleton.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].data.name == boneName) - return i; - return -1; - }; - Skeleton.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) - return slot; - } - return null; - }; - Skeleton.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].data.name == slotName) - return i; - return -1; - }; - Skeleton.prototype.setSkinByName = function (skinName) { - var skin = this.data.findSkin(skinName); - if (skin == null) - throw new Error("Skin not found: " + skinName); - this.setSkin(skin); - }; - Skeleton.prototype.setSkin = function (newSkin) { - if (newSkin != null) { - if (this.skin != null) - newSkin.attachAll(this, this.skin); - else { - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var name_1 = slot.data.attachmentName; - if (name_1 != null) { - var attachment = newSkin.getAttachment(i, name_1); - if (attachment != null) - slot.setAttachment(attachment); - } - } - } - } - this.skin = newSkin; - }; - Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { - return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); - }; - Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { - if (attachmentName == null) - throw new Error("attachmentName cannot be null."); - if (this.skin != null) { - var attachment = this.skin.getAttachment(slotIndex, attachmentName); - if (attachment != null) - return attachment; - } - if (this.data.defaultSkin != null) - return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); - return null; - }; - Skeleton.prototype.setAttachment = function (slotName, attachmentName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) { - var attachment = null; - if (attachmentName != null) { - attachment = this.getAttachment(i, attachmentName); - if (attachment == null) - throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); - } - slot.setAttachment(attachment); - return; - } - } - throw new Error("Slot not found: " + slotName); - }; - Skeleton.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var ikConstraint = ikConstraints[i]; - if (ikConstraint.data.name == constraintName) - return ikConstraint; - } - return null; - }; - Skeleton.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.getBounds = function (offset, size, temp) { - if (offset == null) - throw new Error("offset cannot be null."); - if (size == null) - throw new Error("size cannot be null."); - var drawOrder = this.drawOrder; - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var verticesLength = 0; - var vertices = null; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.RegionAttachment) { - verticesLength = 8; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - attachment.computeWorldVertices(slot.bone, vertices, 0, 2); - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - verticesLength = mesh.worldVerticesLength; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); - } - if (vertices != null) { - for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { - var x = vertices[ii], y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - } - offset.set(minX, minY); - size.set(maxX - minX, maxY - minY); - }; - Skeleton.prototype.update = function (delta) { - this.time += delta; - }; - return Skeleton; - }()); - spine.Skeleton = Skeleton; + var Skeleton = (function () { + function Skeleton(data) { + this._updateCache = new Array(); + this.updateCacheReset = new Array(); + this.time = 0; + this.flipX = false; + this.flipY = false; + this.x = 0; + this.y = 0; + if (data == null) + throw new Error("data cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) { + var boneData = data.bones[i]; + var bone = void 0; + if (boneData.parent == null) + bone = new spine.Bone(boneData, this, null); + else { + var parent_1 = this.bones[boneData.parent.index]; + bone = new spine.Bone(boneData, this, parent_1); + parent_1.children.push(bone); + } + this.bones.push(bone); + } + this.slots = new Array(); + this.drawOrder = new Array(); + for (var i = 0; i < data.slots.length; i++) { + var slotData = data.slots[i]; + var bone = this.bones[slotData.boneData.index]; + var slot = new spine.Slot(slotData, bone); + this.slots.push(slot); + this.drawOrder.push(slot); + } + this.ikConstraints = new Array(); + for (var i = 0; i < data.ikConstraints.length; i++) { + var ikConstraintData = data.ikConstraints[i]; + this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); + } + this.transformConstraints = new Array(); + for (var i = 0; i < data.transformConstraints.length; i++) { + var transformConstraintData = data.transformConstraints[i]; + this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); + } + this.pathConstraints = new Array(); + for (var i = 0; i < data.pathConstraints.length; i++) { + var pathConstraintData = data.pathConstraints[i]; + this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); + } + this.color = new spine.Color(1, 1, 1, 1); + this.updateCache(); + } + Skeleton.prototype.updateCache = function () { + var updateCache = this._updateCache; + updateCache.length = 0; + this.updateCacheReset.length = 0; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].sorted = false; + var ikConstraints = this.ikConstraints; + var transformConstraints = this.transformConstraints; + var pathConstraints = this.pathConstraints; + var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; + var constraintCount = ikCount + transformCount + pathCount; + outer: for (var i = 0; i < constraintCount; i++) { + for (var ii = 0; ii < ikCount; ii++) { + var constraint = ikConstraints[ii]; + if (constraint.data.order == i) { + this.sortIkConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < transformCount; ii++) { + var constraint = transformConstraints[ii]; + if (constraint.data.order == i) { + this.sortTransformConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < pathCount; ii++) { + var constraint = pathConstraints[ii]; + if (constraint.data.order == i) { + this.sortPathConstraint(constraint); + continue outer; + } + } + } + for (var i = 0, n = bones.length; i < n; i++) + this.sortBone(bones[i]); + }; + Skeleton.prototype.sortIkConstraint = function (constraint) { + var target = constraint.target; + this.sortBone(target); + var constrained = constraint.bones; + var parent = constrained[0]; + this.sortBone(parent); + if (constrained.length > 1) { + var child = constrained[constrained.length - 1]; + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + this._updateCache.push(constraint); + this.sortReset(parent.children); + constrained[constrained.length - 1].sorted = true; + }; + Skeleton.prototype.sortPathConstraint = function (constraint) { + var slot = constraint.target; + var slotIndex = slot.data.index; + var slotBone = slot.bone; + if (this.skin != null) + this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); + if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) + this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); + for (var i = 0, n = this.data.skins.length; i < n; i++) + this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); + var attachment = slot.getAttachment(); + if (attachment instanceof spine.PathAttachment) + this.sortPathConstraintAttachmentWith(attachment, slotBone); + var constrained = constraint.bones; + var boneCount = constrained.length; + for (var i = 0; i < boneCount; i++) + this.sortBone(constrained[i]); + this._updateCache.push(constraint); + for (var i = 0; i < boneCount; i++) + this.sortReset(constrained[i].children); + for (var i = 0; i < boneCount; i++) + constrained[i].sorted = true; + }; + Skeleton.prototype.sortTransformConstraint = function (constraint) { + this.sortBone(constraint.target); + var constrained = constraint.bones; + var boneCount = constrained.length; + if (constraint.data.local) { + for (var i = 0; i < boneCount; i++) { + var child = constrained[i]; + this.sortBone(child.parent); + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + } + else { + for (var i = 0; i < boneCount; i++) { + this.sortBone(constrained[i]); + } + } + this._updateCache.push(constraint); + for (var ii = 0; ii < boneCount; ii++) + this.sortReset(constrained[ii].children); + for (var ii = 0; ii < boneCount; ii++) + constrained[ii].sorted = true; + }; + Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { + var attachments = skin.attachments[slotIndex]; + if (!attachments) + return; + for (var key in attachments) { + this.sortPathConstraintAttachmentWith(attachments[key], slotBone); + } + }; + Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { + if (!(attachment instanceof spine.PathAttachment)) + return; + var pathBones = attachment.bones; + if (pathBones == null) + this.sortBone(slotBone); + else { + var bones = this.bones; + var i = 0; + while (i < pathBones.length) { + var boneCount = pathBones[i++]; + for (var n = i + boneCount; i < n; i++) { + var boneIndex = pathBones[i]; + this.sortBone(bones[boneIndex]); + } + } + } + }; + Skeleton.prototype.sortBone = function (bone) { + if (bone.sorted) + return; + var parent = bone.parent; + if (parent != null) + this.sortBone(parent); + bone.sorted = true; + this._updateCache.push(bone); + }; + Skeleton.prototype.sortReset = function (bones) { + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.sorted) + this.sortReset(bone.children); + bone.sorted = false; + } + }; + Skeleton.prototype.updateWorldTransform = function () { + var updateCacheReset = this.updateCacheReset; + for (var i = 0, n = updateCacheReset.length; i < n; i++) { + var bone = updateCacheReset[i]; + bone.ax = bone.x; + bone.ay = bone.y; + bone.arotation = bone.rotation; + bone.ascaleX = bone.scaleX; + bone.ascaleY = bone.scaleY; + bone.ashearX = bone.shearX; + bone.ashearY = bone.shearY; + bone.appliedValid = true; + } + var updateCache = this._updateCache; + for (var i = 0, n = updateCache.length; i < n; i++) + updateCache[i].update(); + }; + Skeleton.prototype.setToSetupPose = function () { + this.setBonesToSetupPose(); + this.setSlotsToSetupPose(); + }; + Skeleton.prototype.setBonesToSetupPose = function () { + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].setToSetupPose(); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + constraint.bendDirection = constraint.data.bendDirection; + constraint.mix = constraint.data.mix; + } + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + var data = constraint.data; + constraint.position = data.position; + constraint.spacing = data.spacing; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + } + }; + Skeleton.prototype.setSlotsToSetupPose = function () { + var slots = this.slots; + spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); + for (var i = 0, n = slots.length; i < n; i++) + slots[i].setToSetupPose(); + }; + Skeleton.prototype.getRootBone = function () { + if (this.bones.length == 0) + return null; + return this.bones[0]; + }; + Skeleton.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.data.name == boneName) + return bone; + } + return null; + }; + Skeleton.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].data.name == boneName) + return i; + return -1; + }; + Skeleton.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) + return slot; + } + return null; + }; + Skeleton.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].data.name == slotName) + return i; + return -1; + }; + Skeleton.prototype.setSkinByName = function (skinName) { + var skin = this.data.findSkin(skinName); + if (skin == null) + throw new Error("Skin not found: " + skinName); + this.setSkin(skin); + }; + Skeleton.prototype.setSkin = function (newSkin) { + if (newSkin != null) { + if (this.skin != null) + newSkin.attachAll(this, this.skin); + else { + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var name_1 = slot.data.attachmentName; + if (name_1 != null) { + var attachment = newSkin.getAttachment(i, name_1); + if (attachment != null) + slot.setAttachment(attachment); + } + } + } + } + this.skin = newSkin; + }; + Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { + return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); + }; + Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { + if (attachmentName == null) + throw new Error("attachmentName cannot be null."); + if (this.skin != null) { + var attachment = this.skin.getAttachment(slotIndex, attachmentName); + if (attachment != null) + return attachment; + } + if (this.data.defaultSkin != null) + return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); + return null; + }; + Skeleton.prototype.setAttachment = function (slotName, attachmentName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) { + var attachment = null; + if (attachmentName != null) { + attachment = this.getAttachment(i, attachmentName); + if (attachment == null) + throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); + } + slot.setAttachment(attachment); + return; + } + } + throw new Error("Slot not found: " + slotName); + }; + Skeleton.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var ikConstraint = ikConstraints[i]; + if (ikConstraint.data.name == constraintName) + return ikConstraint; + } + return null; + }; + Skeleton.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.getBounds = function (offset, size, temp) { + if (offset == null) + throw new Error("offset cannot be null."); + if (size == null) + throw new Error("size cannot be null."); + var drawOrder = this.drawOrder; + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var verticesLength = 0; + var vertices = null; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.RegionAttachment) { + verticesLength = 8; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + attachment.computeWorldVertices(slot.bone, vertices, 0, 2); + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + verticesLength = mesh.worldVerticesLength; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); + } + if (vertices != null) { + for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { + var x = vertices[ii], y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + } + offset.set(minX, minY); + size.set(maxX - minX, maxY - minY); + }; + Skeleton.prototype.update = function (delta) { + this.time += delta; + }; + return Skeleton; + }()); + spine.Skeleton = Skeleton; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonBounds = (function () { - function SkeletonBounds() { - this.minX = 0; - this.minY = 0; - this.maxX = 0; - this.maxY = 0; - this.boundingBoxes = new Array(); - this.polygons = new Array(); - this.polygonPool = new spine.Pool(function () { - return spine.Utils.newFloatArray(16); - }); - } - SkeletonBounds.prototype.update = function (skeleton, updateAabb) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - var boundingBoxes = this.boundingBoxes; - var polygons = this.polygons; - var polygonPool = this.polygonPool; - var slots = skeleton.slots; - var slotCount = slots.length; - boundingBoxes.length = 0; - polygonPool.freeAll(polygons); - polygons.length = 0; - for (var i = 0; i < slotCount; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.BoundingBoxAttachment) { - var boundingBox = attachment; - boundingBoxes.push(boundingBox); - var polygon = polygonPool.obtain(); - if (polygon.length != boundingBox.worldVerticesLength) { - polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); - } - polygons.push(polygon); - boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); - } - } - if (updateAabb) { - this.aabbCompute(); - } - else { - this.minX = Number.POSITIVE_INFINITY; - this.minY = Number.POSITIVE_INFINITY; - this.maxX = Number.NEGATIVE_INFINITY; - this.maxY = Number.NEGATIVE_INFINITY; - } - }; - SkeletonBounds.prototype.aabbCompute = function () { - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) { - var polygon = polygons[i]; - var vertices = polygon; - for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { - var x = vertices[ii]; - var y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - this.minX = minX; - this.minY = minY; - this.maxX = maxX; - this.maxY = maxY; - }; - SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { - return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; - }; - SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { - var minX = this.minX; - var minY = this.minY; - var maxX = this.maxX; - var maxY = this.maxY; - if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) - return false; - var m = (y2 - y1) / (x2 - x1); - var y = m * (minX - x1) + y1; - if (y > minY && y < maxY) - return true; - y = m * (maxX - x1) + y1; - if (y > minY && y < maxY) - return true; - var x = (minY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - x = (maxY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - return false; - }; - SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { - return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; - }; - SkeletonBounds.prototype.containsPoint = function (x, y) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.containsPointPolygon(polygons[i], x, y)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { - var vertices = polygon; - var nn = polygon.length; - var prevIndex = nn - 2; - var inside = false; - for (var ii = 0; ii < nn; ii += 2) { - var vertexY = vertices[ii + 1]; - var prevY = vertices[prevIndex + 1]; - if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { - var vertexX = vertices[ii]; - if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) - inside = !inside; - } - prevIndex = ii; - } - return inside; - }; - SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { - var vertices = polygon; - var nn = polygon.length; - var width12 = x1 - x2, height12 = y1 - y2; - var det1 = x1 * y2 - y1 * x2; - var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; - for (var ii = 0; ii < nn; ii += 2) { - var x4 = vertices[ii], y4 = vertices[ii + 1]; - var det2 = x3 * y4 - y3 * x4; - var width34 = x3 - x4, height34 = y3 - y4; - var det3 = width12 * height34 - height12 * width34; - var x = (det1 * width34 - width12 * det2) / det3; - if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { - var y = (det1 * height34 - height12 * det2) / det3; - if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) - return true; - } - x3 = x4; - y3 = y4; - } - return false; - }; - SkeletonBounds.prototype.getPolygon = function (boundingBox) { - if (boundingBox == null) - throw new Error("boundingBox cannot be null."); - var index = this.boundingBoxes.indexOf(boundingBox); - return index == -1 ? null : this.polygons[index]; - }; - SkeletonBounds.prototype.getWidth = function () { - return this.maxX - this.minX; - }; - SkeletonBounds.prototype.getHeight = function () { - return this.maxY - this.minY; - }; - return SkeletonBounds; - }()); - spine.SkeletonBounds = SkeletonBounds; + var SkeletonBounds = (function () { + function SkeletonBounds() { + this.minX = 0; + this.minY = 0; + this.maxX = 0; + this.maxY = 0; + this.boundingBoxes = new Array(); + this.polygons = new Array(); + this.polygonPool = new spine.Pool(function () { + return spine.Utils.newFloatArray(16); + }); + } + SkeletonBounds.prototype.update = function (skeleton, updateAabb) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + var boundingBoxes = this.boundingBoxes; + var polygons = this.polygons; + var polygonPool = this.polygonPool; + var slots = skeleton.slots; + var slotCount = slots.length; + boundingBoxes.length = 0; + polygonPool.freeAll(polygons); + polygons.length = 0; + for (var i = 0; i < slotCount; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.BoundingBoxAttachment) { + var boundingBox = attachment; + boundingBoxes.push(boundingBox); + var polygon = polygonPool.obtain(); + if (polygon.length != boundingBox.worldVerticesLength) { + polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); + } + polygons.push(polygon); + boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); + } + } + if (updateAabb) { + this.aabbCompute(); + } + else { + this.minX = Number.POSITIVE_INFINITY; + this.minY = Number.POSITIVE_INFINITY; + this.maxX = Number.NEGATIVE_INFINITY; + this.maxY = Number.NEGATIVE_INFINITY; + } + }; + SkeletonBounds.prototype.aabbCompute = function () { + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) { + var polygon = polygons[i]; + var vertices = polygon; + for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { + var x = vertices[ii]; + var y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + this.minX = minX; + this.minY = minY; + this.maxX = maxX; + this.maxY = maxY; + }; + SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { + return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; + }; + SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { + var minX = this.minX; + var minY = this.minY; + var maxX = this.maxX; + var maxY = this.maxY; + if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) + return false; + var m = (y2 - y1) / (x2 - x1); + var y = m * (minX - x1) + y1; + if (y > minY && y < maxY) + return true; + y = m * (maxX - x1) + y1; + if (y > minY && y < maxY) + return true; + var x = (minY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + x = (maxY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + return false; + }; + SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { + return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; + }; + SkeletonBounds.prototype.containsPoint = function (x, y) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.containsPointPolygon(polygons[i], x, y)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { + var vertices = polygon; + var nn = polygon.length; + var prevIndex = nn - 2; + var inside = false; + for (var ii = 0; ii < nn; ii += 2) { + var vertexY = vertices[ii + 1]; + var prevY = vertices[prevIndex + 1]; + if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { + var vertexX = vertices[ii]; + if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) + inside = !inside; + } + prevIndex = ii; + } + return inside; + }; + SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { + var vertices = polygon; + var nn = polygon.length; + var width12 = x1 - x2, height12 = y1 - y2; + var det1 = x1 * y2 - y1 * x2; + var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; + for (var ii = 0; ii < nn; ii += 2) { + var x4 = vertices[ii], y4 = vertices[ii + 1]; + var det2 = x3 * y4 - y3 * x4; + var width34 = x3 - x4, height34 = y3 - y4; + var det3 = width12 * height34 - height12 * width34; + var x = (det1 * width34 - width12 * det2) / det3; + if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { + var y = (det1 * height34 - height12 * det2) / det3; + if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) + return true; + } + x3 = x4; + y3 = y4; + } + return false; + }; + SkeletonBounds.prototype.getPolygon = function (boundingBox) { + if (boundingBox == null) + throw new Error("boundingBox cannot be null."); + var index = this.boundingBoxes.indexOf(boundingBox); + return index == -1 ? null : this.polygons[index]; + }; + SkeletonBounds.prototype.getWidth = function () { + return this.maxX - this.minX; + }; + SkeletonBounds.prototype.getHeight = function () { + return this.maxY - this.minY; + }; + return SkeletonBounds; + }()); + spine.SkeletonBounds = SkeletonBounds; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonClipping = (function () { - function SkeletonClipping() { - this.triangulator = new spine.Triangulator(); - this.clippingPolygon = new Array(); - this.clipOutput = new Array(); - this.clippedVertices = new Array(); - this.clippedTriangles = new Array(); - this.scratch = new Array(); - } - SkeletonClipping.prototype.clipStart = function (slot, clip) { - if (this.clipAttachment != null) - return 0; - this.clipAttachment = clip; - var n = clip.worldVerticesLength; - var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); - clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); - var clippingPolygon = this.clippingPolygon; - SkeletonClipping.makeClockwise(clippingPolygon); - var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); - for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { - var polygon = clippingPolygons[i]; - SkeletonClipping.makeClockwise(polygon); - polygon.push(polygon[0]); - polygon.push(polygon[1]); - } - return clippingPolygons.length; - }; - SkeletonClipping.prototype.clipEndWithSlot = function (slot) { - if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) - this.clipEnd(); - }; - SkeletonClipping.prototype.clipEnd = function () { - if (this.clipAttachment == null) - return; - this.clipAttachment = null; - this.clippingPolygons = null; - this.clippedVertices.length = 0; - this.clippedTriangles.length = 0; - this.clippingPolygon.length = 0; - }; - SkeletonClipping.prototype.isClipping = function () { - return this.clipAttachment != null; - }; - SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { - var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; - var clippedTriangles = this.clippedTriangles; - var polygons = this.clippingPolygons; - var polygonsCount = this.clippingPolygons.length; - var vertexSize = twoColor ? 12 : 8; - var index = 0; - clippedVertices.length = 0; - clippedTriangles.length = 0; - outer: for (var i = 0; i < trianglesLength; i += 3) { - var vertexOffset = triangles[i] << 1; - var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; - var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 1] << 1; - var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; - var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 2] << 1; - var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; - var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; - for (var p = 0; p < polygonsCount; p++) { - var s = clippedVertices.length; - if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { - var clipOutputLength = clipOutput.length; - if (clipOutputLength == 0) - continue; - var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; - var d = 1 / (d0 * d2 + d1 * (y1 - y3)); - var clipOutputCount = clipOutputLength >> 1; - var clipOutputItems = this.clipOutput; - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); - for (var ii = 0; ii < clipOutputLength; ii += 2) { - var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; - clippedVerticesItems[s] = x; - clippedVerticesItems[s + 1] = y; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - var c0 = x - x3, c1 = y - y3; - var a = (d0 * c0 + d1 * c1) * d; - var b = (d4 * c0 + d2 * c1) * d; - var c = 1 - a - b; - clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; - clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; - if (twoColor) { - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 8] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - } - s += vertexSize; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); - clipOutputCount--; - for (var ii = 1; ii < clipOutputCount; ii++) { - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + ii); - clippedTrianglesItems[s + 2] = (index + ii + 1); - s += 3; - } - index += clipOutputCount + 1; - } - else { - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); - clippedVerticesItems[s] = x1; - clippedVerticesItems[s + 1] = y1; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - if (!twoColor) { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = x2; - clippedVerticesItems[s + 9] = y2; - clippedVerticesItems[s + 10] = light.r; - clippedVerticesItems[s + 11] = light.g; - clippedVerticesItems[s + 12] = light.b; - clippedVerticesItems[s + 13] = light.a; - clippedVerticesItems[s + 14] = u2; - clippedVerticesItems[s + 15] = v2; - clippedVerticesItems[s + 16] = x3; - clippedVerticesItems[s + 17] = y3; - clippedVerticesItems[s + 18] = light.r; - clippedVerticesItems[s + 19] = light.g; - clippedVerticesItems[s + 20] = light.b; - clippedVerticesItems[s + 21] = light.a; - clippedVerticesItems[s + 22] = u3; - clippedVerticesItems[s + 23] = v3; - } - else { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 9] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - clippedVerticesItems[s + 12] = x2; - clippedVerticesItems[s + 13] = y2; - clippedVerticesItems[s + 14] = light.r; - clippedVerticesItems[s + 15] = light.g; - clippedVerticesItems[s + 16] = light.b; - clippedVerticesItems[s + 17] = light.a; - clippedVerticesItems[s + 18] = u2; - clippedVerticesItems[s + 19] = v2; - clippedVerticesItems[s + 20] = dark.r; - clippedVerticesItems[s + 21] = dark.g; - clippedVerticesItems[s + 22] = dark.b; - clippedVerticesItems[s + 23] = dark.a; - clippedVerticesItems[s + 24] = x3; - clippedVerticesItems[s + 25] = y3; - clippedVerticesItems[s + 26] = light.r; - clippedVerticesItems[s + 27] = light.g; - clippedVerticesItems[s + 28] = light.b; - clippedVerticesItems[s + 29] = light.a; - clippedVerticesItems[s + 30] = u3; - clippedVerticesItems[s + 31] = v3; - clippedVerticesItems[s + 32] = dark.r; - clippedVerticesItems[s + 33] = dark.g; - clippedVerticesItems[s + 34] = dark.b; - clippedVerticesItems[s + 35] = dark.a; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + 1); - clippedTrianglesItems[s + 2] = (index + 2); - index += 3; - continue outer; - } - } - } - }; - SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { - var originalOutput = output; - var clipped = false; - var input = null; - if (clippingArea.length % 4 >= 2) { - input = output; - output = this.scratch; - } - else - input = this.scratch; - input.length = 0; - input.push(x1); - input.push(y1); - input.push(x2); - input.push(y2); - input.push(x3); - input.push(y3); - input.push(x1); - input.push(y1); - output.length = 0; - var clippingVertices = clippingArea; - var clippingVerticesLast = clippingArea.length - 4; - for (var i = 0;; i += 2) { - var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; - var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; - var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; - var inputVertices = input; - var inputVerticesLength = input.length - 2, outputStart = output.length; - for (var ii = 0; ii < inputVerticesLength; ii += 2) { - var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; - var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; - var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; - if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { - if (side2) { - output.push(inputX2); - output.push(inputY2); - continue; - } - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - } - else if (side2) { - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - output.push(inputX2); - output.push(inputY2); - } - clipped = true; - } - if (outputStart == output.length) { - originalOutput.length = 0; - return true; - } - output.push(output[0]); - output.push(output[1]); - if (i == clippingVerticesLast) - break; - var temp = output; - output = input; - output.length = 0; - input = temp; - } - if (originalOutput != output) { - originalOutput.length = 0; - for (var i = 0, n = output.length - 2; i < n; i++) - originalOutput[i] = output[i]; - } - else - originalOutput.length = originalOutput.length - 2; - return clipped; - }; - SkeletonClipping.makeClockwise = function (polygon) { - var vertices = polygon; - var verticeslength = polygon.length; - var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; - for (var i = 0, n = verticeslength - 3; i < n; i += 2) { - p1x = vertices[i]; - p1y = vertices[i + 1]; - p2x = vertices[i + 2]; - p2y = vertices[i + 3]; - area += p1x * p2y - p2x * p1y; - } - if (area < 0) - return; - for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { - var x = vertices[i], y = vertices[i + 1]; - var other = lastX - i; - vertices[i] = vertices[other]; - vertices[i + 1] = vertices[other + 1]; - vertices[other] = x; - vertices[other + 1] = y; - } - }; - return SkeletonClipping; - }()); - spine.SkeletonClipping = SkeletonClipping; + var SkeletonClipping = (function () { + function SkeletonClipping() { + this.triangulator = new spine.Triangulator(); + this.clippingPolygon = new Array(); + this.clipOutput = new Array(); + this.clippedVertices = new Array(); + this.clippedTriangles = new Array(); + this.scratch = new Array(); + } + SkeletonClipping.prototype.clipStart = function (slot, clip) { + if (this.clipAttachment != null) + return 0; + this.clipAttachment = clip; + var n = clip.worldVerticesLength; + var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); + clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); + var clippingPolygon = this.clippingPolygon; + SkeletonClipping.makeClockwise(clippingPolygon); + var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); + for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { + var polygon = clippingPolygons[i]; + SkeletonClipping.makeClockwise(polygon); + polygon.push(polygon[0]); + polygon.push(polygon[1]); + } + return clippingPolygons.length; + }; + SkeletonClipping.prototype.clipEndWithSlot = function (slot) { + if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) + this.clipEnd(); + }; + SkeletonClipping.prototype.clipEnd = function () { + if (this.clipAttachment == null) + return; + this.clipAttachment = null; + this.clippingPolygons = null; + this.clippedVertices.length = 0; + this.clippedTriangles.length = 0; + this.clippingPolygon.length = 0; + }; + SkeletonClipping.prototype.isClipping = function () { + return this.clipAttachment != null; + }; + SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { + var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; + var clippedTriangles = this.clippedTriangles; + var polygons = this.clippingPolygons; + var polygonsCount = this.clippingPolygons.length; + var vertexSize = twoColor ? 12 : 8; + var index = 0; + clippedVertices.length = 0; + clippedTriangles.length = 0; + outer: for (var i = 0; i < trianglesLength; i += 3) { + var vertexOffset = triangles[i] << 1; + var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; + var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 1] << 1; + var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; + var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 2] << 1; + var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; + var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; + for (var p = 0; p < polygonsCount; p++) { + var s = clippedVertices.length; + if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { + var clipOutputLength = clipOutput.length; + if (clipOutputLength == 0) + continue; + var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; + var d = 1 / (d0 * d2 + d1 * (y1 - y3)); + var clipOutputCount = clipOutputLength >> 1; + var clipOutputItems = this.clipOutput; + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); + for (var ii = 0; ii < clipOutputLength; ii += 2) { + var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; + clippedVerticesItems[s] = x; + clippedVerticesItems[s + 1] = y; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + var c0 = x - x3, c1 = y - y3; + var a = (d0 * c0 + d1 * c1) * d; + var b = (d4 * c0 + d2 * c1) * d; + var c = 1 - a - b; + clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; + clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; + if (twoColor) { + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 8] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + } + s += vertexSize; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); + clipOutputCount--; + for (var ii = 1; ii < clipOutputCount; ii++) { + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + ii); + clippedTrianglesItems[s + 2] = (index + ii + 1); + s += 3; + } + index += clipOutputCount + 1; + } + else { + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); + clippedVerticesItems[s] = x1; + clippedVerticesItems[s + 1] = y1; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + if (!twoColor) { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = x2; + clippedVerticesItems[s + 9] = y2; + clippedVerticesItems[s + 10] = light.r; + clippedVerticesItems[s + 11] = light.g; + clippedVerticesItems[s + 12] = light.b; + clippedVerticesItems[s + 13] = light.a; + clippedVerticesItems[s + 14] = u2; + clippedVerticesItems[s + 15] = v2; + clippedVerticesItems[s + 16] = x3; + clippedVerticesItems[s + 17] = y3; + clippedVerticesItems[s + 18] = light.r; + clippedVerticesItems[s + 19] = light.g; + clippedVerticesItems[s + 20] = light.b; + clippedVerticesItems[s + 21] = light.a; + clippedVerticesItems[s + 22] = u3; + clippedVerticesItems[s + 23] = v3; + } + else { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 9] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + clippedVerticesItems[s + 12] = x2; + clippedVerticesItems[s + 13] = y2; + clippedVerticesItems[s + 14] = light.r; + clippedVerticesItems[s + 15] = light.g; + clippedVerticesItems[s + 16] = light.b; + clippedVerticesItems[s + 17] = light.a; + clippedVerticesItems[s + 18] = u2; + clippedVerticesItems[s + 19] = v2; + clippedVerticesItems[s + 20] = dark.r; + clippedVerticesItems[s + 21] = dark.g; + clippedVerticesItems[s + 22] = dark.b; + clippedVerticesItems[s + 23] = dark.a; + clippedVerticesItems[s + 24] = x3; + clippedVerticesItems[s + 25] = y3; + clippedVerticesItems[s + 26] = light.r; + clippedVerticesItems[s + 27] = light.g; + clippedVerticesItems[s + 28] = light.b; + clippedVerticesItems[s + 29] = light.a; + clippedVerticesItems[s + 30] = u3; + clippedVerticesItems[s + 31] = v3; + clippedVerticesItems[s + 32] = dark.r; + clippedVerticesItems[s + 33] = dark.g; + clippedVerticesItems[s + 34] = dark.b; + clippedVerticesItems[s + 35] = dark.a; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + 1); + clippedTrianglesItems[s + 2] = (index + 2); + index += 3; + continue outer; + } + } + } + }; + SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { + var originalOutput = output; + var clipped = false; + var input = null; + if (clippingArea.length % 4 >= 2) { + input = output; + output = this.scratch; + } + else + input = this.scratch; + input.length = 0; + input.push(x1); + input.push(y1); + input.push(x2); + input.push(y2); + input.push(x3); + input.push(y3); + input.push(x1); + input.push(y1); + output.length = 0; + var clippingVertices = clippingArea; + var clippingVerticesLast = clippingArea.length - 4; + for (var i = 0;; i += 2) { + var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; + var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; + var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; + var inputVertices = input; + var inputVerticesLength = input.length - 2, outputStart = output.length; + for (var ii = 0; ii < inputVerticesLength; ii += 2) { + var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; + var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; + var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; + if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { + if (side2) { + output.push(inputX2); + output.push(inputY2); + continue; + } + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + } + else if (side2) { + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + output.push(inputX2); + output.push(inputY2); + } + clipped = true; + } + if (outputStart == output.length) { + originalOutput.length = 0; + return true; + } + output.push(output[0]); + output.push(output[1]); + if (i == clippingVerticesLast) + break; + var temp = output; + output = input; + output.length = 0; + input = temp; + } + if (originalOutput != output) { + originalOutput.length = 0; + for (var i = 0, n = output.length - 2; i < n; i++) + originalOutput[i] = output[i]; + } + else + originalOutput.length = originalOutput.length - 2; + return clipped; + }; + SkeletonClipping.makeClockwise = function (polygon) { + var vertices = polygon; + var verticeslength = polygon.length; + var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; + for (var i = 0, n = verticeslength - 3; i < n; i += 2) { + p1x = vertices[i]; + p1y = vertices[i + 1]; + p2x = vertices[i + 2]; + p2y = vertices[i + 3]; + area += p1x * p2y - p2x * p1y; + } + if (area < 0) + return; + for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { + var x = vertices[i], y = vertices[i + 1]; + var other = lastX - i; + vertices[i] = vertices[other]; + vertices[i + 1] = vertices[other + 1]; + vertices[other] = x; + vertices[other + 1] = y; + } + }; + return SkeletonClipping; + }()); + spine.SkeletonClipping = SkeletonClipping; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonData = (function () { - function SkeletonData() { - this.bones = new Array(); - this.slots = new Array(); - this.skins = new Array(); - this.events = new Array(); - this.animations = new Array(); - this.ikConstraints = new Array(); - this.transformConstraints = new Array(); - this.pathConstraints = new Array(); - this.fps = 0; - } - SkeletonData.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.name == boneName) - return bone; - } - return null; - }; - SkeletonData.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].name == boneName) - return i; - return -1; - }; - SkeletonData.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.name == slotName) - return slot; - } - return null; - }; - SkeletonData.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].name == slotName) - return i; - return -1; - }; - SkeletonData.prototype.findSkin = function (skinName) { - if (skinName == null) - throw new Error("skinName cannot be null."); - var skins = this.skins; - for (var i = 0, n = skins.length; i < n; i++) { - var skin = skins[i]; - if (skin.name == skinName) - return skin; - } - return null; - }; - SkeletonData.prototype.findEvent = function (eventDataName) { - if (eventDataName == null) - throw new Error("eventDataName cannot be null."); - var events = this.events; - for (var i = 0, n = events.length; i < n; i++) { - var event_4 = events[i]; - if (event_4.name == eventDataName) - return event_4; - } - return null; - }; - SkeletonData.prototype.findAnimation = function (animationName) { - if (animationName == null) - throw new Error("animationName cannot be null."); - var animations = this.animations; - for (var i = 0, n = animations.length; i < n; i++) { - var animation = animations[i]; - if (animation.name == animationName) - return animation; - } - return null; - }; - SkeletonData.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { - if (pathConstraintName == null) - throw new Error("pathConstraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) - if (pathConstraints[i].name == pathConstraintName) - return i; - return -1; - }; - return SkeletonData; - }()); - spine.SkeletonData = SkeletonData; + var SkeletonData = (function () { + function SkeletonData() { + this.bones = new Array(); + this.slots = new Array(); + this.skins = new Array(); + this.events = new Array(); + this.animations = new Array(); + this.ikConstraints = new Array(); + this.transformConstraints = new Array(); + this.pathConstraints = new Array(); + this.fps = 0; + } + SkeletonData.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.name == boneName) + return bone; + } + return null; + }; + SkeletonData.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].name == boneName) + return i; + return -1; + }; + SkeletonData.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.name == slotName) + return slot; + } + return null; + }; + SkeletonData.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].name == slotName) + return i; + return -1; + }; + SkeletonData.prototype.findSkin = function (skinName) { + if (skinName == null) + throw new Error("skinName cannot be null."); + var skins = this.skins; + for (var i = 0, n = skins.length; i < n; i++) { + var skin = skins[i]; + if (skin.name == skinName) + return skin; + } + return null; + }; + SkeletonData.prototype.findEvent = function (eventDataName) { + if (eventDataName == null) + throw new Error("eventDataName cannot be null."); + var events = this.events; + for (var i = 0, n = events.length; i < n; i++) { + var event_4 = events[i]; + if (event_4.name == eventDataName) + return event_4; + } + return null; + }; + SkeletonData.prototype.findAnimation = function (animationName) { + if (animationName == null) + throw new Error("animationName cannot be null."); + var animations = this.animations; + for (var i = 0, n = animations.length; i < n; i++) { + var animation = animations[i]; + if (animation.name == animationName) + return animation; + } + return null; + }; + SkeletonData.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { + if (pathConstraintName == null) + throw new Error("pathConstraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) + if (pathConstraints[i].name == pathConstraintName) + return i; + return -1; + }; + return SkeletonData; + }()); + spine.SkeletonData = SkeletonData; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonJson = (function () { - function SkeletonJson(attachmentLoader) { - this.scale = 1; - this.linkedMeshes = new Array(); - this.attachmentLoader = attachmentLoader; - } - SkeletonJson.prototype.readSkeletonData = function (json) { - var scale = this.scale; - var skeletonData = new spine.SkeletonData(); - var root = typeof (json) === "string" ? JSON.parse(json) : json; - var skeletonMap = root.skeleton; - if (skeletonMap != null) { - skeletonData.hash = skeletonMap.hash; - skeletonData.version = skeletonMap.spine; - skeletonData.width = skeletonMap.width; - skeletonData.height = skeletonMap.height; - skeletonData.fps = skeletonMap.fps; - skeletonData.imagesPath = skeletonMap.images; - } - if (root.bones) { - for (var i = 0; i < root.bones.length; i++) { - var boneMap = root.bones[i]; - var parent_2 = null; - var parentName = this.getValue(boneMap, "parent", null); - if (parentName != null) { - parent_2 = skeletonData.findBone(parentName); - if (parent_2 == null) - throw new Error("Parent bone not found: " + parentName); - } - var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); - data.length = this.getValue(boneMap, "length", 0) * scale; - data.x = this.getValue(boneMap, "x", 0) * scale; - data.y = this.getValue(boneMap, "y", 0) * scale; - data.rotation = this.getValue(boneMap, "rotation", 0); - data.scaleX = this.getValue(boneMap, "scaleX", 1); - data.scaleY = this.getValue(boneMap, "scaleY", 1); - data.shearX = this.getValue(boneMap, "shearX", 0); - data.shearY = this.getValue(boneMap, "shearY", 0); - data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); - skeletonData.bones.push(data); - } - } - if (root.slots) { - for (var i = 0; i < root.slots.length; i++) { - var slotMap = root.slots[i]; - var slotName = slotMap.name; - var boneName = slotMap.bone; - var boneData = skeletonData.findBone(boneName); - if (boneData == null) - throw new Error("Slot bone not found: " + boneName); - var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); - var color = this.getValue(slotMap, "color", null); - if (color != null) - data.color.setFromString(color); - var dark = this.getValue(slotMap, "dark", null); - if (dark != null) { - data.darkColor = new spine.Color(1, 1, 1, 1); - data.darkColor.setFromString(dark); - } - data.attachmentName = this.getValue(slotMap, "attachment", null); - data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); - skeletonData.slots.push(data); - } - } - if (root.ik) { - for (var i = 0; i < root.ik.length; i++) { - var constraintMap = root.ik[i]; - var data = new spine.IkConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("IK bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("IK target bone not found: " + targetName); - data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; - data.mix = this.getValue(constraintMap, "mix", 1); - skeletonData.ikConstraints.push(data); - } - } - if (root.transform) { - for (var i = 0; i < root.transform.length; i++) { - var constraintMap = root.transform[i]; - var data = new spine.TransformConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("Transform constraint target bone not found: " + targetName); - data.local = this.getValue(constraintMap, "local", false); - data.relative = this.getValue(constraintMap, "relative", false); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.offsetX = this.getValue(constraintMap, "x", 0) * scale; - data.offsetY = this.getValue(constraintMap, "y", 0) * scale; - data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); - data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); - data.offsetShearY = this.getValue(constraintMap, "shearY", 0); - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); - data.shearMix = this.getValue(constraintMap, "shearMix", 1); - skeletonData.transformConstraints.push(data); - } - } - if (root.path) { - for (var i = 0; i < root.path.length; i++) { - var constraintMap = root.path[i]; - var data = new spine.PathConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findSlot(targetName); - if (data.target == null) - throw new Error("Path target slot not found: " + targetName); - data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); - data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); - data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.position = this.getValue(constraintMap, "position", 0); - if (data.positionMode == spine.PositionMode.Fixed) - data.position *= scale; - data.spacing = this.getValue(constraintMap, "spacing", 0); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - data.spacing *= scale; - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - skeletonData.pathConstraints.push(data); - } - } - if (root.skins) { - for (var skinName in root.skins) { - var skinMap = root.skins[skinName]; - var skin = new spine.Skin(skinName); - for (var slotName in skinMap) { - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - var slotMap = skinMap[slotName]; - for (var entryName in slotMap) { - var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); - if (attachment != null) - skin.addAttachment(slotIndex, entryName, attachment); - } - } - skeletonData.skins.push(skin); - if (skin.name == "default") - skeletonData.defaultSkin = skin; - } - } - for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { - var linkedMesh = this.linkedMeshes[i]; - var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); - if (skin == null) - throw new Error("Skin not found: " + linkedMesh.skin); - var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_3 == null) - throw new Error("Parent mesh not found: " + linkedMesh.parent); - linkedMesh.mesh.setParentMesh(parent_3); - linkedMesh.mesh.updateUVs(); - } - this.linkedMeshes.length = 0; - if (root.events) { - for (var eventName in root.events) { - var eventMap = root.events[eventName]; - var data = new spine.EventData(eventName); - data.intValue = this.getValue(eventMap, "int", 0); - data.floatValue = this.getValue(eventMap, "float", 0); - data.stringValue = this.getValue(eventMap, "string", ""); - skeletonData.events.push(data); - } - } - if (root.animations) { - for (var animationName in root.animations) { - var animationMap = root.animations[animationName]; - this.readAnimation(animationMap, animationName, skeletonData); - } - } - return skeletonData; - }; - SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { - var scale = this.scale; - name = this.getValue(map, "name", name); - var type = this.getValue(map, "type", "region"); - switch (type) { - case "region": { - var path = this.getValue(map, "path", name); - var region = this.attachmentLoader.newRegionAttachment(skin, name, path); - if (region == null) - return null; - region.path = path; - region.x = this.getValue(map, "x", 0) * scale; - region.y = this.getValue(map, "y", 0) * scale; - region.scaleX = this.getValue(map, "scaleX", 1); - region.scaleY = this.getValue(map, "scaleY", 1); - region.rotation = this.getValue(map, "rotation", 0); - region.width = map.width * scale; - region.height = map.height * scale; - var color = this.getValue(map, "color", null); - if (color != null) - region.color.setFromString(color); - region.updateOffset(); - return region; - } - case "boundingbox": { - var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); - if (box == null) - return null; - this.readVertices(map, box, map.vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - box.color.setFromString(color); - return box; - } - case "mesh": - case "linkedmesh": { - var path = this.getValue(map, "path", name); - var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); - if (mesh == null) - return null; - mesh.path = path; - var color = this.getValue(map, "color", null); - if (color != null) - mesh.color.setFromString(color); - var parent_4 = this.getValue(map, "parent", null); - if (parent_4 != null) { - mesh.inheritDeform = this.getValue(map, "deform", true); - this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); - return mesh; - } - var uvs = map.uvs; - this.readVertices(map, mesh, uvs.length); - mesh.triangles = map.triangles; - mesh.regionUVs = uvs; - mesh.updateUVs(); - mesh.hullLength = this.getValue(map, "hull", 0) * 2; - return mesh; - } - case "path": { - var path = this.attachmentLoader.newPathAttachment(skin, name); - if (path == null) - return null; - path.closed = this.getValue(map, "closed", false); - path.constantSpeed = this.getValue(map, "constantSpeed", true); - var vertexCount = map.vertexCount; - this.readVertices(map, path, vertexCount << 1); - var lengths = spine.Utils.newArray(vertexCount / 3, 0); - for (var i = 0; i < map.lengths.length; i++) - lengths[i++] = map.lengths[i] * scale; - path.lengths = lengths; - var color = this.getValue(map, "color", null); - if (color != null) - path.color.setFromString(color); - return path; - } - case "point": { - var point = this.attachmentLoader.newPointAttachment(skin, name); - if (point == null) - return null; - point.x = this.getValue(map, "x", 0) * scale; - point.y = this.getValue(map, "y", 0) * scale; - point.rotation = this.getValue(map, "rotation", 0); - var color = this.getValue(map, "color", null); - if (color != null) - point.color.setFromString(color); - return point; - } - case "clipping": { - var clip = this.attachmentLoader.newClippingAttachment(skin, name); - if (clip == null) - return null; - var end = this.getValue(map, "end", null); - if (end != null) { - var slot = skeletonData.findSlot(end); - if (slot == null) - throw new Error("Clipping end slot not found: " + end); - clip.endSlot = slot; - } - var vertexCount = map.vertexCount; - this.readVertices(map, clip, vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - clip.color.setFromString(color); - return clip; - } - } - return null; - }; - SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { - var scale = this.scale; - attachment.worldVerticesLength = verticesLength; - var vertices = map.vertices; - if (verticesLength == vertices.length) { - var scaledVertices = spine.Utils.toFloatArray(vertices); - if (scale != 1) { - for (var i = 0, n = vertices.length; i < n; i++) - scaledVertices[i] *= scale; - } - attachment.vertices = scaledVertices; - return; - } - var weights = new Array(); - var bones = new Array(); - for (var i = 0, n = vertices.length; i < n;) { - var boneCount = vertices[i++]; - bones.push(boneCount); - for (var nn = i + boneCount * 4; i < nn; i += 4) { - bones.push(vertices[i]); - weights.push(vertices[i + 1] * scale); - weights.push(vertices[i + 2] * scale); - weights.push(vertices[i + 3]); - } - } - attachment.bones = bones; - attachment.vertices = spine.Utils.toFloatArray(weights); - }; - SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { - var scale = this.scale; - var timelines = new Array(); - var duration = 0; - if (map.slots) { - for (var slotName in map.slots) { - var slotMap = map.slots[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - if (timelineName == "attachment") { - var timeline = new spine.AttachmentTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - else if (timelineName == "color") { - var timeline = new spine.ColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var color = new spine.Color(); - color.setFromString(valueMap.color); - timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); - } - else if (timelineName == "twoColor") { - var timeline = new spine.TwoColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var light = new spine.Color(); - var dark = new spine.Color(); - light.setFromString(valueMap.light); - dark.setFromString(valueMap.dark); - timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); - } - } - } - if (map.bones) { - for (var boneName in map.bones) { - var boneMap = map.bones[boneName]; - var boneIndex = skeletonData.findBoneIndex(boneName); - if (boneIndex == -1) - throw new Error("Bone not found: " + boneName); - for (var timelineName in boneMap) { - var timelineMap = boneMap[timelineName]; - if (timelineName === "rotate") { - var timeline = new spine.RotateTimeline(timelineMap.length); - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); - } - else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "scale") - timeline = new spine.ScaleTimeline(timelineMap.length); - else if (timelineName === "shear") - timeline = new spine.ShearTimeline(timelineMap.length); - else { - timeline = new spine.TranslateTimeline(timelineMap.length); - timelineScale = scale; - } - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); - timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); - } - } - } - if (map.ik) { - for (var constraintName in map.ik) { - var constraintMap = map.ik[constraintName]; - var constraint = skeletonData.findIkConstraint(constraintName); - var timeline = new spine.IkConstraintTimeline(constraintMap.length); - timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); - } - } - if (map.transform) { - for (var constraintName in map.transform) { - var constraintMap = map.transform[constraintName]; - var constraint = skeletonData.findTransformConstraint(constraintName); - var timeline = new spine.TransformConstraintTimeline(constraintMap.length); - timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); - } - } - if (map.paths) { - for (var constraintName in map.paths) { - var constraintMap = map.paths[constraintName]; - var index = skeletonData.findPathConstraintIndex(constraintName); - if (index == -1) - throw new Error("Path constraint not found: " + constraintName); - var data = skeletonData.pathConstraints[index]; - for (var timelineName in constraintMap) { - var timelineMap = constraintMap[timelineName]; - if (timelineName === "position" || timelineName === "spacing") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "spacing") { - timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - timelineScale = scale; - } - else { - timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); - if (data.positionMode == spine.PositionMode.Fixed) - timelineScale = scale; - } - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); - } - else if (timelineName === "mix") { - var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); - } - } - } - } - if (map.deform) { - for (var deformName in map.deform) { - var deformMap = map.deform[deformName]; - var skin = skeletonData.findSkin(deformName); - if (skin == null) - throw new Error("Skin not found: " + deformName); - for (var slotName in deformMap) { - var slotMap = deformMap[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotMap.name); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - var attachment = skin.getAttachment(slotIndex, timelineName); - if (attachment == null) - throw new Error("Deform attachment not found: " + timelineMap.name); - var weighted = attachment.bones != null; - var vertices = attachment.vertices; - var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; - var timeline = new spine.DeformTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - timeline.attachment = attachment; - var frameIndex = 0; - for (var j = 0; j < timelineMap.length; j++) { - var valueMap = timelineMap[j]; - var deform = void 0; - var verticesValue = this.getValue(valueMap, "vertices", null); - if (verticesValue == null) - deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; - else { - deform = spine.Utils.newFloatArray(deformLength); - var start = this.getValue(valueMap, "offset", 0); - spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); - if (scale != 1) { - for (var i = start, n = i + verticesValue.length; i < n; i++) - deform[i] *= scale; - } - if (!weighted) { - for (var i = 0; i < deformLength; i++) - deform[i] += vertices[i]; - } - } - timeline.setFrame(frameIndex, valueMap.time, deform); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - } - } - } - var drawOrderNode = map.drawOrder; - if (drawOrderNode == null) - drawOrderNode = map.draworder; - if (drawOrderNode != null) { - var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); - var slotCount = skeletonData.slots.length; - var frameIndex = 0; - for (var j = 0; j < drawOrderNode.length; j++) { - var drawOrderMap = drawOrderNode[j]; - var drawOrder = null; - var offsets = this.getValue(drawOrderMap, "offsets", null); - if (offsets != null) { - drawOrder = spine.Utils.newArray(slotCount, -1); - var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); - var originalIndex = 0, unchangedIndex = 0; - for (var i = 0; i < offsets.length; i++) { - var offsetMap = offsets[i]; - var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); - if (slotIndex == -1) - throw new Error("Slot not found: " + offsetMap.slot); - while (originalIndex != slotIndex) - unchanged[unchangedIndex++] = originalIndex++; - drawOrder[originalIndex + offsetMap.offset] = originalIndex++; - } - while (originalIndex < slotCount) - unchanged[unchangedIndex++] = originalIndex++; - for (var i = slotCount - 1; i >= 0; i--) - if (drawOrder[i] == -1) - drawOrder[i] = unchanged[--unchangedIndex]; - } - timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (map.events) { - var timeline = new spine.EventTimeline(map.events.length); - var frameIndex = 0; - for (var i = 0; i < map.events.length; i++) { - var eventMap = map.events[i]; - var eventData = skeletonData.findEvent(eventMap.name); - if (eventData == null) - throw new Error("Event not found: " + eventMap.name); - var event_5 = new spine.Event(eventMap.time, eventData); - event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); - event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); - event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); - timeline.setFrame(frameIndex++, event_5); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (isNaN(duration)) { - throw new Error("Error while parsing animation, duration is NaN"); - } - skeletonData.animations.push(new spine.Animation(name, timelines, duration)); - }; - SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { - if (!map.curve) - return; - if (map.curve === "stepped") - timeline.setStepped(frameIndex); - else if (Object.prototype.toString.call(map.curve) === '[object Array]') { - var curve = map.curve; - timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); - } - }; - SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { - return map[prop] !== undefined ? map[prop] : defaultValue; - }; - SkeletonJson.blendModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.BlendMode.Normal; - if (str == "additive") - return spine.BlendMode.Additive; - if (str == "multiply") - return spine.BlendMode.Multiply; - if (str == "screen") - return spine.BlendMode.Screen; - throw new Error("Unknown blend mode: " + str); - }; - SkeletonJson.positionModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "fixed") - return spine.PositionMode.Fixed; - if (str == "percent") - return spine.PositionMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.spacingModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "length") - return spine.SpacingMode.Length; - if (str == "fixed") - return spine.SpacingMode.Fixed; - if (str == "percent") - return spine.SpacingMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.rotateModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "tangent") - return spine.RotateMode.Tangent; - if (str == "chain") - return spine.RotateMode.Chain; - if (str == "chainscale") - return spine.RotateMode.ChainScale; - throw new Error("Unknown rotate mode: " + str); - }; - SkeletonJson.transformModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.TransformMode.Normal; - if (str == "onlytranslation") - return spine.TransformMode.OnlyTranslation; - if (str == "norotationorreflection") - return spine.TransformMode.NoRotationOrReflection; - if (str == "noscale") - return spine.TransformMode.NoScale; - if (str == "noscaleorreflection") - return spine.TransformMode.NoScaleOrReflection; - throw new Error("Unknown transform mode: " + str); - }; - return SkeletonJson; - }()); - spine.SkeletonJson = SkeletonJson; - var LinkedMesh = (function () { - function LinkedMesh(mesh, skin, slotIndex, parent) { - this.mesh = mesh; - this.skin = skin; - this.slotIndex = slotIndex; - this.parent = parent; - } - return LinkedMesh; - }()); + var SkeletonJson = (function () { + function SkeletonJson(attachmentLoader) { + this.scale = 1; + this.linkedMeshes = new Array(); + this.attachmentLoader = attachmentLoader; + } + SkeletonJson.prototype.readSkeletonData = function (json) { + var scale = this.scale; + var skeletonData = new spine.SkeletonData(); + var root = typeof (json) === "string" ? JSON.parse(json) : json; + var skeletonMap = root.skeleton; + if (skeletonMap != null) { + skeletonData.hash = skeletonMap.hash; + skeletonData.version = skeletonMap.spine; + skeletonData.width = skeletonMap.width; + skeletonData.height = skeletonMap.height; + skeletonData.fps = skeletonMap.fps; + skeletonData.imagesPath = skeletonMap.images; + } + if (root.bones) { + for (var i = 0; i < root.bones.length; i++) { + var boneMap = root.bones[i]; + var parent_2 = null; + var parentName = this.getValue(boneMap, "parent", null); + if (parentName != null) { + parent_2 = skeletonData.findBone(parentName); + if (parent_2 == null) + throw new Error("Parent bone not found: " + parentName); + } + var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); + data.length = this.getValue(boneMap, "length", 0) * scale; + data.x = this.getValue(boneMap, "x", 0) * scale; + data.y = this.getValue(boneMap, "y", 0) * scale; + data.rotation = this.getValue(boneMap, "rotation", 0); + data.scaleX = this.getValue(boneMap, "scaleX", 1); + data.scaleY = this.getValue(boneMap, "scaleY", 1); + data.shearX = this.getValue(boneMap, "shearX", 0); + data.shearY = this.getValue(boneMap, "shearY", 0); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); + skeletonData.bones.push(data); + } + } + if (root.slots) { + for (var i = 0; i < root.slots.length; i++) { + var slotMap = root.slots[i]; + var slotName = slotMap.name; + var boneName = slotMap.bone; + var boneData = skeletonData.findBone(boneName); + if (boneData == null) + throw new Error("Slot bone not found: " + boneName); + var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); + var color = this.getValue(slotMap, "color", null); + if (color != null) + data.color.setFromString(color); + var dark = this.getValue(slotMap, "dark", null); + if (dark != null) { + data.darkColor = new spine.Color(1, 1, 1, 1); + data.darkColor.setFromString(dark); + } + data.attachmentName = this.getValue(slotMap, "attachment", null); + data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); + skeletonData.slots.push(data); + } + } + if (root.ik) { + for (var i = 0; i < root.ik.length; i++) { + var constraintMap = root.ik[i]; + var data = new spine.IkConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("IK bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("IK target bone not found: " + targetName); + data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; + data.mix = this.getValue(constraintMap, "mix", 1); + skeletonData.ikConstraints.push(data); + } + } + if (root.transform) { + for (var i = 0; i < root.transform.length; i++) { + var constraintMap = root.transform[i]; + var data = new spine.TransformConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("Transform constraint target bone not found: " + targetName); + data.local = this.getValue(constraintMap, "local", false); + data.relative = this.getValue(constraintMap, "relative", false); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.offsetX = this.getValue(constraintMap, "x", 0) * scale; + data.offsetY = this.getValue(constraintMap, "y", 0) * scale; + data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); + data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); + data.offsetShearY = this.getValue(constraintMap, "shearY", 0); + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); + data.shearMix = this.getValue(constraintMap, "shearMix", 1); + skeletonData.transformConstraints.push(data); + } + } + if (root.path) { + for (var i = 0; i < root.path.length; i++) { + var constraintMap = root.path[i]; + var data = new spine.PathConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findSlot(targetName); + if (data.target == null) + throw new Error("Path target slot not found: " + targetName); + data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); + data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); + data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.position = this.getValue(constraintMap, "position", 0); + if (data.positionMode == spine.PositionMode.Fixed) + data.position *= scale; + data.spacing = this.getValue(constraintMap, "spacing", 0); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + data.spacing *= scale; + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + skeletonData.pathConstraints.push(data); + } + } + if (root.skins) { + for (var skinName in root.skins) { + var skinMap = root.skins[skinName]; + var skin = new spine.Skin(skinName); + for (var slotName in skinMap) { + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + var slotMap = skinMap[slotName]; + for (var entryName in slotMap) { + var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); + if (attachment != null) + skin.addAttachment(slotIndex, entryName, attachment); + } + } + skeletonData.skins.push(skin); + if (skin.name == "default") + skeletonData.defaultSkin = skin; + } + } + for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { + var linkedMesh = this.linkedMeshes[i]; + var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); + if (skin == null) + throw new Error("Skin not found: " + linkedMesh.skin); + var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); + if (parent_3 == null) + throw new Error("Parent mesh not found: " + linkedMesh.parent); + linkedMesh.mesh.setParentMesh(parent_3); + linkedMesh.mesh.updateUVs(); + } + this.linkedMeshes.length = 0; + if (root.events) { + for (var eventName in root.events) { + var eventMap = root.events[eventName]; + var data = new spine.EventData(eventName); + data.intValue = this.getValue(eventMap, "int", 0); + data.floatValue = this.getValue(eventMap, "float", 0); + data.stringValue = this.getValue(eventMap, "string", ""); + skeletonData.events.push(data); + } + } + if (root.animations) { + for (var animationName in root.animations) { + var animationMap = root.animations[animationName]; + this.readAnimation(animationMap, animationName, skeletonData); + } + } + return skeletonData; + }; + SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { + var scale = this.scale; + name = this.getValue(map, "name", name); + var type = this.getValue(map, "type", "region"); + switch (type) { + case "region": { + var path = this.getValue(map, "path", name); + var region = this.attachmentLoader.newRegionAttachment(skin, name, path); + if (region == null) + return null; + region.path = path; + region.x = this.getValue(map, "x", 0) * scale; + region.y = this.getValue(map, "y", 0) * scale; + region.scaleX = this.getValue(map, "scaleX", 1); + region.scaleY = this.getValue(map, "scaleY", 1); + region.rotation = this.getValue(map, "rotation", 0); + region.width = map.width * scale; + region.height = map.height * scale; + var color = this.getValue(map, "color", null); + if (color != null) + region.color.setFromString(color); + region.updateOffset(); + return region; + } + case "boundingbox": { + var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); + if (box == null) + return null; + this.readVertices(map, box, map.vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + box.color.setFromString(color); + return box; + } + case "mesh": + case "linkedmesh": { + var path = this.getValue(map, "path", name); + var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); + if (mesh == null) + return null; + mesh.path = path; + var color = this.getValue(map, "color", null); + if (color != null) + mesh.color.setFromString(color); + var parent_4 = this.getValue(map, "parent", null); + if (parent_4 != null) { + mesh.inheritDeform = this.getValue(map, "deform", true); + this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); + return mesh; + } + var uvs = map.uvs; + this.readVertices(map, mesh, uvs.length); + mesh.triangles = map.triangles; + mesh.regionUVs = uvs; + mesh.updateUVs(); + mesh.hullLength = this.getValue(map, "hull", 0) * 2; + return mesh; + } + case "path": { + var path = this.attachmentLoader.newPathAttachment(skin, name); + if (path == null) + return null; + path.closed = this.getValue(map, "closed", false); + path.constantSpeed = this.getValue(map, "constantSpeed", true); + var vertexCount = map.vertexCount; + this.readVertices(map, path, vertexCount << 1); + var lengths = spine.Utils.newArray(vertexCount / 3, 0); + for (var i = 0; i < map.lengths.length; i++) + lengths[i++] = map.lengths[i] * scale; + path.lengths = lengths; + var color = this.getValue(map, "color", null); + if (color != null) + path.color.setFromString(color); + return path; + } + case "point": { + var point = this.attachmentLoader.newPointAttachment(skin, name); + if (point == null) + return null; + point.x = this.getValue(map, "x", 0) * scale; + point.y = this.getValue(map, "y", 0) * scale; + point.rotation = this.getValue(map, "rotation", 0); + var color = this.getValue(map, "color", null); + if (color != null) + point.color.setFromString(color); + return point; + } + case "clipping": { + var clip = this.attachmentLoader.newClippingAttachment(skin, name); + if (clip == null) + return null; + var end = this.getValue(map, "end", null); + if (end != null) { + var slot = skeletonData.findSlot(end); + if (slot == null) + throw new Error("Clipping end slot not found: " + end); + clip.endSlot = slot; + } + var vertexCount = map.vertexCount; + this.readVertices(map, clip, vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + clip.color.setFromString(color); + return clip; + } + } + return null; + }; + SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { + var scale = this.scale; + attachment.worldVerticesLength = verticesLength; + var vertices = map.vertices; + if (verticesLength == vertices.length) { + var scaledVertices = spine.Utils.toFloatArray(vertices); + if (scale != 1) { + for (var i = 0, n = vertices.length; i < n; i++) + scaledVertices[i] *= scale; + } + attachment.vertices = scaledVertices; + return; + } + var weights = new Array(); + var bones = new Array(); + for (var i = 0, n = vertices.length; i < n;) { + var boneCount = vertices[i++]; + bones.push(boneCount); + for (var nn = i + boneCount * 4; i < nn; i += 4) { + bones.push(vertices[i]); + weights.push(vertices[i + 1] * scale); + weights.push(vertices[i + 2] * scale); + weights.push(vertices[i + 3]); + } + } + attachment.bones = bones; + attachment.vertices = spine.Utils.toFloatArray(weights); + }; + SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { + var scale = this.scale; + var timelines = new Array(); + var duration = 0; + if (map.slots) { + for (var slotName in map.slots) { + var slotMap = map.slots[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + if (timelineName == "attachment") { + var timeline = new spine.AttachmentTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + else if (timelineName == "color") { + var timeline = new spine.ColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var color = new spine.Color(); + color.setFromString(valueMap.color); + timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); + } + else if (timelineName == "twoColor") { + var timeline = new spine.TwoColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var light = new spine.Color(); + var dark = new spine.Color(); + light.setFromString(valueMap.light); + dark.setFromString(valueMap.dark); + timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); + } + } + } + if (map.bones) { + for (var boneName in map.bones) { + var boneMap = map.bones[boneName]; + var boneIndex = skeletonData.findBoneIndex(boneName); + if (boneIndex == -1) + throw new Error("Bone not found: " + boneName); + for (var timelineName in boneMap) { + var timelineMap = boneMap[timelineName]; + if (timelineName === "rotate") { + var timeline = new spine.RotateTimeline(timelineMap.length); + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); + } + else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "scale") + timeline = new spine.ScaleTimeline(timelineMap.length); + else if (timelineName === "shear") + timeline = new spine.ShearTimeline(timelineMap.length); + else { + timeline = new spine.TranslateTimeline(timelineMap.length); + timelineScale = scale; + } + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); + timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); + } + } + } + if (map.ik) { + for (var constraintName in map.ik) { + var constraintMap = map.ik[constraintName]; + var constraint = skeletonData.findIkConstraint(constraintName); + var timeline = new spine.IkConstraintTimeline(constraintMap.length); + timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); + } + } + if (map.transform) { + for (var constraintName in map.transform) { + var constraintMap = map.transform[constraintName]; + var constraint = skeletonData.findTransformConstraint(constraintName); + var timeline = new spine.TransformConstraintTimeline(constraintMap.length); + timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); + } + } + if (map.paths) { + for (var constraintName in map.paths) { + var constraintMap = map.paths[constraintName]; + var index = skeletonData.findPathConstraintIndex(constraintName); + if (index == -1) + throw new Error("Path constraint not found: " + constraintName); + var data = skeletonData.pathConstraints[index]; + for (var timelineName in constraintMap) { + var timelineMap = constraintMap[timelineName]; + if (timelineName === "position" || timelineName === "spacing") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "spacing") { + timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + timelineScale = scale; + } + else { + timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); + if (data.positionMode == spine.PositionMode.Fixed) + timelineScale = scale; + } + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); + } + else if (timelineName === "mix") { + var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); + } + } + } + } + if (map.deform) { + for (var deformName in map.deform) { + var deformMap = map.deform[deformName]; + var skin = skeletonData.findSkin(deformName); + if (skin == null) + throw new Error("Skin not found: " + deformName); + for (var slotName in deformMap) { + var slotMap = deformMap[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotMap.name); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + var attachment = skin.getAttachment(slotIndex, timelineName); + if (attachment == null) + throw new Error("Deform attachment not found: " + timelineMap.name); + var weighted = attachment.bones != null; + var vertices = attachment.vertices; + var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; + var timeline = new spine.DeformTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + timeline.attachment = attachment; + var frameIndex = 0; + for (var j = 0; j < timelineMap.length; j++) { + var valueMap = timelineMap[j]; + var deform = void 0; + var verticesValue = this.getValue(valueMap, "vertices", null); + if (verticesValue == null) + deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; + else { + deform = spine.Utils.newFloatArray(deformLength); + var start = this.getValue(valueMap, "offset", 0); + spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); + if (scale != 1) { + for (var i = start, n = i + verticesValue.length; i < n; i++) + deform[i] *= scale; + } + if (!weighted) { + for (var i = 0; i < deformLength; i++) + deform[i] += vertices[i]; + } + } + timeline.setFrame(frameIndex, valueMap.time, deform); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + } + } + } + var drawOrderNode = map.drawOrder; + if (drawOrderNode == null) + drawOrderNode = map.draworder; + if (drawOrderNode != null) { + var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); + var slotCount = skeletonData.slots.length; + var frameIndex = 0; + for (var j = 0; j < drawOrderNode.length; j++) { + var drawOrderMap = drawOrderNode[j]; + var drawOrder = null; + var offsets = this.getValue(drawOrderMap, "offsets", null); + if (offsets != null) { + drawOrder = spine.Utils.newArray(slotCount, -1); + var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); + var originalIndex = 0, unchangedIndex = 0; + for (var i = 0; i < offsets.length; i++) { + var offsetMap = offsets[i]; + var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); + if (slotIndex == -1) + throw new Error("Slot not found: " + offsetMap.slot); + while (originalIndex != slotIndex) + unchanged[unchangedIndex++] = originalIndex++; + drawOrder[originalIndex + offsetMap.offset] = originalIndex++; + } + while (originalIndex < slotCount) + unchanged[unchangedIndex++] = originalIndex++; + for (var i = slotCount - 1; i >= 0; i--) + if (drawOrder[i] == -1) + drawOrder[i] = unchanged[--unchangedIndex]; + } + timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (map.events) { + var timeline = new spine.EventTimeline(map.events.length); + var frameIndex = 0; + for (var i = 0; i < map.events.length; i++) { + var eventMap = map.events[i]; + var eventData = skeletonData.findEvent(eventMap.name); + if (eventData == null) + throw new Error("Event not found: " + eventMap.name); + var event_5 = new spine.Event(eventMap.time, eventData); + event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); + event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); + event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); + timeline.setFrame(frameIndex++, event_5); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (isNaN(duration)) { + throw new Error("Error while parsing animation, duration is NaN"); + } + skeletonData.animations.push(new spine.Animation(name, timelines, duration)); + }; + SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { + if (!map.curve) + return; + if (map.curve === "stepped") + timeline.setStepped(frameIndex); + else if (Object.prototype.toString.call(map.curve) === '[object Array]') { + var curve = map.curve; + timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); + } + }; + SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { + return map[prop] !== undefined ? map[prop] : defaultValue; + }; + SkeletonJson.blendModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.BlendMode.Normal; + if (str == "additive") + return spine.BlendMode.Additive; + if (str == "multiply") + return spine.BlendMode.Multiply; + if (str == "screen") + return spine.BlendMode.Screen; + throw new Error("Unknown blend mode: " + str); + }; + SkeletonJson.positionModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "fixed") + return spine.PositionMode.Fixed; + if (str == "percent") + return spine.PositionMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.spacingModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "length") + return spine.SpacingMode.Length; + if (str == "fixed") + return spine.SpacingMode.Fixed; + if (str == "percent") + return spine.SpacingMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.rotateModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "tangent") + return spine.RotateMode.Tangent; + if (str == "chain") + return spine.RotateMode.Chain; + if (str == "chainscale") + return spine.RotateMode.ChainScale; + throw new Error("Unknown rotate mode: " + str); + }; + SkeletonJson.transformModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.TransformMode.Normal; + if (str == "onlytranslation") + return spine.TransformMode.OnlyTranslation; + if (str == "norotationorreflection") + return spine.TransformMode.NoRotationOrReflection; + if (str == "noscale") + return spine.TransformMode.NoScale; + if (str == "noscaleorreflection") + return spine.TransformMode.NoScaleOrReflection; + throw new Error("Unknown transform mode: " + str); + }; + return SkeletonJson; + }()); + spine.SkeletonJson = SkeletonJson; + var LinkedMesh = (function () { + function LinkedMesh(mesh, skin, slotIndex, parent) { + this.mesh = mesh; + this.skin = skin; + this.slotIndex = slotIndex; + this.parent = parent; + } + return LinkedMesh; + }()); })(spine || (spine = {})); var spine; (function (spine) { - var Skin = (function () { - function Skin(name) { - this.attachments = new Array(); - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - Skin.prototype.addAttachment = function (slotIndex, name, attachment) { - if (attachment == null) - throw new Error("attachment cannot be null."); - var attachments = this.attachments; - if (slotIndex >= attachments.length) - attachments.length = slotIndex + 1; - if (!attachments[slotIndex]) - attachments[slotIndex] = {}; - attachments[slotIndex][name] = attachment; - }; - Skin.prototype.getAttachment = function (slotIndex, name) { - var dictionary = this.attachments[slotIndex]; - return dictionary ? dictionary[name] : null; - }; - Skin.prototype.attachAll = function (skeleton, oldSkin) { - var slotIndex = 0; - for (var i = 0; i < skeleton.slots.length; i++) { - var slot = skeleton.slots[i]; - var slotAttachment = slot.getAttachment(); - if (slotAttachment && slotIndex < oldSkin.attachments.length) { - var dictionary = oldSkin.attachments[slotIndex]; - for (var key in dictionary) { - var skinAttachment = dictionary[key]; - if (slotAttachment == skinAttachment) { - var attachment = this.getAttachment(slotIndex, key); - if (attachment != null) - slot.setAttachment(attachment); - break; - } - } - } - slotIndex++; - } - }; - return Skin; - }()); - spine.Skin = Skin; + var Skin = (function () { + function Skin(name) { + this.attachments = new Array(); + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + Skin.prototype.addAttachment = function (slotIndex, name, attachment) { + if (attachment == null) + throw new Error("attachment cannot be null."); + var attachments = this.attachments; + if (slotIndex >= attachments.length) + attachments.length = slotIndex + 1; + if (!attachments[slotIndex]) + attachments[slotIndex] = {}; + attachments[slotIndex][name] = attachment; + }; + Skin.prototype.getAttachment = function (slotIndex, name) { + var dictionary = this.attachments[slotIndex]; + return dictionary ? dictionary[name] : null; + }; + Skin.prototype.attachAll = function (skeleton, oldSkin) { + var slotIndex = 0; + for (var i = 0; i < skeleton.slots.length; i++) { + var slot = skeleton.slots[i]; + var slotAttachment = slot.getAttachment(); + if (slotAttachment && slotIndex < oldSkin.attachments.length) { + var dictionary = oldSkin.attachments[slotIndex]; + for (var key in dictionary) { + var skinAttachment = dictionary[key]; + if (slotAttachment == skinAttachment) { + var attachment = this.getAttachment(slotIndex, key); + if (attachment != null) + slot.setAttachment(attachment); + break; + } + } + } + slotIndex++; + } + }; + return Skin; + }()); + spine.Skin = Skin; })(spine || (spine = {})); var spine; (function (spine) { - var Slot = (function () { - function Slot(data, bone) { - this.attachmentVertices = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (bone == null) - throw new Error("bone cannot be null."); - this.data = data; - this.bone = bone; - this.color = new spine.Color(); - this.darkColor = data.darkColor == null ? null : new spine.Color(); - this.setToSetupPose(); - } - Slot.prototype.getAttachment = function () { - return this.attachment; - }; - Slot.prototype.setAttachment = function (attachment) { - if (this.attachment == attachment) - return; - this.attachment = attachment; - this.attachmentTime = this.bone.skeleton.time; - this.attachmentVertices.length = 0; - }; - Slot.prototype.setAttachmentTime = function (time) { - this.attachmentTime = this.bone.skeleton.time - time; - }; - Slot.prototype.getAttachmentTime = function () { - return this.bone.skeleton.time - this.attachmentTime; - }; - Slot.prototype.setToSetupPose = function () { - this.color.setFromColor(this.data.color); - if (this.darkColor != null) - this.darkColor.setFromColor(this.data.darkColor); - if (this.data.attachmentName == null) - this.attachment = null; - else { - this.attachment = null; - this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); - } - }; - return Slot; - }()); - spine.Slot = Slot; + var Slot = (function () { + function Slot(data, bone) { + this.attachmentVertices = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (bone == null) + throw new Error("bone cannot be null."); + this.data = data; + this.bone = bone; + this.color = new spine.Color(); + this.darkColor = data.darkColor == null ? null : new spine.Color(); + this.setToSetupPose(); + } + Slot.prototype.getAttachment = function () { + return this.attachment; + }; + Slot.prototype.setAttachment = function (attachment) { + if (this.attachment == attachment) + return; + this.attachment = attachment; + this.attachmentTime = this.bone.skeleton.time; + this.attachmentVertices.length = 0; + }; + Slot.prototype.setAttachmentTime = function (time) { + this.attachmentTime = this.bone.skeleton.time - time; + }; + Slot.prototype.getAttachmentTime = function () { + return this.bone.skeleton.time - this.attachmentTime; + }; + Slot.prototype.setToSetupPose = function () { + this.color.setFromColor(this.data.color); + if (this.darkColor != null) + this.darkColor.setFromColor(this.data.darkColor); + if (this.data.attachmentName == null) + this.attachment = null; + else { + this.attachment = null; + this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); + } + }; + return Slot; + }()); + spine.Slot = Slot; })(spine || (spine = {})); var spine; (function (spine) { - var SlotData = (function () { - function SlotData(index, name, boneData) { - this.color = new spine.Color(1, 1, 1, 1); - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - if (boneData == null) - throw new Error("boneData cannot be null."); - this.index = index; - this.name = name; - this.boneData = boneData; - } - return SlotData; - }()); - spine.SlotData = SlotData; + var SlotData = (function () { + function SlotData(index, name, boneData) { + this.color = new spine.Color(1, 1, 1, 1); + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + if (boneData == null) + throw new Error("boneData cannot be null."); + this.index = index; + this.name = name; + this.boneData = boneData; + } + return SlotData; + }()); + spine.SlotData = SlotData; })(spine || (spine = {})); var spine; (function (spine) { - var Texture = (function () { - function Texture(image) { - this._image = image; - } - Texture.prototype.getImage = function () { - return this._image; - }; - Texture.filterFromString = function (text) { - switch (text.toLowerCase()) { - case "nearest": return TextureFilter.Nearest; - case "linear": return TextureFilter.Linear; - case "mipmap": return TextureFilter.MipMap; - case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; - case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; - case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; - case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; - default: throw new Error("Unknown texture filter " + text); - } - }; - Texture.wrapFromString = function (text) { - switch (text.toLowerCase()) { - case "mirroredtepeat": return TextureWrap.MirroredRepeat; - case "clamptoedge": return TextureWrap.ClampToEdge; - case "repeat": return TextureWrap.Repeat; - default: throw new Error("Unknown texture wrap " + text); - } - }; - return Texture; - }()); - spine.Texture = Texture; - (function (TextureFilter) { - TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; - TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; - TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; - TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; - TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; - TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; - TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; - })(spine.TextureFilter || (spine.TextureFilter = {})); - var TextureFilter = spine.TextureFilter; - (function (TextureWrap) { - TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; - TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; - TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; - })(spine.TextureWrap || (spine.TextureWrap = {})); - var TextureWrap = spine.TextureWrap; - var TextureRegion = (function () { - function TextureRegion() { - this.u = 0; - this.v = 0; - this.u2 = 0; - this.v2 = 0; - this.width = 0; - this.height = 0; - this.rotate = false; - this.offsetX = 0; - this.offsetY = 0; - this.originalWidth = 0; - this.originalHeight = 0; - } - return TextureRegion; - }()); - spine.TextureRegion = TextureRegion; + var Texture = (function () { + function Texture(image) { + this._image = image; + } + Texture.prototype.getImage = function () { + return this._image; + }; + Texture.filterFromString = function (text) { + switch (text.toLowerCase()) { + case "nearest": return TextureFilter.Nearest; + case "linear": return TextureFilter.Linear; + case "mipmap": return TextureFilter.MipMap; + case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; + case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; + case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; + case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; + default: throw new Error("Unknown texture filter " + text); + } + }; + Texture.wrapFromString = function (text) { + switch (text.toLowerCase()) { + case "mirroredtepeat": return TextureWrap.MirroredRepeat; + case "clamptoedge": return TextureWrap.ClampToEdge; + case "repeat": return TextureWrap.Repeat; + default: throw new Error("Unknown texture wrap " + text); + } + }; + return Texture; + }()); + spine.Texture = Texture; + (function (TextureFilter) { + TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; + TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; + TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; + TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; + TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; + TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; + TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; + })(spine.TextureFilter || (spine.TextureFilter = {})); + var TextureFilter = spine.TextureFilter; + (function (TextureWrap) { + TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; + TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; + TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; + })(spine.TextureWrap || (spine.TextureWrap = {})); + var TextureWrap = spine.TextureWrap; + var TextureRegion = (function () { + function TextureRegion() { + this.u = 0; + this.v = 0; + this.u2 = 0; + this.v2 = 0; + this.width = 0; + this.height = 0; + this.rotate = false; + this.offsetX = 0; + this.offsetY = 0; + this.originalWidth = 0; + this.originalHeight = 0; + } + return TextureRegion; + }()); + spine.TextureRegion = TextureRegion; })(spine || (spine = {})); var spine; (function (spine) { - var TextureAtlas = (function () { - function TextureAtlas(atlasText, textureLoader) { - this.pages = new Array(); - this.regions = new Array(); - this.load(atlasText, textureLoader); - } - TextureAtlas.prototype.load = function (atlasText, textureLoader) { - if (textureLoader == null) - throw new Error("textureLoader cannot be null."); - var reader = new TextureAtlasReader(atlasText); - var tuple = new Array(4); - var page = null; - while (true) { - var line = reader.readLine(); - if (line == null) - break; - line = line.trim(); - if (line.length == 0) - page = null; - else if (!page) { - page = new TextureAtlasPage(); - page.name = line; - if (reader.readTuple(tuple) == 2) { - page.width = parseInt(tuple[0]); - page.height = parseInt(tuple[1]); - reader.readTuple(tuple); - } - reader.readTuple(tuple); - page.minFilter = spine.Texture.filterFromString(tuple[0]); - page.magFilter = spine.Texture.filterFromString(tuple[1]); - var direction = reader.readValue(); - page.uWrap = spine.TextureWrap.ClampToEdge; - page.vWrap = spine.TextureWrap.ClampToEdge; - if (direction == "x") - page.uWrap = spine.TextureWrap.Repeat; - else if (direction == "y") - page.vWrap = spine.TextureWrap.Repeat; - else if (direction == "xy") - page.uWrap = page.vWrap = spine.TextureWrap.Repeat; - page.texture = textureLoader(line); - page.texture.setFilters(page.minFilter, page.magFilter); - page.texture.setWraps(page.uWrap, page.vWrap); - page.width = page.texture.getImage().width; - page.height = page.texture.getImage().height; - this.pages.push(page); - } - else { - var region = new TextureAtlasRegion(); - region.name = line; - region.page = page; - region.rotate = reader.readValue() == "true"; - reader.readTuple(tuple); - var x = parseInt(tuple[0]); - var y = parseInt(tuple[1]); - reader.readTuple(tuple); - var width = parseInt(tuple[0]); - var height = parseInt(tuple[1]); - region.u = x / page.width; - region.v = y / page.height; - if (region.rotate) { - region.u2 = (x + height) / page.width; - region.v2 = (y + width) / page.height; - } - else { - region.u2 = (x + width) / page.width; - region.v2 = (y + height) / page.height; - } - region.x = x; - region.y = y; - region.width = Math.abs(width); - region.height = Math.abs(height); - if (reader.readTuple(tuple) == 4) { - if (reader.readTuple(tuple) == 4) { - reader.readTuple(tuple); - } - } - region.originalWidth = parseInt(tuple[0]); - region.originalHeight = parseInt(tuple[1]); - reader.readTuple(tuple); - region.offsetX = parseInt(tuple[0]); - region.offsetY = parseInt(tuple[1]); - region.index = parseInt(reader.readValue()); - region.texture = page.texture; - this.regions.push(region); - } - } - }; - TextureAtlas.prototype.findRegion = function (name) { - for (var i = 0; i < this.regions.length; i++) { - if (this.regions[i].name == name) { - return this.regions[i]; - } - } - return null; - }; - TextureAtlas.prototype.dispose = function () { - for (var i = 0; i < this.pages.length; i++) { - this.pages[i].texture.dispose(); - } - }; - return TextureAtlas; - }()); - spine.TextureAtlas = TextureAtlas; - var TextureAtlasReader = (function () { - function TextureAtlasReader(text) { - this.index = 0; - this.lines = text.split(/\r\n|\r|\n/); - } - TextureAtlasReader.prototype.readLine = function () { - if (this.index >= this.lines.length) - return null; - return this.lines[this.index++]; - }; - TextureAtlasReader.prototype.readValue = function () { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - return line.substring(colon + 1).trim(); - }; - TextureAtlasReader.prototype.readTuple = function (tuple) { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - var i = 0, lastMatch = colon + 1; - for (; i < 3; i++) { - var comma = line.indexOf(",", lastMatch); - if (comma == -1) - break; - tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); - lastMatch = comma + 1; - } - tuple[i] = line.substring(lastMatch).trim(); - return i + 1; - }; - return TextureAtlasReader; - }()); - var TextureAtlasPage = (function () { - function TextureAtlasPage() { - } - return TextureAtlasPage; - }()); - spine.TextureAtlasPage = TextureAtlasPage; - var TextureAtlasRegion = (function (_super) { - __extends(TextureAtlasRegion, _super); - function TextureAtlasRegion() { - _super.apply(this, arguments); - } - return TextureAtlasRegion; - }(spine.TextureRegion)); - spine.TextureAtlasRegion = TextureAtlasRegion; + var TextureAtlas = (function () { + function TextureAtlas(atlasText, textureLoader) { + this.pages = new Array(); + this.regions = new Array(); + this.load(atlasText, textureLoader); + } + TextureAtlas.prototype.load = function (atlasText, textureLoader) { + if (textureLoader == null) + throw new Error("textureLoader cannot be null."); + var reader = new TextureAtlasReader(atlasText); + var tuple = new Array(4); + var page = null; + while (true) { + var line = reader.readLine(); + if (line == null) + break; + line = line.trim(); + if (line.length == 0) + page = null; + else if (!page) { + page = new TextureAtlasPage(); + page.name = line; + if (reader.readTuple(tuple) == 2) { + page.width = parseInt(tuple[0]); + page.height = parseInt(tuple[1]); + reader.readTuple(tuple); + } + reader.readTuple(tuple); + page.minFilter = spine.Texture.filterFromString(tuple[0]); + page.magFilter = spine.Texture.filterFromString(tuple[1]); + var direction = reader.readValue(); + page.uWrap = spine.TextureWrap.ClampToEdge; + page.vWrap = spine.TextureWrap.ClampToEdge; + if (direction == "x") + page.uWrap = spine.TextureWrap.Repeat; + else if (direction == "y") + page.vWrap = spine.TextureWrap.Repeat; + else if (direction == "xy") + page.uWrap = page.vWrap = spine.TextureWrap.Repeat; + page.texture = textureLoader(line); + page.texture.setFilters(page.minFilter, page.magFilter); + page.texture.setWraps(page.uWrap, page.vWrap); + page.width = page.texture.getImage().width; + page.height = page.texture.getImage().height; + this.pages.push(page); + } + else { + var region = new TextureAtlasRegion(); + region.name = line; + region.page = page; + region.rotate = reader.readValue() == "true"; + reader.readTuple(tuple); + var x = parseInt(tuple[0]); + var y = parseInt(tuple[1]); + reader.readTuple(tuple); + var width = parseInt(tuple[0]); + var height = parseInt(tuple[1]); + region.u = x / page.width; + region.v = y / page.height; + if (region.rotate) { + region.u2 = (x + height) / page.width; + region.v2 = (y + width) / page.height; + } + else { + region.u2 = (x + width) / page.width; + region.v2 = (y + height) / page.height; + } + region.x = x; + region.y = y; + region.width = Math.abs(width); + region.height = Math.abs(height); + if (reader.readTuple(tuple) == 4) { + if (reader.readTuple(tuple) == 4) { + reader.readTuple(tuple); + } + } + region.originalWidth = parseInt(tuple[0]); + region.originalHeight = parseInt(tuple[1]); + reader.readTuple(tuple); + region.offsetX = parseInt(tuple[0]); + region.offsetY = parseInt(tuple[1]); + region.index = parseInt(reader.readValue()); + region.texture = page.texture; + this.regions.push(region); + } + } + }; + TextureAtlas.prototype.findRegion = function (name) { + for (var i = 0; i < this.regions.length; i++) { + if (this.regions[i].name == name) { + return this.regions[i]; + } + } + return null; + }; + TextureAtlas.prototype.dispose = function () { + for (var i = 0; i < this.pages.length; i++) { + this.pages[i].texture.dispose(); + } + }; + return TextureAtlas; + }()); + spine.TextureAtlas = TextureAtlas; + var TextureAtlasReader = (function () { + function TextureAtlasReader(text) { + this.index = 0; + this.lines = text.split(/\r\n|\r|\n/); + } + TextureAtlasReader.prototype.readLine = function () { + if (this.index >= this.lines.length) + return null; + return this.lines[this.index++]; + }; + TextureAtlasReader.prototype.readValue = function () { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + return line.substring(colon + 1).trim(); + }; + TextureAtlasReader.prototype.readTuple = function (tuple) { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + var i = 0, lastMatch = colon + 1; + for (; i < 3; i++) { + var comma = line.indexOf(",", lastMatch); + if (comma == -1) + break; + tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); + lastMatch = comma + 1; + } + tuple[i] = line.substring(lastMatch).trim(); + return i + 1; + }; + return TextureAtlasReader; + }()); + var TextureAtlasPage = (function () { + function TextureAtlasPage() { + } + return TextureAtlasPage; + }()); + spine.TextureAtlasPage = TextureAtlasPage; + var TextureAtlasRegion = (function (_super) { + __extends(TextureAtlasRegion, _super); + function TextureAtlasRegion() { + _super.apply(this, arguments); + } + return TextureAtlasRegion; + }(spine.TextureRegion)); + spine.TextureAtlasRegion = TextureAtlasRegion; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraint = (function () { - function TransformConstraint(data, skeleton) { - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.temp = new spine.Vector2(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - this.scaleMix = data.scaleMix; - this.shearMix = data.shearMix; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - TransformConstraint.prototype.apply = function () { - this.update(); - }; - TransformConstraint.prototype.update = function () { - if (this.data.local) { - if (this.data.relative) - this.applyRelativeLocal(); - else - this.applyAbsoluteLocal(); - } - else { - if (this.data.relative) - this.applyRelativeWorld(); - else - this.applyAbsoluteWorld(); - } - }; - TransformConstraint.prototype.applyAbsoluteWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect; - var offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += (temp.x - bone.worldX) * translateMix; - bone.worldY += (temp.y - bone.worldY) * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); - var ts = Math.sqrt(ta * ta + tc * tc); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; - bone.a *= s; - bone.c *= s; - s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); - ts = Math.sqrt(tb * tb + td * td); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var b = bone.b, d = bone.d; - var by = Math.atan2(d, b); - var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r = by + (r + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyRelativeWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += temp.x * translateMix; - bone.worldY += temp.y * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; - bone.a *= s; - bone.c *= s; - s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var r = Math.atan2(td, tb) - Math.atan2(tc, ta); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - var b = bone.b, d = bone.d; - r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyAbsoluteLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) { - var r = target.arotation - rotation + this.data.offsetRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - rotation += r * rotateMix; - } - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax - x + this.data.offsetX) * translateMix; - y += (target.ay - y + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; - if (scaleY > 0.00001) - scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; - } - var shearY = bone.ashearY; - if (shearMix > 0) { - var r = target.ashearY - shearY + this.data.offsetShearY; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.shearY += r * shearMix; - } - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.applyRelativeLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) - rotation += (target.arotation + this.data.offsetRotation) * rotateMix; - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax + this.data.offsetX) * translateMix; - y += (target.ay + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; - if (scaleY > 0.00001) - scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; - } - var shearY = bone.ashearY; - if (shearMix > 0) - shearY += (target.ashearY + this.data.offsetShearY) * shearMix; - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.getOrder = function () { - return this.data.order; - }; - return TransformConstraint; - }()); - spine.TransformConstraint = TransformConstraint; + var TransformConstraint = (function () { + function TransformConstraint(data, skeleton) { + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.temp = new spine.Vector2(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + this.scaleMix = data.scaleMix; + this.shearMix = data.shearMix; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + TransformConstraint.prototype.apply = function () { + this.update(); + }; + TransformConstraint.prototype.update = function () { + if (this.data.local) { + if (this.data.relative) + this.applyRelativeLocal(); + else + this.applyAbsoluteLocal(); + } + else { + if (this.data.relative) + this.applyRelativeWorld(); + else + this.applyAbsoluteWorld(); + } + }; + TransformConstraint.prototype.applyAbsoluteWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect; + var offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += (temp.x - bone.worldX) * translateMix; + bone.worldY += (temp.y - bone.worldY) * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var ts = Math.sqrt(ta * ta + tc * tc); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; + bone.a *= s; + bone.c *= s; + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + ts = Math.sqrt(tb * tb + td * td); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var b = bone.b, d = bone.d; + var by = Math.atan2(d, b); + var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r = by + (r + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyRelativeWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += temp.x * translateMix; + bone.worldY += temp.y * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; + bone.a *= s; + bone.c *= s; + s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var r = Math.atan2(td, tb) - Math.atan2(tc, ta); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + var b = bone.b, d = bone.d; + r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyAbsoluteLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) { + var r = target.arotation - rotation + this.data.offsetRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + rotation += r * rotateMix; + } + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax - x + this.data.offsetX) * translateMix; + y += (target.ay - y + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; + if (scaleY > 0.00001) + scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; + } + var shearY = bone.ashearY; + if (shearMix > 0) { + var r = target.ashearY - shearY + this.data.offsetShearY; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.shearY += r * shearMix; + } + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.applyRelativeLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) + rotation += (target.arotation + this.data.offsetRotation) * rotateMix; + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax + this.data.offsetX) * translateMix; + y += (target.ay + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; + if (scaleY > 0.00001) + scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; + } + var shearY = bone.ashearY; + if (shearMix > 0) + shearY += (target.ashearY + this.data.offsetShearY) * shearMix; + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.getOrder = function () { + return this.data.order; + }; + return TransformConstraint; + }()); + spine.TransformConstraint = TransformConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraintData = (function () { - function TransformConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.offsetRotation = 0; - this.offsetX = 0; - this.offsetY = 0; - this.offsetScaleX = 0; - this.offsetScaleY = 0; - this.offsetShearY = 0; - this.relative = false; - this.local = false; - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return TransformConstraintData; - }()); - spine.TransformConstraintData = TransformConstraintData; + var TransformConstraintData = (function () { + function TransformConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.offsetRotation = 0; + this.offsetX = 0; + this.offsetY = 0; + this.offsetScaleX = 0; + this.offsetScaleY = 0; + this.offsetShearY = 0; + this.relative = false; + this.local = false; + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return TransformConstraintData; + }()); + spine.TransformConstraintData = TransformConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var Triangulator = (function () { - function Triangulator() { - this.convexPolygons = new Array(); - this.convexPolygonsIndices = new Array(); - this.indicesArray = new Array(); - this.isConcaveArray = new Array(); - this.triangles = new Array(); - this.polygonPool = new spine.Pool(function () { - return new Array(); - }); - this.polygonIndicesPool = new spine.Pool(function () { - return new Array(); - }); - } - Triangulator.prototype.triangulate = function (verticesArray) { - var vertices = verticesArray; - var vertexCount = verticesArray.length >> 1; - var indices = this.indicesArray; - indices.length = 0; - for (var i = 0; i < vertexCount; i++) - indices[i] = i; - var isConcave = this.isConcaveArray; - isConcave.length = 0; - for (var i = 0, n = vertexCount; i < n; ++i) - isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); - var triangles = this.triangles; - triangles.length = 0; - while (vertexCount > 3) { - var previous = vertexCount - 1, i = 0, next = 1; - while (true) { - outer: if (!isConcave[i]) { - var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; - var p1x = vertices[p1], p1y = vertices[p1 + 1]; - var p2x = vertices[p2], p2y = vertices[p2 + 1]; - var p3x = vertices[p3], p3y = vertices[p3 + 1]; - for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { - if (!isConcave[ii]) - continue; - var v = indices[ii] << 1; - var vx = vertices[v], vy = vertices[v + 1]; - if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { - if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { - if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) - break outer; - } - } - } - break; - } - if (next == 0) { - do { - if (!isConcave[i]) - break; - i--; - } while (i > 0); - break; - } - previous = i; - i = next; - next = (next + 1) % vertexCount; - } - triangles.push(indices[(vertexCount + i - 1) % vertexCount]); - triangles.push(indices[i]); - triangles.push(indices[(i + 1) % vertexCount]); - indices.splice(i, 1); - isConcave.splice(i, 1); - vertexCount--; - var previousIndex = (vertexCount + i - 1) % vertexCount; - var nextIndex = i == vertexCount ? 0 : i; - isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); - isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); - } - if (vertexCount == 3) { - triangles.push(indices[2]); - triangles.push(indices[0]); - triangles.push(indices[1]); - } - return triangles; - }; - Triangulator.prototype.decompose = function (verticesArray, triangles) { - var vertices = verticesArray; - var convexPolygons = this.convexPolygons; - this.polygonPool.freeAll(convexPolygons); - convexPolygons.length = 0; - var convexPolygonsIndices = this.convexPolygonsIndices; - this.polygonIndicesPool.freeAll(convexPolygonsIndices); - convexPolygonsIndices.length = 0; - var polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - var polygon = this.polygonPool.obtain(); - polygon.length = 0; - var fanBaseIndex = -1, lastWinding = 0; - for (var i = 0, n = triangles.length; i < n; i += 3) { - var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; - var x1 = vertices[t1], y1 = vertices[t1 + 1]; - var x2 = vertices[t2], y2 = vertices[t2 + 1]; - var x3 = vertices[t3], y3 = vertices[t3 + 1]; - var merged = false; - if (fanBaseIndex == t1) { - var o = polygon.length - 4; - var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); - var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); - if (winding1 == lastWinding && winding2 == lastWinding) { - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(t3); - merged = true; - } - } - if (!merged) { - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - else { - this.polygonPool.free(polygon); - this.polygonIndicesPool.free(polygonIndices); - } - polygon = this.polygonPool.obtain(); - polygon.length = 0; - polygon.push(x1); - polygon.push(y1); - polygon.push(x2); - polygon.push(y2); - polygon.push(x3); - polygon.push(y3); - polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - polygonIndices.push(t1); - polygonIndices.push(t2); - polygonIndices.push(t3); - lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); - fanBaseIndex = t1; - } - } - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - for (var i = 0, n = convexPolygons.length; i < n; i++) { - polygonIndices = convexPolygonsIndices[i]; - if (polygonIndices.length == 0) - continue; - var firstIndex = polygonIndices[0]; - var lastIndex = polygonIndices[polygonIndices.length - 1]; - polygon = convexPolygons[i]; - var o = polygon.length - 4; - var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; - var prevX = polygon[o + 2], prevY = polygon[o + 3]; - var firstX = polygon[0], firstY = polygon[1]; - var secondX = polygon[2], secondY = polygon[3]; - var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); - for (var ii = 0; ii < n; ii++) { - if (ii == i) - continue; - var otherIndices = convexPolygonsIndices[ii]; - if (otherIndices.length != 3) - continue; - var otherFirstIndex = otherIndices[0]; - var otherSecondIndex = otherIndices[1]; - var otherLastIndex = otherIndices[2]; - var otherPoly = convexPolygons[ii]; - var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; - if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) - continue; - var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); - var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); - if (winding1 == winding && winding2 == winding) { - otherPoly.length = 0; - otherIndices.length = 0; - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(otherLastIndex); - prevPrevX = prevX; - prevPrevY = prevY; - prevX = x3; - prevY = y3; - ii = 0; - } - } - } - for (var i = convexPolygons.length - 1; i >= 0; i--) { - polygon = convexPolygons[i]; - if (polygon.length == 0) { - convexPolygons.splice(i, 1); - this.polygonPool.free(polygon); - polygonIndices = convexPolygonsIndices[i]; - convexPolygonsIndices.splice(i, 1); - this.polygonIndicesPool.free(polygonIndices); - } - } - return convexPolygons; - }; - Triangulator.isConcave = function (index, vertexCount, vertices, indices) { - var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; - var current = indices[index] << 1; - var next = indices[(index + 1) % vertexCount] << 1; - return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); - }; - Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { - return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; - }; - Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { - var px = p2x - p1x, py = p2y - p1y; - return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; - }; - return Triangulator; - }()); - spine.Triangulator = Triangulator; + var Triangulator = (function () { + function Triangulator() { + this.convexPolygons = new Array(); + this.convexPolygonsIndices = new Array(); + this.indicesArray = new Array(); + this.isConcaveArray = new Array(); + this.triangles = new Array(); + this.polygonPool = new spine.Pool(function () { + return new Array(); + }); + this.polygonIndicesPool = new spine.Pool(function () { + return new Array(); + }); + } + Triangulator.prototype.triangulate = function (verticesArray) { + var vertices = verticesArray; + var vertexCount = verticesArray.length >> 1; + var indices = this.indicesArray; + indices.length = 0; + for (var i = 0; i < vertexCount; i++) + indices[i] = i; + var isConcave = this.isConcaveArray; + isConcave.length = 0; + for (var i = 0, n = vertexCount; i < n; ++i) + isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); + var triangles = this.triangles; + triangles.length = 0; + while (vertexCount > 3) { + var previous = vertexCount - 1, i = 0, next = 1; + while (true) { + outer: if (!isConcave[i]) { + var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; + var p1x = vertices[p1], p1y = vertices[p1 + 1]; + var p2x = vertices[p2], p2y = vertices[p2 + 1]; + var p3x = vertices[p3], p3y = vertices[p3 + 1]; + for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { + if (!isConcave[ii]) + continue; + var v = indices[ii] << 1; + var vx = vertices[v], vy = vertices[v + 1]; + if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { + if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { + if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) + break outer; + } + } + } + break; + } + if (next == 0) { + do { + if (!isConcave[i]) + break; + i--; + } while (i > 0); + break; + } + previous = i; + i = next; + next = (next + 1) % vertexCount; + } + triangles.push(indices[(vertexCount + i - 1) % vertexCount]); + triangles.push(indices[i]); + triangles.push(indices[(i + 1) % vertexCount]); + indices.splice(i, 1); + isConcave.splice(i, 1); + vertexCount--; + var previousIndex = (vertexCount + i - 1) % vertexCount; + var nextIndex = i == vertexCount ? 0 : i; + isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); + isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); + } + if (vertexCount == 3) { + triangles.push(indices[2]); + triangles.push(indices[0]); + triangles.push(indices[1]); + } + return triangles; + }; + Triangulator.prototype.decompose = function (verticesArray, triangles) { + var vertices = verticesArray; + var convexPolygons = this.convexPolygons; + this.polygonPool.freeAll(convexPolygons); + convexPolygons.length = 0; + var convexPolygonsIndices = this.convexPolygonsIndices; + this.polygonIndicesPool.freeAll(convexPolygonsIndices); + convexPolygonsIndices.length = 0; + var polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + var polygon = this.polygonPool.obtain(); + polygon.length = 0; + var fanBaseIndex = -1, lastWinding = 0; + for (var i = 0, n = triangles.length; i < n; i += 3) { + var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; + var x1 = vertices[t1], y1 = vertices[t1 + 1]; + var x2 = vertices[t2], y2 = vertices[t2 + 1]; + var x3 = vertices[t3], y3 = vertices[t3 + 1]; + var merged = false; + if (fanBaseIndex == t1) { + var o = polygon.length - 4; + var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); + var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); + if (winding1 == lastWinding && winding2 == lastWinding) { + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(t3); + merged = true; + } + } + if (!merged) { + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + else { + this.polygonPool.free(polygon); + this.polygonIndicesPool.free(polygonIndices); + } + polygon = this.polygonPool.obtain(); + polygon.length = 0; + polygon.push(x1); + polygon.push(y1); + polygon.push(x2); + polygon.push(y2); + polygon.push(x3); + polygon.push(y3); + polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + polygonIndices.push(t1); + polygonIndices.push(t2); + polygonIndices.push(t3); + lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); + fanBaseIndex = t1; + } + } + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + for (var i = 0, n = convexPolygons.length; i < n; i++) { + polygonIndices = convexPolygonsIndices[i]; + if (polygonIndices.length == 0) + continue; + var firstIndex = polygonIndices[0]; + var lastIndex = polygonIndices[polygonIndices.length - 1]; + polygon = convexPolygons[i]; + var o = polygon.length - 4; + var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; + var prevX = polygon[o + 2], prevY = polygon[o + 3]; + var firstX = polygon[0], firstY = polygon[1]; + var secondX = polygon[2], secondY = polygon[3]; + var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); + for (var ii = 0; ii < n; ii++) { + if (ii == i) + continue; + var otherIndices = convexPolygonsIndices[ii]; + if (otherIndices.length != 3) + continue; + var otherFirstIndex = otherIndices[0]; + var otherSecondIndex = otherIndices[1]; + var otherLastIndex = otherIndices[2]; + var otherPoly = convexPolygons[ii]; + var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; + if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) + continue; + var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); + var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); + if (winding1 == winding && winding2 == winding) { + otherPoly.length = 0; + otherIndices.length = 0; + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(otherLastIndex); + prevPrevX = prevX; + prevPrevY = prevY; + prevX = x3; + prevY = y3; + ii = 0; + } + } + } + for (var i = convexPolygons.length - 1; i >= 0; i--) { + polygon = convexPolygons[i]; + if (polygon.length == 0) { + convexPolygons.splice(i, 1); + this.polygonPool.free(polygon); + polygonIndices = convexPolygonsIndices[i]; + convexPolygonsIndices.splice(i, 1); + this.polygonIndicesPool.free(polygonIndices); + } + } + return convexPolygons; + }; + Triangulator.isConcave = function (index, vertexCount, vertices, indices) { + var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; + var current = indices[index] << 1; + var next = indices[(index + 1) % vertexCount] << 1; + return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); + }; + Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { + return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; + }; + Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { + var px = p2x - p1x, py = p2y - p1y; + return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; + }; + return Triangulator; + }()); + spine.Triangulator = Triangulator; })(spine || (spine = {})); var spine; (function (spine) { - var IntSet = (function () { - function IntSet() { - this.array = new Array(); - } - IntSet.prototype.add = function (value) { - var contains = this.contains(value); - this.array[value | 0] = value | 0; - return !contains; - }; - IntSet.prototype.contains = function (value) { - return this.array[value | 0] != undefined; - }; - IntSet.prototype.remove = function (value) { - this.array[value | 0] = undefined; - }; - IntSet.prototype.clear = function () { - this.array.length = 0; - }; - return IntSet; - }()); - spine.IntSet = IntSet; - var Color = (function () { - function Color(r, g, b, a) { - if (r === void 0) { r = 0; } - if (g === void 0) { g = 0; } - if (b === void 0) { b = 0; } - if (a === void 0) { a = 0; } - this.r = r; - this.g = g; - this.b = b; - this.a = a; - } - Color.prototype.set = function (r, g, b, a) { - this.r = r; - this.g = g; - this.b = b; - this.a = a; - this.clamp(); - return this; - }; - Color.prototype.setFromColor = function (c) { - this.r = c.r; - this.g = c.g; - this.b = c.b; - this.a = c.a; - return this; - }; - Color.prototype.setFromString = function (hex) { - hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; - this.r = parseInt(hex.substr(0, 2), 16) / 255.0; - this.g = parseInt(hex.substr(2, 2), 16) / 255.0; - this.b = parseInt(hex.substr(4, 2), 16) / 255.0; - this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; - return this; - }; - Color.prototype.add = function (r, g, b, a) { - this.r += r; - this.g += g; - this.b += b; - this.a += a; - this.clamp(); - return this; - }; - Color.prototype.clamp = function () { - if (this.r < 0) - this.r = 0; - else if (this.r > 1) - this.r = 1; - if (this.g < 0) - this.g = 0; - else if (this.g > 1) - this.g = 1; - if (this.b < 0) - this.b = 0; - else if (this.b > 1) - this.b = 1; - if (this.a < 0) - this.a = 0; - else if (this.a > 1) - this.a = 1; - return this; - }; - Color.WHITE = new Color(1, 1, 1, 1); - Color.RED = new Color(1, 0, 0, 1); - Color.GREEN = new Color(0, 1, 0, 1); - Color.BLUE = new Color(0, 0, 1, 1); - Color.MAGENTA = new Color(1, 0, 1, 1); - return Color; - }()); - spine.Color = Color; - var MathUtils = (function () { - function MathUtils() { - } - MathUtils.clamp = function (value, min, max) { - if (value < min) - return min; - if (value > max) - return max; - return value; - }; - MathUtils.cosDeg = function (degrees) { - return Math.cos(degrees * MathUtils.degRad); - }; - MathUtils.sinDeg = function (degrees) { - return Math.sin(degrees * MathUtils.degRad); - }; - MathUtils.signum = function (value) { - return value > 0 ? 1 : value < 0 ? -1 : 0; - }; - MathUtils.toInt = function (x) { - return x > 0 ? Math.floor(x) : Math.ceil(x); - }; - MathUtils.cbrt = function (x) { - var y = Math.pow(Math.abs(x), 1 / 3); - return x < 0 ? -y : y; - }; - MathUtils.PI = 3.1415927; - MathUtils.PI2 = MathUtils.PI * 2; - MathUtils.radiansToDegrees = 180 / MathUtils.PI; - MathUtils.radDeg = MathUtils.radiansToDegrees; - MathUtils.degreesToRadians = MathUtils.PI / 180; - MathUtils.degRad = MathUtils.degreesToRadians; - return MathUtils; - }()); - spine.MathUtils = MathUtils; - var Utils = (function () { - function Utils() { - } - Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { - for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { - dest[j] = source[i]; - } - }; - Utils.setArraySize = function (array, size, value) { - if (value === void 0) { value = 0; } - var oldSize = array.length; - if (oldSize == size) - return array; - array.length = size; - if (oldSize < size) { - for (var i = oldSize; i < size; i++) - array[i] = value; - } - return array; - }; - Utils.ensureArrayCapacity = function (array, size, value) { - if (value === void 0) { value = 0; } - if (array.length >= size) - return array; - return Utils.setArraySize(array, size, value); - }; - Utils.newArray = function (size, defaultValue) { - var array = new Array(size); - for (var i = 0; i < size; i++) - array[i] = defaultValue; - return array; - }; - Utils.newFloatArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Float32Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.newShortArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Int16Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.toFloatArray = function (array) { - return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; - }; - Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; - return Utils; - }()); - spine.Utils = Utils; - var DebugUtils = (function () { - function DebugUtils() { - } - DebugUtils.logBones = function (skeleton) { - for (var i = 0; i < skeleton.bones.length; i++) { - var bone = skeleton.bones[i]; - console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); - } - }; - return DebugUtils; - }()); - spine.DebugUtils = DebugUtils; - var Pool = (function () { - function Pool(instantiator) { - this.items = new Array(); - this.instantiator = instantiator; - } - Pool.prototype.obtain = function () { - return this.items.length > 0 ? this.items.pop() : this.instantiator(); - }; - Pool.prototype.free = function (item) { - if (item.reset) - item.reset(); - this.items.push(item); - }; - Pool.prototype.freeAll = function (items) { - for (var i = 0; i < items.length; i++) { - if (items[i].reset) - items[i].reset(); - this.items[i] = items[i]; - } - }; - Pool.prototype.clear = function () { - this.items.length = 0; - }; - return Pool; - }()); - spine.Pool = Pool; - var Vector2 = (function () { - function Vector2(x, y) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - this.x = x; - this.y = y; - } - Vector2.prototype.set = function (x, y) { - this.x = x; - this.y = y; - return this; - }; - Vector2.prototype.length = function () { - var x = this.x; - var y = this.y; - return Math.sqrt(x * x + y * y); - }; - Vector2.prototype.normalize = function () { - var len = this.length(); - if (len != 0) { - this.x /= len; - this.y /= len; - } - return this; - }; - return Vector2; - }()); - spine.Vector2 = Vector2; - var TimeKeeper = (function () { - function TimeKeeper() { - this.maxDelta = 0.064; - this.framesPerSecond = 0; - this.delta = 0; - this.totalTime = 0; - this.lastTime = Date.now() / 1000; - this.frameCount = 0; - this.frameTime = 0; - } - TimeKeeper.prototype.update = function () { - var now = Date.now() / 1000; - this.delta = now - this.lastTime; - this.frameTime += this.delta; - this.totalTime += this.delta; - if (this.delta > this.maxDelta) - this.delta = this.maxDelta; - this.lastTime = now; - this.frameCount++; - if (this.frameTime > 1) { - this.framesPerSecond = this.frameCount / this.frameTime; - this.frameTime = 0; - this.frameCount = 0; - } - }; - return TimeKeeper; - }()); - spine.TimeKeeper = TimeKeeper; - var WindowedMean = (function () { - function WindowedMean(windowSize) { - if (windowSize === void 0) { windowSize = 32; } - this.addedValues = 0; - this.lastValue = 0; - this.mean = 0; - this.dirty = true; - this.values = new Array(windowSize); - } - WindowedMean.prototype.hasEnoughData = function () { - return this.addedValues >= this.values.length; - }; - WindowedMean.prototype.addValue = function (value) { - if (this.addedValues < this.values.length) - this.addedValues++; - this.values[this.lastValue++] = value; - if (this.lastValue > this.values.length - 1) - this.lastValue = 0; - this.dirty = true; - }; - WindowedMean.prototype.getMean = function () { - if (this.hasEnoughData()) { - if (this.dirty) { - var mean = 0; - for (var i = 0; i < this.values.length; i++) { - mean += this.values[i]; - } - this.mean = mean / this.values.length; - this.dirty = false; - } - return this.mean; - } - else { - return 0; - } - }; - return WindowedMean; - }()); - spine.WindowedMean = WindowedMean; + var IntSet = (function () { + function IntSet() { + this.array = new Array(); + } + IntSet.prototype.add = function (value) { + var contains = this.contains(value); + this.array[value | 0] = value | 0; + return !contains; + }; + IntSet.prototype.contains = function (value) { + return this.array[value | 0] != undefined; + }; + IntSet.prototype.remove = function (value) { + this.array[value | 0] = undefined; + }; + IntSet.prototype.clear = function () { + this.array.length = 0; + }; + return IntSet; + }()); + spine.IntSet = IntSet; + var Color = (function () { + function Color(r, g, b, a) { + if (r === void 0) { r = 0; } + if (g === void 0) { g = 0; } + if (b === void 0) { b = 0; } + if (a === void 0) { a = 0; } + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + Color.prototype.set = function (r, g, b, a) { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + this.clamp(); + return this; + }; + Color.prototype.setFromColor = function (c) { + this.r = c.r; + this.g = c.g; + this.b = c.b; + this.a = c.a; + return this; + }; + Color.prototype.setFromString = function (hex) { + hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; + this.r = parseInt(hex.substr(0, 2), 16) / 255.0; + this.g = parseInt(hex.substr(2, 2), 16) / 255.0; + this.b = parseInt(hex.substr(4, 2), 16) / 255.0; + this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; + return this; + }; + Color.prototype.add = function (r, g, b, a) { + this.r += r; + this.g += g; + this.b += b; + this.a += a; + this.clamp(); + return this; + }; + Color.prototype.clamp = function () { + if (this.r < 0) + this.r = 0; + else if (this.r > 1) + this.r = 1; + if (this.g < 0) + this.g = 0; + else if (this.g > 1) + this.g = 1; + if (this.b < 0) + this.b = 0; + else if (this.b > 1) + this.b = 1; + if (this.a < 0) + this.a = 0; + else if (this.a > 1) + this.a = 1; + return this; + }; + Color.WHITE = new Color(1, 1, 1, 1); + Color.RED = new Color(1, 0, 0, 1); + Color.GREEN = new Color(0, 1, 0, 1); + Color.BLUE = new Color(0, 0, 1, 1); + Color.MAGENTA = new Color(1, 0, 1, 1); + return Color; + }()); + spine.Color = Color; + var MathUtils = (function () { + function MathUtils() { + } + MathUtils.clamp = function (value, min, max) { + if (value < min) + return min; + if (value > max) + return max; + return value; + }; + MathUtils.cosDeg = function (degrees) { + return Math.cos(degrees * MathUtils.degRad); + }; + MathUtils.sinDeg = function (degrees) { + return Math.sin(degrees * MathUtils.degRad); + }; + MathUtils.signum = function (value) { + return value > 0 ? 1 : value < 0 ? -1 : 0; + }; + MathUtils.toInt = function (x) { + return x > 0 ? Math.floor(x) : Math.ceil(x); + }; + MathUtils.cbrt = function (x) { + var y = Math.pow(Math.abs(x), 1 / 3); + return x < 0 ? -y : y; + }; + MathUtils.PI = 3.1415927; + MathUtils.PI2 = MathUtils.PI * 2; + MathUtils.radiansToDegrees = 180 / MathUtils.PI; + MathUtils.radDeg = MathUtils.radiansToDegrees; + MathUtils.degreesToRadians = MathUtils.PI / 180; + MathUtils.degRad = MathUtils.degreesToRadians; + return MathUtils; + }()); + spine.MathUtils = MathUtils; + var Utils = (function () { + function Utils() { + } + Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { + for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { + dest[j] = source[i]; + } + }; + Utils.setArraySize = function (array, size, value) { + if (value === void 0) { value = 0; } + var oldSize = array.length; + if (oldSize == size) + return array; + array.length = size; + if (oldSize < size) { + for (var i = oldSize; i < size; i++) + array[i] = value; + } + return array; + }; + Utils.ensureArrayCapacity = function (array, size, value) { + if (value === void 0) { value = 0; } + if (array.length >= size) + return array; + return Utils.setArraySize(array, size, value); + }; + Utils.newArray = function (size, defaultValue) { + var array = new Array(size); + for (var i = 0; i < size; i++) + array[i] = defaultValue; + return array; + }; + Utils.newFloatArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Float32Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.newShortArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Int16Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.toFloatArray = function (array) { + return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; + }; + Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; + return Utils; + }()); + spine.Utils = Utils; + var DebugUtils = (function () { + function DebugUtils() { + } + DebugUtils.logBones = function (skeleton) { + for (var i = 0; i < skeleton.bones.length; i++) { + var bone = skeleton.bones[i]; + console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); + } + }; + return DebugUtils; + }()); + spine.DebugUtils = DebugUtils; + var Pool = (function () { + function Pool(instantiator) { + this.items = new Array(); + this.instantiator = instantiator; + } + Pool.prototype.obtain = function () { + return this.items.length > 0 ? this.items.pop() : this.instantiator(); + }; + Pool.prototype.free = function (item) { + if (item.reset) + item.reset(); + this.items.push(item); + }; + Pool.prototype.freeAll = function (items) { + for (var i = 0; i < items.length; i++) { + if (items[i].reset) + items[i].reset(); + this.items[i] = items[i]; + } + }; + Pool.prototype.clear = function () { + this.items.length = 0; + }; + return Pool; + }()); + spine.Pool = Pool; + var Vector2 = (function () { + function Vector2(x, y) { + if (x === void 0) { x = 0; } + if (y === void 0) { y = 0; } + this.x = x; + this.y = y; + } + Vector2.prototype.set = function (x, y) { + this.x = x; + this.y = y; + return this; + }; + Vector2.prototype.length = function () { + var x = this.x; + var y = this.y; + return Math.sqrt(x * x + y * y); + }; + Vector2.prototype.normalize = function () { + var len = this.length(); + if (len != 0) { + this.x /= len; + this.y /= len; + } + return this; + }; + return Vector2; + }()); + spine.Vector2 = Vector2; + var TimeKeeper = (function () { + function TimeKeeper() { + this.maxDelta = 0.064; + this.framesPerSecond = 0; + this.delta = 0; + this.totalTime = 0; + this.lastTime = Date.now() / 1000; + this.frameCount = 0; + this.frameTime = 0; + } + TimeKeeper.prototype.update = function () { + var now = Date.now() / 1000; + this.delta = now - this.lastTime; + this.frameTime += this.delta; + this.totalTime += this.delta; + if (this.delta > this.maxDelta) + this.delta = this.maxDelta; + this.lastTime = now; + this.frameCount++; + if (this.frameTime > 1) { + this.framesPerSecond = this.frameCount / this.frameTime; + this.frameTime = 0; + this.frameCount = 0; + } + }; + return TimeKeeper; + }()); + spine.TimeKeeper = TimeKeeper; + var WindowedMean = (function () { + function WindowedMean(windowSize) { + if (windowSize === void 0) { windowSize = 32; } + this.addedValues = 0; + this.lastValue = 0; + this.mean = 0; + this.dirty = true; + this.values = new Array(windowSize); + } + WindowedMean.prototype.hasEnoughData = function () { + return this.addedValues >= this.values.length; + }; + WindowedMean.prototype.addValue = function (value) { + if (this.addedValues < this.values.length) + this.addedValues++; + this.values[this.lastValue++] = value; + if (this.lastValue > this.values.length - 1) + this.lastValue = 0; + this.dirty = true; + }; + WindowedMean.prototype.getMean = function () { + if (this.hasEnoughData()) { + if (this.dirty) { + var mean = 0; + for (var i = 0; i < this.values.length; i++) { + mean += this.values[i]; + } + this.mean = mean / this.values.length; + this.dirty = false; + } + return this.mean; + } + else { + return 0; + } + }; + return WindowedMean; + }()); + spine.WindowedMean = WindowedMean; })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var AssetManager = (function (_super) { - __extends(AssetManager, _super); - function AssetManager(context, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - _super.call(this, function (image) { - return new spine.webgl.GLTexture(context, image); - }, pathPrefix); - } - return AssetManager; - }(spine.AssetManager)); - webgl.AssetManager = AssetManager; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var AssetManager = (function (_super) { + __extends(AssetManager, _super); + function AssetManager(context, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + _super.call(this, function (image) { + return new spine.webgl.GLTexture(context, image); + }, pathPrefix); + } + return AssetManager; + }(spine.AssetManager)); + webgl.AssetManager = AssetManager; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var OrthoCamera = (function () { - function OrthoCamera(viewportWidth, viewportHeight) { - this.position = new webgl.Vector3(0, 0, 0); - this.direction = new webgl.Vector3(0, 0, -1); - this.up = new webgl.Vector3(0, 1, 0); - this.near = 0; - this.far = 100; - this.zoom = 1; - this.viewportWidth = 0; - this.viewportHeight = 0; - this.projectionView = new webgl.Matrix4(); - this.inverseProjectionView = new webgl.Matrix4(); - this.projection = new webgl.Matrix4(); - this.view = new webgl.Matrix4(); - this.tmp = new webgl.Vector3(); - this.viewportWidth = viewportWidth; - this.viewportHeight = viewportHeight; - this.update(); - } - OrthoCamera.prototype.update = function () { - var projection = this.projection; - var view = this.view; - var projectionView = this.projectionView; - var inverseProjectionView = this.inverseProjectionView; - var zoom = this.zoom, viewportWidth = this.viewportWidth, viewportHeight = this.viewportHeight; - projection.ortho(zoom * (-viewportWidth / 2), zoom * (viewportWidth / 2), zoom * (-viewportHeight / 2), zoom * (viewportHeight / 2), this.near, this.far); - view.lookAt(this.position, this.direction, this.up); - projectionView.set(projection.values); - projectionView.multiply(view); - inverseProjectionView.set(projectionView.values).invert(); - }; - OrthoCamera.prototype.screenToWorld = function (screenCoords, screenWidth, screenHeight) { - var x = screenCoords.x, y = screenHeight - screenCoords.y - 1; - var tmp = this.tmp; - tmp.x = (2 * x) / screenWidth - 1; - tmp.y = (2 * y) / screenHeight - 1; - tmp.z = (2 * screenCoords.z) - 1; - tmp.project(this.inverseProjectionView); - screenCoords.set(tmp.x, tmp.y, tmp.z); - return screenCoords; - }; - OrthoCamera.prototype.setViewport = function (viewportWidth, viewportHeight) { - this.viewportWidth = viewportWidth; - this.viewportHeight = viewportHeight; - }; - return OrthoCamera; - }()); - webgl.OrthoCamera = OrthoCamera; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var OrthoCamera = (function () { + function OrthoCamera(viewportWidth, viewportHeight) { + this.position = new webgl.Vector3(0, 0, 0); + this.direction = new webgl.Vector3(0, 0, -1); + this.up = new webgl.Vector3(0, 1, 0); + this.near = 0; + this.far = 100; + this.zoom = 1; + this.viewportWidth = 0; + this.viewportHeight = 0; + this.projectionView = new webgl.Matrix4(); + this.inverseProjectionView = new webgl.Matrix4(); + this.projection = new webgl.Matrix4(); + this.view = new webgl.Matrix4(); + this.tmp = new webgl.Vector3(); + this.viewportWidth = viewportWidth; + this.viewportHeight = viewportHeight; + this.update(); + } + OrthoCamera.prototype.update = function () { + var projection = this.projection; + var view = this.view; + var projectionView = this.projectionView; + var inverseProjectionView = this.inverseProjectionView; + var zoom = this.zoom, viewportWidth = this.viewportWidth, viewportHeight = this.viewportHeight; + projection.ortho(zoom * (-viewportWidth / 2), zoom * (viewportWidth / 2), zoom * (-viewportHeight / 2), zoom * (viewportHeight / 2), this.near, this.far); + view.lookAt(this.position, this.direction, this.up); + projectionView.set(projection.values); + projectionView.multiply(view); + inverseProjectionView.set(projectionView.values).invert(); + }; + OrthoCamera.prototype.screenToWorld = function (screenCoords, screenWidth, screenHeight) { + var x = screenCoords.x, y = screenHeight - screenCoords.y - 1; + var tmp = this.tmp; + tmp.x = (2 * x) / screenWidth - 1; + tmp.y = (2 * y) / screenHeight - 1; + tmp.z = (2 * screenCoords.z) - 1; + tmp.project(this.inverseProjectionView); + screenCoords.set(tmp.x, tmp.y, tmp.z); + return screenCoords; + }; + OrthoCamera.prototype.setViewport = function (viewportWidth, viewportHeight) { + this.viewportWidth = viewportWidth; + this.viewportHeight = viewportHeight; + }; + return OrthoCamera; + }()); + webgl.OrthoCamera = OrthoCamera; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var GLTexture = (function (_super) { - __extends(GLTexture, _super); - function GLTexture(context, image, useMipMaps) { - if (useMipMaps === void 0) { useMipMaps = false; } - _super.call(this, image); - this.texture = null; - this.boundUnit = 0; - this.useMipMaps = false; - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.useMipMaps = useMipMaps; - this.restore(); - this.context.addRestorable(this); - } - GLTexture.prototype.setFilters = function (minFilter, magFilter) { - var gl = this.context.gl; - this.bind(); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, magFilter); - }; - GLTexture.prototype.setWraps = function (uWrap, vWrap) { - var gl = this.context.gl; - this.bind(); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, uWrap); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, vWrap); - }; - GLTexture.prototype.update = function (useMipMaps) { - var gl = this.context.gl; - if (!this.texture) { - this.texture = this.context.gl.createTexture(); - } - this.bind(); - gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this._image); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, useMipMaps ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); - if (useMipMaps) - gl.generateMipmap(gl.TEXTURE_2D); - }; - GLTexture.prototype.restore = function () { - this.texture = null; - this.update(this.useMipMaps); - }; - GLTexture.prototype.bind = function (unit) { - if (unit === void 0) { unit = 0; } - var gl = this.context.gl; - this.boundUnit = unit; - gl.activeTexture(gl.TEXTURE0 + unit); - gl.bindTexture(gl.TEXTURE_2D, this.texture); - }; - GLTexture.prototype.unbind = function () { - var gl = this.context.gl; - gl.activeTexture(gl.TEXTURE0 + this.boundUnit); - gl.bindTexture(gl.TEXTURE_2D, null); - }; - GLTexture.prototype.dispose = function () { - this.context.removeRestorable(this); - var gl = this.context.gl; - gl.deleteTexture(this.texture); - }; - return GLTexture; - }(spine.Texture)); - webgl.GLTexture = GLTexture; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var GLTexture = (function (_super) { + __extends(GLTexture, _super); + function GLTexture(context, image, useMipMaps) { + if (useMipMaps === void 0) { useMipMaps = false; } + _super.call(this, image); + this.texture = null; + this.boundUnit = 0; + this.useMipMaps = false; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.useMipMaps = useMipMaps; + this.restore(); + this.context.addRestorable(this); + } + GLTexture.prototype.setFilters = function (minFilter, magFilter) { + var gl = this.context.gl; + this.bind(); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, magFilter); + }; + GLTexture.prototype.setWraps = function (uWrap, vWrap) { + var gl = this.context.gl; + this.bind(); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, uWrap); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, vWrap); + }; + GLTexture.prototype.update = function (useMipMaps) { + var gl = this.context.gl; + if (!this.texture) { + this.texture = this.context.gl.createTexture(); + } + this.bind(); + gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this._image); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, useMipMaps ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); + if (useMipMaps) + gl.generateMipmap(gl.TEXTURE_2D); + }; + GLTexture.prototype.restore = function () { + this.texture = null; + this.update(this.useMipMaps); + }; + GLTexture.prototype.bind = function (unit) { + if (unit === void 0) { unit = 0; } + var gl = this.context.gl; + this.boundUnit = unit; + gl.activeTexture(gl.TEXTURE0 + unit); + gl.bindTexture(gl.TEXTURE_2D, this.texture); + }; + GLTexture.prototype.unbind = function () { + var gl = this.context.gl; + gl.activeTexture(gl.TEXTURE0 + this.boundUnit); + gl.bindTexture(gl.TEXTURE_2D, null); + }; + GLTexture.prototype.dispose = function () { + this.context.removeRestorable(this); + var gl = this.context.gl; + gl.deleteTexture(this.texture); + }; + return GLTexture; + }(spine.Texture)); + webgl.GLTexture = GLTexture; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Input = (function () { - function Input(element) { - this.lastX = 0; - this.lastY = 0; - this.buttonDown = false; - this.currTouch = null; - this.touchesPool = new spine.Pool(function () { - return new spine.webgl.Touch(0, 0, 0); - }); - this.listeners = new Array(); - this.element = element; - this.setupCallbacks(element); - } - Input.prototype.setupCallbacks = function (element) { - var _this = this; - element.addEventListener("mousedown", function (ev) { - if (ev instanceof MouseEvent) { - var rect = element.getBoundingClientRect(); - var x = ev.clientX - rect.left; - var y = ev.clientY - rect.top; - var listeners = _this.listeners; - for (var i = 0; i < listeners.length; i++) { - listeners[i].down(x, y); - } - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = true; - } - }, true); - element.addEventListener("mousemove", function (ev) { - if (ev instanceof MouseEvent) { - var rect = element.getBoundingClientRect(); - var x = ev.clientX - rect.left; - var y = ev.clientY - rect.top; - var listeners = _this.listeners; - for (var i = 0; i < listeners.length; i++) { - if (_this.buttonDown) { - listeners[i].dragged(x, y); - } - else { - listeners[i].moved(x, y); - } - } - _this.lastX = x; - _this.lastY = y; - } - }, true); - element.addEventListener("mouseup", function (ev) { - if (ev instanceof MouseEvent) { - var rect = element.getBoundingClientRect(); - var x = ev.clientX - rect.left; - var y = ev.clientY - rect.top; - var listeners = _this.listeners; - for (var i = 0; i < listeners.length; i++) { - listeners[i].up(x, y); - } - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = false; - } - }, true); - element.addEventListener("touchstart", function (ev) { - if (_this.currTouch != null) - return; - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - var rect = element.getBoundingClientRect(); - var x = touch.clientX - rect.left; - var y = touch.clientY - rect.top; - _this.currTouch = _this.touchesPool.obtain(); - _this.currTouch.identifier = touch.identifier; - _this.currTouch.x = x; - _this.currTouch.y = y; - break; - } - var listeners = _this.listeners; - for (var i_1 = 0; i_1 < listeners.length; i_1++) { - listeners[i_1].down(_this.currTouch.x, _this.currTouch.y); - } - console.log("Start " + _this.currTouch.x + ", " + _this.currTouch.y); - _this.lastX = _this.currTouch.x; - _this.lastY = _this.currTouch.y; - _this.buttonDown = true; - ev.preventDefault(); - }, false); - element.addEventListener("touchend", function (ev) { - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - if (_this.currTouch.identifier === touch.identifier) { - var rect = element.getBoundingClientRect(); - var x = _this.currTouch.x = touch.clientX - rect.left; - var y = _this.currTouch.y = touch.clientY - rect.top; - _this.touchesPool.free(_this.currTouch); - var listeners = _this.listeners; - for (var i_2 = 0; i_2 < listeners.length; i_2++) { - listeners[i_2].up(x, y); - } - console.log("End " + x + ", " + y); - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = false; - _this.currTouch = null; - break; - } - } - ev.preventDefault(); - }, false); - element.addEventListener("touchcancel", function (ev) { - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - if (_this.currTouch.identifier === touch.identifier) { - var rect = element.getBoundingClientRect(); - var x = _this.currTouch.x = touch.clientX - rect.left; - var y = _this.currTouch.y = touch.clientY - rect.top; - _this.touchesPool.free(_this.currTouch); - var listeners = _this.listeners; - for (var i_3 = 0; i_3 < listeners.length; i_3++) { - listeners[i_3].up(x, y); - } - console.log("End " + x + ", " + y); - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = false; - _this.currTouch = null; - break; - } - } - ev.preventDefault(); - }, false); - element.addEventListener("touchmove", function (ev) { - if (_this.currTouch == null) - return; - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - if (_this.currTouch.identifier === touch.identifier) { - var rect = element.getBoundingClientRect(); - var x = touch.clientX - rect.left; - var y = touch.clientY - rect.top; - var listeners = _this.listeners; - for (var i_4 = 0; i_4 < listeners.length; i_4++) { - listeners[i_4].dragged(x, y); - } - console.log("Drag " + x + ", " + y); - _this.lastX = _this.currTouch.x = x; - _this.lastY = _this.currTouch.y = y; - break; - } - } - ev.preventDefault(); - }, false); - }; - Input.prototype.addListener = function (listener) { - this.listeners.push(listener); - }; - Input.prototype.removeListener = function (listener) { - var idx = this.listeners.indexOf(listener); - if (idx > -1) { - this.listeners.splice(idx, 1); - } - }; - return Input; - }()); - webgl.Input = Input; - var Touch = (function () { - function Touch(identifier, x, y) { - this.identifier = identifier; - this.x = x; - this.y = y; - } - return Touch; - }()); - webgl.Touch = Touch; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Input = (function () { + function Input(element) { + this.lastX = 0; + this.lastY = 0; + this.buttonDown = false; + this.currTouch = null; + this.touchesPool = new spine.Pool(function () { + return new spine.webgl.Touch(0, 0, 0); + }); + this.listeners = new Array(); + this.element = element; + this.setupCallbacks(element); + } + Input.prototype.setupCallbacks = function (element) { + var _this = this; + element.addEventListener("mousedown", function (ev) { + if (ev instanceof MouseEvent) { + var rect = element.getBoundingClientRect(); + var x = ev.clientX - rect.left; + var y = ev.clientY - rect.top; + var listeners = _this.listeners; + for (var i = 0; i < listeners.length; i++) { + listeners[i].down(x, y); + } + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = true; + } + }, true); + element.addEventListener("mousemove", function (ev) { + if (ev instanceof MouseEvent) { + var rect = element.getBoundingClientRect(); + var x = ev.clientX - rect.left; + var y = ev.clientY - rect.top; + var listeners = _this.listeners; + for (var i = 0; i < listeners.length; i++) { + if (_this.buttonDown) { + listeners[i].dragged(x, y); + } + else { + listeners[i].moved(x, y); + } + } + _this.lastX = x; + _this.lastY = y; + } + }, true); + element.addEventListener("mouseup", function (ev) { + if (ev instanceof MouseEvent) { + var rect = element.getBoundingClientRect(); + var x = ev.clientX - rect.left; + var y = ev.clientY - rect.top; + var listeners = _this.listeners; + for (var i = 0; i < listeners.length; i++) { + listeners[i].up(x, y); + } + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = false; + } + }, true); + element.addEventListener("touchstart", function (ev) { + if (_this.currTouch != null) + return; + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + var rect = element.getBoundingClientRect(); + var x = touch.clientX - rect.left; + var y = touch.clientY - rect.top; + _this.currTouch = _this.touchesPool.obtain(); + _this.currTouch.identifier = touch.identifier; + _this.currTouch.x = x; + _this.currTouch.y = y; + break; + } + var listeners = _this.listeners; + for (var i_1 = 0; i_1 < listeners.length; i_1++) { + listeners[i_1].down(_this.currTouch.x, _this.currTouch.y); + } + console.log("Start " + _this.currTouch.x + ", " + _this.currTouch.y); + _this.lastX = _this.currTouch.x; + _this.lastY = _this.currTouch.y; + _this.buttonDown = true; + ev.preventDefault(); + }, false); + element.addEventListener("touchend", function (ev) { + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + if (_this.currTouch.identifier === touch.identifier) { + var rect = element.getBoundingClientRect(); + var x = _this.currTouch.x = touch.clientX - rect.left; + var y = _this.currTouch.y = touch.clientY - rect.top; + _this.touchesPool.free(_this.currTouch); + var listeners = _this.listeners; + for (var i_2 = 0; i_2 < listeners.length; i_2++) { + listeners[i_2].up(x, y); + } + console.log("End " + x + ", " + y); + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = false; + _this.currTouch = null; + break; + } + } + ev.preventDefault(); + }, false); + element.addEventListener("touchcancel", function (ev) { + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + if (_this.currTouch.identifier === touch.identifier) { + var rect = element.getBoundingClientRect(); + var x = _this.currTouch.x = touch.clientX - rect.left; + var y = _this.currTouch.y = touch.clientY - rect.top; + _this.touchesPool.free(_this.currTouch); + var listeners = _this.listeners; + for (var i_3 = 0; i_3 < listeners.length; i_3++) { + listeners[i_3].up(x, y); + } + console.log("End " + x + ", " + y); + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = false; + _this.currTouch = null; + break; + } + } + ev.preventDefault(); + }, false); + element.addEventListener("touchmove", function (ev) { + if (_this.currTouch == null) + return; + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + if (_this.currTouch.identifier === touch.identifier) { + var rect = element.getBoundingClientRect(); + var x = touch.clientX - rect.left; + var y = touch.clientY - rect.top; + var listeners = _this.listeners; + for (var i_4 = 0; i_4 < listeners.length; i_4++) { + listeners[i_4].dragged(x, y); + } + console.log("Drag " + x + ", " + y); + _this.lastX = _this.currTouch.x = x; + _this.lastY = _this.currTouch.y = y; + break; + } + } + ev.preventDefault(); + }, false); + }; + Input.prototype.addListener = function (listener) { + this.listeners.push(listener); + }; + Input.prototype.removeListener = function (listener) { + var idx = this.listeners.indexOf(listener); + if (idx > -1) { + this.listeners.splice(idx, 1); + } + }; + return Input; + }()); + webgl.Input = Input; + var Touch = (function () { + function Touch(identifier, x, y) { + this.identifier = identifier; + this.x = x; + this.y = y; + } + return Touch; + }()); + webgl.Touch = Touch; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var LoadingScreen = (function () { - function LoadingScreen(renderer) { - this.logo = null; - this.spinner = null; - this.angle = 0; - this.fadeOut = 0; - this.timeKeeper = new spine.TimeKeeper(); - this.backgroundColor = new spine.Color(0.135, 0.135, 0.135, 1); - this.tempColor = new spine.Color(); - this.firstDraw = 0; - this.renderer = renderer; - this.timeKeeper.maxDelta = 9; - if (LoadingScreen.logoImg === null) { - var isSafari = navigator.userAgent.indexOf("Safari") > -1; - LoadingScreen.logoImg = new Image(); - LoadingScreen.logoImg.src = LoadingScreen.SPINE_LOGO_DATA; - if (!isSafari) - LoadingScreen.logoImg.crossOrigin = "anonymous"; - LoadingScreen.logoImg.onload = function (ev) { - LoadingScreen.loaded++; - }; - LoadingScreen.spinnerImg = new Image(); - LoadingScreen.spinnerImg.src = LoadingScreen.SPINNER_DATA; - if (!isSafari) - LoadingScreen.spinnerImg.crossOrigin = "anonymous"; - LoadingScreen.spinnerImg.onload = function (ev) { - LoadingScreen.loaded++; - }; - } - } - LoadingScreen.prototype.draw = function (complete) { - if (complete === void 0) { complete = false; } - if (complete && this.fadeOut > LoadingScreen.FADE_SECONDS) - return; - this.timeKeeper.update(); - var a = Math.abs(Math.sin(this.timeKeeper.totalTime + 0.75)); - this.angle -= this.timeKeeper.delta * 360 * (1 + 1.5 * Math.pow(a, 5)); - var renderer = this.renderer; - var canvas = renderer.canvas; - var gl = renderer.context.gl; - var oldX = renderer.camera.position.x, oldY = renderer.camera.position.y; - renderer.camera.position.set(canvas.width / 2, canvas.height / 2, 0); - renderer.camera.viewportWidth = canvas.width; - renderer.camera.viewportHeight = canvas.height; - renderer.resize(webgl.ResizeMode.Stretch); - if (!complete) { - gl.clearColor(this.backgroundColor.r, this.backgroundColor.g, this.backgroundColor.b, this.backgroundColor.a); - gl.clear(gl.COLOR_BUFFER_BIT); - this.tempColor.a = 1; - } - else { - this.fadeOut += this.timeKeeper.delta * (this.timeKeeper.totalTime < 1 ? 2 : 1); - if (this.fadeOut > LoadingScreen.FADE_SECONDS) { - renderer.camera.position.set(oldX, oldY, 0); - return; - } - a = 1 - this.fadeOut / LoadingScreen.FADE_SECONDS; - this.tempColor.setFromColor(this.backgroundColor); - this.tempColor.a = 1 - (a - 1) * (a - 1); - renderer.begin(); - renderer.quad(true, 0, 0, canvas.width, 0, canvas.width, canvas.height, 0, canvas.height, this.tempColor, this.tempColor, this.tempColor, this.tempColor); - renderer.end(); - } - this.tempColor.set(1, 1, 1, this.tempColor.a); - if (LoadingScreen.loaded != 2) - return; - if (this.logo === null) { - this.logo = new webgl.GLTexture(renderer.context, LoadingScreen.logoImg); - this.spinner = new webgl.GLTexture(renderer.context, LoadingScreen.spinnerImg); - } - this.logo.update(false); - this.spinner.update(false); - var logoWidth = this.logo.getImage().width; - var logoHeight = this.logo.getImage().height; - var spinnerWidth = this.spinner.getImage().width; - var spinnerHeight = this.spinner.getImage().height; - renderer.batcher.setBlendMode(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA); - renderer.begin(); - renderer.drawTexture(this.logo, (canvas.width - logoWidth) / 2, (canvas.height - logoHeight) / 2, logoWidth, logoHeight, this.tempColor); - renderer.drawTextureRotated(this.spinner, (canvas.width - spinnerWidth) / 2, (canvas.height - spinnerHeight) / 2, spinnerWidth, spinnerHeight, spinnerWidth / 2, spinnerHeight / 2, this.angle, this.tempColor); - renderer.end(); - renderer.camera.position.set(oldX, oldY, 0); - }; - LoadingScreen.FADE_SECONDS = 1; - LoadingScreen.loaded = 0; - LoadingScreen.spinnerImg = null; - LoadingScreen.logoImg = null; - LoadingScreen.SPINNER_DATA = "data:image/png;base64,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"; - LoadingScreen.SPINE_LOGO_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAAAZCAYAAACis3k0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtNJREFUaN7tmT2I1EAUxwN+oWgRT0HFKo0WCkJ6ObmAWFwZbCxsXGysLNJaiCyIoDaSwk4ETzvhmnBaCRbBWoQ01ho4PwotjP8cE337mMy8TLK757mBH3fLTWbe/PbN53neNniqZW8FvAVvQAqugwvgDDgO9niLRyTyJagM/ACPF6bsIl9ZRDac/Cc6tLn5xQdRQ496QlKPLxD5QCDxO9jtGM8QfYoIgUlgCipGCRJL5VvlyOdCU09iEXkCfLSIfCrs7Fab6nOsiafu06iDwES9w/uU1QnDC+ekkVS9vEaDsgVeB0d+z1VDtOGxRaYPboP3Gokb4GgXkZp4chZPJKgvZ3U0XkriK/TIt9YUDllFgTAjGwoaoHqfBhMI58yD4BQ4V6/aHYdfxToftvw9F2SiVroawU2/Cv5C4Thv0KB9S5nxlOd4STxjwUjzSdYlgrYijw2BsEfgsaFcM09lhiys94xXQQwugcvgJrgFLjrEE7WUiTuWCQzt/ZXN7FfqGwuGClyVy2xZAFmfDQvNtwFFSspMDGsD+UTWqu1KoVmVooFEJgKRXw0if85RpISEzwsjzeqWzkjkC4PIJ3MUmQgITAHlQwTFhnZhELkEntfZRwR+AvfAgXmJHOqU02XligWT8ppg67NXbdCXeq7afUQ6L8C2DalEZNt2YyQ94Qy8/ekjMpBMbfyl5iTjG7YAI8cNecROAb4kJmTjaXAF3AGvwQewOiuRxEtlSaT4j2h2lMsUueQEoMlIKpTvAmKhxPMtC876jEX6rE8l8TNx/KVbn6xlWU9NWcSDUsO4NGWpQOTZFpHPOooMXcswmW2XFk3ixb2v0Nq+XVKP00QNaffBLyWwBI/AkTlfMYZDXMf12kc6yjwEjoFdO/5me5oi/6tnyhlZX6OtgmX1c2Uh0k3khmbB2b9TRfpd/jfTUeRDJvHdYg5wE7kPXAN3wQ1weDvH+xufEgpi5qIl3QAAAABJRU5ErkJggg=="; - return LoadingScreen; - }()); - webgl.LoadingScreen = LoadingScreen; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var LoadingScreen = (function () { + function LoadingScreen(renderer) { + this.logo = null; + this.spinner = null; + this.angle = 0; + this.fadeOut = 0; + this.timeKeeper = new spine.TimeKeeper(); + this.backgroundColor = new spine.Color(0.135, 0.135, 0.135, 1); + this.tempColor = new spine.Color(); + this.firstDraw = 0; + this.renderer = renderer; + this.timeKeeper.maxDelta = 9; + if (LoadingScreen.logoImg === null) { + var isSafari = navigator.userAgent.indexOf("Safari") > -1; + LoadingScreen.logoImg = new Image(); + LoadingScreen.logoImg.src = LoadingScreen.SPINE_LOGO_DATA; + if (!isSafari) + LoadingScreen.logoImg.crossOrigin = "anonymous"; + LoadingScreen.logoImg.onload = function (ev) { + LoadingScreen.loaded++; + }; + LoadingScreen.spinnerImg = new Image(); + LoadingScreen.spinnerImg.src = LoadingScreen.SPINNER_DATA; + if (!isSafari) + LoadingScreen.spinnerImg.crossOrigin = "anonymous"; + LoadingScreen.spinnerImg.onload = function (ev) { + LoadingScreen.loaded++; + }; + } + } + LoadingScreen.prototype.draw = function (complete) { + if (complete === void 0) { complete = false; } + if (complete && this.fadeOut > LoadingScreen.FADE_SECONDS) + return; + this.timeKeeper.update(); + var a = Math.abs(Math.sin(this.timeKeeper.totalTime + 0.75)); + this.angle -= this.timeKeeper.delta * 360 * (1 + 1.5 * Math.pow(a, 5)); + var renderer = this.renderer; + var canvas = renderer.canvas; + var gl = renderer.context.gl; + var oldX = renderer.camera.position.x, oldY = renderer.camera.position.y; + renderer.camera.position.set(canvas.width / 2, canvas.height / 2, 0); + renderer.camera.viewportWidth = canvas.width; + renderer.camera.viewportHeight = canvas.height; + renderer.resize(webgl.ResizeMode.Stretch); + if (!complete) { + gl.clearColor(this.backgroundColor.r, this.backgroundColor.g, this.backgroundColor.b, this.backgroundColor.a); + gl.clear(gl.COLOR_BUFFER_BIT); + this.tempColor.a = 1; + } + else { + this.fadeOut += this.timeKeeper.delta * (this.timeKeeper.totalTime < 1 ? 2 : 1); + if (this.fadeOut > LoadingScreen.FADE_SECONDS) { + renderer.camera.position.set(oldX, oldY, 0); + return; + } + a = 1 - this.fadeOut / LoadingScreen.FADE_SECONDS; + this.tempColor.setFromColor(this.backgroundColor); + this.tempColor.a = 1 - (a - 1) * (a - 1); + renderer.begin(); + renderer.quad(true, 0, 0, canvas.width, 0, canvas.width, canvas.height, 0, canvas.height, this.tempColor, this.tempColor, this.tempColor, this.tempColor); + renderer.end(); + } + this.tempColor.set(1, 1, 1, this.tempColor.a); + if (LoadingScreen.loaded != 2) + return; + if (this.logo === null) { + this.logo = new webgl.GLTexture(renderer.context, LoadingScreen.logoImg); + this.spinner = new webgl.GLTexture(renderer.context, LoadingScreen.spinnerImg); + } + this.logo.update(false); + this.spinner.update(false); + var logoWidth = this.logo.getImage().width; + var logoHeight = this.logo.getImage().height; + var spinnerWidth = this.spinner.getImage().width; + var spinnerHeight = this.spinner.getImage().height; + renderer.batcher.setBlendMode(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA); + renderer.begin(); + renderer.drawTexture(this.logo, (canvas.width - logoWidth) / 2, (canvas.height - logoHeight) / 2, logoWidth, logoHeight, this.tempColor); + renderer.drawTextureRotated(this.spinner, (canvas.width - spinnerWidth) / 2, (canvas.height - spinnerHeight) / 2, spinnerWidth, spinnerHeight, spinnerWidth / 2, spinnerHeight / 2, this.angle, this.tempColor); + renderer.end(); + renderer.camera.position.set(oldX, oldY, 0); + }; + LoadingScreen.FADE_SECONDS = 1; + LoadingScreen.loaded = 0; + LoadingScreen.spinnerImg = null; + LoadingScreen.logoImg = null; + LoadingScreen.SPINNER_DATA = "data:image/png;base64,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"; + LoadingScreen.SPINE_LOGO_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAAAZCAYAAACis3k0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtNJREFUaN7tmT2I1EAUxwN+oWgRT0HFKo0WCkJ6ObmAWFwZbCxsXGysLNJaiCyIoDaSwk4ETzvhmnBaCRbBWoQ01ho4PwotjP8cE337mMy8TLK757mBH3fLTWbe/PbN53neNniqZW8FvAVvQAqugwvgDDgO9niLRyTyJagM/ACPF6bsIl9ZRDac/Cc6tLn5xQdRQ496QlKPLxD5QCDxO9jtGM8QfYoIgUlgCipGCRJL5VvlyOdCU09iEXkCfLSIfCrs7Fab6nOsiafu06iDwES9w/uU1QnDC+ekkVS9vEaDsgVeB0d+z1VDtOGxRaYPboP3Gokb4GgXkZp4chZPJKgvZ3U0XkriK/TIt9YUDllFgTAjGwoaoHqfBhMI58yD4BQ4V6/aHYdfxToftvw9F2SiVroawU2/Cv5C4Thv0KB9S5nxlOd4STxjwUjzSdYlgrYijw2BsEfgsaFcM09lhiys94xXQQwugcvgJrgFLjrEE7WUiTuWCQzt/ZXN7FfqGwuGClyVy2xZAFmfDQvNtwFFSspMDGsD+UTWqu1KoVmVooFEJgKRXw0if85RpISEzwsjzeqWzkjkC4PIJ3MUmQgITAHlQwTFhnZhELkEntfZRwR+AvfAgXmJHOqU02XligWT8ppg67NXbdCXeq7afUQ6L8C2DalEZNt2YyQ94Qy8/ekjMpBMbfyl5iTjG7YAI8cNecROAb4kJmTjaXAF3AGvwQewOiuRxEtlSaT4j2h2lMsUueQEoMlIKpTvAmKhxPMtC876jEX6rE8l8TNx/KVbn6xlWU9NWcSDUsO4NGWpQOTZFpHPOooMXcswmW2XFk3ixb2v0Nq+XVKP00QNaffBLyWwBI/AkTlfMYZDXMf12kc6yjwEjoFdO/5me5oi/6tnyhlZX6OtgmX1c2Uh0k3khmbB2b9TRfpd/jfTUeRDJvHdYg5wE7kPXAN3wQ1weDvH+xufEgpi5qIl3QAAAABJRU5ErkJggg=="; + return LoadingScreen; + }()); + webgl.LoadingScreen = LoadingScreen; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - webgl.M00 = 0; - webgl.M01 = 4; - webgl.M02 = 8; - webgl.M03 = 12; - webgl.M10 = 1; - webgl.M11 = 5; - webgl.M12 = 9; - webgl.M13 = 13; - webgl.M20 = 2; - webgl.M21 = 6; - webgl.M22 = 10; - webgl.M23 = 14; - webgl.M30 = 3; - webgl.M31 = 7; - webgl.M32 = 11; - webgl.M33 = 15; - var Matrix4 = (function () { - function Matrix4() { - this.temp = new Float32Array(16); - this.values = new Float32Array(16); - var v = this.values; - v[webgl.M00] = 1; - v[webgl.M11] = 1; - v[webgl.M22] = 1; - v[webgl.M33] = 1; - } - Matrix4.prototype.set = function (values) { - this.values.set(values); - return this; - }; - Matrix4.prototype.transpose = function () { - var t = this.temp; - var v = this.values; - t[webgl.M00] = v[webgl.M00]; - t[webgl.M01] = v[webgl.M10]; - t[webgl.M02] = v[webgl.M20]; - t[webgl.M03] = v[webgl.M30]; - t[webgl.M10] = v[webgl.M01]; - t[webgl.M11] = v[webgl.M11]; - t[webgl.M12] = v[webgl.M21]; - t[webgl.M13] = v[webgl.M31]; - t[webgl.M20] = v[webgl.M02]; - t[webgl.M21] = v[webgl.M12]; - t[webgl.M22] = v[webgl.M22]; - t[webgl.M23] = v[webgl.M32]; - t[webgl.M30] = v[webgl.M03]; - t[webgl.M31] = v[webgl.M13]; - t[webgl.M32] = v[webgl.M23]; - t[webgl.M33] = v[webgl.M33]; - return this.set(t); - }; - Matrix4.prototype.identity = function () { - var v = this.values; - v[webgl.M00] = 1; - v[webgl.M01] = 0; - v[webgl.M02] = 0; - v[webgl.M03] = 0; - v[webgl.M10] = 0; - v[webgl.M11] = 1; - v[webgl.M12] = 0; - v[webgl.M13] = 0; - v[webgl.M20] = 0; - v[webgl.M21] = 0; - v[webgl.M22] = 1; - v[webgl.M23] = 0; - v[webgl.M30] = 0; - v[webgl.M31] = 0; - v[webgl.M32] = 0; - v[webgl.M33] = 1; - return this; - }; - Matrix4.prototype.invert = function () { - var v = this.values; - var t = this.temp; - var l_det = v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] - + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] - - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] - - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] - + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] - + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] - - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] - - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; - if (l_det == 0) - throw new Error("non-invertible matrix"); - var inv_det = 1.0 / l_det; - t[webgl.M00] = v[webgl.M12] * v[webgl.M23] * v[webgl.M31] - v[webgl.M13] * v[webgl.M22] * v[webgl.M31] + v[webgl.M13] * v[webgl.M21] * v[webgl.M32] - - v[webgl.M11] * v[webgl.M23] * v[webgl.M32] - v[webgl.M12] * v[webgl.M21] * v[webgl.M33] + v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M01] = v[webgl.M03] * v[webgl.M22] * v[webgl.M31] - v[webgl.M02] * v[webgl.M23] * v[webgl.M31] - v[webgl.M03] * v[webgl.M21] * v[webgl.M32] - + v[webgl.M01] * v[webgl.M23] * v[webgl.M32] + v[webgl.M02] * v[webgl.M21] * v[webgl.M33] - v[webgl.M01] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M02] = v[webgl.M02] * v[webgl.M13] * v[webgl.M31] - v[webgl.M03] * v[webgl.M12] * v[webgl.M31] + v[webgl.M03] * v[webgl.M11] * v[webgl.M32] - - v[webgl.M01] * v[webgl.M13] * v[webgl.M32] - v[webgl.M02] * v[webgl.M11] * v[webgl.M33] + v[webgl.M01] * v[webgl.M12] * v[webgl.M33]; - t[webgl.M03] = v[webgl.M03] * v[webgl.M12] * v[webgl.M21] - v[webgl.M02] * v[webgl.M13] * v[webgl.M21] - v[webgl.M03] * v[webgl.M11] * v[webgl.M22] - + v[webgl.M01] * v[webgl.M13] * v[webgl.M22] + v[webgl.M02] * v[webgl.M11] * v[webgl.M23] - v[webgl.M01] * v[webgl.M12] * v[webgl.M23]; - t[webgl.M10] = v[webgl.M13] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M20] * v[webgl.M32] - + v[webgl.M10] * v[webgl.M23] * v[webgl.M32] + v[webgl.M12] * v[webgl.M20] * v[webgl.M33] - v[webgl.M10] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M11] = v[webgl.M02] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M22] * v[webgl.M30] + v[webgl.M03] * v[webgl.M20] * v[webgl.M32] - - v[webgl.M00] * v[webgl.M23] * v[webgl.M32] - v[webgl.M02] * v[webgl.M20] * v[webgl.M33] + v[webgl.M00] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M12] = v[webgl.M03] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M10] * v[webgl.M32] - + v[webgl.M00] * v[webgl.M13] * v[webgl.M32] + v[webgl.M02] * v[webgl.M10] * v[webgl.M33] - v[webgl.M00] * v[webgl.M12] * v[webgl.M33]; - t[webgl.M13] = v[webgl.M02] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M12] * v[webgl.M20] + v[webgl.M03] * v[webgl.M10] * v[webgl.M22] - - v[webgl.M00] * v[webgl.M13] * v[webgl.M22] - v[webgl.M02] * v[webgl.M10] * v[webgl.M23] + v[webgl.M00] * v[webgl.M12] * v[webgl.M23]; - t[webgl.M20] = v[webgl.M11] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M21] * v[webgl.M30] + v[webgl.M13] * v[webgl.M20] * v[webgl.M31] - - v[webgl.M10] * v[webgl.M23] * v[webgl.M31] - v[webgl.M11] * v[webgl.M20] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M33]; - t[webgl.M21] = v[webgl.M03] * v[webgl.M21] * v[webgl.M30] - v[webgl.M01] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M20] * v[webgl.M31] - + v[webgl.M00] * v[webgl.M23] * v[webgl.M31] + v[webgl.M01] * v[webgl.M20] * v[webgl.M33] - v[webgl.M00] * v[webgl.M21] * v[webgl.M33]; - t[webgl.M22] = v[webgl.M01] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M11] * v[webgl.M30] + v[webgl.M03] * v[webgl.M10] * v[webgl.M31] - - v[webgl.M00] * v[webgl.M13] * v[webgl.M31] - v[webgl.M01] * v[webgl.M10] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M33]; - t[webgl.M23] = v[webgl.M03] * v[webgl.M11] * v[webgl.M20] - v[webgl.M01] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M10] * v[webgl.M21] - + v[webgl.M00] * v[webgl.M13] * v[webgl.M21] + v[webgl.M01] * v[webgl.M10] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M23]; - t[webgl.M30] = v[webgl.M12] * v[webgl.M21] * v[webgl.M30] - v[webgl.M11] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M20] * v[webgl.M31] - + v[webgl.M10] * v[webgl.M22] * v[webgl.M31] + v[webgl.M11] * v[webgl.M20] * v[webgl.M32] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32]; - t[webgl.M31] = v[webgl.M01] * v[webgl.M22] * v[webgl.M30] - v[webgl.M02] * v[webgl.M21] * v[webgl.M30] + v[webgl.M02] * v[webgl.M20] * v[webgl.M31] - - v[webgl.M00] * v[webgl.M22] * v[webgl.M31] - v[webgl.M01] * v[webgl.M20] * v[webgl.M32] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32]; - t[webgl.M32] = v[webgl.M02] * v[webgl.M11] * v[webgl.M30] - v[webgl.M01] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M10] * v[webgl.M31] - + v[webgl.M00] * v[webgl.M12] * v[webgl.M31] + v[webgl.M01] * v[webgl.M10] * v[webgl.M32] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32]; - t[webgl.M33] = v[webgl.M01] * v[webgl.M12] * v[webgl.M20] - v[webgl.M02] * v[webgl.M11] * v[webgl.M20] + v[webgl.M02] * v[webgl.M10] * v[webgl.M21] - - v[webgl.M00] * v[webgl.M12] * v[webgl.M21] - v[webgl.M01] * v[webgl.M10] * v[webgl.M22] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22]; - v[webgl.M00] = t[webgl.M00] * inv_det; - v[webgl.M01] = t[webgl.M01] * inv_det; - v[webgl.M02] = t[webgl.M02] * inv_det; - v[webgl.M03] = t[webgl.M03] * inv_det; - v[webgl.M10] = t[webgl.M10] * inv_det; - v[webgl.M11] = t[webgl.M11] * inv_det; - v[webgl.M12] = t[webgl.M12] * inv_det; - v[webgl.M13] = t[webgl.M13] * inv_det; - v[webgl.M20] = t[webgl.M20] * inv_det; - v[webgl.M21] = t[webgl.M21] * inv_det; - v[webgl.M22] = t[webgl.M22] * inv_det; - v[webgl.M23] = t[webgl.M23] * inv_det; - v[webgl.M30] = t[webgl.M30] * inv_det; - v[webgl.M31] = t[webgl.M31] * inv_det; - v[webgl.M32] = t[webgl.M32] * inv_det; - v[webgl.M33] = t[webgl.M33] * inv_det; - return this; - }; - Matrix4.prototype.determinant = function () { - var v = this.values; - return v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] - + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] - - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] - - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] - + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] - + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] - - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] - - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; - }; - Matrix4.prototype.translate = function (x, y, z) { - var v = this.values; - v[webgl.M03] += x; - v[webgl.M13] += y; - v[webgl.M23] += z; - return this; - }; - Matrix4.prototype.copy = function () { - return new Matrix4().set(this.values); - }; - Matrix4.prototype.projection = function (near, far, fovy, aspectRatio) { - this.identity(); - var l_fd = (1.0 / Math.tan((fovy * (Math.PI / 180)) / 2.0)); - var l_a1 = (far + near) / (near - far); - var l_a2 = (2 * far * near) / (near - far); - var v = this.values; - v[webgl.M00] = l_fd / aspectRatio; - v[webgl.M10] = 0; - v[webgl.M20] = 0; - v[webgl.M30] = 0; - v[webgl.M01] = 0; - v[webgl.M11] = l_fd; - v[webgl.M21] = 0; - v[webgl.M31] = 0; - v[webgl.M02] = 0; - v[webgl.M12] = 0; - v[webgl.M22] = l_a1; - v[webgl.M32] = -1; - v[webgl.M03] = 0; - v[webgl.M13] = 0; - v[webgl.M23] = l_a2; - v[webgl.M33] = 0; - return this; - }; - Matrix4.prototype.ortho2d = function (x, y, width, height) { - return this.ortho(x, x + width, y, y + height, 0, 1); - }; - Matrix4.prototype.ortho = function (left, right, bottom, top, near, far) { - this.identity(); - var x_orth = 2 / (right - left); - var y_orth = 2 / (top - bottom); - var z_orth = -2 / (far - near); - var tx = -(right + left) / (right - left); - var ty = -(top + bottom) / (top - bottom); - var tz = -(far + near) / (far - near); - var v = this.values; - v[webgl.M00] = x_orth; - v[webgl.M10] = 0; - v[webgl.M20] = 0; - v[webgl.M30] = 0; - v[webgl.M01] = 0; - v[webgl.M11] = y_orth; - v[webgl.M21] = 0; - v[webgl.M31] = 0; - v[webgl.M02] = 0; - v[webgl.M12] = 0; - v[webgl.M22] = z_orth; - v[webgl.M32] = 0; - v[webgl.M03] = tx; - v[webgl.M13] = ty; - v[webgl.M23] = tz; - v[webgl.M33] = 1; - return this; - }; - Matrix4.prototype.multiply = function (matrix) { - var t = this.temp; - var v = this.values; - var m = matrix.values; - t[webgl.M00] = v[webgl.M00] * m[webgl.M00] + v[webgl.M01] * m[webgl.M10] + v[webgl.M02] * m[webgl.M20] + v[webgl.M03] * m[webgl.M30]; - t[webgl.M01] = v[webgl.M00] * m[webgl.M01] + v[webgl.M01] * m[webgl.M11] + v[webgl.M02] * m[webgl.M21] + v[webgl.M03] * m[webgl.M31]; - t[webgl.M02] = v[webgl.M00] * m[webgl.M02] + v[webgl.M01] * m[webgl.M12] + v[webgl.M02] * m[webgl.M22] + v[webgl.M03] * m[webgl.M32]; - t[webgl.M03] = v[webgl.M00] * m[webgl.M03] + v[webgl.M01] * m[webgl.M13] + v[webgl.M02] * m[webgl.M23] + v[webgl.M03] * m[webgl.M33]; - t[webgl.M10] = v[webgl.M10] * m[webgl.M00] + v[webgl.M11] * m[webgl.M10] + v[webgl.M12] * m[webgl.M20] + v[webgl.M13] * m[webgl.M30]; - t[webgl.M11] = v[webgl.M10] * m[webgl.M01] + v[webgl.M11] * m[webgl.M11] + v[webgl.M12] * m[webgl.M21] + v[webgl.M13] * m[webgl.M31]; - t[webgl.M12] = v[webgl.M10] * m[webgl.M02] + v[webgl.M11] * m[webgl.M12] + v[webgl.M12] * m[webgl.M22] + v[webgl.M13] * m[webgl.M32]; - t[webgl.M13] = v[webgl.M10] * m[webgl.M03] + v[webgl.M11] * m[webgl.M13] + v[webgl.M12] * m[webgl.M23] + v[webgl.M13] * m[webgl.M33]; - t[webgl.M20] = v[webgl.M20] * m[webgl.M00] + v[webgl.M21] * m[webgl.M10] + v[webgl.M22] * m[webgl.M20] + v[webgl.M23] * m[webgl.M30]; - t[webgl.M21] = v[webgl.M20] * m[webgl.M01] + v[webgl.M21] * m[webgl.M11] + v[webgl.M22] * m[webgl.M21] + v[webgl.M23] * m[webgl.M31]; - t[webgl.M22] = v[webgl.M20] * m[webgl.M02] + v[webgl.M21] * m[webgl.M12] + v[webgl.M22] * m[webgl.M22] + v[webgl.M23] * m[webgl.M32]; - t[webgl.M23] = v[webgl.M20] * m[webgl.M03] + v[webgl.M21] * m[webgl.M13] + v[webgl.M22] * m[webgl.M23] + v[webgl.M23] * m[webgl.M33]; - t[webgl.M30] = v[webgl.M30] * m[webgl.M00] + v[webgl.M31] * m[webgl.M10] + v[webgl.M32] * m[webgl.M20] + v[webgl.M33] * m[webgl.M30]; - t[webgl.M31] = v[webgl.M30] * m[webgl.M01] + v[webgl.M31] * m[webgl.M11] + v[webgl.M32] * m[webgl.M21] + v[webgl.M33] * m[webgl.M31]; - t[webgl.M32] = v[webgl.M30] * m[webgl.M02] + v[webgl.M31] * m[webgl.M12] + v[webgl.M32] * m[webgl.M22] + v[webgl.M33] * m[webgl.M32]; - t[webgl.M33] = v[webgl.M30] * m[webgl.M03] + v[webgl.M31] * m[webgl.M13] + v[webgl.M32] * m[webgl.M23] + v[webgl.M33] * m[webgl.M33]; - return this.set(this.temp); - }; - Matrix4.prototype.multiplyLeft = function (matrix) { - var t = this.temp; - var v = this.values; - var m = matrix.values; - t[webgl.M00] = m[webgl.M00] * v[webgl.M00] + m[webgl.M01] * v[webgl.M10] + m[webgl.M02] * v[webgl.M20] + m[webgl.M03] * v[webgl.M30]; - t[webgl.M01] = m[webgl.M00] * v[webgl.M01] + m[webgl.M01] * v[webgl.M11] + m[webgl.M02] * v[webgl.M21] + m[webgl.M03] * v[webgl.M31]; - t[webgl.M02] = m[webgl.M00] * v[webgl.M02] + m[webgl.M01] * v[webgl.M12] + m[webgl.M02] * v[webgl.M22] + m[webgl.M03] * v[webgl.M32]; - t[webgl.M03] = m[webgl.M00] * v[webgl.M03] + m[webgl.M01] * v[webgl.M13] + m[webgl.M02] * v[webgl.M23] + m[webgl.M03] * v[webgl.M33]; - t[webgl.M10] = m[webgl.M10] * v[webgl.M00] + m[webgl.M11] * v[webgl.M10] + m[webgl.M12] * v[webgl.M20] + m[webgl.M13] * v[webgl.M30]; - t[webgl.M11] = m[webgl.M10] * v[webgl.M01] + m[webgl.M11] * v[webgl.M11] + m[webgl.M12] * v[webgl.M21] + m[webgl.M13] * v[webgl.M31]; - t[webgl.M12] = m[webgl.M10] * v[webgl.M02] + m[webgl.M11] * v[webgl.M12] + m[webgl.M12] * v[webgl.M22] + m[webgl.M13] * v[webgl.M32]; - t[webgl.M13] = m[webgl.M10] * v[webgl.M03] + m[webgl.M11] * v[webgl.M13] + m[webgl.M12] * v[webgl.M23] + m[webgl.M13] * v[webgl.M33]; - t[webgl.M20] = m[webgl.M20] * v[webgl.M00] + m[webgl.M21] * v[webgl.M10] + m[webgl.M22] * v[webgl.M20] + m[webgl.M23] * v[webgl.M30]; - t[webgl.M21] = m[webgl.M20] * v[webgl.M01] + m[webgl.M21] * v[webgl.M11] + m[webgl.M22] * v[webgl.M21] + m[webgl.M23] * v[webgl.M31]; - t[webgl.M22] = m[webgl.M20] * v[webgl.M02] + m[webgl.M21] * v[webgl.M12] + m[webgl.M22] * v[webgl.M22] + m[webgl.M23] * v[webgl.M32]; - t[webgl.M23] = m[webgl.M20] * v[webgl.M03] + m[webgl.M21] * v[webgl.M13] + m[webgl.M22] * v[webgl.M23] + m[webgl.M23] * v[webgl.M33]; - t[webgl.M30] = m[webgl.M30] * v[webgl.M00] + m[webgl.M31] * v[webgl.M10] + m[webgl.M32] * v[webgl.M20] + m[webgl.M33] * v[webgl.M30]; - t[webgl.M31] = m[webgl.M30] * v[webgl.M01] + m[webgl.M31] * v[webgl.M11] + m[webgl.M32] * v[webgl.M21] + m[webgl.M33] * v[webgl.M31]; - t[webgl.M32] = m[webgl.M30] * v[webgl.M02] + m[webgl.M31] * v[webgl.M12] + m[webgl.M32] * v[webgl.M22] + m[webgl.M33] * v[webgl.M32]; - t[webgl.M33] = m[webgl.M30] * v[webgl.M03] + m[webgl.M31] * v[webgl.M13] + m[webgl.M32] * v[webgl.M23] + m[webgl.M33] * v[webgl.M33]; - return this.set(this.temp); - }; - Matrix4.prototype.lookAt = function (position, direction, up) { - Matrix4.initTemps(); - var xAxis = Matrix4.xAxis, yAxis = Matrix4.yAxis, zAxis = Matrix4.zAxis; - zAxis.setFrom(direction).normalize(); - xAxis.setFrom(direction).normalize(); - xAxis.cross(up).normalize(); - yAxis.setFrom(xAxis).cross(zAxis).normalize(); - this.identity(); - var val = this.values; - val[webgl.M00] = xAxis.x; - val[webgl.M01] = xAxis.y; - val[webgl.M02] = xAxis.z; - val[webgl.M10] = yAxis.x; - val[webgl.M11] = yAxis.y; - val[webgl.M12] = yAxis.z; - val[webgl.M20] = -zAxis.x; - val[webgl.M21] = -zAxis.y; - val[webgl.M22] = -zAxis.z; - Matrix4.tmpMatrix.identity(); - Matrix4.tmpMatrix.values[webgl.M03] = -position.x; - Matrix4.tmpMatrix.values[webgl.M13] = -position.y; - Matrix4.tmpMatrix.values[webgl.M23] = -position.z; - this.multiply(Matrix4.tmpMatrix); - return this; - }; - Matrix4.initTemps = function () { - if (Matrix4.xAxis === null) - Matrix4.xAxis = new webgl.Vector3(); - if (Matrix4.yAxis === null) - Matrix4.yAxis = new webgl.Vector3(); - if (Matrix4.zAxis === null) - Matrix4.zAxis = new webgl.Vector3(); - }; - Matrix4.xAxis = null; - Matrix4.yAxis = null; - Matrix4.zAxis = null; - Matrix4.tmpMatrix = new Matrix4(); - return Matrix4; - }()); - webgl.Matrix4 = Matrix4; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + webgl.M00 = 0; + webgl.M01 = 4; + webgl.M02 = 8; + webgl.M03 = 12; + webgl.M10 = 1; + webgl.M11 = 5; + webgl.M12 = 9; + webgl.M13 = 13; + webgl.M20 = 2; + webgl.M21 = 6; + webgl.M22 = 10; + webgl.M23 = 14; + webgl.M30 = 3; + webgl.M31 = 7; + webgl.M32 = 11; + webgl.M33 = 15; + var Matrix4 = (function () { + function Matrix4() { + this.temp = new Float32Array(16); + this.values = new Float32Array(16); + var v = this.values; + v[webgl.M00] = 1; + v[webgl.M11] = 1; + v[webgl.M22] = 1; + v[webgl.M33] = 1; + } + Matrix4.prototype.set = function (values) { + this.values.set(values); + return this; + }; + Matrix4.prototype.transpose = function () { + var t = this.temp; + var v = this.values; + t[webgl.M00] = v[webgl.M00]; + t[webgl.M01] = v[webgl.M10]; + t[webgl.M02] = v[webgl.M20]; + t[webgl.M03] = v[webgl.M30]; + t[webgl.M10] = v[webgl.M01]; + t[webgl.M11] = v[webgl.M11]; + t[webgl.M12] = v[webgl.M21]; + t[webgl.M13] = v[webgl.M31]; + t[webgl.M20] = v[webgl.M02]; + t[webgl.M21] = v[webgl.M12]; + t[webgl.M22] = v[webgl.M22]; + t[webgl.M23] = v[webgl.M32]; + t[webgl.M30] = v[webgl.M03]; + t[webgl.M31] = v[webgl.M13]; + t[webgl.M32] = v[webgl.M23]; + t[webgl.M33] = v[webgl.M33]; + return this.set(t); + }; + Matrix4.prototype.identity = function () { + var v = this.values; + v[webgl.M00] = 1; + v[webgl.M01] = 0; + v[webgl.M02] = 0; + v[webgl.M03] = 0; + v[webgl.M10] = 0; + v[webgl.M11] = 1; + v[webgl.M12] = 0; + v[webgl.M13] = 0; + v[webgl.M20] = 0; + v[webgl.M21] = 0; + v[webgl.M22] = 1; + v[webgl.M23] = 0; + v[webgl.M30] = 0; + v[webgl.M31] = 0; + v[webgl.M32] = 0; + v[webgl.M33] = 1; + return this; + }; + Matrix4.prototype.invert = function () { + var v = this.values; + var t = this.temp; + var l_det = v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] + + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] + - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] + - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] + + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] + + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] + - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] + - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; + if (l_det == 0) + throw new Error("non-invertible matrix"); + var inv_det = 1.0 / l_det; + t[webgl.M00] = v[webgl.M12] * v[webgl.M23] * v[webgl.M31] - v[webgl.M13] * v[webgl.M22] * v[webgl.M31] + v[webgl.M13] * v[webgl.M21] * v[webgl.M32] + - v[webgl.M11] * v[webgl.M23] * v[webgl.M32] - v[webgl.M12] * v[webgl.M21] * v[webgl.M33] + v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M01] = v[webgl.M03] * v[webgl.M22] * v[webgl.M31] - v[webgl.M02] * v[webgl.M23] * v[webgl.M31] - v[webgl.M03] * v[webgl.M21] * v[webgl.M32] + + v[webgl.M01] * v[webgl.M23] * v[webgl.M32] + v[webgl.M02] * v[webgl.M21] * v[webgl.M33] - v[webgl.M01] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M02] = v[webgl.M02] * v[webgl.M13] * v[webgl.M31] - v[webgl.M03] * v[webgl.M12] * v[webgl.M31] + v[webgl.M03] * v[webgl.M11] * v[webgl.M32] + - v[webgl.M01] * v[webgl.M13] * v[webgl.M32] - v[webgl.M02] * v[webgl.M11] * v[webgl.M33] + v[webgl.M01] * v[webgl.M12] * v[webgl.M33]; + t[webgl.M03] = v[webgl.M03] * v[webgl.M12] * v[webgl.M21] - v[webgl.M02] * v[webgl.M13] * v[webgl.M21] - v[webgl.M03] * v[webgl.M11] * v[webgl.M22] + + v[webgl.M01] * v[webgl.M13] * v[webgl.M22] + v[webgl.M02] * v[webgl.M11] * v[webgl.M23] - v[webgl.M01] * v[webgl.M12] * v[webgl.M23]; + t[webgl.M10] = v[webgl.M13] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M20] * v[webgl.M32] + + v[webgl.M10] * v[webgl.M23] * v[webgl.M32] + v[webgl.M12] * v[webgl.M20] * v[webgl.M33] - v[webgl.M10] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M11] = v[webgl.M02] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M22] * v[webgl.M30] + v[webgl.M03] * v[webgl.M20] * v[webgl.M32] + - v[webgl.M00] * v[webgl.M23] * v[webgl.M32] - v[webgl.M02] * v[webgl.M20] * v[webgl.M33] + v[webgl.M00] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M12] = v[webgl.M03] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M10] * v[webgl.M32] + + v[webgl.M00] * v[webgl.M13] * v[webgl.M32] + v[webgl.M02] * v[webgl.M10] * v[webgl.M33] - v[webgl.M00] * v[webgl.M12] * v[webgl.M33]; + t[webgl.M13] = v[webgl.M02] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M12] * v[webgl.M20] + v[webgl.M03] * v[webgl.M10] * v[webgl.M22] + - v[webgl.M00] * v[webgl.M13] * v[webgl.M22] - v[webgl.M02] * v[webgl.M10] * v[webgl.M23] + v[webgl.M00] * v[webgl.M12] * v[webgl.M23]; + t[webgl.M20] = v[webgl.M11] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M21] * v[webgl.M30] + v[webgl.M13] * v[webgl.M20] * v[webgl.M31] + - v[webgl.M10] * v[webgl.M23] * v[webgl.M31] - v[webgl.M11] * v[webgl.M20] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M33]; + t[webgl.M21] = v[webgl.M03] * v[webgl.M21] * v[webgl.M30] - v[webgl.M01] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M20] * v[webgl.M31] + + v[webgl.M00] * v[webgl.M23] * v[webgl.M31] + v[webgl.M01] * v[webgl.M20] * v[webgl.M33] - v[webgl.M00] * v[webgl.M21] * v[webgl.M33]; + t[webgl.M22] = v[webgl.M01] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M11] * v[webgl.M30] + v[webgl.M03] * v[webgl.M10] * v[webgl.M31] + - v[webgl.M00] * v[webgl.M13] * v[webgl.M31] - v[webgl.M01] * v[webgl.M10] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M33]; + t[webgl.M23] = v[webgl.M03] * v[webgl.M11] * v[webgl.M20] - v[webgl.M01] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M10] * v[webgl.M21] + + v[webgl.M00] * v[webgl.M13] * v[webgl.M21] + v[webgl.M01] * v[webgl.M10] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M23]; + t[webgl.M30] = v[webgl.M12] * v[webgl.M21] * v[webgl.M30] - v[webgl.M11] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M20] * v[webgl.M31] + + v[webgl.M10] * v[webgl.M22] * v[webgl.M31] + v[webgl.M11] * v[webgl.M20] * v[webgl.M32] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32]; + t[webgl.M31] = v[webgl.M01] * v[webgl.M22] * v[webgl.M30] - v[webgl.M02] * v[webgl.M21] * v[webgl.M30] + v[webgl.M02] * v[webgl.M20] * v[webgl.M31] + - v[webgl.M00] * v[webgl.M22] * v[webgl.M31] - v[webgl.M01] * v[webgl.M20] * v[webgl.M32] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32]; + t[webgl.M32] = v[webgl.M02] * v[webgl.M11] * v[webgl.M30] - v[webgl.M01] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M10] * v[webgl.M31] + + v[webgl.M00] * v[webgl.M12] * v[webgl.M31] + v[webgl.M01] * v[webgl.M10] * v[webgl.M32] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32]; + t[webgl.M33] = v[webgl.M01] * v[webgl.M12] * v[webgl.M20] - v[webgl.M02] * v[webgl.M11] * v[webgl.M20] + v[webgl.M02] * v[webgl.M10] * v[webgl.M21] + - v[webgl.M00] * v[webgl.M12] * v[webgl.M21] - v[webgl.M01] * v[webgl.M10] * v[webgl.M22] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22]; + v[webgl.M00] = t[webgl.M00] * inv_det; + v[webgl.M01] = t[webgl.M01] * inv_det; + v[webgl.M02] = t[webgl.M02] * inv_det; + v[webgl.M03] = t[webgl.M03] * inv_det; + v[webgl.M10] = t[webgl.M10] * inv_det; + v[webgl.M11] = t[webgl.M11] * inv_det; + v[webgl.M12] = t[webgl.M12] * inv_det; + v[webgl.M13] = t[webgl.M13] * inv_det; + v[webgl.M20] = t[webgl.M20] * inv_det; + v[webgl.M21] = t[webgl.M21] * inv_det; + v[webgl.M22] = t[webgl.M22] * inv_det; + v[webgl.M23] = t[webgl.M23] * inv_det; + v[webgl.M30] = t[webgl.M30] * inv_det; + v[webgl.M31] = t[webgl.M31] * inv_det; + v[webgl.M32] = t[webgl.M32] * inv_det; + v[webgl.M33] = t[webgl.M33] * inv_det; + return this; + }; + Matrix4.prototype.determinant = function () { + var v = this.values; + return v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] + + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] + - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] + - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] + + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] + + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] + - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] + - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; + }; + Matrix4.prototype.translate = function (x, y, z) { + var v = this.values; + v[webgl.M03] += x; + v[webgl.M13] += y; + v[webgl.M23] += z; + return this; + }; + Matrix4.prototype.copy = function () { + return new Matrix4().set(this.values); + }; + Matrix4.prototype.projection = function (near, far, fovy, aspectRatio) { + this.identity(); + var l_fd = (1.0 / Math.tan((fovy * (Math.PI / 180)) / 2.0)); + var l_a1 = (far + near) / (near - far); + var l_a2 = (2 * far * near) / (near - far); + var v = this.values; + v[webgl.M00] = l_fd / aspectRatio; + v[webgl.M10] = 0; + v[webgl.M20] = 0; + v[webgl.M30] = 0; + v[webgl.M01] = 0; + v[webgl.M11] = l_fd; + v[webgl.M21] = 0; + v[webgl.M31] = 0; + v[webgl.M02] = 0; + v[webgl.M12] = 0; + v[webgl.M22] = l_a1; + v[webgl.M32] = -1; + v[webgl.M03] = 0; + v[webgl.M13] = 0; + v[webgl.M23] = l_a2; + v[webgl.M33] = 0; + return this; + }; + Matrix4.prototype.ortho2d = function (x, y, width, height) { + return this.ortho(x, x + width, y, y + height, 0, 1); + }; + Matrix4.prototype.ortho = function (left, right, bottom, top, near, far) { + this.identity(); + var x_orth = 2 / (right - left); + var y_orth = 2 / (top - bottom); + var z_orth = -2 / (far - near); + var tx = -(right + left) / (right - left); + var ty = -(top + bottom) / (top - bottom); + var tz = -(far + near) / (far - near); + var v = this.values; + v[webgl.M00] = x_orth; + v[webgl.M10] = 0; + v[webgl.M20] = 0; + v[webgl.M30] = 0; + v[webgl.M01] = 0; + v[webgl.M11] = y_orth; + v[webgl.M21] = 0; + v[webgl.M31] = 0; + v[webgl.M02] = 0; + v[webgl.M12] = 0; + v[webgl.M22] = z_orth; + v[webgl.M32] = 0; + v[webgl.M03] = tx; + v[webgl.M13] = ty; + v[webgl.M23] = tz; + v[webgl.M33] = 1; + return this; + }; + Matrix4.prototype.multiply = function (matrix) { + var t = this.temp; + var v = this.values; + var m = matrix.values; + t[webgl.M00] = v[webgl.M00] * m[webgl.M00] + v[webgl.M01] * m[webgl.M10] + v[webgl.M02] * m[webgl.M20] + v[webgl.M03] * m[webgl.M30]; + t[webgl.M01] = v[webgl.M00] * m[webgl.M01] + v[webgl.M01] * m[webgl.M11] + v[webgl.M02] * m[webgl.M21] + v[webgl.M03] * m[webgl.M31]; + t[webgl.M02] = v[webgl.M00] * m[webgl.M02] + v[webgl.M01] * m[webgl.M12] + v[webgl.M02] * m[webgl.M22] + v[webgl.M03] * m[webgl.M32]; + t[webgl.M03] = v[webgl.M00] * m[webgl.M03] + v[webgl.M01] * m[webgl.M13] + v[webgl.M02] * m[webgl.M23] + v[webgl.M03] * m[webgl.M33]; + t[webgl.M10] = v[webgl.M10] * m[webgl.M00] + v[webgl.M11] * m[webgl.M10] + v[webgl.M12] * m[webgl.M20] + v[webgl.M13] * m[webgl.M30]; + t[webgl.M11] = v[webgl.M10] * m[webgl.M01] + v[webgl.M11] * m[webgl.M11] + v[webgl.M12] * m[webgl.M21] + v[webgl.M13] * m[webgl.M31]; + t[webgl.M12] = v[webgl.M10] * m[webgl.M02] + v[webgl.M11] * m[webgl.M12] + v[webgl.M12] * m[webgl.M22] + v[webgl.M13] * m[webgl.M32]; + t[webgl.M13] = v[webgl.M10] * m[webgl.M03] + v[webgl.M11] * m[webgl.M13] + v[webgl.M12] * m[webgl.M23] + v[webgl.M13] * m[webgl.M33]; + t[webgl.M20] = v[webgl.M20] * m[webgl.M00] + v[webgl.M21] * m[webgl.M10] + v[webgl.M22] * m[webgl.M20] + v[webgl.M23] * m[webgl.M30]; + t[webgl.M21] = v[webgl.M20] * m[webgl.M01] + v[webgl.M21] * m[webgl.M11] + v[webgl.M22] * m[webgl.M21] + v[webgl.M23] * m[webgl.M31]; + t[webgl.M22] = v[webgl.M20] * m[webgl.M02] + v[webgl.M21] * m[webgl.M12] + v[webgl.M22] * m[webgl.M22] + v[webgl.M23] * m[webgl.M32]; + t[webgl.M23] = v[webgl.M20] * m[webgl.M03] + v[webgl.M21] * m[webgl.M13] + v[webgl.M22] * m[webgl.M23] + v[webgl.M23] * m[webgl.M33]; + t[webgl.M30] = v[webgl.M30] * m[webgl.M00] + v[webgl.M31] * m[webgl.M10] + v[webgl.M32] * m[webgl.M20] + v[webgl.M33] * m[webgl.M30]; + t[webgl.M31] = v[webgl.M30] * m[webgl.M01] + v[webgl.M31] * m[webgl.M11] + v[webgl.M32] * m[webgl.M21] + v[webgl.M33] * m[webgl.M31]; + t[webgl.M32] = v[webgl.M30] * m[webgl.M02] + v[webgl.M31] * m[webgl.M12] + v[webgl.M32] * m[webgl.M22] + v[webgl.M33] * m[webgl.M32]; + t[webgl.M33] = v[webgl.M30] * m[webgl.M03] + v[webgl.M31] * m[webgl.M13] + v[webgl.M32] * m[webgl.M23] + v[webgl.M33] * m[webgl.M33]; + return this.set(this.temp); + }; + Matrix4.prototype.multiplyLeft = function (matrix) { + var t = this.temp; + var v = this.values; + var m = matrix.values; + t[webgl.M00] = m[webgl.M00] * v[webgl.M00] + m[webgl.M01] * v[webgl.M10] + m[webgl.M02] * v[webgl.M20] + m[webgl.M03] * v[webgl.M30]; + t[webgl.M01] = m[webgl.M00] * v[webgl.M01] + m[webgl.M01] * v[webgl.M11] + m[webgl.M02] * v[webgl.M21] + m[webgl.M03] * v[webgl.M31]; + t[webgl.M02] = m[webgl.M00] * v[webgl.M02] + m[webgl.M01] * v[webgl.M12] + m[webgl.M02] * v[webgl.M22] + m[webgl.M03] * v[webgl.M32]; + t[webgl.M03] = m[webgl.M00] * v[webgl.M03] + m[webgl.M01] * v[webgl.M13] + m[webgl.M02] * v[webgl.M23] + m[webgl.M03] * v[webgl.M33]; + t[webgl.M10] = m[webgl.M10] * v[webgl.M00] + m[webgl.M11] * v[webgl.M10] + m[webgl.M12] * v[webgl.M20] + m[webgl.M13] * v[webgl.M30]; + t[webgl.M11] = m[webgl.M10] * v[webgl.M01] + m[webgl.M11] * v[webgl.M11] + m[webgl.M12] * v[webgl.M21] + m[webgl.M13] * v[webgl.M31]; + t[webgl.M12] = m[webgl.M10] * v[webgl.M02] + m[webgl.M11] * v[webgl.M12] + m[webgl.M12] * v[webgl.M22] + m[webgl.M13] * v[webgl.M32]; + t[webgl.M13] = m[webgl.M10] * v[webgl.M03] + m[webgl.M11] * v[webgl.M13] + m[webgl.M12] * v[webgl.M23] + m[webgl.M13] * v[webgl.M33]; + t[webgl.M20] = m[webgl.M20] * v[webgl.M00] + m[webgl.M21] * v[webgl.M10] + m[webgl.M22] * v[webgl.M20] + m[webgl.M23] * v[webgl.M30]; + t[webgl.M21] = m[webgl.M20] * v[webgl.M01] + m[webgl.M21] * v[webgl.M11] + m[webgl.M22] * v[webgl.M21] + m[webgl.M23] * v[webgl.M31]; + t[webgl.M22] = m[webgl.M20] * v[webgl.M02] + m[webgl.M21] * v[webgl.M12] + m[webgl.M22] * v[webgl.M22] + m[webgl.M23] * v[webgl.M32]; + t[webgl.M23] = m[webgl.M20] * v[webgl.M03] + m[webgl.M21] * v[webgl.M13] + m[webgl.M22] * v[webgl.M23] + m[webgl.M23] * v[webgl.M33]; + t[webgl.M30] = m[webgl.M30] * v[webgl.M00] + m[webgl.M31] * v[webgl.M10] + m[webgl.M32] * v[webgl.M20] + m[webgl.M33] * v[webgl.M30]; + t[webgl.M31] = m[webgl.M30] * v[webgl.M01] + m[webgl.M31] * v[webgl.M11] + m[webgl.M32] * v[webgl.M21] + m[webgl.M33] * v[webgl.M31]; + t[webgl.M32] = m[webgl.M30] * v[webgl.M02] + m[webgl.M31] * v[webgl.M12] + m[webgl.M32] * v[webgl.M22] + m[webgl.M33] * v[webgl.M32]; + t[webgl.M33] = m[webgl.M30] * v[webgl.M03] + m[webgl.M31] * v[webgl.M13] + m[webgl.M32] * v[webgl.M23] + m[webgl.M33] * v[webgl.M33]; + return this.set(this.temp); + }; + Matrix4.prototype.lookAt = function (position, direction, up) { + Matrix4.initTemps(); + var xAxis = Matrix4.xAxis, yAxis = Matrix4.yAxis, zAxis = Matrix4.zAxis; + zAxis.setFrom(direction).normalize(); + xAxis.setFrom(direction).normalize(); + xAxis.cross(up).normalize(); + yAxis.setFrom(xAxis).cross(zAxis).normalize(); + this.identity(); + var val = this.values; + val[webgl.M00] = xAxis.x; + val[webgl.M01] = xAxis.y; + val[webgl.M02] = xAxis.z; + val[webgl.M10] = yAxis.x; + val[webgl.M11] = yAxis.y; + val[webgl.M12] = yAxis.z; + val[webgl.M20] = -zAxis.x; + val[webgl.M21] = -zAxis.y; + val[webgl.M22] = -zAxis.z; + Matrix4.tmpMatrix.identity(); + Matrix4.tmpMatrix.values[webgl.M03] = -position.x; + Matrix4.tmpMatrix.values[webgl.M13] = -position.y; + Matrix4.tmpMatrix.values[webgl.M23] = -position.z; + this.multiply(Matrix4.tmpMatrix); + return this; + }; + Matrix4.initTemps = function () { + if (Matrix4.xAxis === null) + Matrix4.xAxis = new webgl.Vector3(); + if (Matrix4.yAxis === null) + Matrix4.yAxis = new webgl.Vector3(); + if (Matrix4.zAxis === null) + Matrix4.zAxis = new webgl.Vector3(); + }; + Matrix4.xAxis = null; + Matrix4.yAxis = null; + Matrix4.zAxis = null; + Matrix4.tmpMatrix = new Matrix4(); + return Matrix4; + }()); + webgl.Matrix4 = Matrix4; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Mesh = (function () { - function Mesh(context, attributes, maxVertices, maxIndices) { - this.attributes = attributes; - this.verticesLength = 0; - this.dirtyVertices = false; - this.indicesLength = 0; - this.dirtyIndices = false; - this.elementsPerVertex = 0; - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.elementsPerVertex = 0; - for (var i = 0; i < attributes.length; i++) { - this.elementsPerVertex += attributes[i].numElements; - } - this.vertices = new Float32Array(maxVertices * this.elementsPerVertex); - this.indices = new Uint16Array(maxIndices); - this.context.addRestorable(this); - } - Mesh.prototype.getAttributes = function () { return this.attributes; }; - Mesh.prototype.maxVertices = function () { return this.vertices.length / this.elementsPerVertex; }; - Mesh.prototype.numVertices = function () { return this.verticesLength / this.elementsPerVertex; }; - Mesh.prototype.setVerticesLength = function (length) { - this.dirtyVertices = true; - this.verticesLength = length; - }; - Mesh.prototype.getVertices = function () { return this.vertices; }; - Mesh.prototype.maxIndices = function () { return this.indices.length; }; - Mesh.prototype.numIndices = function () { return this.indicesLength; }; - Mesh.prototype.setIndicesLength = function (length) { - this.dirtyIndices = true; - this.indicesLength = length; - }; - Mesh.prototype.getIndices = function () { return this.indices; }; - ; - Mesh.prototype.getVertexSizeInFloats = function () { - var size = 0; - for (var i = 0; i < this.attributes.length; i++) { - var attribute = this.attributes[i]; - size += attribute.numElements; - } - return size; - }; - Mesh.prototype.setVertices = function (vertices) { - this.dirtyVertices = true; - if (vertices.length > this.vertices.length) - throw Error("Mesh can't store more than " + this.maxVertices() + " vertices"); - this.vertices.set(vertices, 0); - this.verticesLength = vertices.length; - }; - Mesh.prototype.setIndices = function (indices) { - this.dirtyIndices = true; - if (indices.length > this.indices.length) - throw Error("Mesh can't store more than " + this.maxIndices() + " indices"); - this.indices.set(indices, 0); - this.indicesLength = indices.length; - }; - Mesh.prototype.draw = function (shader, primitiveType) { - this.drawWithOffset(shader, primitiveType, 0, this.indicesLength > 0 ? this.indicesLength : this.verticesLength / this.elementsPerVertex); - }; - Mesh.prototype.drawWithOffset = function (shader, primitiveType, offset, count) { - var gl = this.context.gl; - if (this.dirtyVertices || this.dirtyIndices) - this.update(); - this.bind(shader); - if (this.indicesLength > 0) { - gl.drawElements(primitiveType, count, gl.UNSIGNED_SHORT, offset * 2); - } - else { - gl.drawArrays(primitiveType, offset, count); - } - this.unbind(shader); - }; - Mesh.prototype.bind = function (shader) { - var gl = this.context.gl; - gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); - var offset = 0; - for (var i = 0; i < this.attributes.length; i++) { - var attrib = this.attributes[i]; - var location_1 = shader.getAttributeLocation(attrib.name); - gl.enableVertexAttribArray(location_1); - gl.vertexAttribPointer(location_1, attrib.numElements, gl.FLOAT, false, this.elementsPerVertex * 4, offset * 4); - offset += attrib.numElements; - } - if (this.indicesLength > 0) - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); - }; - Mesh.prototype.unbind = function (shader) { - var gl = this.context.gl; - for (var i = 0; i < this.attributes.length; i++) { - var attrib = this.attributes[i]; - var location_2 = shader.getAttributeLocation(attrib.name); - gl.disableVertexAttribArray(location_2); - } - gl.bindBuffer(gl.ARRAY_BUFFER, null); - if (this.indicesLength > 0) - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); - }; - Mesh.prototype.update = function () { - var gl = this.context.gl; - if (this.dirtyVertices) { - if (!this.verticesBuffer) { - this.verticesBuffer = gl.createBuffer(); - } - gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.vertices.subarray(0, this.verticesLength), gl.DYNAMIC_DRAW); - this.dirtyVertices = false; - } - if (this.dirtyIndices) { - if (!this.indicesBuffer) { - this.indicesBuffer = gl.createBuffer(); - } - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); - gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices.subarray(0, this.indicesLength), gl.DYNAMIC_DRAW); - this.dirtyIndices = false; - } - }; - Mesh.prototype.restore = function () { - this.verticesBuffer = null; - this.indicesBuffer = null; - this.update(); - }; - Mesh.prototype.dispose = function () { - this.context.removeRestorable(this); - var gl = this.context.gl; - gl.deleteBuffer(this.verticesBuffer); - gl.deleteBuffer(this.indicesBuffer); - }; - return Mesh; - }()); - webgl.Mesh = Mesh; - var VertexAttribute = (function () { - function VertexAttribute(name, type, numElements) { - this.name = name; - this.type = type; - this.numElements = numElements; - } - return VertexAttribute; - }()); - webgl.VertexAttribute = VertexAttribute; - var Position2Attribute = (function (_super) { - __extends(Position2Attribute, _super); - function Position2Attribute() { - _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 2); - } - return Position2Attribute; - }(VertexAttribute)); - webgl.Position2Attribute = Position2Attribute; - var Position3Attribute = (function (_super) { - __extends(Position3Attribute, _super); - function Position3Attribute() { - _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 3); - } - return Position3Attribute; - }(VertexAttribute)); - webgl.Position3Attribute = Position3Attribute; - var TexCoordAttribute = (function (_super) { - __extends(TexCoordAttribute, _super); - function TexCoordAttribute(unit) { - if (unit === void 0) { unit = 0; } - _super.call(this, webgl.Shader.TEXCOORDS + (unit == 0 ? "" : unit), VertexAttributeType.Float, 2); - } - return TexCoordAttribute; - }(VertexAttribute)); - webgl.TexCoordAttribute = TexCoordAttribute; - var ColorAttribute = (function (_super) { - __extends(ColorAttribute, _super); - function ColorAttribute() { - _super.call(this, webgl.Shader.COLOR, VertexAttributeType.Float, 4); - } - return ColorAttribute; - }(VertexAttribute)); - webgl.ColorAttribute = ColorAttribute; - var Color2Attribute = (function (_super) { - __extends(Color2Attribute, _super); - function Color2Attribute() { - _super.call(this, webgl.Shader.COLOR2, VertexAttributeType.Float, 4); - } - return Color2Attribute; - }(VertexAttribute)); - webgl.Color2Attribute = Color2Attribute; - (function (VertexAttributeType) { - VertexAttributeType[VertexAttributeType["Float"] = 0] = "Float"; - })(webgl.VertexAttributeType || (webgl.VertexAttributeType = {})); - var VertexAttributeType = webgl.VertexAttributeType; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Mesh = (function () { + function Mesh(context, attributes, maxVertices, maxIndices) { + this.attributes = attributes; + this.verticesLength = 0; + this.dirtyVertices = false; + this.indicesLength = 0; + this.dirtyIndices = false; + this.elementsPerVertex = 0; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.elementsPerVertex = 0; + for (var i = 0; i < attributes.length; i++) { + this.elementsPerVertex += attributes[i].numElements; + } + this.vertices = new Float32Array(maxVertices * this.elementsPerVertex); + this.indices = new Uint16Array(maxIndices); + this.context.addRestorable(this); + } + Mesh.prototype.getAttributes = function () { return this.attributes; }; + Mesh.prototype.maxVertices = function () { return this.vertices.length / this.elementsPerVertex; }; + Mesh.prototype.numVertices = function () { return this.verticesLength / this.elementsPerVertex; }; + Mesh.prototype.setVerticesLength = function (length) { + this.dirtyVertices = true; + this.verticesLength = length; + }; + Mesh.prototype.getVertices = function () { return this.vertices; }; + Mesh.prototype.maxIndices = function () { return this.indices.length; }; + Mesh.prototype.numIndices = function () { return this.indicesLength; }; + Mesh.prototype.setIndicesLength = function (length) { + this.dirtyIndices = true; + this.indicesLength = length; + }; + Mesh.prototype.getIndices = function () { return this.indices; }; + ; + Mesh.prototype.getVertexSizeInFloats = function () { + var size = 0; + for (var i = 0; i < this.attributes.length; i++) { + var attribute = this.attributes[i]; + size += attribute.numElements; + } + return size; + }; + Mesh.prototype.setVertices = function (vertices) { + this.dirtyVertices = true; + if (vertices.length > this.vertices.length) + throw Error("Mesh can't store more than " + this.maxVertices() + " vertices"); + this.vertices.set(vertices, 0); + this.verticesLength = vertices.length; + }; + Mesh.prototype.setIndices = function (indices) { + this.dirtyIndices = true; + if (indices.length > this.indices.length) + throw Error("Mesh can't store more than " + this.maxIndices() + " indices"); + this.indices.set(indices, 0); + this.indicesLength = indices.length; + }; + Mesh.prototype.draw = function (shader, primitiveType) { + this.drawWithOffset(shader, primitiveType, 0, this.indicesLength > 0 ? this.indicesLength : this.verticesLength / this.elementsPerVertex); + }; + Mesh.prototype.drawWithOffset = function (shader, primitiveType, offset, count) { + var gl = this.context.gl; + if (this.dirtyVertices || this.dirtyIndices) + this.update(); + this.bind(shader); + if (this.indicesLength > 0) { + gl.drawElements(primitiveType, count, gl.UNSIGNED_SHORT, offset * 2); + } + else { + gl.drawArrays(primitiveType, offset, count); + } + this.unbind(shader); + }; + Mesh.prototype.bind = function (shader) { + var gl = this.context.gl; + gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); + var offset = 0; + for (var i = 0; i < this.attributes.length; i++) { + var attrib = this.attributes[i]; + var location_1 = shader.getAttributeLocation(attrib.name); + gl.enableVertexAttribArray(location_1); + gl.vertexAttribPointer(location_1, attrib.numElements, gl.FLOAT, false, this.elementsPerVertex * 4, offset * 4); + offset += attrib.numElements; + } + if (this.indicesLength > 0) + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); + }; + Mesh.prototype.unbind = function (shader) { + var gl = this.context.gl; + for (var i = 0; i < this.attributes.length; i++) { + var attrib = this.attributes[i]; + var location_2 = shader.getAttributeLocation(attrib.name); + gl.disableVertexAttribArray(location_2); + } + gl.bindBuffer(gl.ARRAY_BUFFER, null); + if (this.indicesLength > 0) + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); + }; + Mesh.prototype.update = function () { + var gl = this.context.gl; + if (this.dirtyVertices) { + if (!this.verticesBuffer) { + this.verticesBuffer = gl.createBuffer(); + } + gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.vertices.subarray(0, this.verticesLength), gl.DYNAMIC_DRAW); + this.dirtyVertices = false; + } + if (this.dirtyIndices) { + if (!this.indicesBuffer) { + this.indicesBuffer = gl.createBuffer(); + } + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices.subarray(0, this.indicesLength), gl.DYNAMIC_DRAW); + this.dirtyIndices = false; + } + }; + Mesh.prototype.restore = function () { + this.verticesBuffer = null; + this.indicesBuffer = null; + this.update(); + }; + Mesh.prototype.dispose = function () { + this.context.removeRestorable(this); + var gl = this.context.gl; + gl.deleteBuffer(this.verticesBuffer); + gl.deleteBuffer(this.indicesBuffer); + }; + return Mesh; + }()); + webgl.Mesh = Mesh; + var VertexAttribute = (function () { + function VertexAttribute(name, type, numElements) { + this.name = name; + this.type = type; + this.numElements = numElements; + } + return VertexAttribute; + }()); + webgl.VertexAttribute = VertexAttribute; + var Position2Attribute = (function (_super) { + __extends(Position2Attribute, _super); + function Position2Attribute() { + _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 2); + } + return Position2Attribute; + }(VertexAttribute)); + webgl.Position2Attribute = Position2Attribute; + var Position3Attribute = (function (_super) { + __extends(Position3Attribute, _super); + function Position3Attribute() { + _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 3); + } + return Position3Attribute; + }(VertexAttribute)); + webgl.Position3Attribute = Position3Attribute; + var TexCoordAttribute = (function (_super) { + __extends(TexCoordAttribute, _super); + function TexCoordAttribute(unit) { + if (unit === void 0) { unit = 0; } + _super.call(this, webgl.Shader.TEXCOORDS + (unit == 0 ? "" : unit), VertexAttributeType.Float, 2); + } + return TexCoordAttribute; + }(VertexAttribute)); + webgl.TexCoordAttribute = TexCoordAttribute; + var ColorAttribute = (function (_super) { + __extends(ColorAttribute, _super); + function ColorAttribute() { + _super.call(this, webgl.Shader.COLOR, VertexAttributeType.Float, 4); + } + return ColorAttribute; + }(VertexAttribute)); + webgl.ColorAttribute = ColorAttribute; + var Color2Attribute = (function (_super) { + __extends(Color2Attribute, _super); + function Color2Attribute() { + _super.call(this, webgl.Shader.COLOR2, VertexAttributeType.Float, 4); + } + return Color2Attribute; + }(VertexAttribute)); + webgl.Color2Attribute = Color2Attribute; + (function (VertexAttributeType) { + VertexAttributeType[VertexAttributeType["Float"] = 0] = "Float"; + })(webgl.VertexAttributeType || (webgl.VertexAttributeType = {})); + var VertexAttributeType = webgl.VertexAttributeType; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var PolygonBatcher = (function () { - function PolygonBatcher(context, twoColorTint, maxVertices) { - if (twoColorTint === void 0) { twoColorTint = true; } - if (maxVertices === void 0) { maxVertices = 10920; } - this.isDrawing = false; - this.shader = null; - this.lastTexture = null; - this.verticesLength = 0; - this.indicesLength = 0; - if (maxVertices > 10920) - throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - var attributes = twoColorTint ? - [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute(), new webgl.Color2Attribute()] : - [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute()]; - this.mesh = new webgl.Mesh(context, attributes, maxVertices, maxVertices * 3); - this.srcBlend = this.context.gl.SRC_ALPHA; - this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; - } - PolygonBatcher.prototype.begin = function (shader) { - var gl = this.context.gl; - if (this.isDrawing) - throw new Error("PolygonBatch is already drawing. Call PolygonBatch.end() before calling PolygonBatch.begin()"); - this.drawCalls = 0; - this.shader = shader; - this.lastTexture = null; - this.isDrawing = true; - gl.enable(gl.BLEND); - gl.blendFunc(this.srcBlend, this.dstBlend); - }; - PolygonBatcher.prototype.setBlendMode = function (srcBlend, dstBlend) { - var gl = this.context.gl; - this.srcBlend = srcBlend; - this.dstBlend = dstBlend; - if (this.isDrawing) { - this.flush(); - gl.blendFunc(this.srcBlend, this.dstBlend); - } - }; - PolygonBatcher.prototype.draw = function (texture, vertices, indices) { - if (texture != this.lastTexture) { - this.flush(); - this.lastTexture = texture; - } - else if (this.verticesLength + vertices.length > this.mesh.getVertices().length || - this.indicesLength + indices.length > this.mesh.getIndices().length) { - this.flush(); - } - var indexStart = this.mesh.numVertices(); - this.mesh.getVertices().set(vertices, this.verticesLength); - this.verticesLength += vertices.length; - this.mesh.setVerticesLength(this.verticesLength); - var indicesArray = this.mesh.getIndices(); - for (var i = this.indicesLength, j = 0; j < indices.length; i++, j++) - indicesArray[i] = indices[j] + indexStart; - this.indicesLength += indices.length; - this.mesh.setIndicesLength(this.indicesLength); - }; - PolygonBatcher.prototype.flush = function () { - var gl = this.context.gl; - if (this.verticesLength == 0) - return; - this.lastTexture.bind(); - this.mesh.draw(this.shader, gl.TRIANGLES); - this.verticesLength = 0; - this.indicesLength = 0; - this.mesh.setVerticesLength(0); - this.mesh.setIndicesLength(0); - this.drawCalls++; - }; - PolygonBatcher.prototype.end = function () { - var gl = this.context.gl; - if (!this.isDrawing) - throw new Error("PolygonBatch is not drawing. Call PolygonBatch.begin() before calling PolygonBatch.end()"); - if (this.verticesLength > 0 || this.indicesLength > 0) - this.flush(); - this.shader = null; - this.lastTexture = null; - this.isDrawing = false; - gl.disable(gl.BLEND); - }; - PolygonBatcher.prototype.getDrawCalls = function () { return this.drawCalls; }; - PolygonBatcher.prototype.dispose = function () { - this.mesh.dispose(); - }; - return PolygonBatcher; - }()); - webgl.PolygonBatcher = PolygonBatcher; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var PolygonBatcher = (function () { + function PolygonBatcher(context, twoColorTint, maxVertices) { + if (twoColorTint === void 0) { twoColorTint = true; } + if (maxVertices === void 0) { maxVertices = 10920; } + this.isDrawing = false; + this.shader = null; + this.lastTexture = null; + this.verticesLength = 0; + this.indicesLength = 0; + if (maxVertices > 10920) + throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + var attributes = twoColorTint ? + [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute(), new webgl.Color2Attribute()] : + [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute()]; + this.mesh = new webgl.Mesh(context, attributes, maxVertices, maxVertices * 3); + this.srcBlend = this.context.gl.SRC_ALPHA; + this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; + } + PolygonBatcher.prototype.begin = function (shader) { + var gl = this.context.gl; + if (this.isDrawing) + throw new Error("PolygonBatch is already drawing. Call PolygonBatch.end() before calling PolygonBatch.begin()"); + this.drawCalls = 0; + this.shader = shader; + this.lastTexture = null; + this.isDrawing = true; + gl.enable(gl.BLEND); + gl.blendFunc(this.srcBlend, this.dstBlend); + }; + PolygonBatcher.prototype.setBlendMode = function (srcBlend, dstBlend) { + var gl = this.context.gl; + this.srcBlend = srcBlend; + this.dstBlend = dstBlend; + if (this.isDrawing) { + this.flush(); + gl.blendFunc(this.srcBlend, this.dstBlend); + } + }; + PolygonBatcher.prototype.draw = function (texture, vertices, indices) { + if (texture != this.lastTexture) { + this.flush(); + this.lastTexture = texture; + } + else if (this.verticesLength + vertices.length > this.mesh.getVertices().length || + this.indicesLength + indices.length > this.mesh.getIndices().length) { + this.flush(); + } + var indexStart = this.mesh.numVertices(); + this.mesh.getVertices().set(vertices, this.verticesLength); + this.verticesLength += vertices.length; + this.mesh.setVerticesLength(this.verticesLength); + var indicesArray = this.mesh.getIndices(); + for (var i = this.indicesLength, j = 0; j < indices.length; i++, j++) + indicesArray[i] = indices[j] + indexStart; + this.indicesLength += indices.length; + this.mesh.setIndicesLength(this.indicesLength); + }; + PolygonBatcher.prototype.flush = function () { + var gl = this.context.gl; + if (this.verticesLength == 0) + return; + this.lastTexture.bind(); + this.mesh.draw(this.shader, gl.TRIANGLES); + this.verticesLength = 0; + this.indicesLength = 0; + this.mesh.setVerticesLength(0); + this.mesh.setIndicesLength(0); + this.drawCalls++; + }; + PolygonBatcher.prototype.end = function () { + var gl = this.context.gl; + if (!this.isDrawing) + throw new Error("PolygonBatch is not drawing. Call PolygonBatch.begin() before calling PolygonBatch.end()"); + if (this.verticesLength > 0 || this.indicesLength > 0) + this.flush(); + this.shader = null; + this.lastTexture = null; + this.isDrawing = false; + gl.disable(gl.BLEND); + }; + PolygonBatcher.prototype.getDrawCalls = function () { return this.drawCalls; }; + PolygonBatcher.prototype.dispose = function () { + this.mesh.dispose(); + }; + return PolygonBatcher; + }()); + webgl.PolygonBatcher = PolygonBatcher; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var SceneRenderer = (function () { - function SceneRenderer(canvas, context, twoColorTint) { - if (twoColorTint === void 0) { twoColorTint = true; } - this.twoColorTint = false; - this.activeRenderer = null; - this.QUAD = [ - 0, 0, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 0, 0, - ]; - this.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - this.WHITE = new spine.Color(1, 1, 1, 1); - this.canvas = canvas; - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.twoColorTint = twoColorTint; - this.camera = new webgl.OrthoCamera(canvas.width, canvas.height); - this.batcherShader = twoColorTint ? webgl.Shader.newTwoColoredTextured(this.context) : webgl.Shader.newColoredTextured(this.context); - this.batcher = new webgl.PolygonBatcher(this.context, twoColorTint); - this.shapesShader = webgl.Shader.newColored(this.context); - this.shapes = new webgl.ShapeRenderer(this.context); - this.skeletonRenderer = new webgl.SkeletonRenderer(this.context, twoColorTint); - this.skeletonDebugRenderer = new webgl.SkeletonDebugRenderer(this.context); - } - SceneRenderer.prototype.begin = function () { - this.camera.update(); - this.enableRenderer(this.batcher); - }; - SceneRenderer.prototype.drawSkeleton = function (skeleton, premultipliedAlpha) { - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - this.enableRenderer(this.batcher); - this.skeletonRenderer.premultipliedAlpha = premultipliedAlpha; - this.skeletonRenderer.draw(this.batcher, skeleton); - }; - SceneRenderer.prototype.drawSkeletonDebug = function (skeleton, premultipliedAlpha, ignoredBones) { - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - if (ignoredBones === void 0) { ignoredBones = null; } - this.enableRenderer(this.shapes); - this.skeletonDebugRenderer.premultipliedAlpha = premultipliedAlpha; - this.skeletonDebugRenderer.draw(this.shapes, skeleton, ignoredBones); - }; - SceneRenderer.prototype.drawTexture = function (texture, x, y, width, height, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.batcher); - if (color === null) - color = this.WHITE; - var quad = this.QUAD; - var i = 0; - quad[i++] = x; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); - }; - SceneRenderer.prototype.drawTextureRotated = function (texture, x, y, width, height, pivotX, pivotY, angle, color, premultipliedAlpha) { - if (color === void 0) { color = null; } - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - this.enableRenderer(this.batcher); - if (color === null) - color = this.WHITE; - var quad = this.QUAD; - var worldOriginX = x + pivotX; - var worldOriginY = y + pivotY; - var fx = -pivotX; - var fy = -pivotY; - var fx2 = width - pivotX; - var fy2 = height - pivotY; - var p1x = fx; - var p1y = fy; - var p2x = fx; - var p2y = fy2; - var p3x = fx2; - var p3y = fy2; - var p4x = fx2; - var p4y = fy; - var x1 = 0; - var y1 = 0; - var x2 = 0; - var y2 = 0; - var x3 = 0; - var y3 = 0; - var x4 = 0; - var y4 = 0; - if (angle != 0) { - var cos = spine.MathUtils.cosDeg(angle); - var sin = spine.MathUtils.sinDeg(angle); - x1 = cos * p1x - sin * p1y; - y1 = sin * p1x + cos * p1y; - x4 = cos * p2x - sin * p2y; - y4 = sin * p2x + cos * p2y; - x3 = cos * p3x - sin * p3y; - y3 = sin * p3x + cos * p3y; - x2 = x3 + (x1 - x4); - y2 = y3 + (y1 - y4); - } - else { - x1 = p1x; - y1 = p1y; - x4 = p2x; - y4 = p2y; - x3 = p3x; - y3 = p3y; - x2 = p4x; - y2 = p4y; - } - x1 += worldOriginX; - y1 += worldOriginY; - x2 += worldOriginX; - y2 += worldOriginY; - x3 += worldOriginX; - y3 += worldOriginY; - x4 += worldOriginX; - y4 += worldOriginY; - var i = 0; - quad[i++] = x1; - quad[i++] = y1; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x2; - quad[i++] = y2; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x3; - quad[i++] = y3; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x4; - quad[i++] = y4; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); - }; - SceneRenderer.prototype.drawRegion = function (region, x, y, width, height, color, premultipliedAlpha) { - if (color === void 0) { color = null; } - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - this.enableRenderer(this.batcher); - if (color === null) - color = this.WHITE; - var quad = this.QUAD; - var i = 0; - quad[i++] = x; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u; - quad[i++] = region.v2; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u2; - quad[i++] = region.v2; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u2; - quad[i++] = region.v; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u; - quad[i++] = region.v; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - this.batcher.draw(region.texture, quad, this.QUAD_TRIANGLES); - }; - SceneRenderer.prototype.line = function (x, y, x2, y2, color, color2) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - this.enableRenderer(this.shapes); - this.shapes.line(x, y, x2, y2, color); - }; - SceneRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - this.enableRenderer(this.shapes); - this.shapes.triangle(filled, x, y, x2, y2, x3, y3, color, color2, color3); - }; - SceneRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - if (color4 === void 0) { color4 = null; } - this.enableRenderer(this.shapes); - this.shapes.quad(filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4); - }; - SceneRenderer.prototype.rect = function (filled, x, y, width, height, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.rect(filled, x, y, width, height, color); - }; - SceneRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.rectLine(filled, x1, y1, x2, y2, width, color); - }; - SceneRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.polygon(polygonVertices, offset, count, color); - }; - SceneRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { - if (color === void 0) { color = null; } - if (segments === void 0) { segments = 0; } - this.enableRenderer(this.shapes); - this.shapes.circle(filled, x, y, radius, color, segments); - }; - SceneRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color); - }; - SceneRenderer.prototype.end = function () { - if (this.activeRenderer === this.batcher) - this.batcher.end(); - else if (this.activeRenderer === this.shapes) - this.shapes.end(); - this.activeRenderer = null; - }; - SceneRenderer.prototype.resize = function (resizeMode) { - var canvas = this.canvas; - var w = canvas.clientWidth; - var h = canvas.clientHeight; - if (canvas.width != w || canvas.height != h) { - canvas.width = w; - canvas.height = h; - } - this.context.gl.viewport(0, 0, canvas.width, canvas.height); - if (resizeMode === ResizeMode.Stretch) { - } - else if (resizeMode === ResizeMode.Expand) { - this.camera.setViewport(w, h); - } - else if (resizeMode === ResizeMode.Fit) { - var sourceWidth = canvas.width, sourceHeight = canvas.height; - var targetWidth = this.camera.viewportWidth, targetHeight = this.camera.viewportHeight; - var targetRatio = targetHeight / targetWidth; - var sourceRatio = sourceHeight / sourceWidth; - var scale = targetRatio < sourceRatio ? targetWidth / sourceWidth : targetHeight / sourceHeight; - this.camera.viewportWidth = sourceWidth * scale; - this.camera.viewportHeight = sourceHeight * scale; - } - this.camera.update(); - }; - SceneRenderer.prototype.enableRenderer = function (renderer) { - if (this.activeRenderer === renderer) - return; - this.end(); - if (renderer instanceof webgl.PolygonBatcher) { - this.batcherShader.bind(); - this.batcherShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); - this.batcherShader.setUniformi("u_texture", 0); - this.batcher.begin(this.batcherShader); - this.activeRenderer = this.batcher; - } - else if (renderer instanceof webgl.ShapeRenderer) { - this.shapesShader.bind(); - this.shapesShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); - this.shapes.begin(this.shapesShader); - this.activeRenderer = this.shapes; - } - else { - this.activeRenderer = this.skeletonDebugRenderer; - } - }; - SceneRenderer.prototype.dispose = function () { - this.batcher.dispose(); - this.batcherShader.dispose(); - this.shapes.dispose(); - this.shapesShader.dispose(); - this.skeletonDebugRenderer.dispose(); - }; - return SceneRenderer; - }()); - webgl.SceneRenderer = SceneRenderer; - (function (ResizeMode) { - ResizeMode[ResizeMode["Stretch"] = 0] = "Stretch"; - ResizeMode[ResizeMode["Expand"] = 1] = "Expand"; - ResizeMode[ResizeMode["Fit"] = 2] = "Fit"; - })(webgl.ResizeMode || (webgl.ResizeMode = {})); - var ResizeMode = webgl.ResizeMode; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var SceneRenderer = (function () { + function SceneRenderer(canvas, context, twoColorTint) { + if (twoColorTint === void 0) { twoColorTint = true; } + this.twoColorTint = false; + this.activeRenderer = null; + this.QUAD = [ + 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, + ]; + this.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + this.WHITE = new spine.Color(1, 1, 1, 1); + this.canvas = canvas; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.twoColorTint = twoColorTint; + this.camera = new webgl.OrthoCamera(canvas.width, canvas.height); + this.batcherShader = twoColorTint ? webgl.Shader.newTwoColoredTextured(this.context) : webgl.Shader.newColoredTextured(this.context); + this.batcher = new webgl.PolygonBatcher(this.context, twoColorTint); + this.shapesShader = webgl.Shader.newColored(this.context); + this.shapes = new webgl.ShapeRenderer(this.context); + this.skeletonRenderer = new webgl.SkeletonRenderer(this.context, twoColorTint); + this.skeletonDebugRenderer = new webgl.SkeletonDebugRenderer(this.context); + } + SceneRenderer.prototype.begin = function () { + this.camera.update(); + this.enableRenderer(this.batcher); + }; + SceneRenderer.prototype.drawSkeleton = function (skeleton, premultipliedAlpha) { + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + this.enableRenderer(this.batcher); + this.skeletonRenderer.premultipliedAlpha = premultipliedAlpha; + this.skeletonRenderer.draw(this.batcher, skeleton); + }; + SceneRenderer.prototype.drawSkeletonDebug = function (skeleton, premultipliedAlpha, ignoredBones) { + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + if (ignoredBones === void 0) { ignoredBones = null; } + this.enableRenderer(this.shapes); + this.skeletonDebugRenderer.premultipliedAlpha = premultipliedAlpha; + this.skeletonDebugRenderer.draw(this.shapes, skeleton, ignoredBones); + }; + SceneRenderer.prototype.drawTexture = function (texture, x, y, width, height, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.batcher); + if (color === null) + color = this.WHITE; + var quad = this.QUAD; + var i = 0; + quad[i++] = x; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); + }; + SceneRenderer.prototype.drawTextureRotated = function (texture, x, y, width, height, pivotX, pivotY, angle, color, premultipliedAlpha) { + if (color === void 0) { color = null; } + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + this.enableRenderer(this.batcher); + if (color === null) + color = this.WHITE; + var quad = this.QUAD; + var worldOriginX = x + pivotX; + var worldOriginY = y + pivotY; + var fx = -pivotX; + var fy = -pivotY; + var fx2 = width - pivotX; + var fy2 = height - pivotY; + var p1x = fx; + var p1y = fy; + var p2x = fx; + var p2y = fy2; + var p3x = fx2; + var p3y = fy2; + var p4x = fx2; + var p4y = fy; + var x1 = 0; + var y1 = 0; + var x2 = 0; + var y2 = 0; + var x3 = 0; + var y3 = 0; + var x4 = 0; + var y4 = 0; + if (angle != 0) { + var cos = spine.MathUtils.cosDeg(angle); + var sin = spine.MathUtils.sinDeg(angle); + x1 = cos * p1x - sin * p1y; + y1 = sin * p1x + cos * p1y; + x4 = cos * p2x - sin * p2y; + y4 = sin * p2x + cos * p2y; + x3 = cos * p3x - sin * p3y; + y3 = sin * p3x + cos * p3y; + x2 = x3 + (x1 - x4); + y2 = y3 + (y1 - y4); + } + else { + x1 = p1x; + y1 = p1y; + x4 = p2x; + y4 = p2y; + x3 = p3x; + y3 = p3y; + x2 = p4x; + y2 = p4y; + } + x1 += worldOriginX; + y1 += worldOriginY; + x2 += worldOriginX; + y2 += worldOriginY; + x3 += worldOriginX; + y3 += worldOriginY; + x4 += worldOriginX; + y4 += worldOriginY; + var i = 0; + quad[i++] = x1; + quad[i++] = y1; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x2; + quad[i++] = y2; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x3; + quad[i++] = y3; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x4; + quad[i++] = y4; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); + }; + SceneRenderer.prototype.drawRegion = function (region, x, y, width, height, color, premultipliedAlpha) { + if (color === void 0) { color = null; } + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + this.enableRenderer(this.batcher); + if (color === null) + color = this.WHITE; + var quad = this.QUAD; + var i = 0; + quad[i++] = x; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u; + quad[i++] = region.v2; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u2; + quad[i++] = region.v2; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u2; + quad[i++] = region.v; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u; + quad[i++] = region.v; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + this.batcher.draw(region.texture, quad, this.QUAD_TRIANGLES); + }; + SceneRenderer.prototype.line = function (x, y, x2, y2, color, color2) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + this.enableRenderer(this.shapes); + this.shapes.line(x, y, x2, y2, color); + }; + SceneRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + this.enableRenderer(this.shapes); + this.shapes.triangle(filled, x, y, x2, y2, x3, y3, color, color2, color3); + }; + SceneRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + if (color4 === void 0) { color4 = null; } + this.enableRenderer(this.shapes); + this.shapes.quad(filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4); + }; + SceneRenderer.prototype.rect = function (filled, x, y, width, height, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.rect(filled, x, y, width, height, color); + }; + SceneRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.rectLine(filled, x1, y1, x2, y2, width, color); + }; + SceneRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.polygon(polygonVertices, offset, count, color); + }; + SceneRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { + if (color === void 0) { color = null; } + if (segments === void 0) { segments = 0; } + this.enableRenderer(this.shapes); + this.shapes.circle(filled, x, y, radius, color, segments); + }; + SceneRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color); + }; + SceneRenderer.prototype.end = function () { + if (this.activeRenderer === this.batcher) + this.batcher.end(); + else if (this.activeRenderer === this.shapes) + this.shapes.end(); + this.activeRenderer = null; + }; + SceneRenderer.prototype.resize = function (resizeMode) { + var canvas = this.canvas; + var w = canvas.clientWidth; + var h = canvas.clientHeight; + if (canvas.width != w || canvas.height != h) { + canvas.width = w; + canvas.height = h; + } + this.context.gl.viewport(0, 0, canvas.width, canvas.height); + if (resizeMode === ResizeMode.Stretch) { + } + else if (resizeMode === ResizeMode.Expand) { + this.camera.setViewport(w, h); + } + else if (resizeMode === ResizeMode.Fit) { + var sourceWidth = canvas.width, sourceHeight = canvas.height; + var targetWidth = this.camera.viewportWidth, targetHeight = this.camera.viewportHeight; + var targetRatio = targetHeight / targetWidth; + var sourceRatio = sourceHeight / sourceWidth; + var scale = targetRatio < sourceRatio ? targetWidth / sourceWidth : targetHeight / sourceHeight; + this.camera.viewportWidth = sourceWidth * scale; + this.camera.viewportHeight = sourceHeight * scale; + } + this.camera.update(); + }; + SceneRenderer.prototype.enableRenderer = function (renderer) { + if (this.activeRenderer === renderer) + return; + this.end(); + if (renderer instanceof webgl.PolygonBatcher) { + this.batcherShader.bind(); + this.batcherShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); + this.batcherShader.setUniformi("u_texture", 0); + this.batcher.begin(this.batcherShader); + this.activeRenderer = this.batcher; + } + else if (renderer instanceof webgl.ShapeRenderer) { + this.shapesShader.bind(); + this.shapesShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); + this.shapes.begin(this.shapesShader); + this.activeRenderer = this.shapes; + } + else { + this.activeRenderer = this.skeletonDebugRenderer; + } + }; + SceneRenderer.prototype.dispose = function () { + this.batcher.dispose(); + this.batcherShader.dispose(); + this.shapes.dispose(); + this.shapesShader.dispose(); + this.skeletonDebugRenderer.dispose(); + }; + return SceneRenderer; + }()); + webgl.SceneRenderer = SceneRenderer; + (function (ResizeMode) { + ResizeMode[ResizeMode["Stretch"] = 0] = "Stretch"; + ResizeMode[ResizeMode["Expand"] = 1] = "Expand"; + ResizeMode[ResizeMode["Fit"] = 2] = "Fit"; + })(webgl.ResizeMode || (webgl.ResizeMode = {})); + var ResizeMode = webgl.ResizeMode; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Shader = (function () { - function Shader(context, vertexShader, fragmentShader) { - this.vertexShader = vertexShader; - this.fragmentShader = fragmentShader; - this.vs = null; - this.fs = null; - this.program = null; - this.tmp2x2 = new Float32Array(2 * 2); - this.tmp3x3 = new Float32Array(3 * 3); - this.tmp4x4 = new Float32Array(4 * 4); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.context.addRestorable(this); - this.compile(); - } - Shader.prototype.getProgram = function () { return this.program; }; - Shader.prototype.getVertexShader = function () { return this.vertexShader; }; - Shader.prototype.getFragmentShader = function () { return this.fragmentShader; }; - Shader.prototype.compile = function () { - var gl = this.context.gl; - try { - this.vs = this.compileShader(gl.VERTEX_SHADER, this.vertexShader); - this.fs = this.compileShader(gl.FRAGMENT_SHADER, this.fragmentShader); - this.program = this.compileProgram(this.vs, this.fs); - } - catch (e) { - this.dispose(); - throw e; - } - }; - Shader.prototype.compileShader = function (type, source) { - var gl = this.context.gl; - var shader = gl.createShader(type); - gl.shaderSource(shader, source); - gl.compileShader(shader); - if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { - var error = "Couldn't compile shader: " + gl.getShaderInfoLog(shader); - gl.deleteShader(shader); - if (!gl.isContextLost()) - throw new Error(error); - } - return shader; - }; - Shader.prototype.compileProgram = function (vs, fs) { - var gl = this.context.gl; - var program = gl.createProgram(); - gl.attachShader(program, vs); - gl.attachShader(program, fs); - gl.linkProgram(program); - if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { - var error = "Couldn't compile shader program: " + gl.getProgramInfoLog(program); - gl.deleteProgram(program); - if (!gl.isContextLost()) - throw new Error(error); - } - return program; - }; - Shader.prototype.restore = function () { - this.compile(); - }; - Shader.prototype.bind = function () { - this.context.gl.useProgram(this.program); - }; - Shader.prototype.unbind = function () { - this.context.gl.useProgram(null); - }; - Shader.prototype.setUniformi = function (uniform, value) { - this.context.gl.uniform1i(this.getUniformLocation(uniform), value); - }; - Shader.prototype.setUniformf = function (uniform, value) { - this.context.gl.uniform1f(this.getUniformLocation(uniform), value); - }; - Shader.prototype.setUniform2f = function (uniform, value, value2) { - this.context.gl.uniform2f(this.getUniformLocation(uniform), value, value2); - }; - Shader.prototype.setUniform3f = function (uniform, value, value2, value3) { - this.context.gl.uniform3f(this.getUniformLocation(uniform), value, value2, value3); - }; - Shader.prototype.setUniform4f = function (uniform, value, value2, value3, value4) { - this.context.gl.uniform4f(this.getUniformLocation(uniform), value, value2, value3, value4); - }; - Shader.prototype.setUniform2x2f = function (uniform, value) { - var gl = this.context.gl; - this.tmp2x2.set(value); - gl.uniformMatrix2fv(this.getUniformLocation(uniform), false, this.tmp2x2); - }; - Shader.prototype.setUniform3x3f = function (uniform, value) { - var gl = this.context.gl; - this.tmp3x3.set(value); - gl.uniformMatrix3fv(this.getUniformLocation(uniform), false, this.tmp3x3); - }; - Shader.prototype.setUniform4x4f = function (uniform, value) { - var gl = this.context.gl; - this.tmp4x4.set(value); - gl.uniformMatrix4fv(this.getUniformLocation(uniform), false, this.tmp4x4); - }; - Shader.prototype.getUniformLocation = function (uniform) { - var gl = this.context.gl; - var location = gl.getUniformLocation(this.program, uniform); - if (!location && !gl.isContextLost()) - throw new Error("Couldn't find location for uniform " + uniform); - return location; - }; - Shader.prototype.getAttributeLocation = function (attribute) { - var gl = this.context.gl; - var location = gl.getAttribLocation(this.program, attribute); - if (location == -1 && !gl.isContextLost()) - throw new Error("Couldn't find location for attribute " + attribute); - return location; - }; - Shader.prototype.dispose = function () { - this.context.removeRestorable(this); - var gl = this.context.gl; - if (this.vs) { - gl.deleteShader(this.vs); - this.vs = null; - } - if (this.fs) { - gl.deleteShader(this.fs); - this.fs = null; - } - if (this.program) { - gl.deleteProgram(this.program); - this.program = null; - } - }; - Shader.newColoredTextured = function (context) { - var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; - var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color * texture2D(u_texture, v_texCoords);\n\t\t\t\t}\n\t\t\t"; - return new Shader(context, vs, fs); - }; - Shader.newTwoColoredTextured = function (context) { - var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR2 + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_light;\n\t\t\t\tvarying vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_light = " + Shader.COLOR + ";\n\t\t\t\t\tv_dark = " + Shader.COLOR2 + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; - var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_light;\n\t\t\t\tvarying LOWP vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tvec4 texColor = texture2D(u_texture, v_texCoords);\n\t\t\t\t\tfloat alpha = texColor.a * v_light.a;\n\t\t\t\t\tgl_FragColor.a = alpha;\n\t\t\t\t\tgl_FragColor.rgb = (1.0 - texColor.rgb) * v_dark.rgb * alpha + texColor.rgb * v_light.rgb;\n\t\t\t\t}\n\t\t\t"; - return new Shader(context, vs, fs); - }; - Shader.newColored = function (context) { - var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; - var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color;\n\t\t\t\t}\n\t\t\t"; - return new Shader(context, vs, fs); - }; - Shader.MVP_MATRIX = "u_projTrans"; - Shader.POSITION = "a_position"; - Shader.COLOR = "a_color"; - Shader.COLOR2 = "a_color2"; - Shader.TEXCOORDS = "a_texCoords"; - Shader.SAMPLER = "u_texture"; - return Shader; - }()); - webgl.Shader = Shader; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Shader = (function () { + function Shader(context, vertexShader, fragmentShader) { + this.vertexShader = vertexShader; + this.fragmentShader = fragmentShader; + this.vs = null; + this.fs = null; + this.program = null; + this.tmp2x2 = new Float32Array(2 * 2); + this.tmp3x3 = new Float32Array(3 * 3); + this.tmp4x4 = new Float32Array(4 * 4); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.context.addRestorable(this); + this.compile(); + } + Shader.prototype.getProgram = function () { return this.program; }; + Shader.prototype.getVertexShader = function () { return this.vertexShader; }; + Shader.prototype.getFragmentShader = function () { return this.fragmentShader; }; + Shader.prototype.compile = function () { + var gl = this.context.gl; + try { + this.vs = this.compileShader(gl.VERTEX_SHADER, this.vertexShader); + this.fs = this.compileShader(gl.FRAGMENT_SHADER, this.fragmentShader); + this.program = this.compileProgram(this.vs, this.fs); + } + catch (e) { + this.dispose(); + throw e; + } + }; + Shader.prototype.compileShader = function (type, source) { + var gl = this.context.gl; + var shader = gl.createShader(type); + gl.shaderSource(shader, source); + gl.compileShader(shader); + if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { + var error = "Couldn't compile shader: " + gl.getShaderInfoLog(shader); + gl.deleteShader(shader); + if (!gl.isContextLost()) + throw new Error(error); + } + return shader; + }; + Shader.prototype.compileProgram = function (vs, fs) { + var gl = this.context.gl; + var program = gl.createProgram(); + gl.attachShader(program, vs); + gl.attachShader(program, fs); + gl.linkProgram(program); + if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { + var error = "Couldn't compile shader program: " + gl.getProgramInfoLog(program); + gl.deleteProgram(program); + if (!gl.isContextLost()) + throw new Error(error); + } + return program; + }; + Shader.prototype.restore = function () { + this.compile(); + }; + Shader.prototype.bind = function () { + this.context.gl.useProgram(this.program); + }; + Shader.prototype.unbind = function () { + this.context.gl.useProgram(null); + }; + Shader.prototype.setUniformi = function (uniform, value) { + this.context.gl.uniform1i(this.getUniformLocation(uniform), value); + }; + Shader.prototype.setUniformf = function (uniform, value) { + this.context.gl.uniform1f(this.getUniformLocation(uniform), value); + }; + Shader.prototype.setUniform2f = function (uniform, value, value2) { + this.context.gl.uniform2f(this.getUniformLocation(uniform), value, value2); + }; + Shader.prototype.setUniform3f = function (uniform, value, value2, value3) { + this.context.gl.uniform3f(this.getUniformLocation(uniform), value, value2, value3); + }; + Shader.prototype.setUniform4f = function (uniform, value, value2, value3, value4) { + this.context.gl.uniform4f(this.getUniformLocation(uniform), value, value2, value3, value4); + }; + Shader.prototype.setUniform2x2f = function (uniform, value) { + var gl = this.context.gl; + this.tmp2x2.set(value); + gl.uniformMatrix2fv(this.getUniformLocation(uniform), false, this.tmp2x2); + }; + Shader.prototype.setUniform3x3f = function (uniform, value) { + var gl = this.context.gl; + this.tmp3x3.set(value); + gl.uniformMatrix3fv(this.getUniformLocation(uniform), false, this.tmp3x3); + }; + Shader.prototype.setUniform4x4f = function (uniform, value) { + var gl = this.context.gl; + this.tmp4x4.set(value); + gl.uniformMatrix4fv(this.getUniformLocation(uniform), false, this.tmp4x4); + }; + Shader.prototype.getUniformLocation = function (uniform) { + var gl = this.context.gl; + var location = gl.getUniformLocation(this.program, uniform); + if (!location && !gl.isContextLost()) + throw new Error("Couldn't find location for uniform " + uniform); + return location; + }; + Shader.prototype.getAttributeLocation = function (attribute) { + var gl = this.context.gl; + var location = gl.getAttribLocation(this.program, attribute); + if (location == -1 && !gl.isContextLost()) + throw new Error("Couldn't find location for attribute " + attribute); + return location; + }; + Shader.prototype.dispose = function () { + this.context.removeRestorable(this); + var gl = this.context.gl; + if (this.vs) { + gl.deleteShader(this.vs); + this.vs = null; + } + if (this.fs) { + gl.deleteShader(this.fs); + this.fs = null; + } + if (this.program) { + gl.deleteProgram(this.program); + this.program = null; + } + }; + Shader.newColoredTextured = function (context) { + var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; + var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color * texture2D(u_texture, v_texCoords);\n\t\t\t\t}\n\t\t\t"; + return new Shader(context, vs, fs); + }; + Shader.newTwoColoredTextured = function (context) { + var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR2 + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_light;\n\t\t\t\tvarying vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_light = " + Shader.COLOR + ";\n\t\t\t\t\tv_dark = " + Shader.COLOR2 + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; + var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_light;\n\t\t\t\tvarying LOWP vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tvec4 texColor = texture2D(u_texture, v_texCoords);\n\t\t\t\t\tfloat alpha = texColor.a * v_light.a;\n\t\t\t\t\tgl_FragColor.a = alpha;\n\t\t\t\t\tgl_FragColor.rgb = (1.0 - texColor.rgb) * v_dark.rgb * alpha + texColor.rgb * v_light.rgb;\n\t\t\t\t}\n\t\t\t"; + return new Shader(context, vs, fs); + }; + Shader.newColored = function (context) { + var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; + var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color;\n\t\t\t\t}\n\t\t\t"; + return new Shader(context, vs, fs); + }; + Shader.MVP_MATRIX = "u_projTrans"; + Shader.POSITION = "a_position"; + Shader.COLOR = "a_color"; + Shader.COLOR2 = "a_color2"; + Shader.TEXCOORDS = "a_texCoords"; + Shader.SAMPLER = "u_texture"; + return Shader; + }()); + webgl.Shader = Shader; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var ShapeRenderer = (function () { - function ShapeRenderer(context, maxVertices) { - if (maxVertices === void 0) { maxVertices = 10920; } - this.isDrawing = false; - this.shapeType = ShapeType.Filled; - this.color = new spine.Color(1, 1, 1, 1); - this.vertexIndex = 0; - this.tmp = new spine.Vector2(); - if (maxVertices > 10920) - throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.mesh = new webgl.Mesh(context, [new webgl.Position2Attribute(), new webgl.ColorAttribute()], maxVertices, 0); - this.srcBlend = this.context.gl.SRC_ALPHA; - this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; - } - ShapeRenderer.prototype.begin = function (shader) { - if (this.isDrawing) - throw new Error("ShapeRenderer.begin() has already been called"); - this.shader = shader; - this.vertexIndex = 0; - this.isDrawing = true; - var gl = this.context.gl; - gl.enable(gl.BLEND); - gl.blendFunc(this.srcBlend, this.dstBlend); - }; - ShapeRenderer.prototype.setBlendMode = function (srcBlend, dstBlend) { - var gl = this.context.gl; - this.srcBlend = srcBlend; - this.dstBlend = dstBlend; - if (this.isDrawing) { - this.flush(); - gl.blendFunc(this.srcBlend, this.dstBlend); - } - }; - ShapeRenderer.prototype.setColor = function (color) { - this.color.setFromColor(color); - }; - ShapeRenderer.prototype.setColorWith = function (r, g, b, a) { - this.color.set(r, g, b, a); - }; - ShapeRenderer.prototype.point = function (x, y, color) { - if (color === void 0) { color = null; } - this.check(ShapeType.Point, 1); - if (color === null) - color = this.color; - this.vertex(x, y, color); - }; - ShapeRenderer.prototype.line = function (x, y, x2, y2, color) { - if (color === void 0) { color = null; } - this.check(ShapeType.Line, 2); - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - if (color === null) - color = this.color; - this.vertex(x, y, color); - this.vertex(x2, y2, color); - }; - ShapeRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - if (color === null) - color = this.color; - if (color2 === null) - color2 = this.color; - if (color3 === null) - color3 = this.color; - if (filled) { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x3, y3, color3); - } - else { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x2, y2, color); - this.vertex(x3, y3, color2); - this.vertex(x3, y3, color); - this.vertex(x, y, color2); - } - }; - ShapeRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - if (color4 === void 0) { color4 = null; } - this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - if (color === null) - color = this.color; - if (color2 === null) - color2 = this.color; - if (color3 === null) - color3 = this.color; - if (color4 === null) - color4 = this.color; - if (filled) { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x3, y3, color3); - this.vertex(x3, y3, color3); - this.vertex(x4, y4, color4); - this.vertex(x, y, color); - } - else { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x2, y2, color2); - this.vertex(x3, y3, color3); - this.vertex(x3, y3, color3); - this.vertex(x4, y4, color4); - this.vertex(x4, y4, color4); - this.vertex(x, y, color); - } - }; - ShapeRenderer.prototype.rect = function (filled, x, y, width, height, color) { - if (color === void 0) { color = null; } - this.quad(filled, x, y, x + width, y, x + width, y + height, x, y + height, color, color, color, color); - }; - ShapeRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { - if (color === void 0) { color = null; } - this.check(filled ? ShapeType.Filled : ShapeType.Line, 8); - if (color === null) - color = this.color; - var t = this.tmp.set(y2 - y1, x1 - x2); - t.normalize(); - width *= 0.5; - var tx = t.x * width; - var ty = t.y * width; - if (!filled) { - this.vertex(x1 + tx, y1 + ty, color); - this.vertex(x1 - tx, y1 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x2 - tx, y2 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x1 + tx, y1 + ty, color); - this.vertex(x2 - tx, y2 - ty, color); - this.vertex(x1 - tx, y1 - ty, color); - } - else { - this.vertex(x1 + tx, y1 + ty, color); - this.vertex(x1 - tx, y1 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x2 - tx, y2 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x1 - tx, y1 - ty, color); - } - }; - ShapeRenderer.prototype.x = function (x, y, size) { - this.line(x - size, y - size, x + size, y + size); - this.line(x - size, y + size, x + size, y - size); - }; - ShapeRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { - if (color === void 0) { color = null; } - if (count < 3) - throw new Error("Polygon must contain at least 3 vertices"); - this.check(ShapeType.Line, count * 2); - if (color === null) - color = this.color; - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - offset <<= 1; - count <<= 1; - var firstX = polygonVertices[offset]; - var firstY = polygonVertices[offset + 1]; - var last = offset + count; - for (var i = offset, n = offset + count - 2; i < n; i += 2) { - var x1 = polygonVertices[i]; - var y1 = polygonVertices[i + 1]; - var x2 = 0; - var y2 = 0; - if (i + 2 >= last) { - x2 = firstX; - y2 = firstY; - } - else { - x2 = polygonVertices[i + 2]; - y2 = polygonVertices[i + 3]; - } - this.vertex(x1, y1, color); - this.vertex(x2, y2, color); - } - }; - ShapeRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { - if (color === void 0) { color = null; } - if (segments === void 0) { segments = 0; } - if (segments === 0) - segments = Math.max(1, (6 * spine.MathUtils.cbrt(radius)) | 0); - if (segments <= 0) - throw new Error("segments must be > 0."); - if (color === null) - color = this.color; - var angle = 2 * spine.MathUtils.PI / segments; - var cos = Math.cos(angle); - var sin = Math.sin(angle); - var cx = radius, cy = 0; - if (!filled) { - this.check(ShapeType.Line, segments * 2 + 2); - for (var i = 0; i < segments; i++) { - this.vertex(x + cx, y + cy, color); - var temp_1 = cx; - cx = cos * cx - sin * cy; - cy = sin * temp_1 + cos * cy; - this.vertex(x + cx, y + cy, color); - } - this.vertex(x + cx, y + cy, color); - } - else { - this.check(ShapeType.Filled, segments * 3 + 3); - segments--; - for (var i = 0; i < segments; i++) { - this.vertex(x, y, color); - this.vertex(x + cx, y + cy, color); - var temp_2 = cx; - cx = cos * cx - sin * cy; - cy = sin * temp_2 + cos * cy; - this.vertex(x + cx, y + cy, color); - } - this.vertex(x, y, color); - this.vertex(x + cx, y + cy, color); - } - var temp = cx; - cx = radius; - cy = 0; - this.vertex(x + cx, y + cy, color); - }; - ShapeRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { - if (color === void 0) { color = null; } - this.check(ShapeType.Line, segments * 2 + 2); - if (color === null) - color = this.color; - var subdiv_step = 1 / segments; - var subdiv_step2 = subdiv_step * subdiv_step; - var subdiv_step3 = subdiv_step * subdiv_step * subdiv_step; - var pre1 = 3 * subdiv_step; - var pre2 = 3 * subdiv_step2; - var pre4 = 6 * subdiv_step2; - var pre5 = 6 * subdiv_step3; - var tmp1x = x1 - cx1 * 2 + cx2; - var tmp1y = y1 - cy1 * 2 + cy2; - var tmp2x = (cx1 - cx2) * 3 - x1 + x2; - var tmp2y = (cy1 - cy2) * 3 - y1 + y2; - var fx = x1; - var fy = y1; - var dfx = (cx1 - x1) * pre1 + tmp1x * pre2 + tmp2x * subdiv_step3; - var dfy = (cy1 - y1) * pre1 + tmp1y * pre2 + tmp2y * subdiv_step3; - var ddfx = tmp1x * pre4 + tmp2x * pre5; - var ddfy = tmp1y * pre4 + tmp2y * pre5; - var dddfx = tmp2x * pre5; - var dddfy = tmp2y * pre5; - while (segments-- > 0) { - this.vertex(fx, fy, color); - fx += dfx; - fy += dfy; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - this.vertex(fx, fy, color); - } - this.vertex(fx, fy, color); - this.vertex(x2, y2, color); - }; - ShapeRenderer.prototype.vertex = function (x, y, color) { - var idx = this.vertexIndex; - var vertices = this.mesh.getVertices(); - vertices[idx++] = x; - vertices[idx++] = y; - vertices[idx++] = color.r; - vertices[idx++] = color.g; - vertices[idx++] = color.b; - vertices[idx++] = color.a; - this.vertexIndex = idx; - }; - ShapeRenderer.prototype.end = function () { - if (!this.isDrawing) - throw new Error("ShapeRenderer.begin() has not been called"); - this.flush(); - this.context.gl.disable(this.context.gl.BLEND); - this.isDrawing = false; - }; - ShapeRenderer.prototype.flush = function () { - if (this.vertexIndex == 0) - return; - this.mesh.setVerticesLength(this.vertexIndex); - this.mesh.draw(this.shader, this.shapeType); - this.vertexIndex = 0; - }; - ShapeRenderer.prototype.check = function (shapeType, numVertices) { - if (!this.isDrawing) - throw new Error("ShapeRenderer.begin() has not been called"); - if (this.shapeType == shapeType) { - if (this.mesh.maxVertices() - this.mesh.numVertices() < numVertices) - this.flush(); - else - return; - } - else { - this.flush(); - this.shapeType = shapeType; - } - }; - ShapeRenderer.prototype.dispose = function () { - this.mesh.dispose(); - }; - return ShapeRenderer; - }()); - webgl.ShapeRenderer = ShapeRenderer; - (function (ShapeType) { - ShapeType[ShapeType["Point"] = 0] = "Point"; - ShapeType[ShapeType["Line"] = 1] = "Line"; - ShapeType[ShapeType["Filled"] = 4] = "Filled"; - })(webgl.ShapeType || (webgl.ShapeType = {})); - var ShapeType = webgl.ShapeType; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var ShapeRenderer = (function () { + function ShapeRenderer(context, maxVertices) { + if (maxVertices === void 0) { maxVertices = 10920; } + this.isDrawing = false; + this.shapeType = ShapeType.Filled; + this.color = new spine.Color(1, 1, 1, 1); + this.vertexIndex = 0; + this.tmp = new spine.Vector2(); + if (maxVertices > 10920) + throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.mesh = new webgl.Mesh(context, [new webgl.Position2Attribute(), new webgl.ColorAttribute()], maxVertices, 0); + this.srcBlend = this.context.gl.SRC_ALPHA; + this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; + } + ShapeRenderer.prototype.begin = function (shader) { + if (this.isDrawing) + throw new Error("ShapeRenderer.begin() has already been called"); + this.shader = shader; + this.vertexIndex = 0; + this.isDrawing = true; + var gl = this.context.gl; + gl.enable(gl.BLEND); + gl.blendFunc(this.srcBlend, this.dstBlend); + }; + ShapeRenderer.prototype.setBlendMode = function (srcBlend, dstBlend) { + var gl = this.context.gl; + this.srcBlend = srcBlend; + this.dstBlend = dstBlend; + if (this.isDrawing) { + this.flush(); + gl.blendFunc(this.srcBlend, this.dstBlend); + } + }; + ShapeRenderer.prototype.setColor = function (color) { + this.color.setFromColor(color); + }; + ShapeRenderer.prototype.setColorWith = function (r, g, b, a) { + this.color.set(r, g, b, a); + }; + ShapeRenderer.prototype.point = function (x, y, color) { + if (color === void 0) { color = null; } + this.check(ShapeType.Point, 1); + if (color === null) + color = this.color; + this.vertex(x, y, color); + }; + ShapeRenderer.prototype.line = function (x, y, x2, y2, color) { + if (color === void 0) { color = null; } + this.check(ShapeType.Line, 2); + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + if (color === null) + color = this.color; + this.vertex(x, y, color); + this.vertex(x2, y2, color); + }; + ShapeRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + if (color === null) + color = this.color; + if (color2 === null) + color2 = this.color; + if (color3 === null) + color3 = this.color; + if (filled) { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x3, y3, color3); + } + else { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x2, y2, color); + this.vertex(x3, y3, color2); + this.vertex(x3, y3, color); + this.vertex(x, y, color2); + } + }; + ShapeRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + if (color4 === void 0) { color4 = null; } + this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + if (color === null) + color = this.color; + if (color2 === null) + color2 = this.color; + if (color3 === null) + color3 = this.color; + if (color4 === null) + color4 = this.color; + if (filled) { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x3, y3, color3); + this.vertex(x3, y3, color3); + this.vertex(x4, y4, color4); + this.vertex(x, y, color); + } + else { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x2, y2, color2); + this.vertex(x3, y3, color3); + this.vertex(x3, y3, color3); + this.vertex(x4, y4, color4); + this.vertex(x4, y4, color4); + this.vertex(x, y, color); + } + }; + ShapeRenderer.prototype.rect = function (filled, x, y, width, height, color) { + if (color === void 0) { color = null; } + this.quad(filled, x, y, x + width, y, x + width, y + height, x, y + height, color, color, color, color); + }; + ShapeRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { + if (color === void 0) { color = null; } + this.check(filled ? ShapeType.Filled : ShapeType.Line, 8); + if (color === null) + color = this.color; + var t = this.tmp.set(y2 - y1, x1 - x2); + t.normalize(); + width *= 0.5; + var tx = t.x * width; + var ty = t.y * width; + if (!filled) { + this.vertex(x1 + tx, y1 + ty, color); + this.vertex(x1 - tx, y1 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x2 - tx, y2 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x1 + tx, y1 + ty, color); + this.vertex(x2 - tx, y2 - ty, color); + this.vertex(x1 - tx, y1 - ty, color); + } + else { + this.vertex(x1 + tx, y1 + ty, color); + this.vertex(x1 - tx, y1 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x2 - tx, y2 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x1 - tx, y1 - ty, color); + } + }; + ShapeRenderer.prototype.x = function (x, y, size) { + this.line(x - size, y - size, x + size, y + size); + this.line(x - size, y + size, x + size, y - size); + }; + ShapeRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { + if (color === void 0) { color = null; } + if (count < 3) + throw new Error("Polygon must contain at least 3 vertices"); + this.check(ShapeType.Line, count * 2); + if (color === null) + color = this.color; + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + offset <<= 1; + count <<= 1; + var firstX = polygonVertices[offset]; + var firstY = polygonVertices[offset + 1]; + var last = offset + count; + for (var i = offset, n = offset + count - 2; i < n; i += 2) { + var x1 = polygonVertices[i]; + var y1 = polygonVertices[i + 1]; + var x2 = 0; + var y2 = 0; + if (i + 2 >= last) { + x2 = firstX; + y2 = firstY; + } + else { + x2 = polygonVertices[i + 2]; + y2 = polygonVertices[i + 3]; + } + this.vertex(x1, y1, color); + this.vertex(x2, y2, color); + } + }; + ShapeRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { + if (color === void 0) { color = null; } + if (segments === void 0) { segments = 0; } + if (segments === 0) + segments = Math.max(1, (6 * spine.MathUtils.cbrt(radius)) | 0); + if (segments <= 0) + throw new Error("segments must be > 0."); + if (color === null) + color = this.color; + var angle = 2 * spine.MathUtils.PI / segments; + var cos = Math.cos(angle); + var sin = Math.sin(angle); + var cx = radius, cy = 0; + if (!filled) { + this.check(ShapeType.Line, segments * 2 + 2); + for (var i = 0; i < segments; i++) { + this.vertex(x + cx, y + cy, color); + var temp_1 = cx; + cx = cos * cx - sin * cy; + cy = sin * temp_1 + cos * cy; + this.vertex(x + cx, y + cy, color); + } + this.vertex(x + cx, y + cy, color); + } + else { + this.check(ShapeType.Filled, segments * 3 + 3); + segments--; + for (var i = 0; i < segments; i++) { + this.vertex(x, y, color); + this.vertex(x + cx, y + cy, color); + var temp_2 = cx; + cx = cos * cx - sin * cy; + cy = sin * temp_2 + cos * cy; + this.vertex(x + cx, y + cy, color); + } + this.vertex(x, y, color); + this.vertex(x + cx, y + cy, color); + } + var temp = cx; + cx = radius; + cy = 0; + this.vertex(x + cx, y + cy, color); + }; + ShapeRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { + if (color === void 0) { color = null; } + this.check(ShapeType.Line, segments * 2 + 2); + if (color === null) + color = this.color; + var subdiv_step = 1 / segments; + var subdiv_step2 = subdiv_step * subdiv_step; + var subdiv_step3 = subdiv_step * subdiv_step * subdiv_step; + var pre1 = 3 * subdiv_step; + var pre2 = 3 * subdiv_step2; + var pre4 = 6 * subdiv_step2; + var pre5 = 6 * subdiv_step3; + var tmp1x = x1 - cx1 * 2 + cx2; + var tmp1y = y1 - cy1 * 2 + cy2; + var tmp2x = (cx1 - cx2) * 3 - x1 + x2; + var tmp2y = (cy1 - cy2) * 3 - y1 + y2; + var fx = x1; + var fy = y1; + var dfx = (cx1 - x1) * pre1 + tmp1x * pre2 + tmp2x * subdiv_step3; + var dfy = (cy1 - y1) * pre1 + tmp1y * pre2 + tmp2y * subdiv_step3; + var ddfx = tmp1x * pre4 + tmp2x * pre5; + var ddfy = tmp1y * pre4 + tmp2y * pre5; + var dddfx = tmp2x * pre5; + var dddfy = tmp2y * pre5; + while (segments-- > 0) { + this.vertex(fx, fy, color); + fx += dfx; + fy += dfy; + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + this.vertex(fx, fy, color); + } + this.vertex(fx, fy, color); + this.vertex(x2, y2, color); + }; + ShapeRenderer.prototype.vertex = function (x, y, color) { + var idx = this.vertexIndex; + var vertices = this.mesh.getVertices(); + vertices[idx++] = x; + vertices[idx++] = y; + vertices[idx++] = color.r; + vertices[idx++] = color.g; + vertices[idx++] = color.b; + vertices[idx++] = color.a; + this.vertexIndex = idx; + }; + ShapeRenderer.prototype.end = function () { + if (!this.isDrawing) + throw new Error("ShapeRenderer.begin() has not been called"); + this.flush(); + this.context.gl.disable(this.context.gl.BLEND); + this.isDrawing = false; + }; + ShapeRenderer.prototype.flush = function () { + if (this.vertexIndex == 0) + return; + this.mesh.setVerticesLength(this.vertexIndex); + this.mesh.draw(this.shader, this.shapeType); + this.vertexIndex = 0; + }; + ShapeRenderer.prototype.check = function (shapeType, numVertices) { + if (!this.isDrawing) + throw new Error("ShapeRenderer.begin() has not been called"); + if (this.shapeType == shapeType) { + if (this.mesh.maxVertices() - this.mesh.numVertices() < numVertices) + this.flush(); + else + return; + } + else { + this.flush(); + this.shapeType = shapeType; + } + }; + ShapeRenderer.prototype.dispose = function () { + this.mesh.dispose(); + }; + return ShapeRenderer; + }()); + webgl.ShapeRenderer = ShapeRenderer; + (function (ShapeType) { + ShapeType[ShapeType["Point"] = 0] = "Point"; + ShapeType[ShapeType["Line"] = 1] = "Line"; + ShapeType[ShapeType["Filled"] = 4] = "Filled"; + })(webgl.ShapeType || (webgl.ShapeType = {})); + var ShapeType = webgl.ShapeType; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var SkeletonDebugRenderer = (function () { - function SkeletonDebugRenderer(context) { - this.boneLineColor = new spine.Color(1, 0, 0, 1); - this.boneOriginColor = new spine.Color(0, 1, 0, 1); - this.attachmentLineColor = new spine.Color(0, 0, 1, 0.5); - this.triangleLineColor = new spine.Color(1, 0.64, 0, 0.5); - this.pathColor = new spine.Color().setFromString("FF7F00"); - this.clipColor = new spine.Color(0.8, 0, 0, 2); - this.aabbColor = new spine.Color(0, 1, 0, 0.5); - this.drawBones = true; - this.drawRegionAttachments = true; - this.drawBoundingBoxes = true; - this.drawMeshHull = true; - this.drawMeshTriangles = true; - this.drawPaths = true; - this.drawSkeletonXY = false; - this.drawClipping = true; - this.premultipliedAlpha = false; - this.scale = 1; - this.boneWidth = 2; - this.bounds = new spine.SkeletonBounds(); - this.temp = new Array(); - this.vertices = spine.Utils.newFloatArray(2 * 1024); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - } - SkeletonDebugRenderer.prototype.draw = function (shapes, skeleton, ignoredBones) { - if (ignoredBones === void 0) { ignoredBones = null; } - var skeletonX = skeleton.x; - var skeletonY = skeleton.y; - var gl = this.context.gl; - var srcFunc = this.premultipliedAlpha ? gl.ONE : gl.SRC_ALPHA; - shapes.setBlendMode(srcFunc, gl.ONE_MINUS_SRC_ALPHA); - var bones = skeleton.bones; - if (this.drawBones) { - shapes.setColor(this.boneLineColor); - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) - continue; - if (bone.parent == null) - continue; - var x = skeletonX + bone.data.length * bone.a + bone.worldX; - var y = skeletonY + bone.data.length * bone.c + bone.worldY; - shapes.rectLine(true, skeletonX + bone.worldX, skeletonY + bone.worldY, x, y, this.boneWidth * this.scale); - } - if (this.drawSkeletonXY) - shapes.x(skeletonX, skeletonY, 4 * this.scale); - } - if (this.drawRegionAttachments) { - shapes.setColor(this.attachmentLineColor); - var slots = skeleton.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.RegionAttachment) { - var regionAttachment = attachment; - var vertices = this.vertices; - regionAttachment.computeWorldVertices(slot.bone, vertices, 0, 2); - shapes.line(vertices[0], vertices[1], vertices[2], vertices[3]); - shapes.line(vertices[2], vertices[3], vertices[4], vertices[5]); - shapes.line(vertices[4], vertices[5], vertices[6], vertices[7]); - shapes.line(vertices[6], vertices[7], vertices[0], vertices[1]); - } - } - } - if (this.drawMeshHull || this.drawMeshTriangles) { - var slots = skeleton.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (!(attachment instanceof spine.MeshAttachment)) - continue; - var mesh = attachment; - var vertices = this.vertices; - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, 2); - var triangles = mesh.triangles; - var hullLength = mesh.hullLength; - if (this.drawMeshTriangles) { - shapes.setColor(this.triangleLineColor); - for (var ii = 0, nn = triangles.length; ii < nn; ii += 3) { - var v1 = triangles[ii] * 2, v2 = triangles[ii + 1] * 2, v3 = triangles[ii + 2] * 2; - shapes.triangle(false, vertices[v1], vertices[v1 + 1], vertices[v2], vertices[v2 + 1], vertices[v3], vertices[v3 + 1]); - } - } - if (this.drawMeshHull && hullLength > 0) { - shapes.setColor(this.attachmentLineColor); - hullLength = (hullLength >> 1) * 2; - var lastX = vertices[hullLength - 2], lastY = vertices[hullLength - 1]; - for (var ii = 0, nn = hullLength; ii < nn; ii += 2) { - var x = vertices[ii], y = vertices[ii + 1]; - shapes.line(x, y, lastX, lastY); - lastX = x; - lastY = y; - } - } - } - } - if (this.drawBoundingBoxes) { - var bounds = this.bounds; - bounds.update(skeleton, true); - shapes.setColor(this.aabbColor); - shapes.rect(false, bounds.minX, bounds.minY, bounds.getWidth(), bounds.getHeight()); - var polygons = bounds.polygons; - var boxes = bounds.boundingBoxes; - for (var i = 0, n = polygons.length; i < n; i++) { - var polygon = polygons[i]; - shapes.setColor(boxes[i].color); - shapes.polygon(polygon, 0, polygon.length); - } - } - if (this.drawPaths) { - var slots = skeleton.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (!(attachment instanceof spine.PathAttachment)) - continue; - var path = attachment; - var nn = path.worldVerticesLength; - var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); - path.computeWorldVertices(slot, 0, nn, world, 0, 2); - var color = this.pathColor; - var x1 = world[2], y1 = world[3], x2 = 0, y2 = 0; - if (path.closed) { - shapes.setColor(color); - var cx1 = world[0], cy1 = world[1], cx2 = world[nn - 2], cy2 = world[nn - 1]; - x2 = world[nn - 4]; - y2 = world[nn - 3]; - shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); - shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); - shapes.line(x1, y1, cx1, cy1); - shapes.line(x2, y2, cx2, cy2); - } - nn -= 4; - for (var ii = 4; ii < nn; ii += 6) { - var cx1 = world[ii], cy1 = world[ii + 1], cx2 = world[ii + 2], cy2 = world[ii + 3]; - x2 = world[ii + 4]; - y2 = world[ii + 5]; - shapes.setColor(color); - shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); - shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); - shapes.line(x1, y1, cx1, cy1); - shapes.line(x2, y2, cx2, cy2); - x1 = x2; - y1 = y2; - } - } - } - if (this.drawBones) { - shapes.setColor(this.boneOriginColor); - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) - continue; - shapes.circle(true, skeletonX + bone.worldX, skeletonY + bone.worldY, 3 * this.scale, SkeletonDebugRenderer.GREEN, 8); - } - } - if (this.drawClipping) { - var slots = skeleton.slots; - shapes.setColor(this.clipColor); - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (!(attachment instanceof spine.ClippingAttachment)) - continue; - var clip = attachment; - var nn = clip.worldVerticesLength; - var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); - clip.computeWorldVertices(slot, 0, nn, world, 0, 2); - for (var i_5 = 0, n_2 = world.length; i_5 < n_2; i_5 += 2) { - var x = world[i_5]; - var y = world[i_5 + 1]; - var x2 = world[(i_5 + 2) % world.length]; - var y2 = world[(i_5 + 3) % world.length]; - shapes.line(x, y, x2, y2); - } - } - } - }; - SkeletonDebugRenderer.prototype.dispose = function () { - }; - SkeletonDebugRenderer.LIGHT_GRAY = new spine.Color(192 / 255, 192 / 255, 192 / 255, 1); - SkeletonDebugRenderer.GREEN = new spine.Color(0, 1, 0, 1); - return SkeletonDebugRenderer; - }()); - webgl.SkeletonDebugRenderer = SkeletonDebugRenderer; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var SkeletonDebugRenderer = (function () { + function SkeletonDebugRenderer(context) { + this.boneLineColor = new spine.Color(1, 0, 0, 1); + this.boneOriginColor = new spine.Color(0, 1, 0, 1); + this.attachmentLineColor = new spine.Color(0, 0, 1, 0.5); + this.triangleLineColor = new spine.Color(1, 0.64, 0, 0.5); + this.pathColor = new spine.Color().setFromString("FF7F00"); + this.clipColor = new spine.Color(0.8, 0, 0, 2); + this.aabbColor = new spine.Color(0, 1, 0, 0.5); + this.drawBones = true; + this.drawRegionAttachments = true; + this.drawBoundingBoxes = true; + this.drawMeshHull = true; + this.drawMeshTriangles = true; + this.drawPaths = true; + this.drawSkeletonXY = false; + this.drawClipping = true; + this.premultipliedAlpha = false; + this.scale = 1; + this.boneWidth = 2; + this.bounds = new spine.SkeletonBounds(); + this.temp = new Array(); + this.vertices = spine.Utils.newFloatArray(2 * 1024); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + } + SkeletonDebugRenderer.prototype.draw = function (shapes, skeleton, ignoredBones) { + if (ignoredBones === void 0) { ignoredBones = null; } + var skeletonX = skeleton.x; + var skeletonY = skeleton.y; + var gl = this.context.gl; + var srcFunc = this.premultipliedAlpha ? gl.ONE : gl.SRC_ALPHA; + shapes.setBlendMode(srcFunc, gl.ONE_MINUS_SRC_ALPHA); + var bones = skeleton.bones; + if (this.drawBones) { + shapes.setColor(this.boneLineColor); + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) + continue; + if (bone.parent == null) + continue; + var x = skeletonX + bone.data.length * bone.a + bone.worldX; + var y = skeletonY + bone.data.length * bone.c + bone.worldY; + shapes.rectLine(true, skeletonX + bone.worldX, skeletonY + bone.worldY, x, y, this.boneWidth * this.scale); + } + if (this.drawSkeletonXY) + shapes.x(skeletonX, skeletonY, 4 * this.scale); + } + if (this.drawRegionAttachments) { + shapes.setColor(this.attachmentLineColor); + var slots = skeleton.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.RegionAttachment) { + var regionAttachment = attachment; + var vertices = this.vertices; + regionAttachment.computeWorldVertices(slot.bone, vertices, 0, 2); + shapes.line(vertices[0], vertices[1], vertices[2], vertices[3]); + shapes.line(vertices[2], vertices[3], vertices[4], vertices[5]); + shapes.line(vertices[4], vertices[5], vertices[6], vertices[7]); + shapes.line(vertices[6], vertices[7], vertices[0], vertices[1]); + } + } + } + if (this.drawMeshHull || this.drawMeshTriangles) { + var slots = skeleton.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (!(attachment instanceof spine.MeshAttachment)) + continue; + var mesh = attachment; + var vertices = this.vertices; + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, 2); + var triangles = mesh.triangles; + var hullLength = mesh.hullLength; + if (this.drawMeshTriangles) { + shapes.setColor(this.triangleLineColor); + for (var ii = 0, nn = triangles.length; ii < nn; ii += 3) { + var v1 = triangles[ii] * 2, v2 = triangles[ii + 1] * 2, v3 = triangles[ii + 2] * 2; + shapes.triangle(false, vertices[v1], vertices[v1 + 1], vertices[v2], vertices[v2 + 1], vertices[v3], vertices[v3 + 1]); + } + } + if (this.drawMeshHull && hullLength > 0) { + shapes.setColor(this.attachmentLineColor); + hullLength = (hullLength >> 1) * 2; + var lastX = vertices[hullLength - 2], lastY = vertices[hullLength - 1]; + for (var ii = 0, nn = hullLength; ii < nn; ii += 2) { + var x = vertices[ii], y = vertices[ii + 1]; + shapes.line(x, y, lastX, lastY); + lastX = x; + lastY = y; + } + } + } + } + if (this.drawBoundingBoxes) { + var bounds = this.bounds; + bounds.update(skeleton, true); + shapes.setColor(this.aabbColor); + shapes.rect(false, bounds.minX, bounds.minY, bounds.getWidth(), bounds.getHeight()); + var polygons = bounds.polygons; + var boxes = bounds.boundingBoxes; + for (var i = 0, n = polygons.length; i < n; i++) { + var polygon = polygons[i]; + shapes.setColor(boxes[i].color); + shapes.polygon(polygon, 0, polygon.length); + } + } + if (this.drawPaths) { + var slots = skeleton.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (!(attachment instanceof spine.PathAttachment)) + continue; + var path = attachment; + var nn = path.worldVerticesLength; + var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); + path.computeWorldVertices(slot, 0, nn, world, 0, 2); + var color = this.pathColor; + var x1 = world[2], y1 = world[3], x2 = 0, y2 = 0; + if (path.closed) { + shapes.setColor(color); + var cx1 = world[0], cy1 = world[1], cx2 = world[nn - 2], cy2 = world[nn - 1]; + x2 = world[nn - 4]; + y2 = world[nn - 3]; + shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); + shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); + shapes.line(x1, y1, cx1, cy1); + shapes.line(x2, y2, cx2, cy2); + } + nn -= 4; + for (var ii = 4; ii < nn; ii += 6) { + var cx1 = world[ii], cy1 = world[ii + 1], cx2 = world[ii + 2], cy2 = world[ii + 3]; + x2 = world[ii + 4]; + y2 = world[ii + 5]; + shapes.setColor(color); + shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); + shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); + shapes.line(x1, y1, cx1, cy1); + shapes.line(x2, y2, cx2, cy2); + x1 = x2; + y1 = y2; + } + } + } + if (this.drawBones) { + shapes.setColor(this.boneOriginColor); + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) + continue; + shapes.circle(true, skeletonX + bone.worldX, skeletonY + bone.worldY, 3 * this.scale, SkeletonDebugRenderer.GREEN, 8); + } + } + if (this.drawClipping) { + var slots = skeleton.slots; + shapes.setColor(this.clipColor); + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (!(attachment instanceof spine.ClippingAttachment)) + continue; + var clip = attachment; + var nn = clip.worldVerticesLength; + var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); + clip.computeWorldVertices(slot, 0, nn, world, 0, 2); + for (var i_5 = 0, n_2 = world.length; i_5 < n_2; i_5 += 2) { + var x = world[i_5]; + var y = world[i_5 + 1]; + var x2 = world[(i_5 + 2) % world.length]; + var y2 = world[(i_5 + 3) % world.length]; + shapes.line(x, y, x2, y2); + } + } + } + }; + SkeletonDebugRenderer.prototype.dispose = function () { + }; + SkeletonDebugRenderer.LIGHT_GRAY = new spine.Color(192 / 255, 192 / 255, 192 / 255, 1); + SkeletonDebugRenderer.GREEN = new spine.Color(0, 1, 0, 1); + return SkeletonDebugRenderer; + }()); + webgl.SkeletonDebugRenderer = SkeletonDebugRenderer; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Renderable = (function () { - function Renderable(vertices, numVertices, numFloats) { - this.vertices = vertices; - this.numVertices = numVertices; - this.numFloats = numFloats; - } - return Renderable; - }()); - ; - var SkeletonRenderer = (function () { - function SkeletonRenderer(context, twoColorTint) { - if (twoColorTint === void 0) { twoColorTint = true; } - this.premultipliedAlpha = false; - this.tempColor = new spine.Color(); - this.tempColor2 = new spine.Color(); - this.vertexSize = 2 + 2 + 4; - this.twoColorTint = false; - this.renderable = new Renderable(null, 0, 0); - this.clipper = new spine.SkeletonClipping(); - this.twoColorTint = twoColorTint; - if (twoColorTint) - this.vertexSize += 4; - this.vertices = spine.Utils.newFloatArray(this.vertexSize * 1024); - } - SkeletonRenderer.prototype.draw = function (batcher, skeleton) { - var clipper = this.clipper; - var premultipliedAlpha = this.premultipliedAlpha; - var twoColorTint = this.twoColorTint; - var blendMode = null; - var renderable = this.renderable; - var uvs = null; - var triangles = null; - var drawOrder = skeleton.drawOrder; - var attachmentColor = null; - var skeletonColor = skeleton.color; - var vertexSize = twoColorTint ? 12 : 8; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var clippedVertexSize = clipper.isClipping() ? 2 : vertexSize; - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var texture = null; - if (attachment instanceof spine.RegionAttachment) { - var region = attachment; - renderable.vertices = this.vertices; - renderable.numVertices = 4; - renderable.numFloats = clippedVertexSize << 2; - region.computeWorldVertices(slot.bone, renderable.vertices, 0, clippedVertexSize); - triangles = SkeletonRenderer.QUAD_TRIANGLES; - uvs = region.uvs; - texture = region.region.renderObject.texture; - attachmentColor = region.color; - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - renderable.vertices = this.vertices; - renderable.numVertices = (mesh.worldVerticesLength >> 1); - renderable.numFloats = renderable.numVertices * clippedVertexSize; - if (renderable.numFloats > renderable.vertices.length) { - renderable.vertices = this.vertices = spine.Utils.newFloatArray(renderable.numFloats); - } - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, renderable.vertices, 0, clippedVertexSize); - triangles = mesh.triangles; - texture = mesh.region.renderObject.texture; - uvs = mesh.uvs; - attachmentColor = mesh.color; - } - else if (attachment instanceof spine.ClippingAttachment) { - var clip = (attachment); - clipper.clipStart(slot, clip); - continue; - } - else - continue; - if (texture != null) { - var slotColor = slot.color; - var finalColor = this.tempColor; - finalColor.r = skeletonColor.r * slotColor.r * attachmentColor.r; - finalColor.g = skeletonColor.g * slotColor.g * attachmentColor.g; - finalColor.b = skeletonColor.b * slotColor.b * attachmentColor.b; - finalColor.a = skeletonColor.a * slotColor.a * attachmentColor.a; - if (premultipliedAlpha) { - finalColor.r *= finalColor.a; - finalColor.g *= finalColor.a; - finalColor.b *= finalColor.a; - } - var darkColor = this.tempColor2; - if (slot.darkColor == null) - darkColor.set(0, 0, 0, 1); - else - darkColor.setFromColor(slot.darkColor); - var slotBlendMode = slot.data.blendMode; - if (slotBlendMode != blendMode) { - blendMode = slotBlendMode; - batcher.setBlendMode(webgl.WebGLBlendModeConverter.getSourceGLBlendMode(blendMode, premultipliedAlpha), webgl.WebGLBlendModeConverter.getDestGLBlendMode(blendMode)); - } - if (clipper.isClipping()) { - clipper.clipTriangles(renderable.vertices, renderable.numFloats, triangles, triangles.length, uvs, finalColor, darkColor, twoColorTint); - var clippedVertices = new Float32Array(clipper.clippedVertices); - var clippedTriangles = clipper.clippedTriangles; - batcher.draw(texture, clippedVertices, clippedTriangles); - } - else { - var verts = renderable.vertices; - if (!twoColorTint) { - for (var v = 2, u = 0, n_3 = renderable.numFloats; v < n_3; v += vertexSize, u += 2) { - verts[v] = finalColor.r; - verts[v + 1] = finalColor.g; - verts[v + 2] = finalColor.b; - verts[v + 3] = finalColor.a; - verts[v + 4] = uvs[u]; - verts[v + 5] = uvs[u + 1]; - } - } - else { - for (var v = 2, u = 0, n_4 = renderable.numFloats; v < n_4; v += vertexSize, u += 2) { - verts[v] = finalColor.r; - verts[v + 1] = finalColor.g; - verts[v + 2] = finalColor.b; - verts[v + 3] = finalColor.a; - verts[v + 4] = uvs[u]; - verts[v + 5] = uvs[u + 1]; - verts[v + 6] = darkColor.r; - verts[v + 7] = darkColor.g; - verts[v + 8] = darkColor.b; - verts[v + 9] = darkColor.a; - } - } - var view = renderable.vertices.subarray(0, renderable.numFloats); - batcher.draw(texture, view, triangles); - } - } - clipper.clipEndWithSlot(slot); - } - clipper.clipEnd(); - }; - SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - return SkeletonRenderer; - }()); - webgl.SkeletonRenderer = SkeletonRenderer; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Renderable = (function () { + function Renderable(vertices, numVertices, numFloats) { + this.vertices = vertices; + this.numVertices = numVertices; + this.numFloats = numFloats; + } + return Renderable; + }()); + ; + var SkeletonRenderer = (function () { + function SkeletonRenderer(context, twoColorTint) { + if (twoColorTint === void 0) { twoColorTint = true; } + this.premultipliedAlpha = false; + this.tempColor = new spine.Color(); + this.tempColor2 = new spine.Color(); + this.vertexSize = 2 + 2 + 4; + this.twoColorTint = false; + this.renderable = new Renderable(null, 0, 0); + this.clipper = new spine.SkeletonClipping(); + this.twoColorTint = twoColorTint; + if (twoColorTint) + this.vertexSize += 4; + this.vertices = spine.Utils.newFloatArray(this.vertexSize * 1024); + } + SkeletonRenderer.prototype.draw = function (batcher, skeleton) { + var clipper = this.clipper; + var premultipliedAlpha = this.premultipliedAlpha; + var twoColorTint = this.twoColorTint; + var blendMode = null; + var renderable = this.renderable; + var uvs = null; + var triangles = null; + var drawOrder = skeleton.drawOrder; + var attachmentColor = null; + var skeletonColor = skeleton.color; + var vertexSize = twoColorTint ? 12 : 8; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var clippedVertexSize = clipper.isClipping() ? 2 : vertexSize; + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var texture = null; + if (attachment instanceof spine.RegionAttachment) { + var region = attachment; + renderable.vertices = this.vertices; + renderable.numVertices = 4; + renderable.numFloats = clippedVertexSize << 2; + region.computeWorldVertices(slot.bone, renderable.vertices, 0, clippedVertexSize); + triangles = SkeletonRenderer.QUAD_TRIANGLES; + uvs = region.uvs; + texture = region.region.renderObject.texture; + attachmentColor = region.color; + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + renderable.vertices = this.vertices; + renderable.numVertices = (mesh.worldVerticesLength >> 1); + renderable.numFloats = renderable.numVertices * clippedVertexSize; + if (renderable.numFloats > renderable.vertices.length) { + renderable.vertices = this.vertices = spine.Utils.newFloatArray(renderable.numFloats); + } + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, renderable.vertices, 0, clippedVertexSize); + triangles = mesh.triangles; + texture = mesh.region.renderObject.texture; + uvs = mesh.uvs; + attachmentColor = mesh.color; + } + else if (attachment instanceof spine.ClippingAttachment) { + var clip = (attachment); + clipper.clipStart(slot, clip); + continue; + } + else + continue; + if (texture != null) { + var slotColor = slot.color; + var finalColor = this.tempColor; + finalColor.r = skeletonColor.r * slotColor.r * attachmentColor.r; + finalColor.g = skeletonColor.g * slotColor.g * attachmentColor.g; + finalColor.b = skeletonColor.b * slotColor.b * attachmentColor.b; + finalColor.a = skeletonColor.a * slotColor.a * attachmentColor.a; + if (premultipliedAlpha) { + finalColor.r *= finalColor.a; + finalColor.g *= finalColor.a; + finalColor.b *= finalColor.a; + } + var darkColor = this.tempColor2; + if (slot.darkColor == null) + darkColor.set(0, 0, 0, 1); + else + darkColor.setFromColor(slot.darkColor); + var slotBlendMode = slot.data.blendMode; + if (slotBlendMode != blendMode) { + blendMode = slotBlendMode; + batcher.setBlendMode(webgl.WebGLBlendModeConverter.getSourceGLBlendMode(blendMode, premultipliedAlpha), webgl.WebGLBlendModeConverter.getDestGLBlendMode(blendMode)); + } + if (clipper.isClipping()) { + clipper.clipTriangles(renderable.vertices, renderable.numFloats, triangles, triangles.length, uvs, finalColor, darkColor, twoColorTint); + var clippedVertices = new Float32Array(clipper.clippedVertices); + var clippedTriangles = clipper.clippedTriangles; + batcher.draw(texture, clippedVertices, clippedTriangles); + } + else { + var verts = renderable.vertices; + if (!twoColorTint) { + for (var v = 2, u = 0, n_3 = renderable.numFloats; v < n_3; v += vertexSize, u += 2) { + verts[v] = finalColor.r; + verts[v + 1] = finalColor.g; + verts[v + 2] = finalColor.b; + verts[v + 3] = finalColor.a; + verts[v + 4] = uvs[u]; + verts[v + 5] = uvs[u + 1]; + } + } + else { + for (var v = 2, u = 0, n_4 = renderable.numFloats; v < n_4; v += vertexSize, u += 2) { + verts[v] = finalColor.r; + verts[v + 1] = finalColor.g; + verts[v + 2] = finalColor.b; + verts[v + 3] = finalColor.a; + verts[v + 4] = uvs[u]; + verts[v + 5] = uvs[u + 1]; + verts[v + 6] = darkColor.r; + verts[v + 7] = darkColor.g; + verts[v + 8] = darkColor.b; + verts[v + 9] = darkColor.a; + } + } + var view = renderable.vertices.subarray(0, renderable.numFloats); + batcher.draw(texture, view, triangles); + } + } + clipper.clipEndWithSlot(slot); + } + clipper.clipEnd(); + }; + SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + return SkeletonRenderer; + }()); + webgl.SkeletonRenderer = SkeletonRenderer; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Vector3 = (function () { - function Vector3(x, y, z) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - if (z === void 0) { z = 0; } - this.x = 0; - this.y = 0; - this.z = 0; - this.x = x; - this.y = y; - this.z = z; - } - Vector3.prototype.setFrom = function (v) { - this.x = v.x; - this.y = v.y; - this.z = v.z; - return this; - }; - Vector3.prototype.set = function (x, y, z) { - this.x = x; - this.y = y; - this.z = z; - return this; - }; - Vector3.prototype.add = function (v) { - this.x += v.x; - this.y += v.y; - this.z += v.z; - return this; - }; - Vector3.prototype.sub = function (v) { - this.x -= v.x; - this.y -= v.y; - this.z -= v.z; - return this; - }; - Vector3.prototype.scale = function (s) { - this.x *= s; - this.y *= s; - this.z *= s; - return this; - }; - Vector3.prototype.normalize = function () { - var len = this.length(); - if (len == 0) - return this; - len = 1 / len; - this.x *= len; - this.y *= len; - this.z *= len; - return this; - }; - Vector3.prototype.cross = function (v) { - return this.set(this.y * v.z - this.z * v.y, this.z * v.x - this.x * v.z, this.x * v.y - this.y * v.x); - }; - Vector3.prototype.multiply = function (matrix) { - var l_mat = matrix.values; - return this.set(this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03], this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13], this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]); - }; - Vector3.prototype.project = function (matrix) { - var l_mat = matrix.values; - var l_w = 1 / (this.x * l_mat[webgl.M30] + this.y * l_mat[webgl.M31] + this.z * l_mat[webgl.M32] + l_mat[webgl.M33]); - return this.set((this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03]) * l_w, (this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13]) * l_w, (this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]) * l_w); - }; - Vector3.prototype.dot = function (v) { - return this.x * v.x + this.y * v.y + this.z * v.z; - }; - Vector3.prototype.length = function () { - return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); - }; - Vector3.prototype.distance = function (v) { - var a = v.x - this.x; - var b = v.y - this.y; - var c = v.z - this.z; - return Math.sqrt(a * a + b * b + c * c); - }; - return Vector3; - }()); - webgl.Vector3 = Vector3; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Vector3 = (function () { + function Vector3(x, y, z) { + if (x === void 0) { x = 0; } + if (y === void 0) { y = 0; } + if (z === void 0) { z = 0; } + this.x = 0; + this.y = 0; + this.z = 0; + this.x = x; + this.y = y; + this.z = z; + } + Vector3.prototype.setFrom = function (v) { + this.x = v.x; + this.y = v.y; + this.z = v.z; + return this; + }; + Vector3.prototype.set = function (x, y, z) { + this.x = x; + this.y = y; + this.z = z; + return this; + }; + Vector3.prototype.add = function (v) { + this.x += v.x; + this.y += v.y; + this.z += v.z; + return this; + }; + Vector3.prototype.sub = function (v) { + this.x -= v.x; + this.y -= v.y; + this.z -= v.z; + return this; + }; + Vector3.prototype.scale = function (s) { + this.x *= s; + this.y *= s; + this.z *= s; + return this; + }; + Vector3.prototype.normalize = function () { + var len = this.length(); + if (len == 0) + return this; + len = 1 / len; + this.x *= len; + this.y *= len; + this.z *= len; + return this; + }; + Vector3.prototype.cross = function (v) { + return this.set(this.y * v.z - this.z * v.y, this.z * v.x - this.x * v.z, this.x * v.y - this.y * v.x); + }; + Vector3.prototype.multiply = function (matrix) { + var l_mat = matrix.values; + return this.set(this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03], this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13], this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]); + }; + Vector3.prototype.project = function (matrix) { + var l_mat = matrix.values; + var l_w = 1 / (this.x * l_mat[webgl.M30] + this.y * l_mat[webgl.M31] + this.z * l_mat[webgl.M32] + l_mat[webgl.M33]); + return this.set((this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03]) * l_w, (this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13]) * l_w, (this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]) * l_w); + }; + Vector3.prototype.dot = function (v) { + return this.x * v.x + this.y * v.y + this.z * v.z; + }; + Vector3.prototype.length = function () { + return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); + }; + Vector3.prototype.distance = function (v) { + var a = v.x - this.x; + var b = v.y - this.y; + var c = v.z - this.z; + return Math.sqrt(a * a + b * b + c * c); + }; + return Vector3; + }()); + webgl.Vector3 = Vector3; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var ManagedWebGLRenderingContext = (function () { - function ManagedWebGLRenderingContext(canvasOrContext, contextConfig) { - var _this = this; - if (contextConfig === void 0) { contextConfig = { alpha: "true" }; } - this.restorables = new Array(); - if (canvasOrContext instanceof HTMLCanvasElement) { - var canvas = canvasOrContext; - this.gl = (canvas.getContext("webgl", contextConfig) || canvas.getContext("experimental-webgl", contextConfig)); - this.canvas = canvas; - canvas.addEventListener("webglcontextlost", function (e) { - var event = e; - if (e) { - e.preventDefault(); - } - }); - canvas.addEventListener("webglcontextrestored", function (e) { - for (var i = 0, n = _this.restorables.length; i < n; i++) { - _this.restorables[i].restore(); - } - }); - } - else { - this.gl = canvasOrContext; - this.canvas = this.gl.canvas; - } - } - ManagedWebGLRenderingContext.prototype.addRestorable = function (restorable) { - this.restorables.push(restorable); - }; - ManagedWebGLRenderingContext.prototype.removeRestorable = function (restorable) { - var index = this.restorables.indexOf(restorable); - if (index > -1) - this.restorables.splice(index, 1); - }; - return ManagedWebGLRenderingContext; - }()); - webgl.ManagedWebGLRenderingContext = ManagedWebGLRenderingContext; - var WebGLBlendModeConverter = (function () { - function WebGLBlendModeConverter() { - } - WebGLBlendModeConverter.getDestGLBlendMode = function (blendMode) { - switch (blendMode) { - case spine.BlendMode.Normal: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; - case spine.BlendMode.Additive: return WebGLBlendModeConverter.ONE; - case spine.BlendMode.Multiply: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; - case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; - default: throw new Error("Unknown blend mode: " + blendMode); - } - }; - WebGLBlendModeConverter.getSourceGLBlendMode = function (blendMode, premultipliedAlpha) { - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - switch (blendMode) { - case spine.BlendMode.Normal: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; - case spine.BlendMode.Additive: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; - case spine.BlendMode.Multiply: return WebGLBlendModeConverter.DST_COLOR; - case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE; - default: throw new Error("Unknown blend mode: " + blendMode); - } - }; - WebGLBlendModeConverter.ZERO = 0; - WebGLBlendModeConverter.ONE = 1; - WebGLBlendModeConverter.SRC_COLOR = 0x0300; - WebGLBlendModeConverter.ONE_MINUS_SRC_COLOR = 0x0301; - WebGLBlendModeConverter.SRC_ALPHA = 0x0302; - WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA = 0x0303; - WebGLBlendModeConverter.DST_ALPHA = 0x0304; - WebGLBlendModeConverter.ONE_MINUS_DST_ALPHA = 0x0305; - WebGLBlendModeConverter.DST_COLOR = 0x0306; - return WebGLBlendModeConverter; - }()); - webgl.WebGLBlendModeConverter = WebGLBlendModeConverter; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var ManagedWebGLRenderingContext = (function () { + function ManagedWebGLRenderingContext(canvasOrContext, contextConfig) { + var _this = this; + if (contextConfig === void 0) { contextConfig = { alpha: "true" }; } + this.restorables = new Array(); + if (canvasOrContext instanceof HTMLCanvasElement) { + var canvas = canvasOrContext; + this.gl = (canvas.getContext("webgl", contextConfig) || canvas.getContext("experimental-webgl", contextConfig)); + this.canvas = canvas; + canvas.addEventListener("webglcontextlost", function (e) { + var event = e; + if (e) { + e.preventDefault(); + } + }); + canvas.addEventListener("webglcontextrestored", function (e) { + for (var i = 0, n = _this.restorables.length; i < n; i++) { + _this.restorables[i].restore(); + } + }); + } + else { + this.gl = canvasOrContext; + this.canvas = this.gl.canvas; + } + } + ManagedWebGLRenderingContext.prototype.addRestorable = function (restorable) { + this.restorables.push(restorable); + }; + ManagedWebGLRenderingContext.prototype.removeRestorable = function (restorable) { + var index = this.restorables.indexOf(restorable); + if (index > -1) + this.restorables.splice(index, 1); + }; + return ManagedWebGLRenderingContext; + }()); + webgl.ManagedWebGLRenderingContext = ManagedWebGLRenderingContext; + var WebGLBlendModeConverter = (function () { + function WebGLBlendModeConverter() { + } + WebGLBlendModeConverter.getDestGLBlendMode = function (blendMode) { + switch (blendMode) { + case spine.BlendMode.Normal: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; + case spine.BlendMode.Additive: return WebGLBlendModeConverter.ONE; + case spine.BlendMode.Multiply: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; + case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; + default: throw new Error("Unknown blend mode: " + blendMode); + } + }; + WebGLBlendModeConverter.getSourceGLBlendMode = function (blendMode, premultipliedAlpha) { + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + switch (blendMode) { + case spine.BlendMode.Normal: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; + case spine.BlendMode.Additive: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; + case spine.BlendMode.Multiply: return WebGLBlendModeConverter.DST_COLOR; + case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE; + default: throw new Error("Unknown blend mode: " + blendMode); + } + }; + WebGLBlendModeConverter.ZERO = 0; + WebGLBlendModeConverter.ONE = 1; + WebGLBlendModeConverter.SRC_COLOR = 0x0300; + WebGLBlendModeConverter.ONE_MINUS_SRC_COLOR = 0x0301; + WebGLBlendModeConverter.SRC_ALPHA = 0x0302; + WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA = 0x0303; + WebGLBlendModeConverter.DST_ALPHA = 0x0304; + WebGLBlendModeConverter.ONE_MINUS_DST_ALPHA = 0x0305; + WebGLBlendModeConverter.DST_COLOR = 0x0306; + return WebGLBlendModeConverter; + }()); + webgl.WebGLBlendModeConverter = WebGLBlendModeConverter; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); //# sourceMappingURL=spine-webgl.js.map \ No newline at end of file diff --git a/spine-ts/build/spine-webgl.js.map b/spine-ts/build/spine-webgl.js.map index dc091101f..6fcd6ca29 100644 --- a/spine-ts/build/spine-webgl.js.map +++ b/spine-ts/build/spine-webgl.js.map @@ -1 +1 @@ -{"version":3,"file":"spine-webgl.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts"],"names":[],"mappings":"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AAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChH,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC3G,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG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CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,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"} \ No newline at end of file +{"version":3,"file":"spine-webgl.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts"],"names":[],"mappings":"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AAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChH,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC3G,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG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CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,wBAAM,GAAN,UAAQ,QAAiB,EAAE,SAAkB,EAAE,EAAW;gBACzD,OAAO,CAAC,SAAS,EAAE,CAAC;gBACpB,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBACxE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC;gBACrC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC;gBACrC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC5B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;gBACtB,GAAG,CAAC,SAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,GAAG,CAAC,SAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,GAAG,CAAC,SAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,GAAG,CAAC,SAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,GAAG,CAAC,SAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,GAAG,CAAC,SAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,GAAG,CAAC,SAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpB,GAAG,CAAC,SAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpB,GAAG,CAAC,SAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBAEpB,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;gBAC7B,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC5C,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC5C,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;gBAEhC,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAEM,iBAAS,GAAhB;gBACC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,OAAO,CAAC,KAAK,GAAG,IAAI,aAAO,EAAE,CAAC;gBAC1D,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,OAAO,CAAC,KAAK,GAAG,IAAI,aAAO,EAAE,CAAC;gBAC1D,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,OAAO,CAAC,KAAK,GAAG,IAAI,aAAO,EAAE,CAAC;YAC3D,CAAC;YA9Rc,aAAK,GAAY,IAAI,CAAC;YACtB,aAAK,GAAY,IAAI,CAAC;YACtB,aAAK,GAAY,IAAI,CAAC;YACtB,iBAAS,GAAG,IAAI,OAAO,EAAE,CAAC;YA4R1C,cAAC;QAAD,CAAC,AAnSD,IAmSC;QAnSY,aAAO,UAmSnB,CAAA;IACF,CAAC,EAtTY,KAAK,GAAL,WAAK,KAAL,WAAK,QAsTjB;AAAD,CAAC,EAtTM,KAAK,KAAL,KAAK,QAsTX;ACtTD,IAAO,KAAK,CAkLX;AAlLD,WAAO,KAAK;IAAC,IAAA,KAAK,CAkLjB;IAlLY,WAAA,KAAK,EAAC,CAAC;QACnB;YAuCC,cAAa,OAA6D,EAAU,UAA6B,EAAE,WAAmB,EAAE,UAAkB;gBAAtE,eAAU,GAAV,UAAU,CAAmB;gBAnCzG,mBAAc,GAAG,CAAC,CAAC;gBACnB,kBAAa,GAAG,KAAK,CAAC;gBAGtB,kBAAa,GAAG,CAAC,CAAC;gBAClB,iBAAY,GAAG,KAAK,CAAC;gBACrB,sBAAiB,GAAG,CAAC,CAAC;gBA8B7B,IAAI,CAAC,OAAO,GAAG,OAAO,YAAY,kCAA4B,GAAE,OAAO,GAAG,IAAI,kCAA4B,CAAC,OAAO,CAAC,CAAC;gBACpH,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,IAAI,CAAC,iBAAiB,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;gBACrD,CAAC;gBACD,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACvE,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;gBAC3C,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YApCD,4BAAa,GAAb,cAAsC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAE/D,0BAAW,GAAX,cAAyB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAChF,0BAAW,GAAX,cAAyB,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC/E,gCAAiB,GAAjB,UAAmB,MAAc;gBAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC9B,CAAC;YACD,0BAAW,GAAX,cAA+B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEtD,yBAAU,GAAV,cAAwB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACrD,yBAAU,GAAV,cAAwB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACpD,+BAAgB,GAAhB,UAAkB,MAAc;gBAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;YAC7B,CAAC;YACD,yBAAU,GAAV,cAA6B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAA,CAAC,CAAC;;YAElD,oCAAqB,GAArB;gBACC,IAAI,IAAI,GAAG,CAAC,CAAC;gBACb,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjD,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACnC,IAAI,IAAI,SAAS,CAAC,WAAW,CAAC;gBAC/B,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAaD,0BAAW,GAAX,UAAa,QAAuB;gBACnC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAAC,MAAM,KAAK,CAAC,6BAA6B,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,CAAC,CAAC;gBAC1H,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;YACvC,CAAC;YAED,yBAAU,GAAV,UAAY,OAAsB;gBACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;oBAAC,MAAM,KAAK,CAAC,6BAA6B,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC;gBACtH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;YACrC,CAAC;YAED,mBAAI,GAAJ,UAAM,MAAc,EAAE,aAAqB;gBAC1C,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,aAAa,GAAG,CAAC,GAAE,IAAI,CAAC,aAAa,GAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACzI,CAAC;YAED,6BAAc,GAAd,UAAgB,MAAc,EAAE,aAAqB,EAAE,MAAc,EAAE,KAAa;gBACnF,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,CAAC;oBAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC3D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClB,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC5B,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;gBACtE,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC7C,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrB,CAAC;YAED,mBAAI,GAAJ,UAAM,MAAc;gBACnB,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gBACpD,IAAI,MAAM,GAAG,CAAC,CAAC;gBACf,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjD,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBAChC,IAAI,UAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACxD,EAAE,CAAC,uBAAuB,CAAC,UAAQ,CAAC,CAAC;oBACrC,EAAE,CAAC,mBAAmB,CAAC,UAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC9G,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC;gBAC9B,CAAC;gBACD,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACxF,CAAC;YAED,qBAAM,GAAN,UAAQ,MAAc;gBACrB,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjD,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBAChC,IAAI,UAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACxD,EAAE,CAAC,wBAAwB,CAAC,UAAQ,CAAC,CAAC;gBACvC,CAAC;gBACD,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;gBACrC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;YAC1E,CAAC;YAEO,qBAAM,GAAd;gBACC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;oBACxB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;wBAC1B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC;oBACzC,CAAC;oBACD,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;oBACpD,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;oBAChG,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC5B,CAAC;gBAED,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;wBACzB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC;oBACxC,CAAC;oBACD,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC3D,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;oBACtG,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC3B,CAAC;YACF,CAAC;YAED,sBAAO,GAAP;gBACC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,CAAC;YAED,sBAAO,GAAP;gBACC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACrC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACrC,CAAC;YACF,WAAC;QAAD,CAAC,AA1ID,IA0IC;QA1IY,UAAI,OA0IhB,CAAA;QAED;YACC,yBAAoB,IAAY,EAAS,IAAyB,EAAS,WAAmB;gBAA1E,SAAI,GAAJ,IAAI,CAAQ;gBAAS,SAAI,GAAJ,IAAI,CAAqB;gBAAS,gBAAW,GAAX,WAAW,CAAQ;YAAI,CAAC;YACpG,sBAAC;QAAD,CAAC,AAFD,IAEC;QAFY,qBAAe,kBAE3B,CAAA;QAED;YAAwC,sCAAe;YACtD;gBACC,kBAAM,YAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACtD,CAAC;YACF,yBAAC;QAAD,CAAC,AAJD,CAAwC,eAAe,GAItD;QAJY,wBAAkB,qBAI9B,CAAA;QAED;YAAwC,sCAAe;YACtD;gBACC,kBAAM,YAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACtD,CAAC;YACF,yBAAC;QAAD,CAAC,AAJD,CAAwC,eAAe,GAItD;QAJY,wBAAkB,qBAI9B,CAAA;QAED;YAAuC,qCAAe;YACrD,2BAAa,IAAgB;gBAAhB,oBAAgB,GAAhB,QAAgB;gBAC5B,kBAAM,YAAM,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,GAAE,EAAE,GAAE,IAAI,CAAC,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC/E,CAAC;YACF,wBAAC;QAAD,CAAC,AAJD,CAAuC,eAAe,GAIrD;QAJY,uBAAiB,oBAI7B,CAAA;QAED;YAAoC,kCAAe;YAClD;gBACC,kBAAM,YAAM,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC;YACF,qBAAC;QAAD,CAAC,AAJD,CAAoC,eAAe,GAIlD;QAJY,oBAAc,iBAI1B,CAAA;QAED;YAAqC,mCAAe;YACnD;gBACC,kBAAM,YAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpD,CAAC;YACF,sBAAC;QAAD,CAAC,AAJD,CAAqC,eAAe,GAInD;QAJY,qBAAe,kBAI3B,CAAA;QAED,WAAY,mBAAmB;YAC9B,+DAAK,CAAA;QACN,CAAC,EAFW,yBAAmB,KAAnB,yBAAmB,QAE9B;QAFD,IAAY,mBAAmB,GAAnB,yBAEX,CAAA;IACF,CAAC,EAlLY,KAAK,GAAL,WAAK,KAAL,WAAK,QAkLjB;AAAD,CAAC,EAlLM,KAAK,KAAL,KAAK,QAkLX;AClLD,IAAO,KAAK,CAkGX;AAlGD,WAAO,KAAK;IAAC,IAAA,KAAK,CAkGjB;IAlGY,WAAA,KAAK,EAAC,CAAC;QACnB;YAYC,wBAAa,OAA6D,EAAE,YAA4B,EAAE,WAA2B;gBAAzD,4BAA4B,GAA5B,mBAA4B;gBAAE,2BAA2B,GAA3B,mBAA2B;gBAT7H,cAAS,GAAG,KAAK,CAAC;gBAElB,WAAM,GAAW,IAAI,CAAC;gBACtB,gBAAW,GAAc,IAAI,CAAC;gBAC9B,mBAAc,GAAG,CAAC,CAAC;gBACnB,kBAAa,GAAG,CAAC,CAAC;gBAKzB,EAAE,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,WAAW,CAAC,CAAC;gBAC3G,IAAI,CAAC,OAAO,GAAG,OAAO,YAAY,kCAA4B,GAAE,OAAO,GAAG,IAAI,kCAA4B,CAAC,OAAO,CAAC,CAAC;gBACpH,IAAI,UAAU,GAAG,YAAY;oBAC3B,CAAC,IAAI,wBAAkB,EAAE,EAAE,IAAI,oBAAc,EAAE,EAAE,IAAI,uBAAiB,EAAE,EAAE,IAAI,qBAAe,EAAE,CAAC;oBAChG,CAAC,IAAI,wBAAkB,EAAE,EAAE,IAAI,oBAAc,EAAE,EAAE,IAAI,uBAAiB,EAAE,CAAC,CAAC;gBAC5E,IAAI,CAAC,IAAI,GAAG,IAAI,UAAI,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;gBACxE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC;gBAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,mBAAmB,CAAC;YACrD,CAAC;YAED,8BAAK,GAAL,UAAO,MAAc;gBACpB,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAC;gBACpI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;gBACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBAEtB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBACpB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;YAED,qCAAY,GAAZ,UAAc,QAAgB,EAAE,QAAgB;gBAC/C,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5C,CAAC;YACF,CAAC;YAED,6BAAI,GAAJ,UAAM,OAAkB,EAAE,QAA2B,EAAE,OAAsB;gBAC5E,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;oBACjC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;gBAC5B,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM;oBAC/E,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;oBACvE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACd,CAAC;gBAED,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACzC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC3D,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC;gBACvC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;gBAEhD,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC1C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;oBACnE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;gBAC3C,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAChD,CAAC;YAEO,8BAAK,GAAb;gBACC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;oBAAC,MAAM,CAAC;gBAErC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;gBAE1C,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,CAAC;YAED,4BAAG,GAAH;gBACC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAC;gBACjI,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;oBAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBAEvB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YAED,qCAAY,GAAZ,cAAkB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAE1C,gCAAO,GAAP;gBACC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC;YACF,qBAAC;QAAD,CAAC,AAhGD,IAgGC;QAhGY,oBAAc,iBAgG1B,CAAA;IACF,CAAC,EAlGY,KAAK,GAAL,WAAK,KAAL,WAAK,QAkGjB;AAAD,CAAC,EAlGM,KAAK,KAAL,KAAK,QAkGX;AClGD,IAAO,KAAK,CAgaX;AAhaD,WAAO,KAAK;IAAC,IAAA,KAAK,CAgajB;IAhaY,WAAA,KAAK,EAAC,CAAC;QACnB;YAqBC,uBAAa,MAAyB,EAAE,OAA6D,EAAE,YAA4B;gBAA5B,4BAA4B,GAA5B,mBAA4B;gBAhB3H,iBAAY,GAAG,KAAK,CAAC;gBAIrB,mBAAc,GAA2D,IAAI,CAAC;gBAG9E,SAAI,GAAG;oBACd,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;oBACtB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;oBACtB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;oBACtB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;iBACtB,CAAC;gBACM,mBAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpC,UAAK,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAGrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;gBACrB,IAAI,CAAC,OAAO,GAAG,OAAO,YAAY,kCAA4B,GAAE,OAAO,GAAG,IAAI,kCAA4B,CAAC,OAAO,CAAC,CAAC;gBACpH,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;gBACjC,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAW,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC3D,IAAI,CAAC,aAAa,GAAG,YAAY,GAAG,YAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzH,IAAI,CAAC,OAAO,GAAG,IAAI,oBAAc,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBAC9D,IAAI,CAAC,YAAY,GAAG,YAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpD,IAAI,CAAC,MAAM,GAAG,IAAI,mBAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,CAAC,gBAAgB,GAAG,IAAI,sBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACzE,IAAI,CAAC,qBAAqB,GAAG,IAAI,2BAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtE,CAAC;YAED,6BAAK,GAAL;gBACC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;YAED,oCAAY,GAAZ,UAAc,QAAkB,EAAE,kBAA0B;gBAA1B,kCAA0B,GAA1B,0BAA0B;gBAC3D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClC,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;gBAC9D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACpD,CAAC;YAED,yCAAiB,GAAjB,UAAkB,QAAkB,EAAE,kBAA0B,EAAE,YAAkC;gBAA9D,kCAA0B,GAA1B,0BAA0B;gBAAE,4BAAkC,GAAlC,mBAAkC;gBACnG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;gBACnE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;YACtE,CAAC;YAED,mCAAW,GAAX,UAAa,OAAkB,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,KAAmB;gBAAnB,qBAAmB,GAAnB,YAAmB;gBACxG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACvD,CAAC;YAED,0CAAkB,GAAlB,UAAoB,OAAkB,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,MAAc,EAAE,MAAc,EAAE,KAAa,EAAE,KAAmB,EAAE,kBAAmC;gBAAxD,qBAAmB,GAAnB,YAAmB;gBAAE,kCAAmC,GAAnC,0BAAmC;gBACnM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBAGrB,IAAI,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC;gBAC9B,IAAI,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC;gBAC9B,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;gBACjB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;gBACjB,IAAI,GAAG,GAAG,KAAK,GAAG,MAAM,CAAC;gBACzB,IAAI,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC;gBAG1B,IAAI,GAAG,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,GAAG,GAAG,CAAC;gBACd,IAAI,GAAG,GAAG,GAAG,CAAC;gBACd,IAAI,GAAG,GAAG,GAAG,CAAC;gBACd,IAAI,GAAG,GAAG,GAAG,CAAC;gBACd,IAAI,GAAG,GAAG,EAAE,CAAC;gBAEb,IAAI,EAAE,GAAG,CAAC,CAAC;gBACX,IAAI,EAAE,GAAG,CAAC,CAAC;gBACX,IAAI,EAAE,GAAG,CAAC,CAAC;gBACX,IAAI,EAAE,GAAG,CAAC,CAAC;gBACX,IAAI,EAAE,GAAG,CAAC,CAAC;gBACX,IAAI,EAAE,GAAG,CAAC,CAAC;gBACX,IAAI,EAAE,GAAG,CAAC,CAAC;gBACX,IAAI,EAAE,GAAG,CAAC,CAAC;gBAGX,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAClC,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAElC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;oBAC3B,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;oBAE3B,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;oBAC3B,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;oBAE3B,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;oBAC3B,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;oBAE3B,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;oBACpB,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;gBACrB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,EAAE,GAAG,GAAG,CAAC;oBACT,EAAE,GAAG,GAAG,CAAC;oBAET,EAAE,GAAG,GAAG,CAAC;oBACT,EAAE,GAAG,GAAG,CAAC;oBAET,EAAE,GAAG,GAAG,CAAC;oBACT,EAAE,GAAG,GAAG,CAAC;oBAET,EAAE,GAAG,GAAG,CAAC;oBACT,EAAE,GAAG,GAAG,CAAC;gBACV,CAAC;gBAED,EAAE,IAAI,YAAY,CAAC;gBACnB,EAAE,IAAI,YAAY,CAAC;gBACnB,EAAE,IAAI,YAAY,CAAC;gBACnB,EAAE,IAAI,YAAY,CAAC;gBACnB,EAAE,IAAI,YAAY,CAAC;gBACnB,EAAE,IAAI,YAAY,CAAC;gBACnB,EAAE,IAAI,YAAY,CAAC;gBACnB,EAAE,IAAI,YAAY,CAAC;gBAEnB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACvD,CAAC;YAED,kCAAU,GAAV,UAAY,MAA0B,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,KAAmB,EAAE,kBAAmC;gBAAxD,qBAAmB,GAAnB,YAAmB;gBAAE,kCAAmC,GAAnC,0BAAmC;gBACpJ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACtB,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACtB,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACrB,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACrB,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAY,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACzE,CAAC;YAED,4BAAI,GAAJ,UAAM,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,KAAmB,EAAE,MAAoB;gBAAzC,qBAAmB,GAAnB,YAAmB;gBAAE,sBAAoB,GAApB,aAAoB;gBAC5F,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YACvC,CAAC;YAED,gCAAQ,GAAR,UAAU,MAAe,EAAE,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,KAAmB,EAAE,MAAoB,EAAE,MAAoB;gBAA/D,qBAAmB,GAAnB,YAAmB;gBAAE,sBAAoB,GAApB,aAAoB;gBAAE,sBAAoB,GAApB,aAAoB;gBAC/J,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3E,CAAC;YAED,4BAAI,GAAJ,UAAM,MAAe,EAAE,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,KAAmB,EAAE,MAAoB,EAAE,MAAoB,EAAE,MAAoB;gBAArF,qBAAmB,GAAnB,YAAmB;gBAAE,sBAAoB,GAApB,aAAoB;gBAAE,sBAAoB,GAApB,aAAoB;gBAAE,sBAAoB,GAApB,aAAoB;gBACzM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACvF,CAAC;YAED,4BAAI,GAAJ,UAAM,MAAe,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,KAAmB;gBAAnB,qBAAmB,GAAnB,YAAmB;gBAC9F,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;YAED,gCAAQ,GAAR,UAAU,MAAe,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,KAAa,EAAE,KAAmB;gBAAnB,qBAAmB,GAAnB,YAAmB;gBAC5G,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAED,+BAAO,GAAP,UAAS,eAAkC,EAAE,MAAc,EAAE,KAAa,EAAE,KAAmB;gBAAnB,qBAAmB,GAAnB,YAAmB;gBAC9F,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAED,8BAAM,GAAN,UAAQ,MAAe,EAAE,CAAS,EAAE,CAAS,EAAE,MAAc,EAAE,KAAmB,EAAE,QAAoB;gBAAzC,qBAAmB,GAAnB,YAAmB;gBAAE,wBAAoB,GAApB,YAAoB;gBACvG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC3D,CAAC;YAED,6BAAK,GAAL,UAAO,EAAU,EAAE,EAAU,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,EAAU,EAAE,EAAU,EAAE,QAAgB,EAAE,KAAmB;gBAAnB,qBAAmB,GAAnB,YAAmB;gBAC/I,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YACxE,CAAC;YAED,2BAAG,GAAH;gBACC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,OAAO,CAAC;oBAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBAC7D,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,MAAM,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gBAChE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC5B,CAAC;YAED,8BAAM,GAAN,UAAQ,UAAsB;gBAC7B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBACzB,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;gBAC3B,IAAI,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC;gBAC5B,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC7C,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;oBACjB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACnB,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE5D,EAAE,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;gBAExC,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC7C,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/B,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC1C,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;oBAC7D,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;oBACvF,IAAI,WAAW,GAAG,YAAY,GAAG,WAAW,CAAC;oBAC7C,IAAI,WAAW,GAAG,YAAY,GAAG,WAAW,CAAC;oBAC7C,IAAI,KAAK,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;oBAChG,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,WAAW,GAAG,KAAK,CAAC;oBAChD,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,YAAY,GAAG,KAAK,CAAC;gBACnD,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,CAAC;YAEO,sCAAc,GAAtB,UAAuB,QAAgE;gBACtF,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,KAAK,QAAQ,CAAC;oBAAC,MAAM,CAAC;gBAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;gBACX,EAAE,CAAC,CAAC,QAAQ,YAAY,oBAAc,CAAC,CAAC,CAAC;oBACxC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;oBAC1B,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,YAAM,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBACxF,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;oBAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBACvC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC;gBACpC,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,YAAY,mBAAa,CAAC,CAAC,CAAC;oBAC9C,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;oBACzB,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,YAAM,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBACvF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;gBACnC,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC;gBAClD,CAAC;YACF,CAAC;YAED,+BAAO,GAAP;gBACC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC;YACtC,CAAC;YACF,oBAAC;QAAD,CAAC,AAxZD,IAwZC;QAxZY,mBAAa,gBAwZzB,CAAA;QAED,WAAY,UAAU;YACrB,iDAAO,CAAA;YACP,+CAAM,CAAA;YACN,yCAAG,CAAA;QACJ,CAAC,EAJW,gBAAU,KAAV,gBAAU,QAIrB;QAJD,IAAY,UAAU,GAAV,gBAIX,CAAA;IACF,CAAC,EAhaY,KAAK,GAAL,WAAK,KAAL,WAAK,QAgajB;AAAD,CAAC,EAhaM,KAAK,KAAL,KAAK,QAgaX;AChaD,IAAO,KAAK,CAkQX;AAlQD,WAAO,KAAK;IAAC,IAAA,KAAK,CAkQjB;IAlQY,WAAA,KAAK,EAAC,CAAC;QACnB;YAoBC,gBAAa,OAA6D,EAAU,YAAoB,EAAU,cAAsB;gBAApD,iBAAY,GAAZ,YAAY,CAAQ;gBAAU,mBAAc,GAAd,cAAc,CAAQ;gBAXhI,OAAE,GAAgB,IAAI,CAAC;gBACvB,OAAE,GAAgB,IAAI,CAAC;gBACvB,YAAO,GAAiB,IAAI,CAAC;gBAC7B,WAAM,GAAiB,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/C,WAAM,GAAiB,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/C,WAAM,GAAiB,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAOtD,IAAI,CAAC,OAAO,GAAG,OAAO,YAAY,kCAA4B,GAAE,OAAO,GAAG,IAAI,kCAA4B,CAAC,OAAO,CAAC,CAAC;gBACpH,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC;YARM,2BAAU,GAAjB,cAAuB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACtC,gCAAe,GAAtB,cAA4B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YAChD,kCAAiB,GAAxB,cAA8B,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YAQnD,wBAAO,GAAf;gBACC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACJ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBAClE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;oBACtE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtD,CAAE;gBAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACZ,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,MAAM,CAAC,CAAC;gBACT,CAAC;YACF,CAAC;YAEO,8BAAa,GAArB,UAAuB,IAAY,EAAE,MAAc;gBAClD,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACnC,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAChC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACvD,IAAI,KAAK,GAAG,2BAA2B,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;oBACtE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;oBACxB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;gBACjD,CAAC;gBACD,MAAM,CAAC,MAAM,CAAC;YACf,CAAC;YAEO,+BAAc,GAAtB,UAAwB,EAAe,EAAE,EAAe;gBACvD,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,OAAO,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC;gBACjC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC7B,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC7B,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAExB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBACtD,IAAI,KAAK,GAAG,mCAAmC,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;oBAChF,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBAC1B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;gBACjD,CAAC;gBACD,MAAM,CAAC,OAAO,CAAC;YAChB,CAAC;YAED,wBAAO,GAAP;gBACC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC;YAEM,qBAAI,GAAX;gBACC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;YAEM,uBAAM,GAAb;gBACC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YAEM,4BAAW,GAAlB,UAAoB,OAAe,EAAE,KAAa;gBACjD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;YACpE,CAAC;YAEM,4BAAW,GAAlB,UAAoB,OAAe,EAAE,KAAa;gBACjD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;YACpE,CAAC;YAEM,6BAAY,GAAnB,UAAqB,OAAe,EAAE,KAAa,EAAE,MAAc;gBAClE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC5E,CAAC;YAEM,6BAAY,GAAnB,UAAqB,OAAe,EAAE,KAAa,EAAE,MAAc,EAAE,MAAc;gBAClF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACpF,CAAC;YAEM,6BAAY,GAAnB,UAAqB,OAAe,EAAE,KAAa,EAAE,MAAc,EAAE,MAAc,EAAE,MAAc;gBAClG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC5F,CAAC;YAEM,+BAAc,GAArB,UAAuB,OAAe,EAAE,KAAwB;gBAC/D,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACvB,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3E,CAAC;YAEM,+BAAc,GAArB,UAAuB,OAAe,EAAE,KAAwB;gBAC/D,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACvB,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3E,CAAC;YAEM,+BAAc,GAArB,UAAuB,OAAe,EAAE,KAAwB;gBAC/D,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACvB,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3E,CAAC;YAEM,mCAAkB,GAAzB,UAA2B,OAAe;gBACzC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,QAAQ,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC5D,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,wCAAsC,OAAS,CAAC,CAAC;gBACvG,MAAM,CAAC,QAAQ,CAAC;YACjB,CAAC;YAEM,qCAAoB,GAA3B,UAA6B,SAAiB;gBAC7C,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,QAAQ,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAC7D,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,0CAAwC,SAAW,CAAC,CAAC;gBAChH,MAAM,CAAC,QAAQ,CAAC;YACjB,CAAC;YAEM,wBAAO,GAAd;gBACC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAEpC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;oBACb,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACzB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;gBAChB,CAAC;gBAED,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;oBACb,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACzB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;gBAChB,CAAC;gBAED,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBAClB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACrB,CAAC;YACF,CAAC;YAEa,yBAAkB,GAAhC,UAAkC,OAA6D;gBAC9F,IAAI,EAAE,GAAG,8BACS,MAAM,CAAC,QAAQ,kCACf,MAAM,CAAC,KAAK,kCACZ,MAAM,CAAC,SAAS,gCAClB,MAAM,CAAC,UAAU,2HAKnB,MAAM,CAAC,KAAK,mCACR,MAAM,CAAC,SAAS,mCAChB,MAAM,CAAC,UAAU,WAAM,MAAM,CAAC,QAAQ,yBAEvD,CAAC;gBAEF,IAAI,EAAE,GAAG,iXAcR,CAAC;gBAEF,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC;YAEa,4BAAqB,GAAnC,UAAqC,OAA6D;gBACjG,IAAI,EAAE,GAAG,8BACS,MAAM,CAAC,QAAQ,kCACf,MAAM,CAAC,KAAK,kCACZ,MAAM,CAAC,MAAM,kCACb,MAAM,CAAC,SAAS,gCAClB,MAAM,CAAC,UAAU,yJAMnB,MAAM,CAAC,KAAK,8BACb,MAAM,CAAC,MAAM,mCACR,MAAM,CAAC,SAAS,mCAChB,MAAM,CAAC,UAAU,WAAM,MAAM,CAAC,QAAQ,yBAEvD,CAAC;gBAEF,IAAI,EAAE,GAAG,qkBAkBR,CAAC;gBAEF,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC;YAEa,iBAAU,GAAxB,UAA0B,OAA6D;gBACtF,IAAI,EAAE,GAAG,8BACS,MAAM,CAAC,QAAQ,kCACf,MAAM,CAAC,KAAK,gCACd,MAAM,CAAC,UAAU,wFAInB,MAAM,CAAC,KAAK,mCACR,MAAM,CAAC,UAAU,WAAM,MAAM,CAAC,QAAQ,yBAEvD,CAAC;gBAEF,IAAI,EAAE,GAAG,oQAYR,CAAC;gBAEF,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC;YA9Pa,iBAAU,GAAG,aAAa,CAAC;YAC3B,eAAQ,GAAG,YAAY,CAAC;YACxB,YAAK,GAAG,SAAS,CAAC;YAClB,aAAM,GAAG,UAAU,CAAC;YACpB,gBAAS,GAAG,aAAa,CAAC;YAC1B,cAAO,GAAG,WAAW,CAAC;YA0PrC,aAAC;QAAD,CAAC,AAhQD,IAgQC;QAhQY,YAAM,SAgQlB,CAAA;IACF,CAAC,EAlQY,KAAK,GAAL,WAAK,KAAL,WAAK,QAkQjB;AAAD,CAAC,EAlQM,KAAK,KAAL,KAAK,QAkQX;AClQD,IAAO,KAAK,CA0TX;AA1TD,WAAO,KAAK;IAAC,IAAA,KAAK,CA0TjB;IA1TY,WAAA,KAAK,EAAC,CAAC;QACnB;YAYC,uBAAa,OAA6D,EAAE,WAA2B;gBAA3B,2BAA2B,GAA3B,mBAA2B;gBAV/F,cAAS,GAAG,KAAK,CAAC;gBAElB,cAAS,GAAG,SAAS,CAAC,MAAM,CAAC;gBAC7B,UAAK,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAE9B,gBAAW,GAAG,CAAC,CAAC;gBAChB,QAAG,GAAG,IAAI,aAAO,EAAE,CAAC;gBAK3B,EAAE,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,WAAW,CAAC,CAAC;gBAC3G,IAAI,CAAC,OAAO,GAAG,OAAO,YAAY,kCAA4B,GAAE,OAAO,GAAG,IAAI,kCAA4B,CAAC,OAAO,CAAC,CAAC;gBACpH,IAAI,CAAC,IAAI,GAAG,IAAI,UAAI,CAAC,OAAO,EAAE,CAAC,IAAI,wBAAkB,EAAE,EAAE,IAAI,oBAAc,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;gBAChG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC;gBAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,mBAAmB,CAAC;YACrD,CAAC;YAED,6BAAK,GAAL,UAAO,MAAc;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACrF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;gBACrB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;gBACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBAEtB,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBACpB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;YAED,oCAAY,GAAZ,UAAc,QAAgB,EAAE,QAAgB;gBAC/C,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5C,CAAC;YACF,CAAC;YAED,gCAAQ,GAAR,UAAU,KAAY;gBACrB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;YAED,oCAAY,GAAZ,UAAc,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;gBACvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,CAAC;YAED,6BAAK,GAAL,UAAO,CAAS,EAAE,CAAS,EAAE,KAAmB;gBAAnB,qBAAmB,GAAnB,YAAmB;gBAC/C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/B,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAC1B,CAAC;YAED,4BAAI,GAAJ,UAAM,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,KAAmB;gBAAnB,qBAAmB,GAAnB,YAAmB;gBACtE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC9B,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvC,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC3B,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;YAED,gCAAQ,GAAR,UAAU,MAAe,EAAE,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,KAAmB,EAAE,MAAoB,EAAE,MAAoB;gBAA/D,qBAAmB,GAAnB,YAAmB;gBAAE,sBAAoB,GAApB,aAAoB;gBAAE,sBAAoB,GAApB,aAAoB;gBAC/J,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC1D,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvC,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC3B,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC;oBAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzC,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC;oBAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACZ,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBACzB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAC5B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;gBAC7B,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBACzB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAE5B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC3B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAE5B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC3B,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC3B,CAAC;YACF,CAAC;YAED,4BAAI,GAAJ,UAAM,MAAe,EAAE,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,KAAmB,EAAE,MAAoB,EAAE,MAAoB,EAAE,MAAoB;gBAArF,qBAAmB,GAAnB,YAAmB;gBAAE,sBAAoB,GAApB,aAAoB;gBAAE,sBAAoB,GAApB,aAAoB;gBAAE,sBAAoB,GAApB,aAAoB;gBACzM,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC1D,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvC,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC3B,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC;oBAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzC,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC;oBAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzC,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC;oBAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACZ,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBACnF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBACpF,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBACtD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBACzD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBACzD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBACvD,CAAC;YACF,CAAC;YAED,4BAAI,GAAJ,UAAM,MAAe,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,KAAmB;gBAAnB,qBAAmB,GAAnB,YAAmB;gBAC9F,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACzG,CAAC;YAED,gCAAQ,GAAR,UAAU,MAAe,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,KAAa,EAAE,KAAmB;gBAAnB,qBAAmB,GAAnB,YAAmB;gBAC5G,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC1D,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBACvC,CAAC,CAAC,SAAS,EAAE,CAAC;gBACd,KAAK,IAAI,GAAG,CAAC;gBACb,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBACrB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBACrB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBAErC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBAErC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;gBACtC,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBAErC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;gBACtC,CAAC;YACF,CAAC;YAED,yBAAC,GAAD,UAAG,CAAS,EAAE,CAAS,EAAE,IAAY;gBACpC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;gBAClD,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YACnD,CAAC;YAED,+BAAO,GAAP,UAAS,eAAkC,EAAE,MAAc,EAAE,KAAa,EAAE,KAAmB;gBAAnB,qBAAmB,GAAnB,YAAmB;gBAC9F,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBAC3E,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACtC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvC,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;gBAE3B,MAAM,KAAK,CAAC,CAAC;gBACb,KAAK,KAAK,CAAC,CAAC;gBAEZ,IAAI,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;gBACrC,IAAI,MAAM,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACzC,IAAI,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC;gBAE1B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5D,IAAI,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;oBAC5B,IAAI,EAAE,GAAG,eAAe,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;oBAE9B,IAAI,EAAE,GAAG,CAAC,CAAC;oBACX,IAAI,EAAE,GAAG,CAAC,CAAC;oBAEX,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;wBACnB,EAAE,GAAG,MAAM,CAAC;wBACZ,EAAE,GAAG,MAAM,CAAC;oBACb,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,EAAE,GAAG,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC5B,EAAE,GAAG,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC7B,CAAC;oBAED,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC3B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC5B,CAAC;YACF,CAAC;YAED,8BAAM,GAAN,UAAQ,MAAe,EAAE,CAAS,EAAE,CAAS,EAAE,MAAc,EAAE,KAAmB,EAAE,QAAoB;gBAAzC,qBAAmB,GAAnB,YAAmB;gBAAE,wBAAoB,GAApB,YAAoB;gBACvG,EAAE,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC;oBAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,eAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7E,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBAC5D,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,KAAK,GAAG,CAAC,GAAG,eAAS,CAAC,EAAE,GAAG,QAAQ,CAAC;gBACxC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;gBACxB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACb,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC7C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;wBACnC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;wBACnC,IAAI,MAAI,GAAG,EAAE,CAAC;wBACd,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;wBACzB,EAAE,GAAG,GAAG,GAAG,MAAI,GAAG,GAAG,GAAG,EAAE,CAAC;wBAC3B,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACpC,CAAC;oBAED,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;gBACpC,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC/C,QAAQ,EAAE,CAAC;oBACX,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;wBACnC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;wBACzB,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;wBACnC,IAAI,MAAI,GAAG,EAAE,CAAC;wBACd,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;wBACzB,EAAE,GAAG,GAAG,GAAG,MAAI,GAAG,GAAG,GAAG,EAAE,CAAC;wBAC3B,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACpC,CAAC;oBAED,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBACzB,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;gBACpC,CAAC;gBAED,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,EAAE,GAAG,MAAM,CAAC;gBACZ,EAAE,GAAG,CAAC,CAAC;gBACP,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;YACpC,CAAC;YAED,6BAAK,GAAL,UAAO,EAAU,EAAE,EAAU,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,EAAU,EAAE,EAAU,EAAE,QAAgB,EAAE,KAAmB;gBAAnB,qBAAmB,GAAnB,YAAmB;gBAC/I,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7C,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBAGvC,IAAI,WAAW,GAAG,CAAC,GAAG,QAAQ,CAAC;gBAC/B,IAAI,YAAY,GAAG,WAAW,GAAG,WAAW,CAAC;gBAC7C,IAAI,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;gBAE3D,IAAI,IAAI,GAAG,CAAC,GAAG,WAAW,CAAC;gBAC3B,IAAI,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC;gBAC5B,IAAI,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC;gBAC5B,IAAI,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC;gBAE5B,IAAI,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;gBAC/B,IAAI,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;gBAE/B,IAAI,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;gBACtC,IAAI,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;gBAEtC,IAAI,EAAE,GAAG,EAAE,CAAC;gBACZ,IAAI,EAAE,GAAG,EAAE,CAAC;gBAEZ,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,YAAY,CAAC;gBAClE,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,YAAY,CAAC;gBAElE,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;gBACvC,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;gBAEvC,IAAI,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;gBACzB,IAAI,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;gBAEzB,OAAO,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC3B,EAAE,IAAI,GAAG,CAAC;oBACV,EAAE,IAAI,GAAG,CAAC;oBACV,GAAG,IAAI,IAAI,CAAC;oBACZ,GAAG,IAAI,IAAI,CAAC;oBACZ,IAAI,IAAI,KAAK,CAAC;oBACd,IAAI,IAAI,KAAK,CAAC;oBACd,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC5B,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;YAEO,8BAAM,GAAd,UAAgB,CAAS,EAAE,CAAS,EAAE,KAAY;gBACjD,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC3B,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;gBACpB,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;gBACpB,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAC1B,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAC1B,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAC1B,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAC1B,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACxB,CAAC;YAED,2BAAG,GAAH;gBACC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAClF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC/C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACxB,CAAC;YAEO,6BAAK,GAAb;gBACC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;oBAAC,MAAM,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5C,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACtB,CAAC;YAEO,6BAAK,GAAb,UAAc,SAAoB,EAAE,WAAmB;gBACtD,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAClF,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC;oBACjC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,CAAC;wBAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAClF,IAAI;wBAAC,MAAM,CAAC;gBACb,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC5B,CAAC;YACF,CAAC;YAED,+BAAO,GAAP;gBACC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC;YACF,oBAAC;QAAD,CAAC,AAlTD,IAkTC;QAlTY,mBAAa,gBAkTzB,CAAA;QAED,WAAY,SAAS;YACpB,2CAAc,CAAA;YACd,yCAAa,CAAA;YACb,6CAAe,CAAA;QAChB,CAAC,EAJW,eAAS,KAAT,eAAS,QAIpB;QAJD,IAAY,SAAS,GAAT,eAIX,CAAA;IACF,CAAC,EA1TY,KAAK,GAAL,WAAK,KAAL,WAAK,QA0TjB;AAAD,CAAC,EA1TM,KAAK,KAAL,KAAK,QA0TX;AC1TD,IAAO,KAAK,CAgMX;AAhMD,WAAO,KAAK;IAAC,IAAA,KAAK,CAgMjB;IAhMY,WAAA,KAAK,EAAC,CAAC;QACnB;YA2BC,+BAAa,OAA6D;gBA1B1E,kBAAa,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtC,oBAAe,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxC,wBAAmB,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC9C,sBAAiB,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC/C,cAAS,GAAG,IAAI,WAAK,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,cAAS,GAAG,IAAI,WAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpC,cAAS,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;gBACpC,cAAS,GAAG,IAAI,CAAC;gBACjB,0BAAqB,GAAG,IAAI,CAAC;gBAC7B,sBAAiB,GAAG,IAAI,CAAC;gBACzB,iBAAY,GAAG,IAAI,CAAC;gBACpB,sBAAiB,GAAG,IAAI,CAAC;gBACzB,cAAS,GAAG,IAAI,CAAC;gBACjB,mBAAc,GAAG,KAAK,CAAC;gBACvB,iBAAY,GAAG,IAAI,CAAC;gBACpB,uBAAkB,GAAG,KAAK,CAAC;gBAC3B,UAAK,GAAG,CAAC,CAAC;gBACV,cAAS,GAAG,CAAC,CAAC;gBAGN,WAAM,GAAG,IAAI,oBAAc,EAAE,CAAC;gBAC9B,SAAI,GAAG,IAAI,KAAK,EAAU,CAAC;gBAC3B,aAAQ,GAAG,WAAK,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;gBAKhD,IAAI,CAAC,OAAO,GAAG,OAAO,YAAY,kCAA4B,GAAE,OAAO,GAAG,IAAI,kCAA4B,CAAC,OAAO,CAAC,CAAC;YACrH,CAAC;YAED,oCAAI,GAAJ,UAAM,MAAqB,EAAE,QAAkB,EAAE,YAAkC;gBAAlC,4BAAkC,GAAlC,mBAAkC;gBAClF,IAAI,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC3B,IAAI,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC3B,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,OAAO,GAAG,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;gBAC9D,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;gBAErD,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAC3B,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBACpB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBACpC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACpB,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;4BAAC,QAAQ,CAAC;wBACxE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;4BAAC,QAAQ,CAAC;wBAClC,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;wBAC5D,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;wBAC5D,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC5G,CAAC;oBACD,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;wBAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzE,CAAC;gBAED,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;oBAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBAC1C,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;oBAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;wBACtC,EAAE,CAAC,CAAC,UAAU,YAAY,sBAAgB,CAAC,CAAC,CAAC;4BAC5C,IAAI,gBAAgB,GAAqB,UAAU,CAAC;4BACpD,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;4BAC7B,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;4BACjE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BAChE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BAChE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BAChE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBACjE,CAAC;oBACF,CAAC;gBACF,CAAC;gBAED,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBACjD,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;oBAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;wBACtC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,YAAY,oBAAc,CAAC,CAAC;4BAAC,QAAQ,CAAC;wBACtD,IAAI,IAAI,GAAmB,UAAU,CAAC;wBACtC,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBAC7B,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC7E,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC/B,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;wBACjC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;4BAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;4BACxC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;gCAC1D,IAAI,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gCACnF,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,EACpD,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,EAC9B,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAC9B,CAAC;4BACH,CAAC;wBACF,CAAC;wBACD,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;4BACzC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;4BAC1C,UAAU,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;4BACnC,IAAI,KAAK,GAAG,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;4BACvE,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;gCACpD,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAC3C,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gCAChC,KAAK,GAAG,CAAC,CAAC;gCACV,KAAK,GAAG,CAAC,CAAC;4BACX,CAAC;wBACF,CAAC;oBACF,CAAC;gBACF,CAAC;gBAED,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBAC5B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;oBACzB,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC9B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAChC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;oBACpF,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;oBAC/B,IAAI,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC;oBACjC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBACjD,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC1B,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBAChC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC5C,CAAC;gBACF,CAAC;gBAED,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBACpB,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;oBAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;wBACtC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,YAAY,oBAAc,CAAC,CAAC;4BAAC,QAAQ,CAAC;wBACtD,IAAI,IAAI,GAAmB,UAAU,CAAC;wBACtC,IAAI,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC;wBAClC,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;wBAC7D,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACpD,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC3B,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;wBACjD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;4BACjB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;4BACvB,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAC7E,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BACnB,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BACnB,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;4BACrD,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;4BAClD,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;4BAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;wBAC/B,CAAC;wBACD,EAAE,IAAI,CAAC,CAAC;wBACR,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;4BACnC,IAAI,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BACnF,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BACnB,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BACnB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;4BACvB,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;4BACrD,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;4BAClD,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;4BAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;4BAC9B,EAAE,GAAG,EAAE,CAAC;4BACR,EAAE,GAAG,EAAE,CAAC;wBACT,CAAC;oBACF,CAAC;gBACF,CAAC;gBAED,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBACpB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBACtC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACpB,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;4BAAC,QAAQ,CAAC;wBACxE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBACvH,CAAC;gBACF,CAAC;gBAED,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvB,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;oBAC3B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;oBAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;wBACtC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,YAAY,wBAAkB,CAAC,CAAC;4BAAC,QAAQ,CAAC;wBAC1D,IAAI,IAAI,GAAuB,UAAU,CAAC;wBAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC;wBAClC,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;wBAC7D,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACpD,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,KAAK,CAAC,MAAM,EAAE,GAAC,GAAG,GAAC,EAAE,GAAC,IAAE,CAAC,EAAE,CAAC;4BAC/C,IAAI,CAAC,GAAG,KAAK,CAAC,GAAC,CAAC,CAAC;4BACjB,IAAI,CAAC,GAAG,KAAK,CAAC,GAAC,GAAG,CAAC,CAAC,CAAC;4BACrB,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;4BACvC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;4BACvC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC3B,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YAED,uCAAO,GAAP;YACA,CAAC;YArKc,gCAAU,GAAG,IAAI,WAAK,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;YAC3D,2BAAK,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAqK9C,4BAAC;QAAD,CAAC,AA9LD,IA8LC;QA9LY,2BAAqB,wBA8LjC,CAAA;IACF,CAAC,EAhMY,KAAK,GAAL,WAAK,KAAL,WAAK,QAgMjB;AAAD,CAAC,EAhMM,KAAK,KAAL,KAAK,QAgMX;AChMD,IAAO,KAAK,CAqIX;AArID,WAAO,KAAK;IAAC,IAAA,KAAK,CAqIjB;IArIY,WAAA,KAAK,EAAC,CAAC;QACnB;YACC,oBAAmB,QAA2B,EAAS,WAAmB,EAAS,SAAiB;gBAAjF,aAAQ,GAAR,QAAQ,CAAmB;gBAAS,gBAAW,GAAX,WAAW,CAAQ;gBAAS,cAAS,GAAT,SAAS,CAAQ;YAAG,CAAC;YACzG,iBAAC;QAAD,CAAC,AAFD,IAEC;QAAA,CAAC;QAEF;YAYC,0BAAa,OAAqC,EAAE,YAA4B;gBAA5B,4BAA4B,GAA5B,mBAA4B;gBAThF,uBAAkB,GAAG,KAAK,CAAC;gBACnB,cAAS,GAAG,IAAI,WAAK,EAAE,CAAC;gBACxB,eAAU,GAAG,IAAI,WAAK,EAAE,CAAC;gBAEzB,eAAU,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACvB,iBAAY,GAAG,KAAK,CAAC;gBACrB,eAAU,GAAe,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpD,YAAO,GAAqB,IAAI,sBAAgB,EAAE,CAAC;gBAG1D,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;gBACjC,EAAE,CAAC,CAAC,YAAY,CAAC;oBAChB,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;gBACtB,IAAI,CAAC,QAAQ,GAAG,WAAK,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;YAC7D,CAAC;YAED,+BAAI,GAAJ,UAAM,OAAuB,EAAE,QAAkB;gBAChD,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC3B,IAAI,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACjD,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBACrC,IAAI,SAAS,GAAc,IAAI,CAAC;gBAEhC,IAAI,UAAU,GAAe,IAAI,CAAC,UAAU,CAAC;gBAC7C,IAAI,GAAG,GAAsB,IAAI,CAAC;gBAClC,IAAI,SAAS,GAAkB,IAAI,CAAC;gBACpC,IAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;gBACnC,IAAI,eAAe,GAAU,IAAI,CAAC;gBAClC,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACnC,IAAI,UAAU,GAAG,YAAY,GAAG,EAAE,GAAG,CAAC,CAAC;gBACvC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClD,IAAI,iBAAiB,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC;oBAC9D,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBACxB,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACtC,IAAI,OAAO,GAAc,IAAI,CAAC;oBAC9B,EAAE,CAAC,CAAC,UAAU,YAAY,sBAAgB,CAAC,CAAC,CAAC;wBAC5C,IAAI,MAAM,GAAqB,UAAU,CAAC;wBAC1C,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACpC,UAAU,CAAC,WAAW,GAAG,CAAC,CAAC;wBAC3B,UAAU,CAAC,SAAS,GAAG,iBAAiB,IAAI,CAAC,CAAC;wBAC9C,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;wBAClF,SAAS,GAAG,gBAAgB,CAAC,cAAc,CAAC;wBAC5C,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;wBACjB,OAAO,GAAmC,MAAM,CAAC,MAAM,CAAC,YAAa,CAAC,OAAO,CAAC;wBAC9E,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC;oBAChC,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,YAAY,oBAAc,CAAC,CAAC,CAAC;wBACjD,IAAI,IAAI,GAAmB,UAAU,CAAC;wBACtC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACpC,UAAU,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC;wBACzD,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,WAAW,GAAG,iBAAiB,CAAC;wBAClE,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;4BACvD,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;wBACvF,CAAC;wBACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;wBACxG,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC3B,OAAO,GAAmC,IAAI,CAAC,MAAM,CAAC,YAAa,CAAC,OAAO,CAAC;wBAC5E,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;wBACf,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC9B,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,YAAY,wBAAkB,CAAC,CAAC,CAAC;wBACrD,IAAI,IAAI,GAAuB,CAAC,UAAU,CAAC,CAAC;wBAC5C,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC9B,QAAQ,CAAC;oBACV,CAAC;oBAAC,IAAI;wBAAC,QAAQ,CAAC;oBAEhB,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;wBACrB,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;wBAC3B,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;wBAChC,UAAU,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;wBACjE,UAAU,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;wBACjE,UAAU,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;wBACjE,UAAU,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;wBACjE,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;4BACxB,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;4BAC7B,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;4BAC7B,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;wBAC9B,CAAC;wBACD,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;wBAChC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;4BAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACtD,IAAI;4BAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBAE5C,IAAI,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBACxC,EAAE,CAAC,CAAC,aAAa,IAAI,SAAS,CAAC,CAAC,CAAC;4BAChC,SAAS,GAAG,aAAa,CAAC;4BAC1B,OAAO,CAAC,YAAY,CAAC,6BAAuB,CAAC,oBAAoB,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAAE,6BAAuB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;wBAC1J,CAAC;wBAED,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;4BAC1B,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;4BACxI,IAAI,eAAe,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;4BAChE,IAAI,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;4BAChD,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;wBAC1D,CAAC;wBAAC,IAAI,CAAC,CAAC;4BACP,IAAI,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC;4BAChC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;gCACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAC,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC,GAAG,GAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oCACjF,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oCACxB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oCAC5B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oCAC5B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oCAC5B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;oCACtB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gCAC3B,CAAC;4BACF,CAAC;4BAAC,IAAI,CAAC,CAAC;gCACP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAC,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC,GAAG,GAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oCACjF,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oCACxB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oCAC5B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oCAC5B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oCAC5B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;oCACtB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oCAC1B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;oCAC3B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;oCAC3B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;oCAC3B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gCAC5B,CAAC;4BACF,CAAC;4BACD,IAAI,IAAI,GAAI,UAAU,CAAC,QAAyB,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;4BACnF,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;wBACxC,CAAC;oBACF,CAAC;oBAED,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC;gBACD,OAAO,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC;YA7HM,+BAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YA8H5C,uBAAC;QAAD,CAAC,AA/HD,IA+HC;QA/HY,sBAAgB,mBA+H5B,CAAA;IACF,CAAC,EArIY,KAAK,GAAL,WAAK,KAAL,WAAK,QAqIjB;AAAD,CAAC,EArIM,KAAK,KAAL,KAAK,QAqIX;ACrID,IAAO,KAAK,CA2FX;AA3FD,WAAO,KAAK;IAAC,IAAA,KAAK,CA2FjB;IA3FY,WAAA,KAAK,EAAC,CAAC;QACnB;YAKC,iBAAa,CAAa,EAAE,CAAa,EAAE,CAAa;gBAA3C,iBAAa,GAAb,KAAa;gBAAE,iBAAa,GAAb,KAAa;gBAAE,iBAAa,GAAb,KAAa;gBAJxD,MAAC,GAAG,CAAC,CAAC;gBACN,MAAC,GAAG,CAAC,CAAC;gBACN,MAAC,GAAG,CAAC,CAAC;gBAGL,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACZ,CAAC;YAED,yBAAO,GAAP,UAAQ,CAAU;gBACjB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,qBAAG,GAAH,UAAK,CAAS,EAAE,CAAS,EAAE,CAAS;gBACnC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,qBAAG,GAAH,UAAK,CAAU;gBACd,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,qBAAG,GAAH,UAAK,CAAU;gBACd,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,uBAAK,GAAL,UAAO,CAAS;gBACf,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;gBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;gBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;gBACZ,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,2BAAS,GAAT;gBACC,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;gBAC1B,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,uBAAK,GAAL,UAAO,CAAU;gBAChB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACvG,CAAC;YAED,0BAAQ,GAAR,UAAU,MAAe;gBACxB,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,EAC3F,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,EAC5E,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,CAAC,CAAC;YAChF,CAAC;YAED,yBAAO,GAAP,UAAS,MAAe;gBACvB,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC1B,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,CAAC,CAAC;gBAC7F,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,CAAC,GAAG,GAAG,EACnG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,CAAC,GAAG,GAAG,EACpF,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,GAAG,KAAK,CAAC,SAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YACxF,CAAC;YAED,qBAAG,GAAH,UAAK,CAAU;gBACd,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnD,CAAC;YAED,wBAAM,GAAN;gBACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACvE,CAAC;YAED,0BAAQ,GAAR,UAAU,CAAU;gBACnB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACzC,CAAC;YACF,cAAC;QAAD,CAAC,AAzFD,IAyFC;QAzFY,aAAO,UAyFnB,CAAA;IACF,CAAC,EA3FY,KAAK,GAAL,WAAK,KAAL,WAAK,QA2FjB;AAAD,CAAC,EA3FM,KAAK,KAAL,KAAK,QA2FX;AC3FD,IAAO,KAAK,CAsEX;AAtED,WAAO,KAAK;IAAC,IAAA,KAAK,CAsEjB;IAtEY,WAAA,KAAK,EAAC,CAAC;QACnB;YAKC,sCAAY,eAA0D,EAAE,aAAsC;gBAL/G,iBAoCC;gBA/BwE,6BAAsC,GAAtC,kBAAuB,KAAK,EAAE,MAAM,EAAE;gBAFtG,gBAAW,GAAG,IAAI,KAAK,EAAc,CAAC;gBAG7C,EAAE,CAAC,CAAC,eAAe,YAAY,iBAAiB,CAAC,CAAC,CAAC;oBAClD,IAAI,MAAM,GAAG,eAAe,CAAC;oBAC7B,IAAI,CAAC,EAAE,GAA2B,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC,CAAC;oBACxI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;oBACrB,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,UAAC,CAAM;wBAClD,IAAI,KAAK,GAAsB,CAAC,CAAC;wBACjC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACP,CAAC,CAAC,cAAc,EAAE,CAAC;wBACpB,CAAC;oBACF,CAAC,CAAC,CAAC;oBAEH,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,UAAC,CAAM;wBACtD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;4BACzD,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;wBAC/B,CAAC;oBACF,CAAC,CAAC,CAAC;gBACJ,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,CAAC,EAAE,GAAG,eAAe,CAAC;oBAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;gBAC9B,CAAC;YACF,CAAC;YAED,oDAAa,GAAb,UAAc,UAAsB;gBACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnC,CAAC;YAED,uDAAgB,GAAhB,UAAiB,UAAsB;gBACtC,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACjD,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;oBAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC;YACF,mCAAC;QAAD,CAAC,AApCD,IAoCC;QApCY,kCAA4B,+BAoCxC,CAAA;QAED;YAAA;YA8BA,CAAC;YAnBO,0CAAkB,GAAzB,UAA2B,SAAoB;gBAC9C,MAAM,CAAA,CAAC,SAAS,CAAC,CAAC,CAAC;oBAClB,KAAK,eAAS,CAAC,MAAM,EAAE,MAAM,CAAC,uBAAuB,CAAC,mBAAmB,CAAC;oBAC1E,KAAK,eAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC;oBAC5D,KAAK,eAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,uBAAuB,CAAC,mBAAmB,CAAC;oBAC5E,KAAK,eAAS,CAAC,MAAM,EAAE,MAAM,CAAC,uBAAuB,CAAC,mBAAmB,CAAC;oBAC1E,SAAS,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAC;gBAC9D,CAAC;YACF,CAAC;YAEM,4CAAoB,GAA3B,UAA6B,SAAoB,EAAE,kBAAmC;gBAAnC,kCAAmC,GAAnC,0BAAmC;gBACrF,MAAM,CAAA,CAAC,SAAS,CAAC,CAAC,CAAC;oBAClB,KAAK,eAAS,CAAC,MAAM,EAAE,MAAM,CAAC,kBAAkB,GAAE,uBAAuB,CAAC,GAAG,GAAG,uBAAuB,CAAC,SAAS,CAAC;oBAClH,KAAK,eAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,kBAAkB,GAAE,uBAAuB,CAAC,GAAG,GAAG,uBAAuB,CAAC,SAAS,CAAC;oBACpH,KAAK,eAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,uBAAuB,CAAC,SAAS,CAAC;oBAClE,KAAK,eAAS,CAAC,MAAM,EAAE,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC;oBAC1D,SAAS,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAC;gBAC9D,CAAC;YACF,CAAC;YA5BM,4BAAI,GAAG,CAAC,CAAC;YACT,2BAAG,GAAG,CAAC,CAAC;YACR,iCAAS,GAAG,MAAM,CAAC;YACnB,2CAAmB,GAAG,MAAM,CAAC;YAC7B,iCAAS,GAAG,MAAM,CAAC;YACnB,2CAAmB,GAAG,MAAM,CAAC;YAC7B,iCAAS,GAAG,MAAM,CAAC;YACnB,2CAAmB,GAAG,MAAM,CAAC;YAC7B,iCAAS,GAAG,MAAM,CAAA;YAqB1B,8BAAC;QAAD,CAAC,AA9BD,IA8BC;QA9BY,6BAAuB,0BA8BnC,CAAA;IACF,CAAC,EAtEY,KAAK,GAAL,WAAK,KAAL,WAAK,QAsEjB;AAAD,CAAC,EAtEM,KAAK,KAAL,KAAK,QAsEX"} \ No newline at end of file diff --git a/spine-ts/core/src/Animation.ts b/spine-ts/core/src/Animation.ts index 46db761d6..938ed41f4 100644 --- a/spine-ts/core/src/Animation.ts +++ b/spine-ts/core/src/Animation.ts @@ -667,7 +667,7 @@ module spine { let frameVertices = this.frameVertices; let vertexCount = frameVertices[0].length; - if (verticesArray.length != vertexCount) alpha = 1; // Don't mix from uninitialized slot vertices. + if (verticesArray.length != vertexCount && !setupPose) alpha = 1; // Don't mix from uninitialized slot vertices. let vertices: Array = Utils.setArraySize(verticesArray, vertexCount); if (time >= frames[frames.length - 1]) { // Time is after last frame. From 63459d8531fe216b49aa803326df713bb6fa65f3 Mon Sep 17 00:00:00 2001 From: badlogic Date: Sun, 4 Jun 2017 11:05:07 +0200 Subject: [PATCH 09/17] [c] Fixed deform timelines not mixing from/to setup pose. #920 --- spine-c/spine-c/src/spine/Animation.c | 2 +- spine-ts/build/spine-all.d.ts | 3190 ++-- spine-ts/build/spine-all.js | 18554 ++++++++++++------------ spine-ts/build/spine-canvas.d.ts | 2210 +-- spine-ts/build/spine-canvas.js | 12698 ++++++++-------- spine-ts/build/spine-core.d.ts | 2160 +-- spine-ts/build/spine-core.js | 12208 ++++++++-------- spine-ts/build/spine-threejs.d.ts | 2238 +-- spine-ts/build/spine-threejs.js | 12712 ++++++++-------- spine-ts/build/spine-webgl.d.ts | 2950 ++-- spine-ts/build/spine-webgl.js | 16904 ++++++++++----------- spine-ts/build/spine-widget.js | 2 +- spine-ts/build/spine-widget.js.map | 2 +- 13 files changed, 42915 insertions(+), 42915 deletions(-) diff --git a/spine-c/spine-c/src/spine/Animation.c b/spine-c/spine-c/src/spine/Animation.c index 96da3d59b..3f3fd80a1 100644 --- a/spine-c/spine-c/src/spine/Animation.c +++ b/spine-c/spine-c/src/spine/Animation.c @@ -806,7 +806,7 @@ void _spDeformTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, slot->attachmentVerticesCapacity = vertexCount; } } - if (slot->attachmentVerticesCount != vertexCount) alpha = 1; /* Don't mix from uninitialized slot vertices. */ + if (slot->attachmentVerticesCount != vertexCount && !setupPose) alpha = 1; /* Don't mix from uninitialized slot vertices. */ slot->attachmentVerticesCount = vertexCount; frameVertices = self->frameVertices; diff --git a/spine-ts/build/spine-all.d.ts b/spine-ts/build/spine-all.d.ts index 649e9882c..c94261fab 100644 --- a/spine-ts/build/spine-all.d.ts +++ b/spine-ts/build/spine-all.d.ts @@ -1,1721 +1,1721 @@ declare module spine { - class AssetManager implements Disposable { - private pathPrefix; - private textureLoader; - private assets; - private errors; - private toLoad; - private loaded; - constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); - loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; - loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - get(path: string): any; - remove(path: string): void; - removeAll(): void; - isLoadingComplete(): boolean; - getToLoad(): number; - getLoaded(): number; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class AssetManager implements Disposable { + private pathPrefix; + private textureLoader; + private assets; + private errors; + private toLoad; + private loaded; + constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); + loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; + loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + get(path: string): any; + remove(path: string): void; + removeAll(): void; + isLoadingComplete(): boolean; + getToLoad(): number; + getLoaded(): number; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine.canvas { - class AssetManager extends spine.AssetManager { - constructor(pathPrefix?: string); - } + class AssetManager extends spine.AssetManager { + constructor(pathPrefix?: string); + } } declare module spine { - abstract class Texture { - protected _image: HTMLImageElement; - constructor(image: HTMLImageElement); - getImage(): HTMLImageElement; - abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - abstract dispose(): void; - static filterFromString(text: string): TextureFilter; - static wrapFromString(text: string): TextureWrap; - } - enum TextureFilter { - Nearest = 9728, - Linear = 9729, - MipMap = 9987, - MipMapNearestNearest = 9984, - MipMapLinearNearest = 9985, - MipMapNearestLinear = 9986, - MipMapLinearLinear = 9987, - } - enum TextureWrap { - MirroredRepeat = 33648, - ClampToEdge = 33071, - Repeat = 10497, - } - class TextureRegion { - renderObject: any; - u: number; - v: number; - u2: number; - v2: number; - width: number; - height: number; - rotate: boolean; - offsetX: number; - offsetY: number; - originalWidth: number; - originalHeight: number; - } + abstract class Texture { + protected _image: HTMLImageElement; + constructor(image: HTMLImageElement); + getImage(): HTMLImageElement; + abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + abstract dispose(): void; + static filterFromString(text: string): TextureFilter; + static wrapFromString(text: string): TextureWrap; + } + enum TextureFilter { + Nearest = 9728, + Linear = 9729, + MipMap = 9987, + MipMapNearestNearest = 9984, + MipMapLinearNearest = 9985, + MipMapNearestLinear = 9986, + MipMapLinearLinear = 9987, + } + enum TextureWrap { + MirroredRepeat = 33648, + ClampToEdge = 33071, + Repeat = 10497, + } + class TextureRegion { + renderObject: any; + u: number; + v: number; + u2: number; + v2: number; + width: number; + height: number; + rotate: boolean; + offsetX: number; + offsetY: number; + originalWidth: number; + originalHeight: number; + } } declare module spine.canvas { - class CanvasTexture extends Texture { - constructor(image: HTMLImageElement); - setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - dispose(): void; - } + class CanvasTexture extends Texture { + constructor(image: HTMLImageElement); + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + dispose(): void; + } } declare module spine.canvas { - class SkeletonRenderer { - static QUAD_TRIANGLES: number[]; - static VERTEX_SIZE: number; - private ctx; - triangleRendering: boolean; - debugRendering: boolean; - private vertices; - private tempColor; - constructor(context: CanvasRenderingContext2D); - draw(skeleton: Skeleton): void; - private drawImages(skeleton); - private drawTriangles(skeleton); - private drawTriangle(img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); - private computeRegionVertices(slot, region, pma); - private computeMeshVertices(slot, mesh, pma); - } + class SkeletonRenderer { + static QUAD_TRIANGLES: number[]; + static VERTEX_SIZE: number; + private ctx; + triangleRendering: boolean; + debugRendering: boolean; + private vertices; + private tempColor; + constructor(context: CanvasRenderingContext2D); + draw(skeleton: Skeleton): void; + private drawImages(skeleton); + private drawTriangles(skeleton); + private drawTriangle(img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); + private computeRegionVertices(slot, region, pma); + private computeMeshVertices(slot, mesh, pma); + } } declare module spine { - class Animation { - name: string; - timelines: Array; - duration: number; - constructor(name: string, timelines: Array, duration: number); - apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - static binarySearch(values: ArrayLike, target: number, step?: number): number; - static linearSearch(values: ArrayLike, target: number, step: number): number; - } - interface Timeline { - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - getPropertyId(): number; - } - enum TimelineType { - rotate = 0, - translate = 1, - scale = 2, - shear = 3, - attachment = 4, - color = 5, - deform = 6, - event = 7, - drawOrder = 8, - ikConstraint = 9, - transformConstraint = 10, - pathConstraintPosition = 11, - pathConstraintSpacing = 12, - pathConstraintMix = 13, - twoColor = 14, - } - abstract class CurveTimeline implements Timeline { - static LINEAR: number; - static STEPPED: number; - static BEZIER: number; - static BEZIER_SIZE: number; - private curves; - abstract getPropertyId(): number; - constructor(frameCount: number); - getFrameCount(): number; - setLinear(frameIndex: number): void; - setStepped(frameIndex: number): void; - getCurveType(frameIndex: number): number; - setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; - getCurvePercent(frameIndex: number, percent: number): number; - abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class RotateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATION: number; - static ROTATION: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, degrees: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TranslateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_X: number; - static PREV_Y: number; - static X: number; - static Y: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, x: number, y: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ScaleTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ShearTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static R: number; - static G: number; - static B: number; - static A: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TwoColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static PREV_R2: number; - static PREV_G2: number; - static PREV_B2: number; - static R: number; - static G: number; - static B: number; - static A: number; - static R2: number; - static G2: number; - static B2: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class AttachmentTimeline implements Timeline { - slotIndex: number; - frames: ArrayLike; - attachmentNames: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, attachmentName: string): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DeformTimeline extends CurveTimeline { - slotIndex: number; - attachment: VertexAttachment; - frames: ArrayLike; - frameVertices: Array>; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class EventTimeline implements Timeline { - frames: ArrayLike; - events: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, event: Event): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DrawOrderTimeline implements Timeline { - frames: ArrayLike; - drawOrders: Array>; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, drawOrder: Array): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class IkConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_MIX: number; - static PREV_BEND_DIRECTION: number; - static MIX: number; - static BEND_DIRECTION: number; - ikConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TransformConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static PREV_SCALE: number; - static PREV_SHEAR: number; - static ROTATE: number; - static TRANSLATE: number; - static SCALE: number; - static SHEAR: number; - transformConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintPositionTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_VALUE: number; - static VALUE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, value: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintMixTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static ROTATE: number; - static TRANSLATE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } + class Animation { + name: string; + timelines: Array; + duration: number; + constructor(name: string, timelines: Array, duration: number); + apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + static binarySearch(values: ArrayLike, target: number, step?: number): number; + static linearSearch(values: ArrayLike, target: number, step: number): number; + } + interface Timeline { + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + getPropertyId(): number; + } + enum TimelineType { + rotate = 0, + translate = 1, + scale = 2, + shear = 3, + attachment = 4, + color = 5, + deform = 6, + event = 7, + drawOrder = 8, + ikConstraint = 9, + transformConstraint = 10, + pathConstraintPosition = 11, + pathConstraintSpacing = 12, + pathConstraintMix = 13, + twoColor = 14, + } + abstract class CurveTimeline implements Timeline { + static LINEAR: number; + static STEPPED: number; + static BEZIER: number; + static BEZIER_SIZE: number; + private curves; + abstract getPropertyId(): number; + constructor(frameCount: number); + getFrameCount(): number; + setLinear(frameIndex: number): void; + setStepped(frameIndex: number): void; + getCurveType(frameIndex: number): number; + setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; + getCurvePercent(frameIndex: number, percent: number): number; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class RotateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATION: number; + static ROTATION: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, degrees: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TranslateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_X: number; + static PREV_Y: number; + static X: number; + static Y: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, x: number, y: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ScaleTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ShearTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static R: number; + static G: number; + static B: number; + static A: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TwoColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static PREV_R2: number; + static PREV_G2: number; + static PREV_B2: number; + static R: number; + static G: number; + static B: number; + static A: number; + static R2: number; + static G2: number; + static B2: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class AttachmentTimeline implements Timeline { + slotIndex: number; + frames: ArrayLike; + attachmentNames: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, attachmentName: string): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DeformTimeline extends CurveTimeline { + slotIndex: number; + attachment: VertexAttachment; + frames: ArrayLike; + frameVertices: Array>; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class EventTimeline implements Timeline { + frames: ArrayLike; + events: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, event: Event): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DrawOrderTimeline implements Timeline { + frames: ArrayLike; + drawOrders: Array>; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, drawOrder: Array): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class IkConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_MIX: number; + static PREV_BEND_DIRECTION: number; + static MIX: number; + static BEND_DIRECTION: number; + ikConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TransformConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static PREV_SCALE: number; + static PREV_SHEAR: number; + static ROTATE: number; + static TRANSLATE: number; + static SCALE: number; + static SHEAR: number; + transformConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintPositionTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_VALUE: number; + static VALUE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, value: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintMixTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static ROTATE: number; + static TRANSLATE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } } declare module spine { - class AnimationState { - static emptyAnimation: Animation; - static SUBSEQUENT: number; - static FIRST: number; - static DIP: number; - static DIP_MIX: number; - data: AnimationStateData; - tracks: TrackEntry[]; - events: Event[]; - listeners: AnimationStateListener2[]; - queue: EventQueue; - propertyIDs: IntSet; - mixingTo: TrackEntry[]; - animationsChanged: boolean; - timeScale: number; - trackEntryPool: Pool; - constructor(data: AnimationStateData); - update(delta: number): void; - updateMixingFrom(to: TrackEntry, delta: number): boolean; - apply(skeleton: Skeleton): boolean; - applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; - applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; - queueEvents(entry: TrackEntry, animationTime: number): void; - clearTracks(): void; - clearTrack(trackIndex: number): void; - setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; - setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; - setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; - addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; - addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; - setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; - addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; - setEmptyAnimations(mixDuration: number): void; - expandToIndex(index: number): TrackEntry; - trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; - disposeNext(entry: TrackEntry): void; - _animationsChanged(): void; - getCurrent(trackIndex: number): TrackEntry; - addListener(listener: AnimationStateListener2): void; - removeListener(listener: AnimationStateListener2): void; - clearListeners(): void; - clearListenerNotifications(): void; - } - class TrackEntry { - animation: Animation; - next: TrackEntry; - mixingFrom: TrackEntry; - listener: AnimationStateListener2; - trackIndex: number; - loop: boolean; - eventThreshold: number; - attachmentThreshold: number; - drawOrderThreshold: number; - animationStart: number; - animationEnd: number; - animationLast: number; - nextAnimationLast: number; - delay: number; - trackTime: number; - trackLast: number; - nextTrackLast: number; - trackEnd: number; - timeScale: number; - alpha: number; - mixTime: number; - mixDuration: number; - interruptAlpha: number; - totalAlpha: number; - timelineData: number[]; - timelineDipMix: TrackEntry[]; - timelinesRotation: number[]; - reset(): void; - setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; - hasTimeline(id: number): boolean; - getAnimationTime(): number; - setAnimationLast(animationLast: number): void; - isComplete(): boolean; - resetRotationDirections(): void; - } - class EventQueue { - objects: Array; - drainDisabled: boolean; - animState: AnimationState; - constructor(animState: AnimationState); - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - drain(): void; - clear(): void; - } - enum EventType { - start = 0, - interrupt = 1, - end = 2, - dispose = 3, - complete = 4, - event = 5, - } - interface AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } - abstract class AnimationStateAdapter2 implements AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } + class AnimationState { + static emptyAnimation: Animation; + static SUBSEQUENT: number; + static FIRST: number; + static DIP: number; + static DIP_MIX: number; + data: AnimationStateData; + tracks: TrackEntry[]; + events: Event[]; + listeners: AnimationStateListener2[]; + queue: EventQueue; + propertyIDs: IntSet; + mixingTo: TrackEntry[]; + animationsChanged: boolean; + timeScale: number; + trackEntryPool: Pool; + constructor(data: AnimationStateData); + update(delta: number): void; + updateMixingFrom(to: TrackEntry, delta: number): boolean; + apply(skeleton: Skeleton): boolean; + applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; + applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; + queueEvents(entry: TrackEntry, animationTime: number): void; + clearTracks(): void; + clearTrack(trackIndex: number): void; + setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; + setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; + setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; + addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; + addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; + setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; + addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; + setEmptyAnimations(mixDuration: number): void; + expandToIndex(index: number): TrackEntry; + trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; + disposeNext(entry: TrackEntry): void; + _animationsChanged(): void; + getCurrent(trackIndex: number): TrackEntry; + addListener(listener: AnimationStateListener2): void; + removeListener(listener: AnimationStateListener2): void; + clearListeners(): void; + clearListenerNotifications(): void; + } + class TrackEntry { + animation: Animation; + next: TrackEntry; + mixingFrom: TrackEntry; + listener: AnimationStateListener2; + trackIndex: number; + loop: boolean; + eventThreshold: number; + attachmentThreshold: number; + drawOrderThreshold: number; + animationStart: number; + animationEnd: number; + animationLast: number; + nextAnimationLast: number; + delay: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; + timeScale: number; + alpha: number; + mixTime: number; + mixDuration: number; + interruptAlpha: number; + totalAlpha: number; + timelineData: number[]; + timelineDipMix: TrackEntry[]; + timelinesRotation: number[]; + reset(): void; + setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; + hasTimeline(id: number): boolean; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; + isComplete(): boolean; + resetRotationDirections(): void; + } + class EventQueue { + objects: Array; + drainDisabled: boolean; + animState: AnimationState; + constructor(animState: AnimationState); + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + drain(): void; + clear(): void; + } + enum EventType { + start = 0, + interrupt = 1, + end = 2, + dispose = 3, + complete = 4, + event = 5, + } + interface AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } + abstract class AnimationStateAdapter2 implements AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } } declare module spine { - class AnimationStateData { - skeletonData: SkeletonData; - animationToMixTime: Map; - defaultMix: number; - constructor(skeletonData: SkeletonData); - setMix(fromName: string, toName: string, duration: number): void; - setMixWith(from: Animation, to: Animation, duration: number): void; - getMix(from: Animation, to: Animation): number; - } + class AnimationStateData { + skeletonData: SkeletonData; + animationToMixTime: Map; + defaultMix: number; + constructor(skeletonData: SkeletonData); + setMix(fromName: string, toName: string, duration: number): void; + setMixWith(from: Animation, to: Animation, duration: number): void; + getMix(from: Animation, to: Animation): number; + } } declare module spine { - class AtlasAttachmentLoader implements AttachmentLoader { - atlas: TextureAtlas; - constructor(atlas: TextureAtlas); - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + class AtlasAttachmentLoader implements AttachmentLoader { + atlas: TextureAtlas; + constructor(atlas: TextureAtlas); + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - abstract class Attachment { - name: string; - constructor(name: string); - } - abstract class VertexAttachment extends Attachment { - bones: Array; - vertices: ArrayLike; - worldVerticesLength: number; - constructor(name: string); - computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - } + abstract class Attachment { + name: string; + constructor(name: string); + } + abstract class VertexAttachment extends Attachment { + bones: Array; + vertices: ArrayLike; + worldVerticesLength: number; + constructor(name: string); + computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + } } declare module spine { - interface AttachmentLoader { - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + interface AttachmentLoader { + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - enum AttachmentType { - Region = 0, - BoundingBox = 1, - Mesh = 2, - LinkedMesh = 3, - Path = 4, - Point = 5, - } + enum AttachmentType { + Region = 0, + BoundingBox = 1, + Mesh = 2, + LinkedMesh = 3, + Path = 4, + Point = 5, + } } declare module spine { - class BoundingBoxAttachment extends VertexAttachment { - color: Color; - constructor(name: string); - } + class BoundingBoxAttachment extends VertexAttachment { + color: Color; + constructor(name: string); + } } declare module spine { - class ClippingAttachment extends VertexAttachment { - endSlot: SlotData; - color: Color; - constructor(name: string); - } + class ClippingAttachment extends VertexAttachment { + endSlot: SlotData; + color: Color; + constructor(name: string); + } } declare module spine { - class MeshAttachment extends VertexAttachment { - region: TextureRegion; - path: string; - regionUVs: ArrayLike; - uvs: ArrayLike; - triangles: Array; - color: Color; - hullLength: number; - private parentMesh; - inheritDeform: boolean; - tempColor: Color; - constructor(name: string); - updateUVs(): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - getParentMesh(): MeshAttachment; - setParentMesh(parentMesh: MeshAttachment): void; - } + class MeshAttachment extends VertexAttachment { + region: TextureRegion; + path: string; + regionUVs: ArrayLike; + uvs: ArrayLike; + triangles: Array; + color: Color; + hullLength: number; + private parentMesh; + inheritDeform: boolean; + tempColor: Color; + constructor(name: string); + updateUVs(): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + getParentMesh(): MeshAttachment; + setParentMesh(parentMesh: MeshAttachment): void; + } } declare module spine { - class PathAttachment extends VertexAttachment { - lengths: Array; - closed: boolean; - constantSpeed: boolean; - color: Color; - constructor(name: string); - } + class PathAttachment extends VertexAttachment { + lengths: Array; + closed: boolean; + constantSpeed: boolean; + color: Color; + constructor(name: string); + } } declare module spine { - class PointAttachment extends VertexAttachment { - x: number; - y: number; - rotation: number; - color: Color; - constructor(name: string); - computeWorldPosition(bone: Bone, point: Vector2): Vector2; - computeWorldRotation(bone: Bone): number; - } + class PointAttachment extends VertexAttachment { + x: number; + y: number; + rotation: number; + color: Color; + constructor(name: string); + computeWorldPosition(bone: Bone, point: Vector2): Vector2; + computeWorldRotation(bone: Bone): number; + } } declare module spine { - class RegionAttachment extends Attachment { - static OX1: number; - static OY1: number; - static OX2: number; - static OY2: number; - static OX3: number; - static OY3: number; - static OX4: number; - static OY4: number; - static X1: number; - static Y1: number; - static C1R: number; - static C1G: number; - static C1B: number; - static C1A: number; - static U1: number; - static V1: number; - static X2: number; - static Y2: number; - static C2R: number; - static C2G: number; - static C2B: number; - static C2A: number; - static U2: number; - static V2: number; - static X3: number; - static Y3: number; - static C3R: number; - static C3G: number; - static C3B: number; - static C3A: number; - static U3: number; - static V3: number; - static X4: number; - static Y4: number; - static C4R: number; - static C4G: number; - static C4B: number; - static C4A: number; - static U4: number; - static V4: number; - x: number; - y: number; - scaleX: number; - scaleY: number; - rotation: number; - width: number; - height: number; - color: Color; - path: string; - rendererObject: any; - region: TextureRegion; - offset: ArrayLike; - uvs: ArrayLike; - tempColor: Color; - constructor(name: string); - updateOffset(): void; - setRegion(region: TextureRegion): void; - computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; - } + class RegionAttachment extends Attachment { + static OX1: number; + static OY1: number; + static OX2: number; + static OY2: number; + static OX3: number; + static OY3: number; + static OX4: number; + static OY4: number; + static X1: number; + static Y1: number; + static C1R: number; + static C1G: number; + static C1B: number; + static C1A: number; + static U1: number; + static V1: number; + static X2: number; + static Y2: number; + static C2R: number; + static C2G: number; + static C2B: number; + static C2A: number; + static U2: number; + static V2: number; + static X3: number; + static Y3: number; + static C3R: number; + static C3G: number; + static C3B: number; + static C3A: number; + static U3: number; + static V3: number; + static X4: number; + static Y4: number; + static C4R: number; + static C4G: number; + static C4B: number; + static C4A: number; + static U4: number; + static V4: number; + x: number; + y: number; + scaleX: number; + scaleY: number; + rotation: number; + width: number; + height: number; + color: Color; + path: string; + rendererObject: any; + region: TextureRegion; + offset: ArrayLike; + uvs: ArrayLike; + tempColor: Color; + constructor(name: string); + updateOffset(): void; + setRegion(region: TextureRegion): void; + computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; + } } declare module spine { - enum BlendMode { - Normal = 0, - Additive = 1, - Multiply = 2, - Screen = 3, - } + enum BlendMode { + Normal = 0, + Additive = 1, + Multiply = 2, + Screen = 3, + } } declare module spine { - class Bone implements Updatable { - data: BoneData; - skeleton: Skeleton; - parent: Bone; - children: Bone[]; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - ax: number; - ay: number; - arotation: number; - ascaleX: number; - ascaleY: number; - ashearX: number; - ashearY: number; - appliedValid: boolean; - a: number; - b: number; - worldX: number; - c: number; - d: number; - worldY: number; - sorted: boolean; - constructor(data: BoneData, skeleton: Skeleton, parent: Bone); - update(): void; - updateWorldTransform(): void; - updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; - setToSetupPose(): void; - getWorldRotationX(): number; - getWorldRotationY(): number; - getWorldScaleX(): number; - getWorldScaleY(): number; - updateAppliedTransform(): void; - worldToLocal(world: Vector2): Vector2; - localToWorld(local: Vector2): Vector2; - worldToLocalRotation(worldRotation: number): number; - localToWorldRotation(localRotation: number): number; - rotateWorld(degrees: number): void; - } + class Bone implements Updatable { + data: BoneData; + skeleton: Skeleton; + parent: Bone; + children: Bone[]; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + ax: number; + ay: number; + arotation: number; + ascaleX: number; + ascaleY: number; + ashearX: number; + ashearY: number; + appliedValid: boolean; + a: number; + b: number; + worldX: number; + c: number; + d: number; + worldY: number; + sorted: boolean; + constructor(data: BoneData, skeleton: Skeleton, parent: Bone); + update(): void; + updateWorldTransform(): void; + updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; + setToSetupPose(): void; + getWorldRotationX(): number; + getWorldRotationY(): number; + getWorldScaleX(): number; + getWorldScaleY(): number; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + worldToLocalRotation(worldRotation: number): number; + localToWorldRotation(localRotation: number): number; + rotateWorld(degrees: number): void; + } } declare module spine { - class BoneData { - index: number; - name: string; - parent: BoneData; - length: number; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - transformMode: TransformMode; - constructor(index: number, name: string, parent: BoneData); - } - enum TransformMode { - Normal = 0, - OnlyTranslation = 1, - NoRotationOrReflection = 2, - NoScale = 3, - NoScaleOrReflection = 4, - } + class BoneData { + index: number; + name: string; + parent: BoneData; + length: number; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + transformMode: TransformMode; + constructor(index: number, name: string, parent: BoneData); + } + enum TransformMode { + Normal = 0, + OnlyTranslation = 1, + NoRotationOrReflection = 2, + NoScale = 3, + NoScaleOrReflection = 4, + } } declare module spine { - interface Constraint extends Updatable { - getOrder(): number; - } + interface Constraint extends Updatable { + getOrder(): number; + } } declare module spine { - class Event { - data: EventData; - intValue: number; - floatValue: number; - stringValue: string; - time: number; - constructor(time: number, data: EventData); - } + class Event { + data: EventData; + intValue: number; + floatValue: number; + stringValue: string; + time: number; + constructor(time: number, data: EventData); + } } declare module spine { - class EventData { - name: string; - intValue: number; - floatValue: number; - stringValue: string; - constructor(name: string); - } + class EventData { + name: string; + intValue: number; + floatValue: number; + stringValue: string; + constructor(name: string); + } } declare module spine { - class IkConstraint implements Constraint { - data: IkConstraintData; - bones: Array; - target: Bone; - mix: number; - bendDirection: number; - constructor(data: IkConstraintData, skeleton: Skeleton); - getOrder(): number; - apply(): void; - update(): void; - apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; - apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; - } + class IkConstraint implements Constraint { + data: IkConstraintData; + bones: Array; + target: Bone; + mix: number; + bendDirection: number; + constructor(data: IkConstraintData, skeleton: Skeleton); + getOrder(): number; + apply(): void; + update(): void; + apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; + apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; + } } declare module spine { - class IkConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - bendDirection: number; - mix: number; - constructor(name: string); - } + class IkConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + bendDirection: number; + mix: number; + constructor(name: string); + } } declare module spine { - class PathConstraint implements Constraint { - static NONE: number; - static BEFORE: number; - static AFTER: number; - data: PathConstraintData; - bones: Array; - target: Slot; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - spaces: number[]; - positions: number[]; - world: number[]; - curves: number[]; - lengths: number[]; - segments: number[]; - constructor(data: PathConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; - addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; - getOrder(): number; - } + class PathConstraint implements Constraint { + static NONE: number; + static BEFORE: number; + static AFTER: number; + data: PathConstraintData; + bones: Array; + target: Slot; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + spaces: number[]; + positions: number[]; + world: number[]; + curves: number[]; + lengths: number[]; + segments: number[]; + constructor(data: PathConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; + addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; + getOrder(): number; + } } declare module spine { - class PathConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: SlotData; - positionMode: PositionMode; - spacingMode: SpacingMode; - rotateMode: RotateMode; - offsetRotation: number; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - constructor(name: string); - } - enum PositionMode { - Fixed = 0, - Percent = 1, - } - enum SpacingMode { - Length = 0, - Fixed = 1, - Percent = 2, - } - enum RotateMode { - Tangent = 0, - Chain = 1, - ChainScale = 2, - } + class PathConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: SlotData; + positionMode: PositionMode; + spacingMode: SpacingMode; + rotateMode: RotateMode; + offsetRotation: number; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + constructor(name: string); + } + enum PositionMode { + Fixed = 0, + Percent = 1, + } + enum SpacingMode { + Length = 0, + Fixed = 1, + Percent = 2, + } + enum RotateMode { + Tangent = 0, + Chain = 1, + ChainScale = 2, + } } declare module spine { - class SharedAssetManager implements Disposable { - private pathPrefix; - private clientAssets; - private queuedAssets; - private rawAssets; - private errors; - constructor(pathPrefix?: string); - private queueAsset(clientId, textureLoader, path); - loadText(clientId: string, path: string): void; - loadJson(clientId: string, path: string): void; - loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; - get(clientId: string, path: string): any; - private updateClientAssets(clientAssets); - isLoadingComplete(clientId: string): boolean; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class SharedAssetManager implements Disposable { + private pathPrefix; + private clientAssets; + private queuedAssets; + private rawAssets; + private errors; + constructor(pathPrefix?: string); + private queueAsset(clientId, textureLoader, path); + loadText(clientId: string, path: string): void; + loadJson(clientId: string, path: string): void; + loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; + get(clientId: string, path: string): any; + private updateClientAssets(clientAssets); + isLoadingComplete(clientId: string): boolean; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class Skeleton { - data: SkeletonData; - bones: Array; - slots: Array; - drawOrder: Array; - ikConstraints: Array; - transformConstraints: Array; - pathConstraints: Array; - _updateCache: Updatable[]; - updateCacheReset: Updatable[]; - skin: Skin; - color: Color; - time: number; - flipX: boolean; - flipY: boolean; - x: number; - y: number; - constructor(data: SkeletonData); - updateCache(): void; - sortIkConstraint(constraint: IkConstraint): void; - sortPathConstraint(constraint: PathConstraint): void; - sortTransformConstraint(constraint: TransformConstraint): void; - sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; - sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; - sortBone(bone: Bone): void; - sortReset(bones: Array): void; - updateWorldTransform(): void; - setToSetupPose(): void; - setBonesToSetupPose(): void; - setSlotsToSetupPose(): void; - getRootBone(): Bone; - findBone(boneName: string): Bone; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): Slot; - findSlotIndex(slotName: string): number; - setSkinByName(skinName: string): void; - setSkin(newSkin: Skin): void; - getAttachmentByName(slotName: string, attachmentName: string): Attachment; - getAttachment(slotIndex: number, attachmentName: string): Attachment; - setAttachment(slotName: string, attachmentName: string): void; - findIkConstraint(constraintName: string): IkConstraint; - findTransformConstraint(constraintName: string): TransformConstraint; - findPathConstraint(constraintName: string): PathConstraint; - getBounds(offset: Vector2, size: Vector2, temp: Array): void; - update(delta: number): void; - } + class Skeleton { + data: SkeletonData; + bones: Array; + slots: Array; + drawOrder: Array; + ikConstraints: Array; + transformConstraints: Array; + pathConstraints: Array; + _updateCache: Updatable[]; + updateCacheReset: Updatable[]; + skin: Skin; + color: Color; + time: number; + flipX: boolean; + flipY: boolean; + x: number; + y: number; + constructor(data: SkeletonData); + updateCache(): void; + sortIkConstraint(constraint: IkConstraint): void; + sortPathConstraint(constraint: PathConstraint): void; + sortTransformConstraint(constraint: TransformConstraint): void; + sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; + sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; + sortBone(bone: Bone): void; + sortReset(bones: Array): void; + updateWorldTransform(): void; + setToSetupPose(): void; + setBonesToSetupPose(): void; + setSlotsToSetupPose(): void; + getRootBone(): Bone; + findBone(boneName: string): Bone; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): Slot; + findSlotIndex(slotName: string): number; + setSkinByName(skinName: string): void; + setSkin(newSkin: Skin): void; + getAttachmentByName(slotName: string, attachmentName: string): Attachment; + getAttachment(slotIndex: number, attachmentName: string): Attachment; + setAttachment(slotName: string, attachmentName: string): void; + findIkConstraint(constraintName: string): IkConstraint; + findTransformConstraint(constraintName: string): TransformConstraint; + findPathConstraint(constraintName: string): PathConstraint; + getBounds(offset: Vector2, size: Vector2, temp: Array): void; + update(delta: number): void; + } } declare module spine { - class SkeletonBounds { - minX: number; - minY: number; - maxX: number; - maxY: number; - boundingBoxes: BoundingBoxAttachment[]; - polygons: ArrayLike[]; - private polygonPool; - update(skeleton: Skeleton, updateAabb: boolean): void; - aabbCompute(): void; - aabbContainsPoint(x: number, y: number): boolean; - aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; - aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; - containsPoint(x: number, y: number): BoundingBoxAttachment; - containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; - intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; - intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; - getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; - getWidth(): number; - getHeight(): number; - } + class SkeletonBounds { + minX: number; + minY: number; + maxX: number; + maxY: number; + boundingBoxes: BoundingBoxAttachment[]; + polygons: ArrayLike[]; + private polygonPool; + update(skeleton: Skeleton, updateAabb: boolean): void; + aabbCompute(): void; + aabbContainsPoint(x: number, y: number): boolean; + aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; + aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; + containsPoint(x: number, y: number): BoundingBoxAttachment; + containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; + intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; + intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; + getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; + getWidth(): number; + getHeight(): number; + } } declare module spine { - class SkeletonClipping { - private triangulator; - private clippingPolygon; - private clipOutput; - clippedVertices: number[]; - clippedTriangles: number[]; - private scratch; - private clipAttachment; - private clippingPolygons; - clipStart(slot: Slot, clip: ClippingAttachment): number; - clipEndWithSlot(slot: Slot): void; - clipEnd(): void; - isClipping(): boolean; - clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; - clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; - static makeClockwise(polygon: ArrayLike): void; - } + class SkeletonClipping { + private triangulator; + private clippingPolygon; + private clipOutput; + clippedVertices: number[]; + clippedTriangles: number[]; + private scratch; + private clipAttachment; + private clippingPolygons; + clipStart(slot: Slot, clip: ClippingAttachment): number; + clipEndWithSlot(slot: Slot): void; + clipEnd(): void; + isClipping(): boolean; + clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; + clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; + static makeClockwise(polygon: ArrayLike): void; + } } declare module spine { - class SkeletonData { - name: string; - bones: BoneData[]; - slots: SlotData[]; - skins: Skin[]; - defaultSkin: Skin; - events: EventData[]; - animations: Animation[]; - ikConstraints: IkConstraintData[]; - transformConstraints: TransformConstraintData[]; - pathConstraints: PathConstraintData[]; - width: number; - height: number; - version: string; - hash: string; - fps: number; - imagesPath: string; - findBone(boneName: string): BoneData; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): SlotData; - findSlotIndex(slotName: string): number; - findSkin(skinName: string): Skin; - findEvent(eventDataName: string): EventData; - findAnimation(animationName: string): Animation; - findIkConstraint(constraintName: string): IkConstraintData; - findTransformConstraint(constraintName: string): TransformConstraintData; - findPathConstraint(constraintName: string): PathConstraintData; - findPathConstraintIndex(pathConstraintName: string): number; - } + class SkeletonData { + name: string; + bones: BoneData[]; + slots: SlotData[]; + skins: Skin[]; + defaultSkin: Skin; + events: EventData[]; + animations: Animation[]; + ikConstraints: IkConstraintData[]; + transformConstraints: TransformConstraintData[]; + pathConstraints: PathConstraintData[]; + width: number; + height: number; + version: string; + hash: string; + fps: number; + imagesPath: string; + findBone(boneName: string): BoneData; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): SlotData; + findSlotIndex(slotName: string): number; + findSkin(skinName: string): Skin; + findEvent(eventDataName: string): EventData; + findAnimation(animationName: string): Animation; + findIkConstraint(constraintName: string): IkConstraintData; + findTransformConstraint(constraintName: string): TransformConstraintData; + findPathConstraint(constraintName: string): PathConstraintData; + findPathConstraintIndex(pathConstraintName: string): number; + } } declare module spine { - class SkeletonJson { - attachmentLoader: AttachmentLoader; - scale: number; - private linkedMeshes; - constructor(attachmentLoader: AttachmentLoader); - readSkeletonData(json: string | any): SkeletonData; - readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; - readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; - readAnimation(map: any, name: string, skeletonData: SkeletonData): void; - readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; - getValue(map: any, prop: string, defaultValue: any): any; - static blendModeFromString(str: string): BlendMode; - static positionModeFromString(str: string): PositionMode; - static spacingModeFromString(str: string): SpacingMode; - static rotateModeFromString(str: string): RotateMode; - static transformModeFromString(str: string): TransformMode; - } + class SkeletonJson { + attachmentLoader: AttachmentLoader; + scale: number; + private linkedMeshes; + constructor(attachmentLoader: AttachmentLoader); + readSkeletonData(json: string | any): SkeletonData; + readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; + readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; + readAnimation(map: any, name: string, skeletonData: SkeletonData): void; + readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; + getValue(map: any, prop: string, defaultValue: any): any; + static blendModeFromString(str: string): BlendMode; + static positionModeFromString(str: string): PositionMode; + static spacingModeFromString(str: string): SpacingMode; + static rotateModeFromString(str: string): RotateMode; + static transformModeFromString(str: string): TransformMode; + } } declare module spine { - class Skin { - name: string; - attachments: Map[]; - constructor(name: string); - addAttachment(slotIndex: number, name: string, attachment: Attachment): void; - getAttachment(slotIndex: number, name: string): Attachment; - attachAll(skeleton: Skeleton, oldSkin: Skin): void; - } + class Skin { + name: string; + attachments: Map[]; + constructor(name: string); + addAttachment(slotIndex: number, name: string, attachment: Attachment): void; + getAttachment(slotIndex: number, name: string): Attachment; + attachAll(skeleton: Skeleton, oldSkin: Skin): void; + } } declare module spine { - class Slot { - data: SlotData; - bone: Bone; - color: Color; - darkColor: Color; - private attachment; - private attachmentTime; - attachmentVertices: number[]; - constructor(data: SlotData, bone: Bone); - getAttachment(): Attachment; - setAttachment(attachment: Attachment): void; - setAttachmentTime(time: number): void; - getAttachmentTime(): number; - setToSetupPose(): void; - } + class Slot { + data: SlotData; + bone: Bone; + color: Color; + darkColor: Color; + private attachment; + private attachmentTime; + attachmentVertices: number[]; + constructor(data: SlotData, bone: Bone); + getAttachment(): Attachment; + setAttachment(attachment: Attachment): void; + setAttachmentTime(time: number): void; + getAttachmentTime(): number; + setToSetupPose(): void; + } } declare module spine { - class SlotData { - index: number; - name: string; - boneData: BoneData; - color: Color; - darkColor: Color; - attachmentName: string; - blendMode: BlendMode; - constructor(index: number, name: string, boneData: BoneData); - } + class SlotData { + index: number; + name: string; + boneData: BoneData; + color: Color; + darkColor: Color; + attachmentName: string; + blendMode: BlendMode; + constructor(index: number, name: string, boneData: BoneData); + } } declare module spine { - class TextureAtlas implements Disposable { - pages: TextureAtlasPage[]; - regions: TextureAtlasRegion[]; - constructor(atlasText: string, textureLoader: (path: string) => any); - private load(atlasText, textureLoader); - findRegion(name: string): TextureAtlasRegion; - dispose(): void; - } - class TextureAtlasPage { - name: string; - minFilter: TextureFilter; - magFilter: TextureFilter; - uWrap: TextureWrap; - vWrap: TextureWrap; - texture: Texture; - width: number; - height: number; - } - class TextureAtlasRegion extends TextureRegion { - page: TextureAtlasPage; - name: string; - x: number; - y: number; - index: number; - rotate: boolean; - texture: Texture; - } + class TextureAtlas implements Disposable { + pages: TextureAtlasPage[]; + regions: TextureAtlasRegion[]; + constructor(atlasText: string, textureLoader: (path: string) => any); + private load(atlasText, textureLoader); + findRegion(name: string): TextureAtlasRegion; + dispose(): void; + } + class TextureAtlasPage { + name: string; + minFilter: TextureFilter; + magFilter: TextureFilter; + uWrap: TextureWrap; + vWrap: TextureWrap; + texture: Texture; + width: number; + height: number; + } + class TextureAtlasRegion extends TextureRegion { + page: TextureAtlasPage; + name: string; + x: number; + y: number; + index: number; + rotate: boolean; + texture: Texture; + } } declare module spine { - class TransformConstraint implements Constraint { - data: TransformConstraintData; - bones: Array; - target: Bone; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - temp: Vector2; - constructor(data: TransformConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - applyAbsoluteWorld(): void; - applyRelativeWorld(): void; - applyAbsoluteLocal(): void; - applyRelativeLocal(): void; - getOrder(): number; - } + class TransformConstraint implements Constraint { + data: TransformConstraintData; + bones: Array; + target: Bone; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + temp: Vector2; + constructor(data: TransformConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + applyAbsoluteWorld(): void; + applyRelativeWorld(): void; + applyAbsoluteLocal(): void; + applyRelativeLocal(): void; + getOrder(): number; + } } declare module spine { - class TransformConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - offsetRotation: number; - offsetX: number; - offsetY: number; - offsetScaleX: number; - offsetScaleY: number; - offsetShearY: number; - relative: boolean; - local: boolean; - constructor(name: string); - } + class TransformConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + offsetRotation: number; + offsetX: number; + offsetY: number; + offsetScaleX: number; + offsetScaleY: number; + offsetShearY: number; + relative: boolean; + local: boolean; + constructor(name: string); + } } declare module spine { - class Triangulator { - private convexPolygons; - private convexPolygonsIndices; - private indicesArray; - private isConcaveArray; - private triangles; - private polygonPool; - private polygonIndicesPool; - triangulate(verticesArray: ArrayLike): Array; - decompose(verticesArray: Array, triangles: Array): Array>; - private static isConcave(index, vertexCount, vertices, indices); - private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); - private static winding(p1x, p1y, p2x, p2y, p3x, p3y); - } + class Triangulator { + private convexPolygons; + private convexPolygonsIndices; + private indicesArray; + private isConcaveArray; + private triangles; + private polygonPool; + private polygonIndicesPool; + triangulate(verticesArray: ArrayLike): Array; + decompose(verticesArray: Array, triangles: Array): Array>; + private static isConcave(index, vertexCount, vertices, indices); + private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); + private static winding(p1x, p1y, p2x, p2y, p3x, p3y); + } } declare module spine { - interface Updatable { - update(): void; - } + interface Updatable { + update(): void; + } } declare module spine { - interface Map { - [key: string]: T; - } - class IntSet { - array: number[]; - add(value: number): boolean; - contains(value: number): boolean; - remove(value: number): void; - clear(): void; - } - interface Disposable { - dispose(): void; - } - interface Restorable { - restore(): void; - } - class Color { - r: number; - g: number; - b: number; - a: number; - static WHITE: Color; - static RED: Color; - static GREEN: Color; - static BLUE: Color; - static MAGENTA: Color; - constructor(r?: number, g?: number, b?: number, a?: number); - set(r: number, g: number, b: number, a: number): this; - setFromColor(c: Color): this; - setFromString(hex: string): this; - add(r: number, g: number, b: number, a: number): this; - clamp(): this; - } - class MathUtils { - static PI: number; - static PI2: number; - static radiansToDegrees: number; - static radDeg: number; - static degreesToRadians: number; - static degRad: number; - static clamp(value: number, min: number, max: number): number; - static cosDeg(degrees: number): number; - static sinDeg(degrees: number): number; - static signum(value: number): number; - static toInt(x: number): number; - static cbrt(x: number): number; - } - class Utils { - static SUPPORTS_TYPED_ARRAYS: boolean; - static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; - static setArraySize(array: Array, size: number, value?: any): Array; - static ensureArrayCapacity(array: Array, size: number, value?: any): Array; - static newArray(size: number, defaultValue: T): Array; - static newFloatArray(size: number): ArrayLike; - static newShortArray(size: number): ArrayLike; - static toFloatArray(array: Array): number[] | Float32Array; - } - class DebugUtils { - static logBones(skeleton: Skeleton): void; - } - class Pool { - private items; - private instantiator; - constructor(instantiator: () => T); - obtain(): T; - free(item: T): void; - freeAll(items: ArrayLike): void; - clear(): void; - } - class Vector2 { - x: number; - y: number; - constructor(x?: number, y?: number); - set(x: number, y: number): Vector2; - length(): number; - normalize(): this; - } - class TimeKeeper { - maxDelta: number; - framesPerSecond: number; - delta: number; - totalTime: number; - private lastTime; - private frameCount; - private frameTime; - update(): void; - } - interface ArrayLike { - length: number; - [n: number]: T; - } - class WindowedMean { - values: Array; - addedValues: number; - lastValue: number; - mean: number; - dirty: boolean; - constructor(windowSize?: number); - hasEnoughData(): boolean; - addValue(value: number): void; - getMean(): number; - } + interface Map { + [key: string]: T; + } + class IntSet { + array: number[]; + add(value: number): boolean; + contains(value: number): boolean; + remove(value: number): void; + clear(): void; + } + interface Disposable { + dispose(): void; + } + interface Restorable { + restore(): void; + } + class Color { + r: number; + g: number; + b: number; + a: number; + static WHITE: Color; + static RED: Color; + static GREEN: Color; + static BLUE: Color; + static MAGENTA: Color; + constructor(r?: number, g?: number, b?: number, a?: number); + set(r: number, g: number, b: number, a: number): this; + setFromColor(c: Color): this; + setFromString(hex: string): this; + add(r: number, g: number, b: number, a: number): this; + clamp(): this; + } + class MathUtils { + static PI: number; + static PI2: number; + static radiansToDegrees: number; + static radDeg: number; + static degreesToRadians: number; + static degRad: number; + static clamp(value: number, min: number, max: number): number; + static cosDeg(degrees: number): number; + static sinDeg(degrees: number): number; + static signum(value: number): number; + static toInt(x: number): number; + static cbrt(x: number): number; + } + class Utils { + static SUPPORTS_TYPED_ARRAYS: boolean; + static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; + static setArraySize(array: Array, size: number, value?: any): Array; + static ensureArrayCapacity(array: Array, size: number, value?: any): Array; + static newArray(size: number, defaultValue: T): Array; + static newFloatArray(size: number): ArrayLike; + static newShortArray(size: number): ArrayLike; + static toFloatArray(array: Array): number[] | Float32Array; + } + class DebugUtils { + static logBones(skeleton: Skeleton): void; + } + class Pool { + private items; + private instantiator; + constructor(instantiator: () => T); + obtain(): T; + free(item: T): void; + freeAll(items: ArrayLike): void; + clear(): void; + } + class Vector2 { + x: number; + y: number; + constructor(x?: number, y?: number); + set(x: number, y: number): Vector2; + length(): number; + normalize(): this; + } + class TimeKeeper { + maxDelta: number; + framesPerSecond: number; + delta: number; + totalTime: number; + private lastTime; + private frameCount; + private frameTime; + update(): void; + } + interface ArrayLike { + length: number; + [n: number]: T; + } + class WindowedMean { + values: Array; + addedValues: number; + lastValue: number; + mean: number; + dirty: boolean; + constructor(windowSize?: number); + hasEnoughData(): boolean; + addValue(value: number): void; + getMean(): number; + } } declare module spine.threejs { - class AssetManager extends spine.AssetManager { - constructor(pathPrefix?: string); - } + class AssetManager extends spine.AssetManager { + constructor(pathPrefix?: string); + } } declare module spine.threejs { - class MeshBatcher { - mesh: THREE.Mesh; - private static VERTEX_SIZE; - private vertexBuffer; - private vertices; - private verticesLength; - private indices; - private indicesLength; - constructor(mesh: THREE.Mesh, maxVertices?: number); - begin(): void; - batch(vertices: ArrayLike, verticesLength: number, indices: ArrayLike, indicesLength: number, z?: number): void; - end(): void; - } + class MeshBatcher { + mesh: THREE.Mesh; + private static VERTEX_SIZE; + private vertexBuffer; + private vertices; + private verticesLength; + private indices; + private indicesLength; + constructor(mesh: THREE.Mesh, maxVertices?: number); + begin(): void; + batch(vertices: ArrayLike, verticesLength: number, indices: ArrayLike, indicesLength: number, z?: number): void; + end(): void; + } } declare module spine.threejs { - class SkeletonMesh extends THREE.Mesh { - skeleton: Skeleton; - state: AnimationState; - zOffset: number; - private batcher; - private clipper; - static QUAD_TRIANGLES: number[]; - static VERTEX_SIZE: number; - private vertices; - private tempColor; - constructor(skeletonData: SkeletonData); - update(deltaTime: number): void; - private updateGeometry(); - } + class SkeletonMesh extends THREE.Mesh { + skeleton: Skeleton; + state: AnimationState; + zOffset: number; + private batcher; + private clipper; + static QUAD_TRIANGLES: number[]; + static VERTEX_SIZE: number; + private vertices; + private tempColor; + constructor(skeletonData: SkeletonData); + update(deltaTime: number): void; + private updateGeometry(); + } } declare module spine.threejs { - class ThreeJsTexture extends Texture { - texture: THREE.Texture; - constructor(image: HTMLImageElement); - setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - dispose(): void; - static toThreeJsTextureFilter(filter: TextureFilter): THREE.TextureFilter; - static toThreeJsTextureWrap(wrap: TextureWrap): THREE.Wrapping; - } + class ThreeJsTexture extends Texture { + texture: THREE.Texture; + constructor(image: HTMLImageElement); + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + dispose(): void; + static toThreeJsTextureFilter(filter: TextureFilter): THREE.TextureFilter; + static toThreeJsTextureWrap(wrap: TextureWrap): THREE.Wrapping; + } } declare module spine.webgl { - class AssetManager extends spine.AssetManager { - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, pathPrefix?: string); - } + class AssetManager extends spine.AssetManager { + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, pathPrefix?: string); + } } declare module spine.webgl { - class OrthoCamera { - position: Vector3; - direction: Vector3; - up: Vector3; - near: number; - far: number; - zoom: number; - viewportWidth: number; - viewportHeight: number; - projectionView: Matrix4; - inverseProjectionView: Matrix4; - projection: Matrix4; - view: Matrix4; - private tmp; - constructor(viewportWidth: number, viewportHeight: number); - update(): void; - screenToWorld(screenCoords: Vector3, screenWidth: number, screenHeight: number): Vector3; - setViewport(viewportWidth: number, viewportHeight: number): void; - } + class OrthoCamera { + position: Vector3; + direction: Vector3; + up: Vector3; + near: number; + far: number; + zoom: number; + viewportWidth: number; + viewportHeight: number; + projectionView: Matrix4; + inverseProjectionView: Matrix4; + projection: Matrix4; + view: Matrix4; + private tmp; + constructor(viewportWidth: number, viewportHeight: number); + update(): void; + screenToWorld(screenCoords: Vector3, screenWidth: number, screenHeight: number): Vector3; + setViewport(viewportWidth: number, viewportHeight: number): void; + } } declare module spine.webgl { - class GLTexture extends Texture implements Disposable, Restorable { - private context; - private texture; - private boundUnit; - private useMipMaps; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, image: HTMLImageElement, useMipMaps?: boolean); - setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - update(useMipMaps: boolean): void; - restore(): void; - bind(unit?: number): void; - unbind(): void; - dispose(): void; - } + class GLTexture extends Texture implements Disposable, Restorable { + private context; + private texture; + private boundUnit; + private useMipMaps; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, image: HTMLImageElement, useMipMaps?: boolean); + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + update(useMipMaps: boolean): void; + restore(): void; + bind(unit?: number): void; + unbind(): void; + dispose(): void; + } } declare module spine.webgl { - class Input { - element: HTMLElement; - lastX: number; - lastY: number; - buttonDown: boolean; - currTouch: Touch; - touchesPool: Pool; - private listeners; - constructor(element: HTMLElement); - private setupCallbacks(element); - addListener(listener: InputListener): void; - removeListener(listener: InputListener): void; - } - class Touch { - identifier: number; - x: number; - y: number; - constructor(identifier: number, x: number, y: number); - } - interface InputListener { - down(x: number, y: number): void; - up(x: number, y: number): void; - moved(x: number, y: number): void; - dragged(x: number, y: number): void; - } + class Input { + element: HTMLElement; + lastX: number; + lastY: number; + buttonDown: boolean; + currTouch: Touch; + touchesPool: Pool; + private listeners; + constructor(element: HTMLElement); + private setupCallbacks(element); + addListener(listener: InputListener): void; + removeListener(listener: InputListener): void; + } + class Touch { + identifier: number; + x: number; + y: number; + constructor(identifier: number, x: number, y: number); + } + interface InputListener { + down(x: number, y: number): void; + up(x: number, y: number): void; + moved(x: number, y: number): void; + dragged(x: number, y: number): void; + } } declare module spine.webgl { - class LoadingScreen { - static FADE_SECONDS: number; - private static loaded; - private static spinnerImg; - private static logoImg; - private renderer; - private logo; - private spinner; - private angle; - private fadeOut; - private timeKeeper; - backgroundColor: Color; - private tempColor; - private firstDraw; - private static SPINNER_DATA; - private static SPINE_LOGO_DATA; - constructor(renderer: SceneRenderer); - draw(complete?: boolean): void; - } + class LoadingScreen { + static FADE_SECONDS: number; + private static loaded; + private static spinnerImg; + private static logoImg; + private renderer; + private logo; + private spinner; + private angle; + private fadeOut; + private timeKeeper; + backgroundColor: Color; + private tempColor; + private firstDraw; + private static SPINNER_DATA; + private static SPINE_LOGO_DATA; + constructor(renderer: SceneRenderer); + draw(complete?: boolean): void; + } } declare module spine.webgl { - const M00: number; - const M01: number; - const M02: number; - const M03: number; - const M10: number; - const M11: number; - const M12: number; - const M13: number; - const M20: number; - const M21: number; - const M22: number; - const M23: number; - const M30: number; - const M31: number; - const M32: number; - const M33: number; - class Matrix4 { - temp: Float32Array; - values: Float32Array; - private static xAxis; - private static yAxis; - private static zAxis; - private static tmpMatrix; - constructor(); - set(values: ArrayLike): Matrix4; - transpose(): Matrix4; - identity(): Matrix4; - invert(): Matrix4; - determinant(): number; - translate(x: number, y: number, z: number): Matrix4; - copy(): Matrix4; - projection(near: number, far: number, fovy: number, aspectRatio: number): Matrix4; - ortho2d(x: number, y: number, width: number, height: number): Matrix4; - ortho(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4; - multiply(matrix: Matrix4): Matrix4; - multiplyLeft(matrix: Matrix4): Matrix4; - lookAt(position: Vector3, direction: Vector3, up: Vector3): this; - static initTemps(): void; - } + const M00: number; + const M01: number; + const M02: number; + const M03: number; + const M10: number; + const M11: number; + const M12: number; + const M13: number; + const M20: number; + const M21: number; + const M22: number; + const M23: number; + const M30: number; + const M31: number; + const M32: number; + const M33: number; + class Matrix4 { + temp: Float32Array; + values: Float32Array; + private static xAxis; + private static yAxis; + private static zAxis; + private static tmpMatrix; + constructor(); + set(values: ArrayLike): Matrix4; + transpose(): Matrix4; + identity(): Matrix4; + invert(): Matrix4; + determinant(): number; + translate(x: number, y: number, z: number): Matrix4; + copy(): Matrix4; + projection(near: number, far: number, fovy: number, aspectRatio: number): Matrix4; + ortho2d(x: number, y: number, width: number, height: number): Matrix4; + ortho(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4; + multiply(matrix: Matrix4): Matrix4; + multiplyLeft(matrix: Matrix4): Matrix4; + lookAt(position: Vector3, direction: Vector3, up: Vector3): this; + static initTemps(): void; + } } declare module spine.webgl { - class Mesh implements Disposable, Restorable { - private attributes; - private context; - private vertices; - private verticesBuffer; - private verticesLength; - private dirtyVertices; - private indices; - private indicesBuffer; - private indicesLength; - private dirtyIndices; - private elementsPerVertex; - getAttributes(): VertexAttribute[]; - maxVertices(): number; - numVertices(): number; - setVerticesLength(length: number): void; - getVertices(): Float32Array; - maxIndices(): number; - numIndices(): number; - setIndicesLength(length: number): void; - getIndices(): Uint16Array; - getVertexSizeInFloats(): number; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, attributes: VertexAttribute[], maxVertices: number, maxIndices: number); - setVertices(vertices: Array): void; - setIndices(indices: Array): void; - draw(shader: Shader, primitiveType: number): void; - drawWithOffset(shader: Shader, primitiveType: number, offset: number, count: number): void; - bind(shader: Shader): void; - unbind(shader: Shader): void; - private update(); - restore(): void; - dispose(): void; - } - class VertexAttribute { - name: string; - type: VertexAttributeType; - numElements: number; - constructor(name: string, type: VertexAttributeType, numElements: number); - } - class Position2Attribute extends VertexAttribute { - constructor(); - } - class Position3Attribute extends VertexAttribute { - constructor(); - } - class TexCoordAttribute extends VertexAttribute { - constructor(unit?: number); - } - class ColorAttribute extends VertexAttribute { - constructor(); - } - class Color2Attribute extends VertexAttribute { - constructor(); - } - enum VertexAttributeType { - Float = 0, - } + class Mesh implements Disposable, Restorable { + private attributes; + private context; + private vertices; + private verticesBuffer; + private verticesLength; + private dirtyVertices; + private indices; + private indicesBuffer; + private indicesLength; + private dirtyIndices; + private elementsPerVertex; + getAttributes(): VertexAttribute[]; + maxVertices(): number; + numVertices(): number; + setVerticesLength(length: number): void; + getVertices(): Float32Array; + maxIndices(): number; + numIndices(): number; + setIndicesLength(length: number): void; + getIndices(): Uint16Array; + getVertexSizeInFloats(): number; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, attributes: VertexAttribute[], maxVertices: number, maxIndices: number); + setVertices(vertices: Array): void; + setIndices(indices: Array): void; + draw(shader: Shader, primitiveType: number): void; + drawWithOffset(shader: Shader, primitiveType: number, offset: number, count: number): void; + bind(shader: Shader): void; + unbind(shader: Shader): void; + private update(); + restore(): void; + dispose(): void; + } + class VertexAttribute { + name: string; + type: VertexAttributeType; + numElements: number; + constructor(name: string, type: VertexAttributeType, numElements: number); + } + class Position2Attribute extends VertexAttribute { + constructor(); + } + class Position3Attribute extends VertexAttribute { + constructor(); + } + class TexCoordAttribute extends VertexAttribute { + constructor(unit?: number); + } + class ColorAttribute extends VertexAttribute { + constructor(); + } + class Color2Attribute extends VertexAttribute { + constructor(); + } + enum VertexAttributeType { + Float = 0, + } } declare module spine.webgl { - class PolygonBatcher implements Disposable { - private context; - private drawCalls; - private isDrawing; - private mesh; - private shader; - private lastTexture; - private verticesLength; - private indicesLength; - private srcBlend; - private dstBlend; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean, maxVertices?: number); - begin(shader: Shader): void; - setBlendMode(srcBlend: number, dstBlend: number): void; - draw(texture: GLTexture, vertices: ArrayLike, indices: Array): void; - private flush(); - end(): void; - getDrawCalls(): number; - dispose(): void; - } + class PolygonBatcher implements Disposable { + private context; + private drawCalls; + private isDrawing; + private mesh; + private shader; + private lastTexture; + private verticesLength; + private indicesLength; + private srcBlend; + private dstBlend; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean, maxVertices?: number); + begin(shader: Shader): void; + setBlendMode(srcBlend: number, dstBlend: number): void; + draw(texture: GLTexture, vertices: ArrayLike, indices: Array): void; + private flush(); + end(): void; + getDrawCalls(): number; + dispose(): void; + } } declare module spine.webgl { - class SceneRenderer implements Disposable { - context: ManagedWebGLRenderingContext; - canvas: HTMLCanvasElement; - camera: OrthoCamera; - batcher: PolygonBatcher; - private twoColorTint; - private batcherShader; - private shapes; - private shapesShader; - private activeRenderer; - private skeletonRenderer; - private skeletonDebugRenderer; - private QUAD; - private QUAD_TRIANGLES; - private WHITE; - constructor(canvas: HTMLCanvasElement, context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean); - begin(): void; - drawSkeleton(skeleton: Skeleton, premultipliedAlpha?: boolean): void; - drawSkeletonDebug(skeleton: Skeleton, premultipliedAlpha?: boolean, ignoredBones?: Array): void; - drawTexture(texture: GLTexture, x: number, y: number, width: number, height: number, color?: Color): void; - drawTextureRotated(texture: GLTexture, x: number, y: number, width: number, height: number, pivotX: number, pivotY: number, angle: number, color?: Color, premultipliedAlpha?: boolean): void; - drawRegion(region: TextureAtlasRegion, x: number, y: number, width: number, height: number, color?: Color, premultipliedAlpha?: boolean): void; - line(x: number, y: number, x2: number, y2: number, color?: Color, color2?: Color): void; - triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; - quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; - rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; - rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; - polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; - circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; - curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; - end(): void; - resize(resizeMode: ResizeMode): void; - private enableRenderer(renderer); - dispose(): void; - } - enum ResizeMode { - Stretch = 0, - Expand = 1, - Fit = 2, - } + class SceneRenderer implements Disposable { + context: ManagedWebGLRenderingContext; + canvas: HTMLCanvasElement; + camera: OrthoCamera; + batcher: PolygonBatcher; + private twoColorTint; + private batcherShader; + private shapes; + private shapesShader; + private activeRenderer; + private skeletonRenderer; + private skeletonDebugRenderer; + private QUAD; + private QUAD_TRIANGLES; + private WHITE; + constructor(canvas: HTMLCanvasElement, context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean); + begin(): void; + drawSkeleton(skeleton: Skeleton, premultipliedAlpha?: boolean): void; + drawSkeletonDebug(skeleton: Skeleton, premultipliedAlpha?: boolean, ignoredBones?: Array): void; + drawTexture(texture: GLTexture, x: number, y: number, width: number, height: number, color?: Color): void; + drawTextureRotated(texture: GLTexture, x: number, y: number, width: number, height: number, pivotX: number, pivotY: number, angle: number, color?: Color, premultipliedAlpha?: boolean): void; + drawRegion(region: TextureAtlasRegion, x: number, y: number, width: number, height: number, color?: Color, premultipliedAlpha?: boolean): void; + line(x: number, y: number, x2: number, y2: number, color?: Color, color2?: Color): void; + triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; + quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; + rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; + rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; + polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; + circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; + curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; + end(): void; + resize(resizeMode: ResizeMode): void; + private enableRenderer(renderer); + dispose(): void; + } + enum ResizeMode { + Stretch = 0, + Expand = 1, + Fit = 2, + } } declare module spine.webgl { - class Shader implements Disposable, Restorable { - private vertexShader; - private fragmentShader; - static MVP_MATRIX: string; - static POSITION: string; - static COLOR: string; - static COLOR2: string; - static TEXCOORDS: string; - static SAMPLER: string; - private context; - private vs; - private fs; - private program; - private tmp2x2; - private tmp3x3; - private tmp4x4; - getProgram(): WebGLProgram; - getVertexShader(): string; - getFragmentShader(): string; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, vertexShader: string, fragmentShader: string); - private compile(); - private compileShader(type, source); - private compileProgram(vs, fs); - restore(): void; - bind(): void; - unbind(): void; - setUniformi(uniform: string, value: number): void; - setUniformf(uniform: string, value: number): void; - setUniform2f(uniform: string, value: number, value2: number): void; - setUniform3f(uniform: string, value: number, value2: number, value3: number): void; - setUniform4f(uniform: string, value: number, value2: number, value3: number, value4: number): void; - setUniform2x2f(uniform: string, value: ArrayLike): void; - setUniform3x3f(uniform: string, value: ArrayLike): void; - setUniform4x4f(uniform: string, value: ArrayLike): void; - getUniformLocation(uniform: string): WebGLUniformLocation; - getAttributeLocation(attribute: string): number; - dispose(): void; - static newColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; - static newTwoColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; - static newColored(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; - } + class Shader implements Disposable, Restorable { + private vertexShader; + private fragmentShader; + static MVP_MATRIX: string; + static POSITION: string; + static COLOR: string; + static COLOR2: string; + static TEXCOORDS: string; + static SAMPLER: string; + private context; + private vs; + private fs; + private program; + private tmp2x2; + private tmp3x3; + private tmp4x4; + getProgram(): WebGLProgram; + getVertexShader(): string; + getFragmentShader(): string; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, vertexShader: string, fragmentShader: string); + private compile(); + private compileShader(type, source); + private compileProgram(vs, fs); + restore(): void; + bind(): void; + unbind(): void; + setUniformi(uniform: string, value: number): void; + setUniformf(uniform: string, value: number): void; + setUniform2f(uniform: string, value: number, value2: number): void; + setUniform3f(uniform: string, value: number, value2: number, value3: number): void; + setUniform4f(uniform: string, value: number, value2: number, value3: number, value4: number): void; + setUniform2x2f(uniform: string, value: ArrayLike): void; + setUniform3x3f(uniform: string, value: ArrayLike): void; + setUniform4x4f(uniform: string, value: ArrayLike): void; + getUniformLocation(uniform: string): WebGLUniformLocation; + getAttributeLocation(attribute: string): number; + dispose(): void; + static newColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; + static newTwoColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; + static newColored(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; + } } declare module spine.webgl { - class ShapeRenderer implements Disposable { - private context; - private isDrawing; - private mesh; - private shapeType; - private color; - private shader; - private vertexIndex; - private tmp; - private srcBlend; - private dstBlend; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, maxVertices?: number); - begin(shader: Shader): void; - setBlendMode(srcBlend: number, dstBlend: number): void; - setColor(color: Color): void; - setColorWith(r: number, g: number, b: number, a: number): void; - point(x: number, y: number, color?: Color): void; - line(x: number, y: number, x2: number, y2: number, color?: Color): void; - triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; - quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; - rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; - rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; - x(x: number, y: number, size: number): void; - polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; - circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; - curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; - private vertex(x, y, color); - end(): void; - private flush(); - private check(shapeType, numVertices); - dispose(): void; - } - enum ShapeType { - Point = 0, - Line = 1, - Filled = 4, - } + class ShapeRenderer implements Disposable { + private context; + private isDrawing; + private mesh; + private shapeType; + private color; + private shader; + private vertexIndex; + private tmp; + private srcBlend; + private dstBlend; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, maxVertices?: number); + begin(shader: Shader): void; + setBlendMode(srcBlend: number, dstBlend: number): void; + setColor(color: Color): void; + setColorWith(r: number, g: number, b: number, a: number): void; + point(x: number, y: number, color?: Color): void; + line(x: number, y: number, x2: number, y2: number, color?: Color): void; + triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; + quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; + rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; + rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; + x(x: number, y: number, size: number): void; + polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; + circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; + curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; + private vertex(x, y, color); + end(): void; + private flush(); + private check(shapeType, numVertices); + dispose(): void; + } + enum ShapeType { + Point = 0, + Line = 1, + Filled = 4, + } } declare module spine.webgl { - class SkeletonDebugRenderer implements Disposable { - boneLineColor: Color; - boneOriginColor: Color; - attachmentLineColor: Color; - triangleLineColor: Color; - pathColor: Color; - clipColor: Color; - aabbColor: Color; - drawBones: boolean; - drawRegionAttachments: boolean; - drawBoundingBoxes: boolean; - drawMeshHull: boolean; - drawMeshTriangles: boolean; - drawPaths: boolean; - drawSkeletonXY: boolean; - drawClipping: boolean; - premultipliedAlpha: boolean; - scale: number; - boneWidth: number; - private context; - private bounds; - private temp; - private vertices; - private static LIGHT_GRAY; - private static GREEN; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext); - draw(shapes: ShapeRenderer, skeleton: Skeleton, ignoredBones?: Array): void; - dispose(): void; - } + class SkeletonDebugRenderer implements Disposable { + boneLineColor: Color; + boneOriginColor: Color; + attachmentLineColor: Color; + triangleLineColor: Color; + pathColor: Color; + clipColor: Color; + aabbColor: Color; + drawBones: boolean; + drawRegionAttachments: boolean; + drawBoundingBoxes: boolean; + drawMeshHull: boolean; + drawMeshTriangles: boolean; + drawPaths: boolean; + drawSkeletonXY: boolean; + drawClipping: boolean; + premultipliedAlpha: boolean; + scale: number; + boneWidth: number; + private context; + private bounds; + private temp; + private vertices; + private static LIGHT_GRAY; + private static GREEN; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext); + draw(shapes: ShapeRenderer, skeleton: Skeleton, ignoredBones?: Array): void; + dispose(): void; + } } declare module spine.webgl { - class SkeletonRenderer { - static QUAD_TRIANGLES: number[]; - premultipliedAlpha: boolean; - private tempColor; - private tempColor2; - private vertices; - private vertexSize; - private twoColorTint; - private renderable; - private clipper; - constructor(context: ManagedWebGLRenderingContext, twoColorTint?: boolean); - draw(batcher: PolygonBatcher, skeleton: Skeleton): void; - } + class SkeletonRenderer { + static QUAD_TRIANGLES: number[]; + premultipliedAlpha: boolean; + private tempColor; + private tempColor2; + private vertices; + private vertexSize; + private twoColorTint; + private renderable; + private clipper; + constructor(context: ManagedWebGLRenderingContext, twoColorTint?: boolean); + draw(batcher: PolygonBatcher, skeleton: Skeleton): void; + } } declare module spine.webgl { - class Vector3 { - x: number; - y: number; - z: number; - constructor(x?: number, y?: number, z?: number); - setFrom(v: Vector3): Vector3; - set(x: number, y: number, z: number): Vector3; - add(v: Vector3): Vector3; - sub(v: Vector3): Vector3; - scale(s: number): Vector3; - normalize(): Vector3; - cross(v: Vector3): Vector3; - multiply(matrix: Matrix4): Vector3; - project(matrix: Matrix4): Vector3; - dot(v: Vector3): number; - length(): number; - distance(v: Vector3): number; - } + class Vector3 { + x: number; + y: number; + z: number; + constructor(x?: number, y?: number, z?: number); + setFrom(v: Vector3): Vector3; + set(x: number, y: number, z: number): Vector3; + add(v: Vector3): Vector3; + sub(v: Vector3): Vector3; + scale(s: number): Vector3; + normalize(): Vector3; + cross(v: Vector3): Vector3; + multiply(matrix: Matrix4): Vector3; + project(matrix: Matrix4): Vector3; + dot(v: Vector3): number; + length(): number; + distance(v: Vector3): number; + } } declare module spine.webgl { - class ManagedWebGLRenderingContext { - canvas: HTMLCanvasElement; - gl: WebGLRenderingContext; - private restorables; - constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext, contextConfig?: any); - addRestorable(restorable: Restorable): void; - removeRestorable(restorable: Restorable): void; - } - class WebGLBlendModeConverter { - static ZERO: number; - static ONE: number; - static SRC_COLOR: number; - static ONE_MINUS_SRC_COLOR: number; - static SRC_ALPHA: number; - static ONE_MINUS_SRC_ALPHA: number; - static DST_ALPHA: number; - static ONE_MINUS_DST_ALPHA: number; - static DST_COLOR: number; - static getDestGLBlendMode(blendMode: BlendMode): number; - static getSourceGLBlendMode(blendMode: BlendMode, premultipliedAlpha?: boolean): number; - } + class ManagedWebGLRenderingContext { + canvas: HTMLCanvasElement; + gl: WebGLRenderingContext; + private restorables; + constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext, contextConfig?: any); + addRestorable(restorable: Restorable): void; + removeRestorable(restorable: Restorable): void; + } + class WebGLBlendModeConverter { + static ZERO: number; + static ONE: number; + static SRC_COLOR: number; + static ONE_MINUS_SRC_COLOR: number; + static SRC_ALPHA: number; + static ONE_MINUS_SRC_ALPHA: number; + static DST_ALPHA: number; + static ONE_MINUS_DST_ALPHA: number; + static DST_COLOR: number; + static getDestGLBlendMode(blendMode: BlendMode): number; + static getSourceGLBlendMode(blendMode: BlendMode, premultipliedAlpha?: boolean): number; + } } declare module spine { - class SpineWidget { - skeleton: Skeleton; - state: AnimationState; - context: spine.webgl.ManagedWebGLRenderingContext; - canvas: HTMLCanvasElement; - debugRenderer: spine.webgl.SkeletonDebugRenderer; - private config; - private assetManager; - private shader; - private batcher; - private shapes; - private debugShader; - private mvp; - private skeletonRenderer; - private paused; - private lastFrameTime; - private backgroundColor; - private loaded; - private bounds; - constructor(element: HTMLElement | string, config: SpineWidgetConfig); - private validateConfig(config); - private load(); - private render(); - private resize(); - pause(): void; - play(): void; - isPlaying(): boolean; - setAnimation(animationName: string, animationStateListener?: AnimationStateListener2): void; - static loadWidgets(): void; - static loadWidget(widget: HTMLElement): void; - static pageLoaded: boolean; - private static ready(); - static setupDOMListener(): void; - } - class SpineWidgetConfig { - json: string; - jsonContent: any; - atlas: string; - atlasContent: string; - animation: string; - imagesPath: string; - atlasPages: string[]; - atlasPagesContent: string[]; - skin: string; - loop: boolean; - scale: number; - x: number; - y: number; - alpha: boolean; - fitToCanvas: boolean; - backgroundColor: string; - premultipliedAlpha: boolean; - debug: boolean; - success: (widget: SpineWidget) => void; - error: (widget: SpineWidget, msg: string) => void; - } + class SpineWidget { + skeleton: Skeleton; + state: AnimationState; + context: spine.webgl.ManagedWebGLRenderingContext; + canvas: HTMLCanvasElement; + debugRenderer: spine.webgl.SkeletonDebugRenderer; + private config; + private assetManager; + private shader; + private batcher; + private shapes; + private debugShader; + private mvp; + private skeletonRenderer; + private paused; + private lastFrameTime; + private backgroundColor; + private loaded; + private bounds; + constructor(element: HTMLElement | string, config: SpineWidgetConfig); + private validateConfig(config); + private load(); + private render(); + private resize(); + pause(): void; + play(): void; + isPlaying(): boolean; + setAnimation(animationName: string, animationStateListener?: AnimationStateListener2): void; + static loadWidgets(): void; + static loadWidget(widget: HTMLElement): void; + static pageLoaded: boolean; + private static ready(); + static setupDOMListener(): void; + } + class SpineWidgetConfig { + json: string; + jsonContent: any; + atlas: string; + atlasContent: string; + animation: string; + imagesPath: string; + atlasPages: string[]; + atlasPagesContent: string[]; + skin: string; + loop: boolean; + scale: number; + x: number; + y: number; + alpha: boolean; + fitToCanvas: boolean; + backgroundColor: string; + premultipliedAlpha: boolean; + debug: boolean; + success: (widget: SpineWidget) => void; + error: (widget: SpineWidget, msg: string) => void; + } } diff --git a/spine-ts/build/spine-all.js b/spine-ts/build/spine-all.js index 2b6bbe7a5..5fd916d37 100644 --- a/spine-ts/build/spine-all.js +++ b/spine-ts/build/spine-all.js @@ -1,9461 +1,9461 @@ var spine; (function (spine) { - var AssetManager = (function () { - function AssetManager(textureLoader, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.assets = {}; - this.errors = {}; - this.toLoad = 0; - this.loaded = 0; - this.textureLoader = textureLoader; - this.pathPrefix = pathPrefix; - } - AssetManager.prototype.loadText = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.assets[path] = request.responseText; - if (success) - success(path, request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - if (error) - error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); - } - _this.toLoad--; - _this.loaded++; - } - }; - request.open("GET", path, true); - request.send(); - }; - AssetManager.prototype.loadTexture = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = path; - }; - AssetManager.prototype.loadTextureData = function (path, data, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = data; - }; - AssetManager.prototype.get = function (path) { - path = this.pathPrefix + path; - return this.assets[path]; - }; - AssetManager.prototype.remove = function (path) { - path = this.pathPrefix + path; - var asset = this.assets[path]; - if (asset.dispose) - asset.dispose(); - this.assets[path] = null; - }; - AssetManager.prototype.removeAll = function () { - for (var key in this.assets) { - var asset = this.assets[key]; - if (asset.dispose) - asset.dispose(); - } - this.assets = {}; - }; - AssetManager.prototype.isLoadingComplete = function () { - return this.toLoad == 0; - }; - AssetManager.prototype.getToLoad = function () { - return this.toLoad; - }; - AssetManager.prototype.getLoaded = function () { - return this.loaded; - }; - AssetManager.prototype.dispose = function () { - this.removeAll(); - }; - AssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - AssetManager.prototype.getErrors = function () { - return this.errors; - }; - return AssetManager; - }()); - spine.AssetManager = AssetManager; + var AssetManager = (function () { + function AssetManager(textureLoader, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.assets = {}; + this.errors = {}; + this.toLoad = 0; + this.loaded = 0; + this.textureLoader = textureLoader; + this.pathPrefix = pathPrefix; + } + AssetManager.prototype.loadText = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.assets[path] = request.responseText; + if (success) + success(path, request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + if (error) + error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); + } + _this.toLoad--; + _this.loaded++; + } + }; + request.open("GET", path, true); + request.send(); + }; + AssetManager.prototype.loadTexture = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = path; + }; + AssetManager.prototype.loadTextureData = function (path, data, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = data; + }; + AssetManager.prototype.get = function (path) { + path = this.pathPrefix + path; + return this.assets[path]; + }; + AssetManager.prototype.remove = function (path) { + path = this.pathPrefix + path; + var asset = this.assets[path]; + if (asset.dispose) + asset.dispose(); + this.assets[path] = null; + }; + AssetManager.prototype.removeAll = function () { + for (var key in this.assets) { + var asset = this.assets[key]; + if (asset.dispose) + asset.dispose(); + } + this.assets = {}; + }; + AssetManager.prototype.isLoadingComplete = function () { + return this.toLoad == 0; + }; + AssetManager.prototype.getToLoad = function () { + return this.toLoad; + }; + AssetManager.prototype.getLoaded = function () { + return this.loaded; + }; + AssetManager.prototype.dispose = function () { + this.removeAll(); + }; + AssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + AssetManager.prototype.getErrors = function () { + return this.errors; + }; + return AssetManager; + }()); + spine.AssetManager = AssetManager; })(spine || (spine = {})); var __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var spine; (function (spine) { - var canvas; - (function (canvas) { - var AssetManager = (function (_super) { - __extends(AssetManager, _super); - function AssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - _super.call(this, function (image) { return new spine.canvas.CanvasTexture(image); }, pathPrefix); - } - return AssetManager; - }(spine.AssetManager)); - canvas.AssetManager = AssetManager; - })(canvas = spine.canvas || (spine.canvas = {})); + var canvas; + (function (canvas) { + var AssetManager = (function (_super) { + __extends(AssetManager, _super); + function AssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + _super.call(this, function (image) { return new spine.canvas.CanvasTexture(image); }, pathPrefix); + } + return AssetManager; + }(spine.AssetManager)); + canvas.AssetManager = AssetManager; + })(canvas = spine.canvas || (spine.canvas = {})); })(spine || (spine = {})); var spine; (function (spine) { - var Texture = (function () { - function Texture(image) { - this._image = image; - } - Texture.prototype.getImage = function () { - return this._image; - }; - Texture.filterFromString = function (text) { - switch (text.toLowerCase()) { - case "nearest": return TextureFilter.Nearest; - case "linear": return TextureFilter.Linear; - case "mipmap": return TextureFilter.MipMap; - case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; - case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; - case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; - case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; - default: throw new Error("Unknown texture filter " + text); - } - }; - Texture.wrapFromString = function (text) { - switch (text.toLowerCase()) { - case "mirroredtepeat": return TextureWrap.MirroredRepeat; - case "clamptoedge": return TextureWrap.ClampToEdge; - case "repeat": return TextureWrap.Repeat; - default: throw new Error("Unknown texture wrap " + text); - } - }; - return Texture; - }()); - spine.Texture = Texture; - (function (TextureFilter) { - TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; - TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; - TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; - TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; - TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; - TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; - TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; - })(spine.TextureFilter || (spine.TextureFilter = {})); - var TextureFilter = spine.TextureFilter; - (function (TextureWrap) { - TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; - TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; - TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; - })(spine.TextureWrap || (spine.TextureWrap = {})); - var TextureWrap = spine.TextureWrap; - var TextureRegion = (function () { - function TextureRegion() { - this.u = 0; - this.v = 0; - this.u2 = 0; - this.v2 = 0; - this.width = 0; - this.height = 0; - this.rotate = false; - this.offsetX = 0; - this.offsetY = 0; - this.originalWidth = 0; - this.originalHeight = 0; - } - return TextureRegion; - }()); - spine.TextureRegion = TextureRegion; + var Texture = (function () { + function Texture(image) { + this._image = image; + } + Texture.prototype.getImage = function () { + return this._image; + }; + Texture.filterFromString = function (text) { + switch (text.toLowerCase()) { + case "nearest": return TextureFilter.Nearest; + case "linear": return TextureFilter.Linear; + case "mipmap": return TextureFilter.MipMap; + case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; + case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; + case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; + case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; + default: throw new Error("Unknown texture filter " + text); + } + }; + Texture.wrapFromString = function (text) { + switch (text.toLowerCase()) { + case "mirroredtepeat": return TextureWrap.MirroredRepeat; + case "clamptoedge": return TextureWrap.ClampToEdge; + case "repeat": return TextureWrap.Repeat; + default: throw new Error("Unknown texture wrap " + text); + } + }; + return Texture; + }()); + spine.Texture = Texture; + (function (TextureFilter) { + TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; + TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; + TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; + TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; + TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; + TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; + TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; + })(spine.TextureFilter || (spine.TextureFilter = {})); + var TextureFilter = spine.TextureFilter; + (function (TextureWrap) { + TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; + TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; + TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; + })(spine.TextureWrap || (spine.TextureWrap = {})); + var TextureWrap = spine.TextureWrap; + var TextureRegion = (function () { + function TextureRegion() { + this.u = 0; + this.v = 0; + this.u2 = 0; + this.v2 = 0; + this.width = 0; + this.height = 0; + this.rotate = false; + this.offsetX = 0; + this.offsetY = 0; + this.originalWidth = 0; + this.originalHeight = 0; + } + return TextureRegion; + }()); + spine.TextureRegion = TextureRegion; })(spine || (spine = {})); var spine; (function (spine) { - var canvas; - (function (canvas) { - var CanvasTexture = (function (_super) { - __extends(CanvasTexture, _super); - function CanvasTexture(image) { - _super.call(this, image); - } - CanvasTexture.prototype.setFilters = function (minFilter, magFilter) { }; - CanvasTexture.prototype.setWraps = function (uWrap, vWrap) { }; - CanvasTexture.prototype.dispose = function () { }; - return CanvasTexture; - }(spine.Texture)); - canvas.CanvasTexture = CanvasTexture; - })(canvas = spine.canvas || (spine.canvas = {})); + var canvas; + (function (canvas) { + var CanvasTexture = (function (_super) { + __extends(CanvasTexture, _super); + function CanvasTexture(image) { + _super.call(this, image); + } + CanvasTexture.prototype.setFilters = function (minFilter, magFilter) { }; + CanvasTexture.prototype.setWraps = function (uWrap, vWrap) { }; + CanvasTexture.prototype.dispose = function () { }; + return CanvasTexture; + }(spine.Texture)); + canvas.CanvasTexture = CanvasTexture; + })(canvas = spine.canvas || (spine.canvas = {})); })(spine || (spine = {})); var spine; (function (spine) { - var canvas; - (function (canvas) { - var SkeletonRenderer = (function () { - function SkeletonRenderer(context) { - this.triangleRendering = false; - this.debugRendering = false; - this.vertices = spine.Utils.newFloatArray(8 * 1024); - this.tempColor = new spine.Color(); - this.ctx = context; - } - SkeletonRenderer.prototype.draw = function (skeleton) { - if (this.triangleRendering) - this.drawTriangles(skeleton); - else - this.drawImages(skeleton); - }; - SkeletonRenderer.prototype.drawImages = function (skeleton) { - var ctx = this.ctx; - var drawOrder = skeleton.drawOrder; - if (this.debugRendering) - ctx.strokeStyle = "green"; - ctx.save(); - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var regionAttachment = null; - var region = null; - var image = null; - if (attachment instanceof spine.RegionAttachment) { - regionAttachment = attachment; - region = regionAttachment.region; - image = region.texture.getImage(); - } - else - continue; - var skeleton_1 = slot.bone.skeleton; - var skeletonColor = skeleton_1.color; - var slotColor = slot.color; - var regionColor = regionAttachment.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * regionColor.r, skeletonColor.g * slotColor.g * regionColor.g, skeletonColor.b * slotColor.b * regionColor.b, alpha); - var att = attachment; - var bone = slot.bone; - var w = region.width; - var h = region.height; - ctx.save(); - ctx.transform(bone.a, bone.c, bone.b, bone.d, bone.worldX, bone.worldY); - ctx.translate(attachment.offset[0], attachment.offset[1]); - ctx.rotate(attachment.rotation * Math.PI / 180); - ctx.scale(attachment.scaleX, attachment.scaleY); - ctx.translate(w / 2, h / 2); - if (attachment.region.rotate) { - var t = w; - w = h; - h = t; - ctx.rotate(-Math.PI / 2); - } - ctx.scale(1, -1); - ctx.translate(-w / 2, -h / 2); - if (color.r != 1 || color.g != 1 || color.b != 1 || color.a != 1) { - ctx.globalAlpha = color.a; - } - ctx.drawImage(image, region.x, region.y, w, h, 0, 0, w, h); - if (this.debugRendering) - ctx.strokeRect(0, 0, w, h); - ctx.restore(); - } - ctx.restore(); - }; - SkeletonRenderer.prototype.drawTriangles = function (skeleton) { - var blendMode = null; - var vertices = this.vertices; - var triangles = null; - var drawOrder = skeleton.drawOrder; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var texture = null; - var region = null; - if (attachment instanceof spine.RegionAttachment) { - var regionAttachment = attachment; - vertices = this.computeRegionVertices(slot, regionAttachment, false); - triangles = SkeletonRenderer.QUAD_TRIANGLES; - region = regionAttachment.region; - texture = region.texture.getImage(); - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - vertices = this.computeMeshVertices(slot, mesh, false); - triangles = mesh.triangles; - texture = mesh.region.renderObject.texture.getImage(); - } - else - continue; - if (texture != null) { - var slotBlendMode = slot.data.blendMode; - if (slotBlendMode != blendMode) { - blendMode = slotBlendMode; - } - var ctx = this.ctx; - for (var j = 0; j < triangles.length; j += 3) { - var t1 = triangles[j] * 8, t2 = triangles[j + 1] * 8, t3 = triangles[j + 2] * 8; - var x0 = vertices[t1], y0 = vertices[t1 + 1], u0 = vertices[t1 + 6], v0 = vertices[t1 + 7]; - var x1 = vertices[t2], y1 = vertices[t2 + 1], u1 = vertices[t2 + 6], v1 = vertices[t2 + 7]; - var x2 = vertices[t3], y2 = vertices[t3 + 1], u2 = vertices[t3 + 6], v2 = vertices[t3 + 7]; - this.drawTriangle(texture, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); - if (this.debugRendering) { - ctx.strokeStyle = "green"; - ctx.beginPath(); - ctx.moveTo(x0, y0); - ctx.lineTo(x1, y1); - ctx.lineTo(x2, y2); - ctx.lineTo(x0, y0); - ctx.stroke(); - } - } - } - } - }; - SkeletonRenderer.prototype.drawTriangle = function (img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2) { - var ctx = this.ctx; - u0 *= img.width; - v0 *= img.height; - u1 *= img.width; - v1 *= img.height; - u2 *= img.width; - v2 *= img.height; - ctx.beginPath(); - ctx.moveTo(x0, y0); - ctx.lineTo(x1, y1); - ctx.lineTo(x2, y2); - ctx.closePath(); - x1 -= x0; - y1 -= y0; - x2 -= x0; - y2 -= y0; - u1 -= u0; - v1 -= v0; - u2 -= u0; - v2 -= v0; - var det = 1 / (u1 * v2 - u2 * v1), a = (v2 * x1 - v1 * x2) * det, b = (v2 * y1 - v1 * y2) * det, c = (u1 * x2 - u2 * x1) * det, d = (u1 * y2 - u2 * y1) * det, e = x0 - a * u0 - c * v0, f = y0 - b * u0 - d * v0; - ctx.save(); - ctx.transform(a, b, c, d, e, f); - ctx.clip(); - ctx.drawImage(img, 0, 0); - ctx.restore(); - }; - SkeletonRenderer.prototype.computeRegionVertices = function (slot, region, pma) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var regionColor = region.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var multiplier = pma ? alpha : 1; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); - region.computeWorldVertices(slot.bone, this.vertices, 0, SkeletonRenderer.VERTEX_SIZE); - var vertices = this.vertices; - var uvs = region.uvs; - vertices[spine.RegionAttachment.C1R] = color.r; - vertices[spine.RegionAttachment.C1G] = color.g; - vertices[spine.RegionAttachment.C1B] = color.b; - vertices[spine.RegionAttachment.C1A] = color.a; - vertices[spine.RegionAttachment.U1] = uvs[0]; - vertices[spine.RegionAttachment.V1] = uvs[1]; - vertices[spine.RegionAttachment.C2R] = color.r; - vertices[spine.RegionAttachment.C2G] = color.g; - vertices[spine.RegionAttachment.C2B] = color.b; - vertices[spine.RegionAttachment.C2A] = color.a; - vertices[spine.RegionAttachment.U2] = uvs[2]; - vertices[spine.RegionAttachment.V2] = uvs[3]; - vertices[spine.RegionAttachment.C3R] = color.r; - vertices[spine.RegionAttachment.C3G] = color.g; - vertices[spine.RegionAttachment.C3B] = color.b; - vertices[spine.RegionAttachment.C3A] = color.a; - vertices[spine.RegionAttachment.U3] = uvs[4]; - vertices[spine.RegionAttachment.V3] = uvs[5]; - vertices[spine.RegionAttachment.C4R] = color.r; - vertices[spine.RegionAttachment.C4G] = color.g; - vertices[spine.RegionAttachment.C4B] = color.b; - vertices[spine.RegionAttachment.C4A] = color.a; - vertices[spine.RegionAttachment.U4] = uvs[6]; - vertices[spine.RegionAttachment.V4] = uvs[7]; - return vertices; - }; - SkeletonRenderer.prototype.computeMeshVertices = function (slot, mesh, pma) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var regionColor = mesh.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var multiplier = pma ? alpha : 1; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); - var numVertices = mesh.worldVerticesLength / 2; - if (this.vertices.length < mesh.worldVerticesLength) { - this.vertices = spine.Utils.newFloatArray(mesh.worldVerticesLength); - } - var vertices = this.vertices; - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, SkeletonRenderer.VERTEX_SIZE); - var uvs = mesh.uvs; - for (var i = 0, n = numVertices, u = 0, v = 2; i < n; i++) { - vertices[v++] = color.r; - vertices[v++] = color.g; - vertices[v++] = color.b; - vertices[v++] = color.a; - vertices[v++] = uvs[u++]; - vertices[v++] = uvs[u++]; - v += 2; - } - return vertices; - }; - SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - SkeletonRenderer.VERTEX_SIZE = 2 + 2 + 4; - return SkeletonRenderer; - }()); - canvas.SkeletonRenderer = SkeletonRenderer; - })(canvas = spine.canvas || (spine.canvas = {})); + var canvas; + (function (canvas) { + var SkeletonRenderer = (function () { + function SkeletonRenderer(context) { + this.triangleRendering = false; + this.debugRendering = false; + this.vertices = spine.Utils.newFloatArray(8 * 1024); + this.tempColor = new spine.Color(); + this.ctx = context; + } + SkeletonRenderer.prototype.draw = function (skeleton) { + if (this.triangleRendering) + this.drawTriangles(skeleton); + else + this.drawImages(skeleton); + }; + SkeletonRenderer.prototype.drawImages = function (skeleton) { + var ctx = this.ctx; + var drawOrder = skeleton.drawOrder; + if (this.debugRendering) + ctx.strokeStyle = "green"; + ctx.save(); + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var regionAttachment = null; + var region = null; + var image = null; + if (attachment instanceof spine.RegionAttachment) { + regionAttachment = attachment; + region = regionAttachment.region; + image = region.texture.getImage(); + } + else + continue; + var skeleton_1 = slot.bone.skeleton; + var skeletonColor = skeleton_1.color; + var slotColor = slot.color; + var regionColor = regionAttachment.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * regionColor.r, skeletonColor.g * slotColor.g * regionColor.g, skeletonColor.b * slotColor.b * regionColor.b, alpha); + var att = attachment; + var bone = slot.bone; + var w = region.width; + var h = region.height; + ctx.save(); + ctx.transform(bone.a, bone.c, bone.b, bone.d, bone.worldX, bone.worldY); + ctx.translate(attachment.offset[0], attachment.offset[1]); + ctx.rotate(attachment.rotation * Math.PI / 180); + ctx.scale(attachment.scaleX, attachment.scaleY); + ctx.translate(w / 2, h / 2); + if (attachment.region.rotate) { + var t = w; + w = h; + h = t; + ctx.rotate(-Math.PI / 2); + } + ctx.scale(1, -1); + ctx.translate(-w / 2, -h / 2); + if (color.r != 1 || color.g != 1 || color.b != 1 || color.a != 1) { + ctx.globalAlpha = color.a; + } + ctx.drawImage(image, region.x, region.y, w, h, 0, 0, w, h); + if (this.debugRendering) + ctx.strokeRect(0, 0, w, h); + ctx.restore(); + } + ctx.restore(); + }; + SkeletonRenderer.prototype.drawTriangles = function (skeleton) { + var blendMode = null; + var vertices = this.vertices; + var triangles = null; + var drawOrder = skeleton.drawOrder; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var texture = null; + var region = null; + if (attachment instanceof spine.RegionAttachment) { + var regionAttachment = attachment; + vertices = this.computeRegionVertices(slot, regionAttachment, false); + triangles = SkeletonRenderer.QUAD_TRIANGLES; + region = regionAttachment.region; + texture = region.texture.getImage(); + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + vertices = this.computeMeshVertices(slot, mesh, false); + triangles = mesh.triangles; + texture = mesh.region.renderObject.texture.getImage(); + } + else + continue; + if (texture != null) { + var slotBlendMode = slot.data.blendMode; + if (slotBlendMode != blendMode) { + blendMode = slotBlendMode; + } + var ctx = this.ctx; + for (var j = 0; j < triangles.length; j += 3) { + var t1 = triangles[j] * 8, t2 = triangles[j + 1] * 8, t3 = triangles[j + 2] * 8; + var x0 = vertices[t1], y0 = vertices[t1 + 1], u0 = vertices[t1 + 6], v0 = vertices[t1 + 7]; + var x1 = vertices[t2], y1 = vertices[t2 + 1], u1 = vertices[t2 + 6], v1 = vertices[t2 + 7]; + var x2 = vertices[t3], y2 = vertices[t3 + 1], u2 = vertices[t3 + 6], v2 = vertices[t3 + 7]; + this.drawTriangle(texture, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); + if (this.debugRendering) { + ctx.strokeStyle = "green"; + ctx.beginPath(); + ctx.moveTo(x0, y0); + ctx.lineTo(x1, y1); + ctx.lineTo(x2, y2); + ctx.lineTo(x0, y0); + ctx.stroke(); + } + } + } + } + }; + SkeletonRenderer.prototype.drawTriangle = function (img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2) { + var ctx = this.ctx; + u0 *= img.width; + v0 *= img.height; + u1 *= img.width; + v1 *= img.height; + u2 *= img.width; + v2 *= img.height; + ctx.beginPath(); + ctx.moveTo(x0, y0); + ctx.lineTo(x1, y1); + ctx.lineTo(x2, y2); + ctx.closePath(); + x1 -= x0; + y1 -= y0; + x2 -= x0; + y2 -= y0; + u1 -= u0; + v1 -= v0; + u2 -= u0; + v2 -= v0; + var det = 1 / (u1 * v2 - u2 * v1), a = (v2 * x1 - v1 * x2) * det, b = (v2 * y1 - v1 * y2) * det, c = (u1 * x2 - u2 * x1) * det, d = (u1 * y2 - u2 * y1) * det, e = x0 - a * u0 - c * v0, f = y0 - b * u0 - d * v0; + ctx.save(); + ctx.transform(a, b, c, d, e, f); + ctx.clip(); + ctx.drawImage(img, 0, 0); + ctx.restore(); + }; + SkeletonRenderer.prototype.computeRegionVertices = function (slot, region, pma) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var regionColor = region.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var multiplier = pma ? alpha : 1; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); + region.computeWorldVertices(slot.bone, this.vertices, 0, SkeletonRenderer.VERTEX_SIZE); + var vertices = this.vertices; + var uvs = region.uvs; + vertices[spine.RegionAttachment.C1R] = color.r; + vertices[spine.RegionAttachment.C1G] = color.g; + vertices[spine.RegionAttachment.C1B] = color.b; + vertices[spine.RegionAttachment.C1A] = color.a; + vertices[spine.RegionAttachment.U1] = uvs[0]; + vertices[spine.RegionAttachment.V1] = uvs[1]; + vertices[spine.RegionAttachment.C2R] = color.r; + vertices[spine.RegionAttachment.C2G] = color.g; + vertices[spine.RegionAttachment.C2B] = color.b; + vertices[spine.RegionAttachment.C2A] = color.a; + vertices[spine.RegionAttachment.U2] = uvs[2]; + vertices[spine.RegionAttachment.V2] = uvs[3]; + vertices[spine.RegionAttachment.C3R] = color.r; + vertices[spine.RegionAttachment.C3G] = color.g; + vertices[spine.RegionAttachment.C3B] = color.b; + vertices[spine.RegionAttachment.C3A] = color.a; + vertices[spine.RegionAttachment.U3] = uvs[4]; + vertices[spine.RegionAttachment.V3] = uvs[5]; + vertices[spine.RegionAttachment.C4R] = color.r; + vertices[spine.RegionAttachment.C4G] = color.g; + vertices[spine.RegionAttachment.C4B] = color.b; + vertices[spine.RegionAttachment.C4A] = color.a; + vertices[spine.RegionAttachment.U4] = uvs[6]; + vertices[spine.RegionAttachment.V4] = uvs[7]; + return vertices; + }; + SkeletonRenderer.prototype.computeMeshVertices = function (slot, mesh, pma) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var regionColor = mesh.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var multiplier = pma ? alpha : 1; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); + var numVertices = mesh.worldVerticesLength / 2; + if (this.vertices.length < mesh.worldVerticesLength) { + this.vertices = spine.Utils.newFloatArray(mesh.worldVerticesLength); + } + var vertices = this.vertices; + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, SkeletonRenderer.VERTEX_SIZE); + var uvs = mesh.uvs; + for (var i = 0, n = numVertices, u = 0, v = 2; i < n; i++) { + vertices[v++] = color.r; + vertices[v++] = color.g; + vertices[v++] = color.b; + vertices[v++] = color.a; + vertices[v++] = uvs[u++]; + vertices[v++] = uvs[u++]; + v += 2; + } + return vertices; + }; + SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + SkeletonRenderer.VERTEX_SIZE = 2 + 2 + 4; + return SkeletonRenderer; + }()); + canvas.SkeletonRenderer = SkeletonRenderer; + })(canvas = spine.canvas || (spine.canvas = {})); })(spine || (spine = {})); var spine; (function (spine) { - var Animation = (function () { - function Animation(name, timelines, duration) { - if (name == null) - throw new Error("name cannot be null."); - if (timelines == null) - throw new Error("timelines cannot be null."); - this.name = name; - this.timelines = timelines; - this.duration = duration; - } - Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (loop && this.duration != 0) { - time %= this.duration; - if (lastTime > 0) - lastTime %= this.duration; - } - var timelines = this.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); - }; - Animation.binarySearch = function (values, target, step) { - if (step === void 0) { step = 1; } - var low = 0; - var high = values.length / step - 2; - if (high == 0) - return step; - var current = high >>> 1; - while (true) { - if (values[(current + 1) * step] <= target) - low = current + 1; - else - high = current; - if (low == high) - return (low + 1) * step; - current = (low + high) >>> 1; - } - }; - Animation.linearSearch = function (values, target, step) { - for (var i = 0, last = values.length - step; i <= last; i += step) - if (values[i] > target) - return i; - return -1; - }; - return Animation; - }()); - spine.Animation = Animation; - (function (TimelineType) { - TimelineType[TimelineType["rotate"] = 0] = "rotate"; - TimelineType[TimelineType["translate"] = 1] = "translate"; - TimelineType[TimelineType["scale"] = 2] = "scale"; - TimelineType[TimelineType["shear"] = 3] = "shear"; - TimelineType[TimelineType["attachment"] = 4] = "attachment"; - TimelineType[TimelineType["color"] = 5] = "color"; - TimelineType[TimelineType["deform"] = 6] = "deform"; - TimelineType[TimelineType["event"] = 7] = "event"; - TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; - TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; - TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; - TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; - TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; - TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; - TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; - })(spine.TimelineType || (spine.TimelineType = {})); - var TimelineType = spine.TimelineType; - var CurveTimeline = (function () { - function CurveTimeline(frameCount) { - if (frameCount <= 0) - throw new Error("frameCount must be > 0: " + frameCount); - this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); - } - CurveTimeline.prototype.getFrameCount = function () { - return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; - }; - CurveTimeline.prototype.setLinear = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; - }; - CurveTimeline.prototype.setStepped = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; - }; - CurveTimeline.prototype.getCurveType = function (frameIndex) { - var index = frameIndex * CurveTimeline.BEZIER_SIZE; - if (index == this.curves.length) - return CurveTimeline.LINEAR; - var type = this.curves[index]; - if (type == CurveTimeline.LINEAR) - return CurveTimeline.LINEAR; - if (type == CurveTimeline.STEPPED) - return CurveTimeline.STEPPED; - return CurveTimeline.BEZIER; - }; - CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { - var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; - var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; - var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; - var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var curves = this.curves; - curves[i++] = CurveTimeline.BEZIER; - var x = dfx, y = dfy; - for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - curves[i] = x; - curves[i + 1] = y; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - x += dfx; - y += dfy; - } - }; - CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { - percent = spine.MathUtils.clamp(percent, 0, 1); - var curves = this.curves; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var type = curves[i]; - if (type == CurveTimeline.LINEAR) - return percent; - if (type == CurveTimeline.STEPPED) - return 0; - i++; - var x = 0; - for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - x = curves[i]; - if (x >= percent) { - var prevX = void 0, prevY = void 0; - if (i == start) { - prevX = 0; - prevY = 0; - } - else { - prevX = curves[i - 2]; - prevY = curves[i - 1]; - } - return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); - } - } - var y = curves[i - 1]; - return y + (1 - y) * (percent - x) / (1 - x); - }; - CurveTimeline.LINEAR = 0; - CurveTimeline.STEPPED = 1; - CurveTimeline.BEZIER = 2; - CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; - return CurveTimeline; - }()); - spine.CurveTimeline = CurveTimeline; - var RotateTimeline = (function (_super) { - __extends(RotateTimeline, _super); - function RotateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount << 1); - } - RotateTimeline.prototype.getPropertyId = function () { - return (TimelineType.rotate << 24) + this.boneIndex; - }; - RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { - frameIndex <<= 1; - this.frames[frameIndex] = time; - this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; - }; - RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { - if (setupPose) - bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; - else { - var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; - r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; - bone.rotation += r_1 * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); - var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); - var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - r = prevRotation + r * percent; - if (setupPose) { - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation = bone.data.rotation + r * alpha; - } - else { - r = bone.data.rotation + r - bone.rotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation += r * alpha; - } - }; - RotateTimeline.ENTRIES = 2; - RotateTimeline.PREV_TIME = -2; - RotateTimeline.PREV_ROTATION = -1; - RotateTimeline.ROTATION = 1; - return RotateTimeline; - }(CurveTimeline)); - spine.RotateTimeline = RotateTimeline; - var TranslateTimeline = (function (_super) { - __extends(TranslateTimeline, _super); - function TranslateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); - } - TranslateTimeline.prototype.getPropertyId = function () { - return (TimelineType.translate << 24) + this.boneIndex; - }; - TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { - frameIndex *= TranslateTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TranslateTimeline.X] = x; - this.frames[frameIndex + TranslateTimeline.Y] = y; - }; - TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.x = bone.data.x; - bone.y = bone.data.y; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { - x = frames[frames.length + TranslateTimeline.PREV_X]; - y = frames[frames.length + TranslateTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - x = frames[frame + TranslateTimeline.PREV_X]; - y = frames[frame + TranslateTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); - x += (frames[frame + TranslateTimeline.X] - x) * percent; - y += (frames[frame + TranslateTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.x = bone.data.x + x * alpha; - bone.y = bone.data.y + y * alpha; - } - else { - bone.x += (bone.data.x + x - bone.x) * alpha; - bone.y += (bone.data.y + y - bone.y) * alpha; - } - }; - TranslateTimeline.ENTRIES = 3; - TranslateTimeline.PREV_TIME = -3; - TranslateTimeline.PREV_X = -2; - TranslateTimeline.PREV_Y = -1; - TranslateTimeline.X = 1; - TranslateTimeline.Y = 2; - return TranslateTimeline; - }(CurveTimeline)); - spine.TranslateTimeline = TranslateTimeline; - var ScaleTimeline = (function (_super) { - __extends(ScaleTimeline, _super); - function ScaleTimeline(frameCount) { - _super.call(this, frameCount); - } - ScaleTimeline.prototype.getPropertyId = function () { - return (TimelineType.scale << 24) + this.boneIndex; - }; - ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.scaleX = bone.data.scaleX; - bone.scaleY = bone.data.scaleY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { - x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; - y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; - } - else { - var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - x = frames[frame + ScaleTimeline.PREV_X]; - y = frames[frame + ScaleTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); - x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; - y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; - } - if (alpha == 1) { - bone.scaleX = x; - bone.scaleY = y; - } - else { - var bx = 0, by = 0; - if (setupPose) { - bx = bone.data.scaleX; - by = bone.data.scaleY; - } - else { - bx = bone.scaleX; - by = bone.scaleY; - } - if (mixingOut) { - x = Math.abs(x) * spine.MathUtils.signum(bx); - y = Math.abs(y) * spine.MathUtils.signum(by); - } - else { - bx = Math.abs(bx) * spine.MathUtils.signum(x); - by = Math.abs(by) * spine.MathUtils.signum(y); - } - bone.scaleX = bx + (x - bx) * alpha; - bone.scaleY = by + (y - by) * alpha; - } - }; - return ScaleTimeline; - }(TranslateTimeline)); - spine.ScaleTimeline = ScaleTimeline; - var ShearTimeline = (function (_super) { - __extends(ShearTimeline, _super); - function ShearTimeline(frameCount) { - _super.call(this, frameCount); - } - ShearTimeline.prototype.getPropertyId = function () { - return (TimelineType.shear << 24) + this.boneIndex; - }; - ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.shearX = bone.data.shearX; - bone.shearY = bone.data.shearY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { - x = frames[frames.length + ShearTimeline.PREV_X]; - y = frames[frames.length + ShearTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - x = frames[frame + ShearTimeline.PREV_X]; - y = frames[frame + ShearTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); - x = x + (frames[frame + ShearTimeline.X] - x) * percent; - y = y + (frames[frame + ShearTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.shearX = bone.data.shearX + x * alpha; - bone.shearY = bone.data.shearY + y * alpha; - } - else { - bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; - } - }; - return ShearTimeline; - }(TranslateTimeline)); - spine.ShearTimeline = ShearTimeline; - var ColorTimeline = (function (_super) { - __extends(ColorTimeline, _super); - function ColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); - } - ColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.color << 24) + this.slotIndex; - }; - ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { - frameIndex *= ColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + ColorTimeline.R] = r; - this.frames[frameIndex + ColorTimeline.G] = g; - this.frames[frameIndex + ColorTimeline.B] = b; - this.frames[frameIndex + ColorTimeline.A] = a; - }; - ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - slot.color.setFromColor(slot.data.color); - return; - } - var r = 0, g = 0, b = 0, a = 0; - if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + ColorTimeline.PREV_R]; - g = frames[i + ColorTimeline.PREV_G]; - b = frames[i + ColorTimeline.PREV_B]; - a = frames[i + ColorTimeline.PREV_A]; - } - else { - var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); - r = frames[frame + ColorTimeline.PREV_R]; - g = frames[frame + ColorTimeline.PREV_G]; - b = frames[frame + ColorTimeline.PREV_B]; - a = frames[frame + ColorTimeline.PREV_A]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + ColorTimeline.R] - r) * percent; - g += (frames[frame + ColorTimeline.G] - g) * percent; - b += (frames[frame + ColorTimeline.B] - b) * percent; - a += (frames[frame + ColorTimeline.A] - a) * percent; - } - if (alpha == 1) - slot.color.set(r, g, b, a); - else { - var color = slot.color; - if (setupPose) - color.setFromColor(slot.data.color); - color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); - } - }; - ColorTimeline.ENTRIES = 5; - ColorTimeline.PREV_TIME = -5; - ColorTimeline.PREV_R = -4; - ColorTimeline.PREV_G = -3; - ColorTimeline.PREV_B = -2; - ColorTimeline.PREV_A = -1; - ColorTimeline.R = 1; - ColorTimeline.G = 2; - ColorTimeline.B = 3; - ColorTimeline.A = 4; - return ColorTimeline; - }(CurveTimeline)); - spine.ColorTimeline = ColorTimeline; - var TwoColorTimeline = (function (_super) { - __extends(TwoColorTimeline, _super); - function TwoColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); - } - TwoColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.twoColor << 24) + this.slotIndex; - }; - TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { - frameIndex *= TwoColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TwoColorTimeline.R] = r; - this.frames[frameIndex + TwoColorTimeline.G] = g; - this.frames[frameIndex + TwoColorTimeline.B] = b; - this.frames[frameIndex + TwoColorTimeline.A] = a; - this.frames[frameIndex + TwoColorTimeline.R2] = r2; - this.frames[frameIndex + TwoColorTimeline.G2] = g2; - this.frames[frameIndex + TwoColorTimeline.B2] = b2; - }; - TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - slot.color.setFromColor(slot.data.color); - slot.darkColor.setFromColor(slot.data.darkColor); - } - return; - } - var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; - if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + TwoColorTimeline.PREV_R]; - g = frames[i + TwoColorTimeline.PREV_G]; - b = frames[i + TwoColorTimeline.PREV_B]; - a = frames[i + TwoColorTimeline.PREV_A]; - r2 = frames[i + TwoColorTimeline.PREV_R2]; - g2 = frames[i + TwoColorTimeline.PREV_G2]; - b2 = frames[i + TwoColorTimeline.PREV_B2]; - } - else { - var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); - r = frames[frame + TwoColorTimeline.PREV_R]; - g = frames[frame + TwoColorTimeline.PREV_G]; - b = frames[frame + TwoColorTimeline.PREV_B]; - a = frames[frame + TwoColorTimeline.PREV_A]; - r2 = frames[frame + TwoColorTimeline.PREV_R2]; - g2 = frames[frame + TwoColorTimeline.PREV_G2]; - b2 = frames[frame + TwoColorTimeline.PREV_B2]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + TwoColorTimeline.R] - r) * percent; - g += (frames[frame + TwoColorTimeline.G] - g) * percent; - b += (frames[frame + TwoColorTimeline.B] - b) * percent; - a += (frames[frame + TwoColorTimeline.A] - a) * percent; - r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; - g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; - b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; - } - if (alpha == 1) { - slot.color.set(r, g, b, a); - slot.darkColor.set(r2, g2, b2, 1); - } - else { - var light = slot.color; - var dark = slot.darkColor; - if (setupPose) { - light.setFromColor(slot.data.color); - dark.setFromColor(slot.data.darkColor); - } - light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); - dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); - } - }; - TwoColorTimeline.ENTRIES = 8; - TwoColorTimeline.PREV_TIME = -8; - TwoColorTimeline.PREV_R = -7; - TwoColorTimeline.PREV_G = -6; - TwoColorTimeline.PREV_B = -5; - TwoColorTimeline.PREV_A = -4; - TwoColorTimeline.PREV_R2 = -3; - TwoColorTimeline.PREV_G2 = -2; - TwoColorTimeline.PREV_B2 = -1; - TwoColorTimeline.R = 1; - TwoColorTimeline.G = 2; - TwoColorTimeline.B = 3; - TwoColorTimeline.A = 4; - TwoColorTimeline.R2 = 5; - TwoColorTimeline.G2 = 6; - TwoColorTimeline.B2 = 7; - return TwoColorTimeline; - }(CurveTimeline)); - spine.TwoColorTimeline = TwoColorTimeline; - var AttachmentTimeline = (function () { - function AttachmentTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.attachmentNames = new Array(frameCount); - } - AttachmentTimeline.prototype.getPropertyId = function () { - return (TimelineType.attachment << 24) + this.slotIndex; - }; - AttachmentTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { - this.frames[frameIndex] = time; - this.attachmentNames[frameIndex] = attachmentName; - }; - AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - if (mixingOut && setupPose) { - var attachmentName_1 = slot.data.attachmentName; - slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - var attachmentName_2 = slot.data.attachmentName; - slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); - } - return; - } - var frameIndex = 0; - if (time >= frames[frames.length - 1]) - frameIndex = frames.length - 1; - else - frameIndex = Animation.binarySearch(frames, time, 1) - 1; - var attachmentName = this.attachmentNames[frameIndex]; - skeleton.slots[this.slotIndex] - .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); - }; - return AttachmentTimeline; - }()); - spine.AttachmentTimeline = AttachmentTimeline; - var DeformTimeline = (function (_super) { - __extends(DeformTimeline, _super); - function DeformTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount); - this.frameVertices = new Array(frameCount); - } - DeformTimeline.prototype.getPropertyId = function () { - return (TimelineType.deform << 24) + this.slotIndex; - }; - DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { - this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; - }; - DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var slotAttachment = slot.getAttachment(); - if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) - return; - var frames = this.frames; - var verticesArray = slot.attachmentVertices; - if (time < frames[0]) { - if (setupPose) - spine.Utils.setArraySize(verticesArray, 0); - return; - } - var frameVertices = this.frameVertices; - var vertexCount = frameVertices[0].length; - if (verticesArray.length != vertexCount && !setupPose) - alpha = 1; - var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); - if (time >= frames[frames.length - 1]) { - var lastVertices = frameVertices[frames.length - 1]; - if (alpha == 1) { - spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var setup = setupVertices[i]; - vertices[i] = setup + (lastVertices[i] - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] = lastVertices[i] * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time); - var prevVertices = frameVertices[frame - 1]; - var nextVertices = frameVertices[frame]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); - if (alpha == 1) { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i], setup = setupVertices[i]; - vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; - } - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; - } - } - }; - return DeformTimeline; - }(CurveTimeline)); - spine.DeformTimeline = DeformTimeline; - var EventTimeline = (function () { - function EventTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.events = new Array(frameCount); - } - EventTimeline.prototype.getPropertyId = function () { - return TimelineType.event << 24; - }; - EventTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - EventTimeline.prototype.setFrame = function (frameIndex, event) { - this.frames[frameIndex] = event.time; - this.events[frameIndex] = event; - }; - EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - if (firedEvents == null) - return; - var frames = this.frames; - var frameCount = this.frames.length; - if (lastTime > time) { - this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); - lastTime = -1; - } - else if (lastTime >= frames[frameCount - 1]) - return; - if (time < frames[0]) - return; - var frame = 0; - if (lastTime < frames[0]) - frame = 0; - else { - frame = Animation.binarySearch(frames, lastTime); - var frameTime = frames[frame]; - while (frame > 0) { - if (frames[frame - 1] != frameTime) - break; - frame--; - } - } - for (; frame < frameCount && time >= frames[frame]; frame++) - firedEvents.push(this.events[frame]); - }; - return EventTimeline; - }()); - spine.EventTimeline = EventTimeline; - var DrawOrderTimeline = (function () { - function DrawOrderTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.drawOrders = new Array(frameCount); - } - DrawOrderTimeline.prototype.getPropertyId = function () { - return TimelineType.drawOrder << 24; - }; - DrawOrderTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { - this.frames[frameIndex] = time; - this.drawOrders[frameIndex] = drawOrder; - }; - DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var drawOrder = skeleton.drawOrder; - var slots = skeleton.slots; - if (mixingOut && setupPose) { - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frame = 0; - if (time >= frames[frames.length - 1]) - frame = frames.length - 1; - else - frame = Animation.binarySearch(frames, time) - 1; - var drawOrderToSetupIndex = this.drawOrders[frame]; - if (drawOrderToSetupIndex == null) - spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); - else { - for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) - drawOrder[i] = slots[drawOrderToSetupIndex[i]]; - } - }; - return DrawOrderTimeline; - }()); - spine.DrawOrderTimeline = DrawOrderTimeline; - var IkConstraintTimeline = (function (_super) { - __extends(IkConstraintTimeline, _super); - function IkConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); - } - IkConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; - }; - IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { - frameIndex *= IkConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; - this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; - }; - IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.mix = constraint.data.mix; - constraint.bendDirection = constraint.data.bendDirection; - } - return; - } - if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { - if (setupPose) { - constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection - : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - return; - } - var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); - var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); - if (setupPose) { - constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - }; - IkConstraintTimeline.ENTRIES = 3; - IkConstraintTimeline.PREV_TIME = -3; - IkConstraintTimeline.PREV_MIX = -2; - IkConstraintTimeline.PREV_BEND_DIRECTION = -1; - IkConstraintTimeline.MIX = 1; - IkConstraintTimeline.BEND_DIRECTION = 2; - return IkConstraintTimeline; - }(CurveTimeline)); - spine.IkConstraintTimeline = IkConstraintTimeline; - var TransformConstraintTimeline = (function (_super) { - __extends(TransformConstraintTimeline, _super); - function TransformConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); - } - TransformConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; - }; - TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { - frameIndex *= TransformConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; - this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; - this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; - }; - TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.rotateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - return; - } - var rotate = 0, translate = 0, scale = 0, shear = 0; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { - var i = frames.length; - rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; - } - else { - var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; - scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; - shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; - } - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; - constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; - constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; - constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - constraint.scaleMix += (scale - constraint.scaleMix) * alpha; - constraint.shearMix += (shear - constraint.shearMix) * alpha; - } - }; - TransformConstraintTimeline.ENTRIES = 5; - TransformConstraintTimeline.PREV_TIME = -5; - TransformConstraintTimeline.PREV_ROTATE = -4; - TransformConstraintTimeline.PREV_TRANSLATE = -3; - TransformConstraintTimeline.PREV_SCALE = -2; - TransformConstraintTimeline.PREV_SHEAR = -1; - TransformConstraintTimeline.ROTATE = 1; - TransformConstraintTimeline.TRANSLATE = 2; - TransformConstraintTimeline.SCALE = 3; - TransformConstraintTimeline.SHEAR = 4; - return TransformConstraintTimeline; - }(CurveTimeline)); - spine.TransformConstraintTimeline = TransformConstraintTimeline; - var PathConstraintPositionTimeline = (function (_super) { - __extends(PathConstraintPositionTimeline, _super); - function PathConstraintPositionTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); - } - PathConstraintPositionTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; - }; - PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { - frameIndex *= PathConstraintPositionTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; - }; - PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.position = constraint.data.position; - return; - } - var position = 0; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) - position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); - position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; - } - if (setupPose) - constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; - else - constraint.position += (position - constraint.position) * alpha; - }; - PathConstraintPositionTimeline.ENTRIES = 2; - PathConstraintPositionTimeline.PREV_TIME = -2; - PathConstraintPositionTimeline.PREV_VALUE = -1; - PathConstraintPositionTimeline.VALUE = 1; - return PathConstraintPositionTimeline; - }(CurveTimeline)); - spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; - var PathConstraintSpacingTimeline = (function (_super) { - __extends(PathConstraintSpacingTimeline, _super); - function PathConstraintSpacingTimeline(frameCount) { - _super.call(this, frameCount); - } - PathConstraintSpacingTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; - }; - PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.spacing = constraint.data.spacing; - return; - } - var spacing = 0; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) - spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); - spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; - } - if (setupPose) - constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; - else - constraint.spacing += (spacing - constraint.spacing) * alpha; - }; - return PathConstraintSpacingTimeline; - }(PathConstraintPositionTimeline)); - spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; - var PathConstraintMixTimeline = (function (_super) { - __extends(PathConstraintMixTimeline, _super); - function PathConstraintMixTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); - } - PathConstraintMixTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; - }; - PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { - frameIndex *= PathConstraintMixTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; - }; - PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix; - constraint.translateMix = constraint.data.translateMix; - } - return; - } - var rotate = 0, translate = 0; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { - rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; - } - else { - var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; - } - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; - constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - } - }; - PathConstraintMixTimeline.ENTRIES = 3; - PathConstraintMixTimeline.PREV_TIME = -3; - PathConstraintMixTimeline.PREV_ROTATE = -2; - PathConstraintMixTimeline.PREV_TRANSLATE = -1; - PathConstraintMixTimeline.ROTATE = 1; - PathConstraintMixTimeline.TRANSLATE = 2; - return PathConstraintMixTimeline; - }(CurveTimeline)); - spine.PathConstraintMixTimeline = PathConstraintMixTimeline; + var Animation = (function () { + function Animation(name, timelines, duration) { + if (name == null) + throw new Error("name cannot be null."); + if (timelines == null) + throw new Error("timelines cannot be null."); + this.name = name; + this.timelines = timelines; + this.duration = duration; + } + Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (loop && this.duration != 0) { + time %= this.duration; + if (lastTime > 0) + lastTime %= this.duration; + } + var timelines = this.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); + }; + Animation.binarySearch = function (values, target, step) { + if (step === void 0) { step = 1; } + var low = 0; + var high = values.length / step - 2; + if (high == 0) + return step; + var current = high >>> 1; + while (true) { + if (values[(current + 1) * step] <= target) + low = current + 1; + else + high = current; + if (low == high) + return (low + 1) * step; + current = (low + high) >>> 1; + } + }; + Animation.linearSearch = function (values, target, step) { + for (var i = 0, last = values.length - step; i <= last; i += step) + if (values[i] > target) + return i; + return -1; + }; + return Animation; + }()); + spine.Animation = Animation; + (function (TimelineType) { + TimelineType[TimelineType["rotate"] = 0] = "rotate"; + TimelineType[TimelineType["translate"] = 1] = "translate"; + TimelineType[TimelineType["scale"] = 2] = "scale"; + TimelineType[TimelineType["shear"] = 3] = "shear"; + TimelineType[TimelineType["attachment"] = 4] = "attachment"; + TimelineType[TimelineType["color"] = 5] = "color"; + TimelineType[TimelineType["deform"] = 6] = "deform"; + TimelineType[TimelineType["event"] = 7] = "event"; + TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; + TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; + TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; + TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; + TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; + TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; + TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; + var CurveTimeline = (function () { + function CurveTimeline(frameCount) { + if (frameCount <= 0) + throw new Error("frameCount must be > 0: " + frameCount); + this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); + } + CurveTimeline.prototype.getFrameCount = function () { + return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; + }; + CurveTimeline.prototype.setLinear = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; + }; + CurveTimeline.prototype.setStepped = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; + }; + CurveTimeline.prototype.getCurveType = function (frameIndex) { + var index = frameIndex * CurveTimeline.BEZIER_SIZE; + if (index == this.curves.length) + return CurveTimeline.LINEAR; + var type = this.curves[index]; + if (type == CurveTimeline.LINEAR) + return CurveTimeline.LINEAR; + if (type == CurveTimeline.STEPPED) + return CurveTimeline.STEPPED; + return CurveTimeline.BEZIER; + }; + CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { + var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; + var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; + var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; + var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var curves = this.curves; + curves[i++] = CurveTimeline.BEZIER; + var x = dfx, y = dfy; + for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + curves[i] = x; + curves[i + 1] = y; + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + x += dfx; + y += dfy; + } + }; + CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { + percent = spine.MathUtils.clamp(percent, 0, 1); + var curves = this.curves; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var type = curves[i]; + if (type == CurveTimeline.LINEAR) + return percent; + if (type == CurveTimeline.STEPPED) + return 0; + i++; + var x = 0; + for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + x = curves[i]; + if (x >= percent) { + var prevX = void 0, prevY = void 0; + if (i == start) { + prevX = 0; + prevY = 0; + } + else { + prevX = curves[i - 2]; + prevY = curves[i - 1]; + } + return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); + } + } + var y = curves[i - 1]; + return y + (1 - y) * (percent - x) / (1 - x); + }; + CurveTimeline.LINEAR = 0; + CurveTimeline.STEPPED = 1; + CurveTimeline.BEZIER = 2; + CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; + return CurveTimeline; + }()); + spine.CurveTimeline = CurveTimeline; + var RotateTimeline = (function (_super) { + __extends(RotateTimeline, _super); + function RotateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount << 1); + } + RotateTimeline.prototype.getPropertyId = function () { + return (TimelineType.rotate << 24) + this.boneIndex; + }; + RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { + frameIndex <<= 1; + this.frames[frameIndex] = time; + this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; + }; + RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { + if (setupPose) + bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; + else { + var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; + r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; + bone.rotation += r_1 * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); + var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); + var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + r = prevRotation + r * percent; + if (setupPose) { + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation = bone.data.rotation + r * alpha; + } + else { + r = bone.data.rotation + r - bone.rotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation += r * alpha; + } + }; + RotateTimeline.ENTRIES = 2; + RotateTimeline.PREV_TIME = -2; + RotateTimeline.PREV_ROTATION = -1; + RotateTimeline.ROTATION = 1; + return RotateTimeline; + }(CurveTimeline)); + spine.RotateTimeline = RotateTimeline; + var TranslateTimeline = (function (_super) { + __extends(TranslateTimeline, _super); + function TranslateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); + } + TranslateTimeline.prototype.getPropertyId = function () { + return (TimelineType.translate << 24) + this.boneIndex; + }; + TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { + frameIndex *= TranslateTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TranslateTimeline.X] = x; + this.frames[frameIndex + TranslateTimeline.Y] = y; + }; + TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { + x = frames[frames.length + TranslateTimeline.PREV_X]; + y = frames[frames.length + TranslateTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); + x = frames[frame + TranslateTimeline.PREV_X]; + y = frames[frame + TranslateTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); + x += (frames[frame + TranslateTimeline.X] - x) * percent; + y += (frames[frame + TranslateTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.x = bone.data.x + x * alpha; + bone.y = bone.data.y + y * alpha; + } + else { + bone.x += (bone.data.x + x - bone.x) * alpha; + bone.y += (bone.data.y + y - bone.y) * alpha; + } + }; + TranslateTimeline.ENTRIES = 3; + TranslateTimeline.PREV_TIME = -3; + TranslateTimeline.PREV_X = -2; + TranslateTimeline.PREV_Y = -1; + TranslateTimeline.X = 1; + TranslateTimeline.Y = 2; + return TranslateTimeline; + }(CurveTimeline)); + spine.TranslateTimeline = TranslateTimeline; + var ScaleTimeline = (function (_super) { + __extends(ScaleTimeline, _super); + function ScaleTimeline(frameCount) { + _super.call(this, frameCount); + } + ScaleTimeline.prototype.getPropertyId = function () { + return (TimelineType.scale << 24) + this.boneIndex; + }; + ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { + x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; + y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; + } + else { + var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); + x = frames[frame + ScaleTimeline.PREV_X]; + y = frames[frame + ScaleTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); + x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; + y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; + } + if (alpha == 1) { + bone.scaleX = x; + bone.scaleY = y; + } + else { + var bx = 0, by = 0; + if (setupPose) { + bx = bone.data.scaleX; + by = bone.data.scaleY; + } + else { + bx = bone.scaleX; + by = bone.scaleY; + } + if (mixingOut) { + x = Math.abs(x) * spine.MathUtils.signum(bx); + y = Math.abs(y) * spine.MathUtils.signum(by); + } + else { + bx = Math.abs(bx) * spine.MathUtils.signum(x); + by = Math.abs(by) * spine.MathUtils.signum(y); + } + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + } + }; + return ScaleTimeline; + }(TranslateTimeline)); + spine.ScaleTimeline = ScaleTimeline; + var ShearTimeline = (function (_super) { + __extends(ShearTimeline, _super); + function ShearTimeline(frameCount) { + _super.call(this, frameCount); + } + ShearTimeline.prototype.getPropertyId = function () { + return (TimelineType.shear << 24) + this.boneIndex; + }; + ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { + x = frames[frames.length + ShearTimeline.PREV_X]; + y = frames[frames.length + ShearTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); + x = frames[frame + ShearTimeline.PREV_X]; + y = frames[frame + ShearTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); + x = x + (frames[frame + ShearTimeline.X] - x) * percent; + y = y + (frames[frame + ShearTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.shearX = bone.data.shearX + x * alpha; + bone.shearY = bone.data.shearY + y * alpha; + } + else { + bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; + bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; + } + }; + return ShearTimeline; + }(TranslateTimeline)); + spine.ShearTimeline = ShearTimeline; + var ColorTimeline = (function (_super) { + __extends(ColorTimeline, _super); + function ColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); + } + ColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.color << 24) + this.slotIndex; + }; + ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { + frameIndex *= ColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + ColorTimeline.R] = r; + this.frames[frameIndex + ColorTimeline.G] = g; + this.frames[frameIndex + ColorTimeline.B] = b; + this.frames[frameIndex + ColorTimeline.A] = a; + }; + ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + slot.color.setFromColor(slot.data.color); + return; + } + var r = 0, g = 0, b = 0, a = 0; + if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + ColorTimeline.PREV_R]; + g = frames[i + ColorTimeline.PREV_G]; + b = frames[i + ColorTimeline.PREV_B]; + a = frames[i + ColorTimeline.PREV_A]; + } + else { + var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); + r = frames[frame + ColorTimeline.PREV_R]; + g = frames[frame + ColorTimeline.PREV_G]; + b = frames[frame + ColorTimeline.PREV_B]; + a = frames[frame + ColorTimeline.PREV_A]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + ColorTimeline.R] - r) * percent; + g += (frames[frame + ColorTimeline.G] - g) * percent; + b += (frames[frame + ColorTimeline.B] - b) * percent; + a += (frames[frame + ColorTimeline.A] - a) * percent; + } + if (alpha == 1) + slot.color.set(r, g, b, a); + else { + var color = slot.color; + if (setupPose) + color.setFromColor(slot.data.color); + color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); + } + }; + ColorTimeline.ENTRIES = 5; + ColorTimeline.PREV_TIME = -5; + ColorTimeline.PREV_R = -4; + ColorTimeline.PREV_G = -3; + ColorTimeline.PREV_B = -2; + ColorTimeline.PREV_A = -1; + ColorTimeline.R = 1; + ColorTimeline.G = 2; + ColorTimeline.B = 3; + ColorTimeline.A = 4; + return ColorTimeline; + }(CurveTimeline)); + spine.ColorTimeline = ColorTimeline; + var TwoColorTimeline = (function (_super) { + __extends(TwoColorTimeline, _super); + function TwoColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); + } + TwoColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.twoColor << 24) + this.slotIndex; + }; + TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { + frameIndex *= TwoColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TwoColorTimeline.R] = r; + this.frames[frameIndex + TwoColorTimeline.G] = g; + this.frames[frameIndex + TwoColorTimeline.B] = b; + this.frames[frameIndex + TwoColorTimeline.A] = a; + this.frames[frameIndex + TwoColorTimeline.R2] = r2; + this.frames[frameIndex + TwoColorTimeline.G2] = g2; + this.frames[frameIndex + TwoColorTimeline.B2] = b2; + }; + TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + slot.color.setFromColor(slot.data.color); + slot.darkColor.setFromColor(slot.data.darkColor); + } + return; + } + var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; + if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + TwoColorTimeline.PREV_R]; + g = frames[i + TwoColorTimeline.PREV_G]; + b = frames[i + TwoColorTimeline.PREV_B]; + a = frames[i + TwoColorTimeline.PREV_A]; + r2 = frames[i + TwoColorTimeline.PREV_R2]; + g2 = frames[i + TwoColorTimeline.PREV_G2]; + b2 = frames[i + TwoColorTimeline.PREV_B2]; + } + else { + var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); + r = frames[frame + TwoColorTimeline.PREV_R]; + g = frames[frame + TwoColorTimeline.PREV_G]; + b = frames[frame + TwoColorTimeline.PREV_B]; + a = frames[frame + TwoColorTimeline.PREV_A]; + r2 = frames[frame + TwoColorTimeline.PREV_R2]; + g2 = frames[frame + TwoColorTimeline.PREV_G2]; + b2 = frames[frame + TwoColorTimeline.PREV_B2]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + TwoColorTimeline.R] - r) * percent; + g += (frames[frame + TwoColorTimeline.G] - g) * percent; + b += (frames[frame + TwoColorTimeline.B] - b) * percent; + a += (frames[frame + TwoColorTimeline.A] - a) * percent; + r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; + g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; + b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; + } + if (alpha == 1) { + slot.color.set(r, g, b, a); + slot.darkColor.set(r2, g2, b2, 1); + } + else { + var light = slot.color; + var dark = slot.darkColor; + if (setupPose) { + light.setFromColor(slot.data.color); + dark.setFromColor(slot.data.darkColor); + } + light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); + dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); + } + }; + TwoColorTimeline.ENTRIES = 8; + TwoColorTimeline.PREV_TIME = -8; + TwoColorTimeline.PREV_R = -7; + TwoColorTimeline.PREV_G = -6; + TwoColorTimeline.PREV_B = -5; + TwoColorTimeline.PREV_A = -4; + TwoColorTimeline.PREV_R2 = -3; + TwoColorTimeline.PREV_G2 = -2; + TwoColorTimeline.PREV_B2 = -1; + TwoColorTimeline.R = 1; + TwoColorTimeline.G = 2; + TwoColorTimeline.B = 3; + TwoColorTimeline.A = 4; + TwoColorTimeline.R2 = 5; + TwoColorTimeline.G2 = 6; + TwoColorTimeline.B2 = 7; + return TwoColorTimeline; + }(CurveTimeline)); + spine.TwoColorTimeline = TwoColorTimeline; + var AttachmentTimeline = (function () { + function AttachmentTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.attachmentNames = new Array(frameCount); + } + AttachmentTimeline.prototype.getPropertyId = function () { + return (TimelineType.attachment << 24) + this.slotIndex; + }; + AttachmentTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { + this.frames[frameIndex] = time; + this.attachmentNames[frameIndex] = attachmentName; + }; + AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + if (mixingOut && setupPose) { + var attachmentName_1 = slot.data.attachmentName; + slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + var attachmentName_2 = slot.data.attachmentName; + slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); + } + return; + } + var frameIndex = 0; + if (time >= frames[frames.length - 1]) + frameIndex = frames.length - 1; + else + frameIndex = Animation.binarySearch(frames, time, 1) - 1; + var attachmentName = this.attachmentNames[frameIndex]; + skeleton.slots[this.slotIndex] + .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); + }; + return AttachmentTimeline; + }()); + spine.AttachmentTimeline = AttachmentTimeline; + var DeformTimeline = (function (_super) { + __extends(DeformTimeline, _super); + function DeformTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount); + this.frameVertices = new Array(frameCount); + } + DeformTimeline.prototype.getPropertyId = function () { + return (TimelineType.deform << 24) + this.slotIndex; + }; + DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { + this.frames[frameIndex] = time; + this.frameVertices[frameIndex] = vertices; + }; + DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var slotAttachment = slot.getAttachment(); + if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) + return; + var frames = this.frames; + var verticesArray = slot.attachmentVertices; + if (time < frames[0]) { + if (setupPose) + spine.Utils.setArraySize(verticesArray, 0); + return; + } + var frameVertices = this.frameVertices; + var vertexCount = frameVertices[0].length; + if (verticesArray.length != vertexCount && !setupPose) + alpha = 1; + var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); + if (time >= frames[frames.length - 1]) { + var lastVertices = frameVertices[frames.length - 1]; + if (alpha == 1) { + spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var setup = setupVertices[i]; + vertices[i] = setup + (lastVertices[i] - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] = lastVertices[i] * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] += (lastVertices[i] - vertices[i]) * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time); + var prevVertices = frameVertices[frame - 1]; + var nextVertices = frameVertices[frame]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); + if (alpha == 1) { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = prev + (nextVertices[i] - prev) * percent; + } + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i], setup = setupVertices[i]; + vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; + } + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; + } + } + }; + return DeformTimeline; + }(CurveTimeline)); + spine.DeformTimeline = DeformTimeline; + var EventTimeline = (function () { + function EventTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.events = new Array(frameCount); + } + EventTimeline.prototype.getPropertyId = function () { + return TimelineType.event << 24; + }; + EventTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + EventTimeline.prototype.setFrame = function (frameIndex, event) { + this.frames[frameIndex] = event.time; + this.events[frameIndex] = event; + }; + EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + if (firedEvents == null) + return; + var frames = this.frames; + var frameCount = this.frames.length; + if (lastTime > time) { + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); + lastTime = -1; + } + else if (lastTime >= frames[frameCount - 1]) + return; + if (time < frames[0]) + return; + var frame = 0; + if (lastTime < frames[0]) + frame = 0; + else { + frame = Animation.binarySearch(frames, lastTime); + var frameTime = frames[frame]; + while (frame > 0) { + if (frames[frame - 1] != frameTime) + break; + frame--; + } + } + for (; frame < frameCount && time >= frames[frame]; frame++) + firedEvents.push(this.events[frame]); + }; + return EventTimeline; + }()); + spine.EventTimeline = EventTimeline; + var DrawOrderTimeline = (function () { + function DrawOrderTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.drawOrders = new Array(frameCount); + } + DrawOrderTimeline.prototype.getPropertyId = function () { + return TimelineType.drawOrder << 24; + }; + DrawOrderTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { + this.frames[frameIndex] = time; + this.drawOrders[frameIndex] = drawOrder; + }; + DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var drawOrder = skeleton.drawOrder; + var slots = skeleton.slots; + if (mixingOut && setupPose) { + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frame = 0; + if (time >= frames[frames.length - 1]) + frame = frames.length - 1; + else + frame = Animation.binarySearch(frames, time) - 1; + var drawOrderToSetupIndex = this.drawOrders[frame]; + if (drawOrderToSetupIndex == null) + spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); + else { + for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) + drawOrder[i] = slots[drawOrderToSetupIndex[i]]; + } + }; + return DrawOrderTimeline; + }()); + spine.DrawOrderTimeline = DrawOrderTimeline; + var IkConstraintTimeline = (function (_super) { + __extends(IkConstraintTimeline, _super); + function IkConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); + } + IkConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; + }; + IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { + frameIndex *= IkConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; + this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; + }; + IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.mix = constraint.data.mix; + constraint.bendDirection = constraint.data.bendDirection; + } + return; + } + if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { + if (setupPose) { + constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection + : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + return; + } + var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); + var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); + if (setupPose) { + constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + }; + IkConstraintTimeline.ENTRIES = 3; + IkConstraintTimeline.PREV_TIME = -3; + IkConstraintTimeline.PREV_MIX = -2; + IkConstraintTimeline.PREV_BEND_DIRECTION = -1; + IkConstraintTimeline.MIX = 1; + IkConstraintTimeline.BEND_DIRECTION = 2; + return IkConstraintTimeline; + }(CurveTimeline)); + spine.IkConstraintTimeline = IkConstraintTimeline; + var TransformConstraintTimeline = (function (_super) { + __extends(TransformConstraintTimeline, _super); + function TransformConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); + } + TransformConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; + }; + TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { + frameIndex *= TransformConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; + this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; + this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; + }; + TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.rotateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + return; + } + var rotate = 0, translate = 0, scale = 0, shear = 0; + if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { + var i = frames.length; + rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; + } + else { + var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); + rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; + scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; + shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; + } + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; + constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; + constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; + constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + constraint.scaleMix += (scale - constraint.scaleMix) * alpha; + constraint.shearMix += (shear - constraint.shearMix) * alpha; + } + }; + TransformConstraintTimeline.ENTRIES = 5; + TransformConstraintTimeline.PREV_TIME = -5; + TransformConstraintTimeline.PREV_ROTATE = -4; + TransformConstraintTimeline.PREV_TRANSLATE = -3; + TransformConstraintTimeline.PREV_SCALE = -2; + TransformConstraintTimeline.PREV_SHEAR = -1; + TransformConstraintTimeline.ROTATE = 1; + TransformConstraintTimeline.TRANSLATE = 2; + TransformConstraintTimeline.SCALE = 3; + TransformConstraintTimeline.SHEAR = 4; + return TransformConstraintTimeline; + }(CurveTimeline)); + spine.TransformConstraintTimeline = TransformConstraintTimeline; + var PathConstraintPositionTimeline = (function (_super) { + __extends(PathConstraintPositionTimeline, _super); + function PathConstraintPositionTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); + } + PathConstraintPositionTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; + }; + PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { + frameIndex *= PathConstraintPositionTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; + }; + PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.position = constraint.data.position; + return; + } + var position = 0; + if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) + position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); + position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); + position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; + } + if (setupPose) + constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; + else + constraint.position += (position - constraint.position) * alpha; + }; + PathConstraintPositionTimeline.ENTRIES = 2; + PathConstraintPositionTimeline.PREV_TIME = -2; + PathConstraintPositionTimeline.PREV_VALUE = -1; + PathConstraintPositionTimeline.VALUE = 1; + return PathConstraintPositionTimeline; + }(CurveTimeline)); + spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; + var PathConstraintSpacingTimeline = (function (_super) { + __extends(PathConstraintSpacingTimeline, _super); + function PathConstraintSpacingTimeline(frameCount) { + _super.call(this, frameCount); + } + PathConstraintSpacingTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; + }; + PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.spacing = constraint.data.spacing; + return; + } + var spacing = 0; + if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) + spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); + spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); + spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; + } + if (setupPose) + constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; + else + constraint.spacing += (spacing - constraint.spacing) * alpha; + }; + return PathConstraintSpacingTimeline; + }(PathConstraintPositionTimeline)); + spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; + var PathConstraintMixTimeline = (function (_super) { + __extends(PathConstraintMixTimeline, _super); + function PathConstraintMixTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); + } + PathConstraintMixTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; + }; + PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { + frameIndex *= PathConstraintMixTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; + }; + PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } + return; + } + var rotate = 0, translate = 0; + if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { + rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; + } + else { + var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); + rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; + } + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; + constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + } + }; + PathConstraintMixTimeline.ENTRIES = 3; + PathConstraintMixTimeline.PREV_TIME = -3; + PathConstraintMixTimeline.PREV_ROTATE = -2; + PathConstraintMixTimeline.PREV_TRANSLATE = -1; + PathConstraintMixTimeline.ROTATE = 1; + PathConstraintMixTimeline.TRANSLATE = 2; + return PathConstraintMixTimeline; + }(CurveTimeline)); + spine.PathConstraintMixTimeline = PathConstraintMixTimeline; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationState = (function () { - function AnimationState(data) { - this.tracks = new Array(); - this.events = new Array(); - this.listeners = new Array(); - this.queue = new EventQueue(this); - this.propertyIDs = new spine.IntSet(); - this.mixingTo = new Array(); - this.animationsChanged = false; - this.timeScale = 1; - this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); - this.data = data; - } - AnimationState.prototype.update = function (delta) { - delta *= this.timeScale; - var tracks = this.tracks; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null) - continue; - current.animationLast = current.nextAnimationLast; - current.trackLast = current.nextTrackLast; - var currentDelta = delta * current.timeScale; - if (current.delay > 0) { - current.delay -= currentDelta; - if (current.delay > 0) - continue; - currentDelta = -current.delay; - current.delay = 0; - } - var next = current.next; - if (next != null) { - var nextTime = current.trackLast - next.delay; - if (nextTime >= 0) { - next.delay = 0; - next.trackTime = nextTime + delta * next.timeScale; - current.trackTime += currentDelta; - this.setCurrent(i, next, true); - while (next.mixingFrom != null) { - next.mixTime += currentDelta; - next = next.mixingFrom; - } - continue; - } - } - else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { - tracks[i] = null; - this.queue.end(current); - this.disposeNext(current); - continue; - } - if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { - var from = current.mixingFrom; - current.mixingFrom = null; - while (from != null) { - this.queue.end(from); - from = from.mixingFrom; - } - } - current.trackTime += currentDelta; - } - this.queue.drain(); - }; - AnimationState.prototype.updateMixingFrom = function (to, delta) { - var from = to.mixingFrom; - if (from == null) - return true; - var finished = this.updateMixingFrom(from, delta); - if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { - if (from.totalAlpha == 0) { - to.mixingFrom = from.mixingFrom; - to.interruptAlpha = from.interruptAlpha; - this.queue.end(from); - } - return finished; - } - from.animationLast = from.nextAnimationLast; - from.trackLast = from.nextTrackLast; - from.trackTime += delta * from.timeScale; - to.mixTime += delta * to.timeScale; - return false; - }; - AnimationState.prototype.apply = function (skeleton) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (this.animationsChanged) - this._animationsChanged(); - var events = this.events; - var tracks = this.tracks; - var applied = false; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null || current.delay > 0) - continue; - applied = true; - var mix = current.alpha; - if (current.mixingFrom != null) - mix *= this.applyMixingFrom(current, skeleton); - else if (current.trackTime >= current.trackEnd && current.next == null) - mix = 0; - var animationLast = current.animationLast, animationTime = current.getAnimationTime(); - var timelineCount = current.animation.timelines.length; - var timelines = current.animation.timelines; - if (mix == 1) { - for (var ii = 0; ii < timelineCount; ii++) - timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); - } - else { - var timelineData = current.timelineData; - var firstFrame = current.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = current.timelinesRotation; - for (var ii = 0; ii < timelineCount; ii++) { - var timeline = timelines[ii]; - if (timeline instanceof spine.RotateTimeline) { - this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); - } - else - timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); - } - } - this.queueEvents(current, animationTime); - events.length = 0; - current.nextAnimationLast = animationTime; - current.nextTrackLast = current.trackTime; - } - this.queue.drain(); - return applied; - }; - AnimationState.prototype.applyMixingFrom = function (to, skeleton) { - var from = to.mixingFrom; - if (from.mixingFrom != null) - this.applyMixingFrom(from, skeleton); - var mix = 0; - if (to.mixDuration == 0) - mix = 1; - else { - mix = to.mixTime / to.mixDuration; - if (mix > 1) - mix = 1; - } - var events = mix < from.eventThreshold ? this.events : null; - var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; - var animationLast = from.animationLast, animationTime = from.getAnimationTime(); - var timelineCount = from.animation.timelines.length; - var timelines = from.animation.timelines; - var timelineData = from.timelineData; - var timelineDipMix = from.timelineDipMix; - var firstFrame = from.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = from.timelinesRotation; - var first = false; - var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; - from.totalAlpha = 0; - for (var i = 0; i < timelineCount; i++) { - var timeline = timelines[i]; - switch (timelineData[i]) { - case AnimationState.SUBSEQUENT: - first = false; - alpha = alphaMix; - break; - case AnimationState.FIRST: - first = true; - alpha = alphaMix; - break; - case AnimationState.DIP: - first = true; - alpha = alphaDip; - break; - default: - first = true; - alpha = alphaDip; - var dipMix = timelineDipMix[i]; - alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); - break; - } - from.totalAlpha += alpha; - if (timeline instanceof spine.RotateTimeline) - this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); - else { - if (!first) { - if (!attachments && timeline instanceof spine.AttachmentTimeline) - continue; - if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) - continue; - } - timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); - } - } - if (to.mixDuration > 0) - this.queueEvents(from, animationTime); - this.events.length = 0; - from.nextAnimationLast = animationTime; - from.nextTrackLast = from.trackTime; - return mix; - }; - AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { - if (firstFrame) - timelinesRotation[i] = 0; - if (alpha == 1) { - timeline.apply(skeleton, 0, time, null, 1, setupPose, false); - return; - } - var rotateTimeline = timeline; - var frames = rotateTimeline.frames; - var bone = skeleton.bones[rotateTimeline.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - var r2 = 0; - if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) - r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; - else { - var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); - var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); - r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - r2 = prevRotation + r2 * percent + bone.data.rotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - } - var r1 = setupPose ? bone.data.rotation : bone.rotation; - var total = 0, diff = r2 - r1; - if (diff == 0) { - total = timelinesRotation[i]; - } - else { - diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; - var lastTotal = 0, lastDiff = 0; - if (firstFrame) { - lastTotal = 0; - lastDiff = diff; - } - else { - lastTotal = timelinesRotation[i]; - lastDiff = timelinesRotation[i + 1]; - } - var current = diff > 0, dir = lastTotal >= 0; - if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { - if (Math.abs(lastTotal) > 180) - lastTotal += 360 * spine.MathUtils.signum(lastTotal); - dir = current; - } - total = diff + lastTotal - lastTotal % 360; - if (dir != current) - total += 360 * spine.MathUtils.signum(lastTotal); - timelinesRotation[i] = total; - } - timelinesRotation[i + 1] = diff; - r1 += total * alpha; - bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; - }; - AnimationState.prototype.queueEvents = function (entry, animationTime) { - var animationStart = entry.animationStart, animationEnd = entry.animationEnd; - var duration = animationEnd - animationStart; - var trackLastWrapped = entry.trackLast % duration; - var events = this.events; - var i = 0, n = events.length; - for (; i < n; i++) { - var event_1 = events[i]; - if (event_1.time < trackLastWrapped) - break; - if (event_1.time > animationEnd) - continue; - this.queue.event(entry, event_1); - } - if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) - : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { - this.queue.complete(entry); - } - for (; i < n; i++) { - var event_2 = events[i]; - if (event_2.time < animationStart) - continue; - this.queue.event(entry, events[i]); - } - }; - AnimationState.prototype.clearTracks = function () { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) - this.clearTrack(i); - this.tracks.length = 0; - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.clearTrack = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return; - var current = this.tracks[trackIndex]; - if (current == null) - return; - this.queue.end(current); - this.disposeNext(current); - var entry = current; - while (true) { - var from = entry.mixingFrom; - if (from == null) - break; - this.queue.end(from); - entry.mixingFrom = null; - entry = from; - } - this.tracks[current.trackIndex] = null; - this.queue.drain(); - }; - AnimationState.prototype.setCurrent = function (index, current, interrupt) { - var from = this.expandToIndex(index); - this.tracks[index] = current; - if (from != null) { - if (interrupt) - this.queue.interrupt(from); - current.mixingFrom = from; - current.mixTime = 0; - if (from.mixingFrom != null && from.mixDuration > 0) - current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); - from.timelinesRotation.length = 0; - } - this.queue.start(current); - }; - AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.setAnimationWith(trackIndex, animation, loop); - }; - AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { - if (animation == null) - throw new Error("animation cannot be null."); - var interrupt = true; - var current = this.expandToIndex(trackIndex); - if (current != null) { - if (current.nextTrackLast == -1) { - this.tracks[trackIndex] = current.mixingFrom; - this.queue.interrupt(current); - this.queue.end(current); - this.disposeNext(current); - current = current.mixingFrom; - interrupt = false; - } - else - this.disposeNext(current); - } - var entry = this.trackEntry(trackIndex, animation, loop, current); - this.setCurrent(trackIndex, entry, interrupt); - this.queue.drain(); - return entry; - }; - AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.addAnimationWith(trackIndex, animation, loop, delay); - }; - AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { - if (animation == null) - throw new Error("animation cannot be null."); - var last = this.expandToIndex(trackIndex); - if (last != null) { - while (last.next != null) - last = last.next; - } - var entry = this.trackEntry(trackIndex, animation, loop, last); - if (last == null) { - this.setCurrent(trackIndex, entry, true); - this.queue.drain(); - } - else { - last.next = entry; - if (delay <= 0) { - var duration = last.animationEnd - last.animationStart; - if (duration != 0) - delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); - else - delay = 0; - } - } - entry.delay = delay; - return entry; - }; - AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { - var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { - if (delay <= 0) - delay -= mixDuration; - var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.setEmptyAnimations = function (mixDuration) { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var current = this.tracks[i]; - if (current != null) - this.setEmptyAnimation(current.trackIndex, mixDuration); - } - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.expandToIndex = function (index) { - if (index < this.tracks.length) - return this.tracks[index]; - spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); - this.tracks.length = index + 1; - return null; - }; - AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { - var entry = this.trackEntryPool.obtain(); - entry.trackIndex = trackIndex; - entry.animation = animation; - entry.loop = loop; - entry.eventThreshold = 0; - entry.attachmentThreshold = 0; - entry.drawOrderThreshold = 0; - entry.animationStart = 0; - entry.animationEnd = animation.duration; - entry.animationLast = -1; - entry.nextAnimationLast = -1; - entry.delay = 0; - entry.trackTime = 0; - entry.trackLast = -1; - entry.nextTrackLast = -1; - entry.trackEnd = Number.MAX_VALUE; - entry.timeScale = 1; - entry.alpha = 1; - entry.interruptAlpha = 1; - entry.mixTime = 0; - entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); - return entry; - }; - AnimationState.prototype.disposeNext = function (entry) { - var next = entry.next; - while (next != null) { - this.queue.dispose(next); - next = next.next; - } - entry.next = null; - }; - AnimationState.prototype._animationsChanged = function () { - this.animationsChanged = false; - var propertyIDs = this.propertyIDs; - propertyIDs.clear(); - var mixingTo = this.mixingTo; - var lastEntry = null; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var entry = this.tracks[i]; - if (entry != null) { - entry.setTimelineData(lastEntry, mixingTo, propertyIDs); - lastEntry = entry; - } - } - }; - AnimationState.prototype.getCurrent = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return null; - return this.tracks[trackIndex]; - }; - AnimationState.prototype.addListener = function (listener) { - if (listener == null) - throw new Error("listener cannot be null."); - this.listeners.push(listener); - }; - AnimationState.prototype.removeListener = function (listener) { - var index = this.listeners.indexOf(listener); - if (index >= 0) - this.listeners.splice(index, 1); - }; - AnimationState.prototype.clearListeners = function () { - this.listeners.length = 0; - }; - AnimationState.prototype.clearListenerNotifications = function () { - this.queue.clear(); - }; - AnimationState.emptyAnimation = new spine.Animation("", [], 0); - AnimationState.SUBSEQUENT = 0; - AnimationState.FIRST = 1; - AnimationState.DIP = 2; - AnimationState.DIP_MIX = 3; - return AnimationState; - }()); - spine.AnimationState = AnimationState; - var TrackEntry = (function () { - function TrackEntry() { - this.timelineData = new Array(); - this.timelineDipMix = new Array(); - this.timelinesRotation = new Array(); - } - TrackEntry.prototype.reset = function () { - this.next = null; - this.mixingFrom = null; - this.animation = null; - this.listener = null; - this.timelineData.length = 0; - this.timelineDipMix.length = 0; - this.timelinesRotation.length = 0; - }; - TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { - if (to != null) - mixingToArray.push(to); - var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; - if (to != null) - mixingToArray.pop(); - var mixingTo = mixingToArray; - var mixingToLast = mixingToArray.length - 1; - var timelines = this.animation.timelines; - var timelinesCount = this.animation.timelines.length; - var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); - this.timelineDipMix.length = 0; - var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); - outer: for (var i = 0; i < timelinesCount; i++) { - var id = timelines[i].getPropertyId(); - if (!propertyIDs.add(id)) - timelineData[i] = AnimationState.SUBSEQUENT; - else if (to == null || !to.hasTimeline(id)) - timelineData[i] = AnimationState.FIRST; - else { - for (var ii = mixingToLast; ii >= 0; ii--) { - var entry = mixingTo[ii]; - if (!entry.hasTimeline(id)) { - if (entry.mixDuration > 0) { - timelineData[i] = AnimationState.DIP_MIX; - timelineDipMix[i] = entry; - continue outer; - } - } - } - timelineData[i] = AnimationState.DIP; - } - } - return lastEntry; - }; - TrackEntry.prototype.hasTimeline = function (id) { - var timelines = this.animation.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - if (timelines[i].getPropertyId() == id) - return true; - return false; - }; - TrackEntry.prototype.getAnimationTime = function () { - if (this.loop) { - var duration = this.animationEnd - this.animationStart; - if (duration == 0) - return this.animationStart; - return (this.trackTime % duration) + this.animationStart; - } - return Math.min(this.trackTime + this.animationStart, this.animationEnd); - }; - TrackEntry.prototype.setAnimationLast = function (animationLast) { - this.animationLast = animationLast; - this.nextAnimationLast = animationLast; - }; - TrackEntry.prototype.isComplete = function () { - return this.trackTime >= this.animationEnd - this.animationStart; - }; - TrackEntry.prototype.resetRotationDirections = function () { - this.timelinesRotation.length = 0; - }; - return TrackEntry; - }()); - spine.TrackEntry = TrackEntry; - var EventQueue = (function () { - function EventQueue(animState) { - this.objects = []; - this.drainDisabled = false; - this.animState = animState; - } - EventQueue.prototype.start = function (entry) { - this.objects.push(EventType.start); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.interrupt = function (entry) { - this.objects.push(EventType.interrupt); - this.objects.push(entry); - }; - EventQueue.prototype.end = function (entry) { - this.objects.push(EventType.end); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.dispose = function (entry) { - this.objects.push(EventType.dispose); - this.objects.push(entry); - }; - EventQueue.prototype.complete = function (entry) { - this.objects.push(EventType.complete); - this.objects.push(entry); - }; - EventQueue.prototype.event = function (entry, event) { - this.objects.push(EventType.event); - this.objects.push(entry); - this.objects.push(event); - }; - EventQueue.prototype.drain = function () { - if (this.drainDisabled) - return; - this.drainDisabled = true; - var objects = this.objects; - var listeners = this.animState.listeners; - for (var i = 0; i < objects.length; i += 2) { - var type = objects[i]; - var entry = objects[i + 1]; - switch (type) { - case EventType.start: - if (entry.listener != null && entry.listener.start) - entry.listener.start(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].start) - listeners[ii].start(entry); - break; - case EventType.interrupt: - if (entry.listener != null && entry.listener.interrupt) - entry.listener.interrupt(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].interrupt) - listeners[ii].interrupt(entry); - break; - case EventType.end: - if (entry.listener != null && entry.listener.end) - entry.listener.end(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].end) - listeners[ii].end(entry); - case EventType.dispose: - if (entry.listener != null && entry.listener.dispose) - entry.listener.dispose(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].dispose) - listeners[ii].dispose(entry); - this.animState.trackEntryPool.free(entry); - break; - case EventType.complete: - if (entry.listener != null && entry.listener.complete) - entry.listener.complete(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].complete) - listeners[ii].complete(entry); - break; - case EventType.event: - var event_3 = objects[i++ + 2]; - if (entry.listener != null && entry.listener.event) - entry.listener.event(entry, event_3); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].event) - listeners[ii].event(entry, event_3); - break; - } - } - this.clear(); - this.drainDisabled = false; - }; - EventQueue.prototype.clear = function () { - this.objects.length = 0; - }; - return EventQueue; - }()); - spine.EventQueue = EventQueue; - (function (EventType) { - EventType[EventType["start"] = 0] = "start"; - EventType[EventType["interrupt"] = 1] = "interrupt"; - EventType[EventType["end"] = 2] = "end"; - EventType[EventType["dispose"] = 3] = "dispose"; - EventType[EventType["complete"] = 4] = "complete"; - EventType[EventType["event"] = 5] = "event"; - })(spine.EventType || (spine.EventType = {})); - var EventType = spine.EventType; - var AnimationStateAdapter2 = (function () { - function AnimationStateAdapter2() { - } - AnimationStateAdapter2.prototype.start = function (entry) { - }; - AnimationStateAdapter2.prototype.interrupt = function (entry) { - }; - AnimationStateAdapter2.prototype.end = function (entry) { - }; - AnimationStateAdapter2.prototype.dispose = function (entry) { - }; - AnimationStateAdapter2.prototype.complete = function (entry) { - }; - AnimationStateAdapter2.prototype.event = function (entry, event) { - }; - return AnimationStateAdapter2; - }()); - spine.AnimationStateAdapter2 = AnimationStateAdapter2; + var AnimationState = (function () { + function AnimationState(data) { + this.tracks = new Array(); + this.events = new Array(); + this.listeners = new Array(); + this.queue = new EventQueue(this); + this.propertyIDs = new spine.IntSet(); + this.mixingTo = new Array(); + this.animationsChanged = false; + this.timeScale = 1; + this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); + this.data = data; + } + AnimationState.prototype.update = function (delta) { + delta *= this.timeScale; + var tracks = this.tracks; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null) + continue; + current.animationLast = current.nextAnimationLast; + current.trackLast = current.nextTrackLast; + var currentDelta = delta * current.timeScale; + if (current.delay > 0) { + current.delay -= currentDelta; + if (current.delay > 0) + continue; + currentDelta = -current.delay; + current.delay = 0; + } + var next = current.next; + if (next != null) { + var nextTime = current.trackLast - next.delay; + if (nextTime >= 0) { + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; + this.setCurrent(i, next, true); + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + } + else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; + } + if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { + var from = current.mixingFrom; + current.mixingFrom = null; + while (from != null) { + this.queue.end(from); + from = from.mixingFrom; + } + } + current.trackTime += currentDelta; + } + this.queue.drain(); + }; + AnimationState.prototype.updateMixingFrom = function (to, delta) { + var from = to.mixingFrom; + if (from == null) + return true; + var finished = this.updateMixingFrom(from, delta); + if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { + if (from.totalAlpha == 0) { + to.mixingFrom = from.mixingFrom; + to.interruptAlpha = from.interruptAlpha; + this.queue.end(from); + } + return finished; + } + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + from.trackTime += delta * from.timeScale; + to.mixTime += delta * to.timeScale; + return false; + }; + AnimationState.prototype.apply = function (skeleton) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (this.animationsChanged) + this._animationsChanged(); + var events = this.events; + var tracks = this.tracks; + var applied = false; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null || current.delay > 0) + continue; + applied = true; + var mix = current.alpha; + if (current.mixingFrom != null) + mix *= this.applyMixingFrom(current, skeleton); + else if (current.trackTime >= current.trackEnd && current.next == null) + mix = 0; + var animationLast = current.animationLast, animationTime = current.getAnimationTime(); + var timelineCount = current.animation.timelines.length; + var timelines = current.animation.timelines; + if (mix == 1) { + for (var ii = 0; ii < timelineCount; ii++) + timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); + } + else { + var timelineData = current.timelineData; + var firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = current.timelinesRotation; + for (var ii = 0; ii < timelineCount; ii++) { + var timeline = timelines[ii]; + if (timeline instanceof spine.RotateTimeline) { + this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); + } + else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); + } + } + this.queueEvents(current, animationTime); + events.length = 0; + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; + } + this.queue.drain(); + return applied; + }; + AnimationState.prototype.applyMixingFrom = function (to, skeleton) { + var from = to.mixingFrom; + if (from.mixingFrom != null) + this.applyMixingFrom(from, skeleton); + var mix = 0; + if (to.mixDuration == 0) + mix = 1; + else { + mix = to.mixTime / to.mixDuration; + if (mix > 1) + mix = 1; + } + var events = mix < from.eventThreshold ? this.events : null; + var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; + var animationLast = from.animationLast, animationTime = from.getAnimationTime(); + var timelineCount = from.animation.timelines.length; + var timelines = from.animation.timelines; + var timelineData = from.timelineData; + var timelineDipMix = from.timelineDipMix; + var firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = from.timelinesRotation; + var first = false; + var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; + from.totalAlpha = 0; + for (var i = 0; i < timelineCount; i++) { + var timeline = timelines[i]; + switch (timelineData[i]) { + case AnimationState.SUBSEQUENT: + first = false; + alpha = alphaMix; + break; + case AnimationState.FIRST: + first = true; + alpha = alphaMix; + break; + case AnimationState.DIP: + first = true; + alpha = alphaDip; + break; + default: + first = true; + alpha = alphaDip; + var dipMix = timelineDipMix[i]; + alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); + break; + } + from.totalAlpha += alpha; + if (timeline instanceof spine.RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); + else { + if (!first) { + if (!attachments && timeline instanceof spine.AttachmentTimeline) + continue; + if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) + continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); + } + } + if (to.mixDuration > 0) + this.queueEvents(from, animationTime); + this.events.length = 0; + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + }; + AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { + if (firstFrame) + timelinesRotation[i] = 0; + if (alpha == 1) { + timeline.apply(skeleton, 0, time, null, 1, setupPose, false); + return; + } + var rotateTimeline = timeline; + var frames = rotateTimeline.frames; + var bone = skeleton.bones[rotateTimeline.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + var r2 = 0; + if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) + r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; + else { + var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); + var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); + r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + r2 = prevRotation + r2 * percent + bone.data.rotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + } + var r1 = setupPose ? bone.data.rotation : bone.rotation; + var total = 0, diff = r2 - r1; + if (diff == 0) { + total = timelinesRotation[i]; + } + else { + diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; + var lastTotal = 0, lastDiff = 0; + if (firstFrame) { + lastTotal = 0; + lastDiff = diff; + } + else { + lastTotal = timelinesRotation[i]; + lastDiff = timelinesRotation[i + 1]; + } + var current = diff > 0, dir = lastTotal >= 0; + if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { + if (Math.abs(lastTotal) > 180) + lastTotal += 360 * spine.MathUtils.signum(lastTotal); + dir = current; + } + total = diff + lastTotal - lastTotal % 360; + if (dir != current) + total += 360 * spine.MathUtils.signum(lastTotal); + timelinesRotation[i] = total; + } + timelinesRotation[i + 1] = diff; + r1 += total * alpha; + bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; + }; + AnimationState.prototype.queueEvents = function (entry, animationTime) { + var animationStart = entry.animationStart, animationEnd = entry.animationEnd; + var duration = animationEnd - animationStart; + var trackLastWrapped = entry.trackLast % duration; + var events = this.events; + var i = 0, n = events.length; + for (; i < n; i++) { + var event_1 = events[i]; + if (event_1.time < trackLastWrapped) + break; + if (event_1.time > animationEnd) + continue; + this.queue.event(entry, event_1); + } + if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) + : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { + this.queue.complete(entry); + } + for (; i < n; i++) { + var event_2 = events[i]; + if (event_2.time < animationStart) + continue; + this.queue.event(entry, events[i]); + } + }; + AnimationState.prototype.clearTracks = function () { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) + this.clearTrack(i); + this.tracks.length = 0; + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.clearTrack = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return; + var current = this.tracks[trackIndex]; + if (current == null) + return; + this.queue.end(current); + this.disposeNext(current); + var entry = current; + while (true) { + var from = entry.mixingFrom; + if (from == null) + break; + this.queue.end(from); + entry.mixingFrom = null; + entry = from; + } + this.tracks[current.trackIndex] = null; + this.queue.drain(); + }; + AnimationState.prototype.setCurrent = function (index, current, interrupt) { + var from = this.expandToIndex(index); + this.tracks[index] = current; + if (from != null) { + if (interrupt) + this.queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + if (from.mixingFrom != null && from.mixDuration > 0) + current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); + from.timelinesRotation.length = 0; + } + this.queue.start(current); + }; + AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.setAnimationWith(trackIndex, animation, loop); + }; + AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { + if (animation == null) + throw new Error("animation cannot be null."); + var interrupt = true; + var current = this.expandToIndex(trackIndex); + if (current != null) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = current.mixingFrom; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = current.mixingFrom; + interrupt = false; + } + else + this.disposeNext(current); + } + var entry = this.trackEntry(trackIndex, animation, loop, current); + this.setCurrent(trackIndex, entry, interrupt); + this.queue.drain(); + return entry; + }; + AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.addAnimationWith(trackIndex, animation, loop, delay); + }; + AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { + if (animation == null) + throw new Error("animation cannot be null."); + var last = this.expandToIndex(trackIndex); + if (last != null) { + while (last.next != null) + last = last.next; + } + var entry = this.trackEntry(trackIndex, animation, loop, last); + if (last == null) { + this.setCurrent(trackIndex, entry, true); + this.queue.drain(); + } + else { + last.next = entry; + if (delay <= 0) { + var duration = last.animationEnd - last.animationStart; + if (duration != 0) + delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); + else + delay = 0; + } + } + entry.delay = delay; + return entry; + }; + AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { + var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { + if (delay <= 0) + delay -= mixDuration; + var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.setEmptyAnimations = function (mixDuration) { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var current = this.tracks[i]; + if (current != null) + this.setEmptyAnimation(current.trackIndex, mixDuration); + } + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.expandToIndex = function (index) { + if (index < this.tracks.length) + return this.tracks[index]; + spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); + this.tracks.length = index + 1; + return null; + }; + AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { + var entry = this.trackEntryPool.obtain(); + entry.trackIndex = trackIndex; + entry.animation = animation; + entry.loop = loop; + entry.eventThreshold = 0; + entry.attachmentThreshold = 0; + entry.drawOrderThreshold = 0; + entry.animationStart = 0; + entry.animationEnd = animation.duration; + entry.animationLast = -1; + entry.nextAnimationLast = -1; + entry.delay = 0; + entry.trackTime = 0; + entry.trackLast = -1; + entry.nextTrackLast = -1; + entry.trackEnd = Number.MAX_VALUE; + entry.timeScale = 1; + entry.alpha = 1; + entry.interruptAlpha = 1; + entry.mixTime = 0; + entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); + return entry; + }; + AnimationState.prototype.disposeNext = function (entry) { + var next = entry.next; + while (next != null) { + this.queue.dispose(next); + next = next.next; + } + entry.next = null; + }; + AnimationState.prototype._animationsChanged = function () { + this.animationsChanged = false; + var propertyIDs = this.propertyIDs; + propertyIDs.clear(); + var mixingTo = this.mixingTo; + var lastEntry = null; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var entry = this.tracks[i]; + if (entry != null) { + entry.setTimelineData(lastEntry, mixingTo, propertyIDs); + lastEntry = entry; + } + } + }; + AnimationState.prototype.getCurrent = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return null; + return this.tracks[trackIndex]; + }; + AnimationState.prototype.addListener = function (listener) { + if (listener == null) + throw new Error("listener cannot be null."); + this.listeners.push(listener); + }; + AnimationState.prototype.removeListener = function (listener) { + var index = this.listeners.indexOf(listener); + if (index >= 0) + this.listeners.splice(index, 1); + }; + AnimationState.prototype.clearListeners = function () { + this.listeners.length = 0; + }; + AnimationState.prototype.clearListenerNotifications = function () { + this.queue.clear(); + }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); + AnimationState.SUBSEQUENT = 0; + AnimationState.FIRST = 1; + AnimationState.DIP = 2; + AnimationState.DIP_MIX = 3; + return AnimationState; + }()); + spine.AnimationState = AnimationState; + var TrackEntry = (function () { + function TrackEntry() { + this.timelineData = new Array(); + this.timelineDipMix = new Array(); + this.timelinesRotation = new Array(); + } + TrackEntry.prototype.reset = function () { + this.next = null; + this.mixingFrom = null; + this.animation = null; + this.listener = null; + this.timelineData.length = 0; + this.timelineDipMix.length = 0; + this.timelinesRotation.length = 0; + }; + TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { + if (to != null) + mixingToArray.push(to); + var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; + if (to != null) + mixingToArray.pop(); + var mixingTo = mixingToArray; + var mixingToLast = mixingToArray.length - 1; + var timelines = this.animation.timelines; + var timelinesCount = this.animation.timelines.length; + var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); + this.timelineDipMix.length = 0; + var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); + outer: for (var i = 0; i < timelinesCount; i++) { + var id = timelines[i].getPropertyId(); + if (!propertyIDs.add(id)) + timelineData[i] = AnimationState.SUBSEQUENT; + else if (to == null || !to.hasTimeline(id)) + timelineData[i] = AnimationState.FIRST; + else { + for (var ii = mixingToLast; ii >= 0; ii--) { + var entry = mixingTo[ii]; + if (!entry.hasTimeline(id)) { + if (entry.mixDuration > 0) { + timelineData[i] = AnimationState.DIP_MIX; + timelineDipMix[i] = entry; + continue outer; + } + } + } + timelineData[i] = AnimationState.DIP; + } + } + return lastEntry; + }; + TrackEntry.prototype.hasTimeline = function (id) { + var timelines = this.animation.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + if (timelines[i].getPropertyId() == id) + return true; + return false; + }; + TrackEntry.prototype.getAnimationTime = function () { + if (this.loop) { + var duration = this.animationEnd - this.animationStart; + if (duration == 0) + return this.animationStart; + return (this.trackTime % duration) + this.animationStart; + } + return Math.min(this.trackTime + this.animationStart, this.animationEnd); + }; + TrackEntry.prototype.setAnimationLast = function (animationLast) { + this.animationLast = animationLast; + this.nextAnimationLast = animationLast; + }; + TrackEntry.prototype.isComplete = function () { + return this.trackTime >= this.animationEnd - this.animationStart; + }; + TrackEntry.prototype.resetRotationDirections = function () { + this.timelinesRotation.length = 0; + }; + return TrackEntry; + }()); + spine.TrackEntry = TrackEntry; + var EventQueue = (function () { + function EventQueue(animState) { + this.objects = []; + this.drainDisabled = false; + this.animState = animState; + } + EventQueue.prototype.start = function (entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.interrupt = function (entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); + }; + EventQueue.prototype.end = function (entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.dispose = function (entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); + }; + EventQueue.prototype.complete = function (entry) { + this.objects.push(EventType.complete); + this.objects.push(entry); + }; + EventQueue.prototype.event = function (entry, event) { + this.objects.push(EventType.event); + this.objects.push(entry); + this.objects.push(event); + }; + EventQueue.prototype.drain = function () { + if (this.drainDisabled) + return; + this.drainDisabled = true; + var objects = this.objects; + var listeners = this.animState.listeners; + for (var i = 0; i < objects.length; i += 2) { + var type = objects[i]; + var entry = objects[i + 1]; + switch (type) { + case EventType.start: + if (entry.listener != null && entry.listener.start) + entry.listener.start(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].start) + listeners[ii].start(entry); + break; + case EventType.interrupt: + if (entry.listener != null && entry.listener.interrupt) + entry.listener.interrupt(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].interrupt) + listeners[ii].interrupt(entry); + break; + case EventType.end: + if (entry.listener != null && entry.listener.end) + entry.listener.end(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].end) + listeners[ii].end(entry); + case EventType.dispose: + if (entry.listener != null && entry.listener.dispose) + entry.listener.dispose(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].dispose) + listeners[ii].dispose(entry); + this.animState.trackEntryPool.free(entry); + break; + case EventType.complete: + if (entry.listener != null && entry.listener.complete) + entry.listener.complete(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].complete) + listeners[ii].complete(entry); + break; + case EventType.event: + var event_3 = objects[i++ + 2]; + if (entry.listener != null && entry.listener.event) + entry.listener.event(entry, event_3); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].event) + listeners[ii].event(entry, event_3); + break; + } + } + this.clear(); + this.drainDisabled = false; + }; + EventQueue.prototype.clear = function () { + this.objects.length = 0; + }; + return EventQueue; + }()); + spine.EventQueue = EventQueue; + (function (EventType) { + EventType[EventType["start"] = 0] = "start"; + EventType[EventType["interrupt"] = 1] = "interrupt"; + EventType[EventType["end"] = 2] = "end"; + EventType[EventType["dispose"] = 3] = "dispose"; + EventType[EventType["complete"] = 4] = "complete"; + EventType[EventType["event"] = 5] = "event"; + })(spine.EventType || (spine.EventType = {})); + var EventType = spine.EventType; + var AnimationStateAdapter2 = (function () { + function AnimationStateAdapter2() { + } + AnimationStateAdapter2.prototype.start = function (entry) { + }; + AnimationStateAdapter2.prototype.interrupt = function (entry) { + }; + AnimationStateAdapter2.prototype.end = function (entry) { + }; + AnimationStateAdapter2.prototype.dispose = function (entry) { + }; + AnimationStateAdapter2.prototype.complete = function (entry) { + }; + AnimationStateAdapter2.prototype.event = function (entry, event) { + }; + return AnimationStateAdapter2; + }()); + spine.AnimationStateAdapter2 = AnimationStateAdapter2; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationStateData = (function () { - function AnimationStateData(skeletonData) { - this.animationToMixTime = {}; - this.defaultMix = 0; - if (skeletonData == null) - throw new Error("skeletonData cannot be null."); - this.skeletonData = skeletonData; - } - AnimationStateData.prototype.setMix = function (fromName, toName, duration) { - var from = this.skeletonData.findAnimation(fromName); - if (from == null) - throw new Error("Animation not found: " + fromName); - var to = this.skeletonData.findAnimation(toName); - if (to == null) - throw new Error("Animation not found: " + toName); - this.setMixWith(from, to, duration); - }; - AnimationStateData.prototype.setMixWith = function (from, to, duration) { - if (from == null) - throw new Error("from cannot be null."); - if (to == null) - throw new Error("to cannot be null."); - var key = from.name + to.name; - this.animationToMixTime[key] = duration; - }; - AnimationStateData.prototype.getMix = function (from, to) { - var key = from.name + to.name; - var value = this.animationToMixTime[key]; - return value === undefined ? this.defaultMix : value; - }; - return AnimationStateData; - }()); - spine.AnimationStateData = AnimationStateData; + var AnimationStateData = (function () { + function AnimationStateData(skeletonData) { + this.animationToMixTime = {}; + this.defaultMix = 0; + if (skeletonData == null) + throw new Error("skeletonData cannot be null."); + this.skeletonData = skeletonData; + } + AnimationStateData.prototype.setMix = function (fromName, toName, duration) { + var from = this.skeletonData.findAnimation(fromName); + if (from == null) + throw new Error("Animation not found: " + fromName); + var to = this.skeletonData.findAnimation(toName); + if (to == null) + throw new Error("Animation not found: " + toName); + this.setMixWith(from, to, duration); + }; + AnimationStateData.prototype.setMixWith = function (from, to, duration) { + if (from == null) + throw new Error("from cannot be null."); + if (to == null) + throw new Error("to cannot be null."); + var key = from.name + to.name; + this.animationToMixTime[key] = duration; + }; + AnimationStateData.prototype.getMix = function (from, to) { + var key = from.name + to.name; + var value = this.animationToMixTime[key]; + return value === undefined ? this.defaultMix : value; + }; + return AnimationStateData; + }()); + spine.AnimationStateData = AnimationStateData; })(spine || (spine = {})); var spine; (function (spine) { - var AtlasAttachmentLoader = (function () { - function AtlasAttachmentLoader(atlas) { - this.atlas = atlas; - } - AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.RegionAttachment(name); - attachment.setRegion(region); - return attachment; - }; - AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.MeshAttachment(name); - attachment.region = region; - return attachment; - }; - AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { - return new spine.BoundingBoxAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { - return new spine.PathAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { - return new spine.PointAttachment(name); - }; - AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { - return new spine.ClippingAttachment(name); - }; - return AtlasAttachmentLoader; - }()); - spine.AtlasAttachmentLoader = AtlasAttachmentLoader; + var AtlasAttachmentLoader = (function () { + function AtlasAttachmentLoader(atlas) { + this.atlas = atlas; + } + AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.RegionAttachment(name); + attachment.setRegion(region); + return attachment; + }; + AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.MeshAttachment(name); + attachment.region = region; + return attachment; + }; + AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { + return new spine.BoundingBoxAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { + return new spine.PathAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { + return new spine.PointAttachment(name); + }; + AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { + return new spine.ClippingAttachment(name); + }; + return AtlasAttachmentLoader; + }()); + spine.AtlasAttachmentLoader = AtlasAttachmentLoader; })(spine || (spine = {})); var spine; (function (spine) { - var Attachment = (function () { - function Attachment(name) { - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return Attachment; - }()); - spine.Attachment = Attachment; - var VertexAttachment = (function (_super) { - __extends(VertexAttachment, _super); - function VertexAttachment(name) { - _super.call(this, name); - this.worldVerticesLength = 0; - } - VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { - count = offset + (count >> 1) * stride; - var skeleton = slot.bone.skeleton; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices; - var bones = this.bones; - if (bones == null) { - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - var x = bone.worldX; - var y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { - var vx = vertices[v_1], vy = vertices[v_1 + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - } - return; - } - var v = 0, skip = 0; - for (var i = 0; i < start; i += 2) { - var n = bones[v]; - v += n + 1; - skip += n; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = offset, b = skip * 3; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - else { - var deform = deformArray; - for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3, f += 2) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - }; - VertexAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment; - }; - return VertexAttachment; - }(Attachment)); - spine.VertexAttachment = VertexAttachment; + var Attachment = (function () { + function Attachment(name) { + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return Attachment; + }()); + spine.Attachment = Attachment; + var VertexAttachment = (function (_super) { + __extends(VertexAttachment, _super); + function VertexAttachment(name) { + _super.call(this, name); + this.worldVerticesLength = 0; + } + VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { + count = offset + (count >> 1) * stride; + var skeleton = slot.bone.skeleton; + var deformArray = slot.attachmentVertices; + var vertices = this.vertices; + var bones = this.bones; + if (bones == null) { + if (deformArray.length > 0) + vertices = deformArray; + var bone = slot.bone; + var x = bone.worldX; + var y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { + var vx = vertices[v_1], vy = vertices[v_1 + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + } + return; + } + var v = 0, skip = 0; + for (var i = 0; i < start; i += 2) { + var n = bones[v]; + v += n + 1; + skip += n; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = offset, b = skip * 3; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + else { + var deform = deformArray; + for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3, f += 2) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + }; + VertexAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment; + }; + return VertexAttachment; + }(Attachment)); + spine.VertexAttachment = VertexAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (AttachmentType) { - AttachmentType[AttachmentType["Region"] = 0] = "Region"; - AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; - AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; - AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; - AttachmentType[AttachmentType["Path"] = 4] = "Path"; - AttachmentType[AttachmentType["Point"] = 5] = "Point"; - })(spine.AttachmentType || (spine.AttachmentType = {})); - var AttachmentType = spine.AttachmentType; + (function (AttachmentType) { + AttachmentType[AttachmentType["Region"] = 0] = "Region"; + AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; + AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; + AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; + AttachmentType[AttachmentType["Path"] = 4] = "Path"; + AttachmentType[AttachmentType["Point"] = 5] = "Point"; + })(spine.AttachmentType || (spine.AttachmentType = {})); + var AttachmentType = spine.AttachmentType; })(spine || (spine = {})); var spine; (function (spine) { - var BoundingBoxAttachment = (function (_super) { - __extends(BoundingBoxAttachment, _super); - function BoundingBoxAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - } - return BoundingBoxAttachment; - }(spine.VertexAttachment)); - spine.BoundingBoxAttachment = BoundingBoxAttachment; + var BoundingBoxAttachment = (function (_super) { + __extends(BoundingBoxAttachment, _super); + function BoundingBoxAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + } + return BoundingBoxAttachment; + }(spine.VertexAttachment)); + spine.BoundingBoxAttachment = BoundingBoxAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var ClippingAttachment = (function (_super) { - __extends(ClippingAttachment, _super); - function ClippingAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); - } - return ClippingAttachment; - }(spine.VertexAttachment)); - spine.ClippingAttachment = ClippingAttachment; + var ClippingAttachment = (function (_super) { + __extends(ClippingAttachment, _super); + function ClippingAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); + } + return ClippingAttachment; + }(spine.VertexAttachment)); + spine.ClippingAttachment = ClippingAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var MeshAttachment = (function (_super) { - __extends(MeshAttachment, _super); - function MeshAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - this.inheritDeform = false; - this.tempColor = new spine.Color(0, 0, 0, 0); - } - MeshAttachment.prototype.updateUVs = function () { - var u = 0, v = 0, width = 0, height = 0; - if (this.region == null) { - u = v = 0; - width = height = 1; - } - else { - u = this.region.u; - v = this.region.v; - width = this.region.u2 - u; - height = this.region.v2 - v; - } - var regionUVs = this.regionUVs; - if (this.uvs == null || this.uvs.length != regionUVs.length) - this.uvs = spine.Utils.newFloatArray(regionUVs.length); - var uvs = this.uvs; - if (this.region.rotate) { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i + 1] * width; - uvs[i + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i] * width; - uvs[i + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); - }; - MeshAttachment.prototype.getParentMesh = function () { - return this.parentMesh; - }; - MeshAttachment.prototype.setParentMesh = function (parentMesh) { - this.parentMesh = parentMesh; - if (parentMesh != null) { - this.bones = parentMesh.bones; - this.vertices = parentMesh.vertices; - this.worldVerticesLength = parentMesh.worldVerticesLength; - this.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - this.worldVerticesLength = parentMesh.worldVerticesLength; - } - }; - return MeshAttachment; - }(spine.VertexAttachment)); - spine.MeshAttachment = MeshAttachment; + var MeshAttachment = (function (_super) { + __extends(MeshAttachment, _super); + function MeshAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + this.inheritDeform = false; + this.tempColor = new spine.Color(0, 0, 0, 0); + } + MeshAttachment.prototype.updateUVs = function () { + var u = 0, v = 0, width = 0, height = 0; + if (this.region == null) { + u = v = 0; + width = height = 1; + } + else { + u = this.region.u; + v = this.region.v; + width = this.region.u2 - u; + height = this.region.v2 - v; + } + var regionUVs = this.regionUVs; + if (this.uvs == null || this.uvs.length != regionUVs.length) + this.uvs = spine.Utils.newFloatArray(regionUVs.length); + var uvs = this.uvs; + if (this.region.rotate) { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); + }; + MeshAttachment.prototype.getParentMesh = function () { + return this.parentMesh; + }; + MeshAttachment.prototype.setParentMesh = function (parentMesh) { + this.parentMesh = parentMesh; + if (parentMesh != null) { + this.bones = parentMesh.bones; + this.vertices = parentMesh.vertices; + this.worldVerticesLength = parentMesh.worldVerticesLength; + this.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + this.worldVerticesLength = parentMesh.worldVerticesLength; + } + }; + return MeshAttachment; + }(spine.VertexAttachment)); + spine.MeshAttachment = MeshAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PathAttachment = (function (_super) { - __extends(PathAttachment, _super); - function PathAttachment(name) { - _super.call(this, name); - this.closed = false; - this.constantSpeed = false; - this.color = new spine.Color(1, 1, 1, 1); - } - return PathAttachment; - }(spine.VertexAttachment)); - spine.PathAttachment = PathAttachment; + var PathAttachment = (function (_super) { + __extends(PathAttachment, _super); + function PathAttachment(name) { + _super.call(this, name); + this.closed = false; + this.constantSpeed = false; + this.color = new spine.Color(1, 1, 1, 1); + } + return PathAttachment; + }(spine.VertexAttachment)); + spine.PathAttachment = PathAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PointAttachment = (function (_super) { - __extends(PointAttachment, _super); - function PointAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.38, 0.94, 0, 1); - } - PointAttachment.prototype.computeWorldPosition = function (bone, point) { - point.x = this.x * bone.a + this.y * bone.b + bone.worldX; - point.y = this.x * bone.c + this.y * bone.d + bone.worldY; - return point; - }; - PointAttachment.prototype.computeWorldRotation = function (bone) { - var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); - var x = cos * bone.a + sin * bone.b; - var y = cos * bone.c + sin * bone.d; - return Math.atan2(y, x) * spine.MathUtils.radDeg; - }; - return PointAttachment; - }(spine.VertexAttachment)); - spine.PointAttachment = PointAttachment; + var PointAttachment = (function (_super) { + __extends(PointAttachment, _super); + function PointAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.38, 0.94, 0, 1); + } + PointAttachment.prototype.computeWorldPosition = function (bone, point) { + point.x = this.x * bone.a + this.y * bone.b + bone.worldX; + point.y = this.x * bone.c + this.y * bone.d + bone.worldY; + return point; + }; + PointAttachment.prototype.computeWorldRotation = function (bone) { + var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); + var x = cos * bone.a + sin * bone.b; + var y = cos * bone.c + sin * bone.d; + return Math.atan2(y, x) * spine.MathUtils.radDeg; + }; + return PointAttachment; + }(spine.VertexAttachment)); + spine.PointAttachment = PointAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var RegionAttachment = (function (_super) { - __extends(RegionAttachment, _super); - function RegionAttachment(name) { - _super.call(this, name); - this.x = 0; - this.y = 0; - this.scaleX = 1; - this.scaleY = 1; - this.rotation = 0; - this.width = 0; - this.height = 0; - this.color = new spine.Color(1, 1, 1, 1); - this.offset = spine.Utils.newFloatArray(8); - this.uvs = spine.Utils.newFloatArray(8); - this.tempColor = new spine.Color(1, 1, 1, 1); - } - RegionAttachment.prototype.updateOffset = function () { - var regionScaleX = this.width / this.region.originalWidth * this.scaleX; - var regionScaleY = this.height / this.region.originalHeight * this.scaleY; - var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; - var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; - var localX2 = localX + this.region.width * regionScaleX; - var localY2 = localY + this.region.height * regionScaleY; - var radians = this.rotation * Math.PI / 180; - var cos = Math.cos(radians); - var sin = Math.sin(radians); - var localXCos = localX * cos + this.x; - var localXSin = localX * sin; - var localYCos = localY * cos + this.y; - var localYSin = localY * sin; - var localX2Cos = localX2 * cos + this.x; - var localX2Sin = localX2 * sin; - var localY2Cos = localY2 * cos + this.y; - var localY2Sin = localY2 * sin; - var offset = this.offset; - offset[RegionAttachment.OX1] = localXCos - localYSin; - offset[RegionAttachment.OY1] = localYCos + localXSin; - offset[RegionAttachment.OX2] = localXCos - localY2Sin; - offset[RegionAttachment.OY2] = localY2Cos + localXSin; - offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; - offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; - offset[RegionAttachment.OX4] = localX2Cos - localYSin; - offset[RegionAttachment.OY4] = localYCos + localX2Sin; - }; - RegionAttachment.prototype.setRegion = function (region) { - this.region = region; - var uvs = this.uvs; - if (region.rotate) { - uvs[2] = region.u; - uvs[3] = region.v2; - uvs[4] = region.u; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v; - uvs[0] = region.u2; - uvs[1] = region.v2; - } - else { - uvs[0] = region.u; - uvs[1] = region.v2; - uvs[2] = region.u; - uvs[3] = region.v; - uvs[4] = region.u2; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v2; - } - }; - RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { - var vertexOffset = this.offset; - var x = bone.worldX, y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = vertexOffset[RegionAttachment.OX1]; - offsetY = vertexOffset[RegionAttachment.OY1]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX2]; - offsetY = vertexOffset[RegionAttachment.OY2]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX3]; - offsetY = vertexOffset[RegionAttachment.OY3]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX4]; - offsetY = vertexOffset[RegionAttachment.OY4]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - }; - RegionAttachment.OX1 = 0; - RegionAttachment.OY1 = 1; - RegionAttachment.OX2 = 2; - RegionAttachment.OY2 = 3; - RegionAttachment.OX3 = 4; - RegionAttachment.OY3 = 5; - RegionAttachment.OX4 = 6; - RegionAttachment.OY4 = 7; - RegionAttachment.X1 = 0; - RegionAttachment.Y1 = 1; - RegionAttachment.C1R = 2; - RegionAttachment.C1G = 3; - RegionAttachment.C1B = 4; - RegionAttachment.C1A = 5; - RegionAttachment.U1 = 6; - RegionAttachment.V1 = 7; - RegionAttachment.X2 = 8; - RegionAttachment.Y2 = 9; - RegionAttachment.C2R = 10; - RegionAttachment.C2G = 11; - RegionAttachment.C2B = 12; - RegionAttachment.C2A = 13; - RegionAttachment.U2 = 14; - RegionAttachment.V2 = 15; - RegionAttachment.X3 = 16; - RegionAttachment.Y3 = 17; - RegionAttachment.C3R = 18; - RegionAttachment.C3G = 19; - RegionAttachment.C3B = 20; - RegionAttachment.C3A = 21; - RegionAttachment.U3 = 22; - RegionAttachment.V3 = 23; - RegionAttachment.X4 = 24; - RegionAttachment.Y4 = 25; - RegionAttachment.C4R = 26; - RegionAttachment.C4G = 27; - RegionAttachment.C4B = 28; - RegionAttachment.C4A = 29; - RegionAttachment.U4 = 30; - RegionAttachment.V4 = 31; - return RegionAttachment; - }(spine.Attachment)); - spine.RegionAttachment = RegionAttachment; + var RegionAttachment = (function (_super) { + __extends(RegionAttachment, _super); + function RegionAttachment(name) { + _super.call(this, name); + this.x = 0; + this.y = 0; + this.scaleX = 1; + this.scaleY = 1; + this.rotation = 0; + this.width = 0; + this.height = 0; + this.color = new spine.Color(1, 1, 1, 1); + this.offset = spine.Utils.newFloatArray(8); + this.uvs = spine.Utils.newFloatArray(8); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.updateOffset = function () { + var regionScaleX = this.width / this.region.originalWidth * this.scaleX; + var regionScaleY = this.height / this.region.originalHeight * this.scaleY; + var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; + var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; + var localX2 = localX + this.region.width * regionScaleX; + var localY2 = localY + this.region.height * regionScaleY; + var radians = this.rotation * Math.PI / 180; + var cos = Math.cos(radians); + var sin = Math.sin(radians); + var localXCos = localX * cos + this.x; + var localXSin = localX * sin; + var localYCos = localY * cos + this.y; + var localYSin = localY * sin; + var localX2Cos = localX2 * cos + this.x; + var localX2Sin = localX2 * sin; + var localY2Cos = localY2 * cos + this.y; + var localY2Sin = localY2 * sin; + var offset = this.offset; + offset[RegionAttachment.OX1] = localXCos - localYSin; + offset[RegionAttachment.OY1] = localYCos + localXSin; + offset[RegionAttachment.OX2] = localXCos - localY2Sin; + offset[RegionAttachment.OY2] = localY2Cos + localXSin; + offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; + offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; + offset[RegionAttachment.OX4] = localX2Cos - localYSin; + offset[RegionAttachment.OY4] = localYCos + localX2Sin; + }; + RegionAttachment.prototype.setRegion = function (region) { + this.region = region; + var uvs = this.uvs; + if (region.rotate) { + uvs[2] = region.u; + uvs[3] = region.v2; + uvs[4] = region.u; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v; + uvs[0] = region.u2; + uvs[1] = region.v2; + } + else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; + } + }; + RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { + var vertexOffset = this.offset; + var x = bone.worldX, y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var offsetX = 0, offsetY = 0; + offsetX = vertexOffset[RegionAttachment.OX1]; + offsetY = vertexOffset[RegionAttachment.OY1]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX2]; + offsetY = vertexOffset[RegionAttachment.OY2]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX3]; + offsetY = vertexOffset[RegionAttachment.OY3]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX4]; + offsetY = vertexOffset[RegionAttachment.OY4]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + }; + RegionAttachment.OX1 = 0; + RegionAttachment.OY1 = 1; + RegionAttachment.OX2 = 2; + RegionAttachment.OY2 = 3; + RegionAttachment.OX3 = 4; + RegionAttachment.OY3 = 5; + RegionAttachment.OX4 = 6; + RegionAttachment.OY4 = 7; + RegionAttachment.X1 = 0; + RegionAttachment.Y1 = 1; + RegionAttachment.C1R = 2; + RegionAttachment.C1G = 3; + RegionAttachment.C1B = 4; + RegionAttachment.C1A = 5; + RegionAttachment.U1 = 6; + RegionAttachment.V1 = 7; + RegionAttachment.X2 = 8; + RegionAttachment.Y2 = 9; + RegionAttachment.C2R = 10; + RegionAttachment.C2G = 11; + RegionAttachment.C2B = 12; + RegionAttachment.C2A = 13; + RegionAttachment.U2 = 14; + RegionAttachment.V2 = 15; + RegionAttachment.X3 = 16; + RegionAttachment.Y3 = 17; + RegionAttachment.C3R = 18; + RegionAttachment.C3G = 19; + RegionAttachment.C3B = 20; + RegionAttachment.C3A = 21; + RegionAttachment.U3 = 22; + RegionAttachment.V3 = 23; + RegionAttachment.X4 = 24; + RegionAttachment.Y4 = 25; + RegionAttachment.C4R = 26; + RegionAttachment.C4G = 27; + RegionAttachment.C4B = 28; + RegionAttachment.C4A = 29; + RegionAttachment.U4 = 30; + RegionAttachment.V4 = 31; + return RegionAttachment; + }(spine.Attachment)); + spine.RegionAttachment = RegionAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (BlendMode) { - BlendMode[BlendMode["Normal"] = 0] = "Normal"; - BlendMode[BlendMode["Additive"] = 1] = "Additive"; - BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; - BlendMode[BlendMode["Screen"] = 3] = "Screen"; - })(spine.BlendMode || (spine.BlendMode = {})); - var BlendMode = spine.BlendMode; + (function (BlendMode) { + BlendMode[BlendMode["Normal"] = 0] = "Normal"; + BlendMode[BlendMode["Additive"] = 1] = "Additive"; + BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; + BlendMode[BlendMode["Screen"] = 3] = "Screen"; + })(spine.BlendMode || (spine.BlendMode = {})); + var BlendMode = spine.BlendMode; })(spine || (spine = {})); var spine; (function (spine) { - var Bone = (function () { - function Bone(data, skeleton, parent) { - this.children = new Array(); - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 0; - this.scaleY = 0; - this.shearX = 0; - this.shearY = 0; - this.ax = 0; - this.ay = 0; - this.arotation = 0; - this.ascaleX = 0; - this.ascaleY = 0; - this.ashearX = 0; - this.ashearY = 0; - this.appliedValid = false; - this.a = 0; - this.b = 0; - this.worldX = 0; - this.c = 0; - this.d = 0; - this.worldY = 0; - this.sorted = false; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.skeleton = skeleton; - this.parent = parent; - this.setToSetupPose(); - } - Bone.prototype.update = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransform = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { - this.ax = x; - this.ay = y; - this.arotation = rotation; - this.ascaleX = scaleX; - this.ascaleY = scaleY; - this.ashearX = shearX; - this.ashearY = shearY; - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - var skeleton = this.skeleton; - if (skeleton.flipX) { - x = -x; - la = -la; - lb = -lb; - } - if (skeleton.flipY) { - y = -y; - lc = -lc; - ld = -ld; - } - this.a = la; - this.b = lb; - this.c = lc; - this.d = ld; - this.worldX = x + skeleton.x; - this.worldY = y + skeleton.y; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - this.worldX = pa * x + pb * y + parent.worldX; - this.worldY = pc * x + pd * y + parent.worldY; - switch (this.data.transformMode) { - case spine.TransformMode.Normal: { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - return; - } - case spine.TransformMode.OnlyTranslation: { - var rotationY = rotation + 90 + shearY; - this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; - this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; - break; - } - case spine.TransformMode.NoRotationOrReflection: { - var s = pa * pa + pc * pc; - var prx = 0; - if (s > 0.0001) { - s = Math.abs(pa * pd - pb * pc) / s; - pb = pc * s; - pd = pa * s; - prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; - } - else { - pa = 0; - pc = 0; - prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; - } - var rx = rotation + shearX - prx; - var ry = rotation + shearY - prx + 90; - var la = spine.MathUtils.cosDeg(rx) * scaleX; - var lb = spine.MathUtils.cosDeg(ry) * scaleY; - var lc = spine.MathUtils.sinDeg(rx) * scaleX; - var ld = spine.MathUtils.sinDeg(ry) * scaleY; - this.a = pa * la - pb * lc; - this.b = pa * lb - pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - break; - } - case spine.TransformMode.NoScale: - case spine.TransformMode.NoScaleOrReflection: { - var cos = spine.MathUtils.cosDeg(rotation); - var sin = spine.MathUtils.sinDeg(rotation); - var za = pa * cos + pb * sin; - var zc = pc * cos + pd * sin; - var s = Math.sqrt(za * za + zc * zc); - if (s > 0.00001) - s = 1 / s; - za *= s; - zc *= s; - s = Math.sqrt(za * za + zc * zc); - var r = Math.PI / 2 + Math.atan2(zc, za); - var zb = Math.cos(r) * s; - var zd = Math.sin(r) * s; - var la = spine.MathUtils.cosDeg(shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; - var lc = spine.MathUtils.sinDeg(shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; - this.a = za * la + zb * lc; - this.b = za * lb + zb * ld; - this.c = zc * la + zd * lc; - this.d = zc * lb + zd * ld; - if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { - this.b = -this.b; - this.d = -this.d; - } - return; - } - } - if (this.skeleton.flipX) { - this.a = -this.a; - this.b = -this.b; - } - if (this.skeleton.flipY) { - this.c = -this.c; - this.d = -this.d; - } - }; - Bone.prototype.setToSetupPose = function () { - var data = this.data; - this.x = data.x; - this.y = data.y; - this.rotation = data.rotation; - this.scaleX = data.scaleX; - this.scaleY = data.scaleY; - this.shearX = data.shearX; - this.shearY = data.shearY; - }; - Bone.prototype.getWorldRotationX = function () { - return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldRotationY = function () { - return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldScaleX = function () { - return Math.sqrt(this.a * this.a + this.c * this.c); - }; - Bone.prototype.getWorldScaleY = function () { - return Math.sqrt(this.b * this.b + this.d * this.d); - }; - Bone.prototype.updateAppliedTransform = function () { - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - this.ax = this.worldX; - this.ay = this.worldY; - this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); - this.ashearX = 0; - this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - var pid = 1 / (pa * pd - pb * pc); - var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; - this.ax = (dx * pd * pid - dy * pb * pid); - this.ay = (dy * pa * pid - dx * pc * pid); - var ia = pid * pd; - var id = pid * pa; - var ib = pid * pb; - var ic = pid * pc; - var ra = ia * this.a - ib * this.c; - var rb = ia * this.b - ib * this.d; - var rc = id * this.c - ic * this.a; - var rd = id * this.d - ic * this.b; - this.ashearX = 0; - this.ascaleX = Math.sqrt(ra * ra + rc * rc); - if (this.ascaleX > 0.0001) { - var det = ra * rd - rb * rc; - this.ascaleY = det / this.ascaleX; - this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; - this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; - } - else { - this.ascaleX = 0; - this.ascaleY = Math.sqrt(rb * rb + rd * rd); - this.ashearY = 0; - this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; - } - }; - Bone.prototype.worldToLocal = function (world) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var invDet = 1 / (a * d - b * c); - var x = world.x - this.worldX, y = world.y - this.worldY; - world.x = (x * d * invDet - y * b * invDet); - world.y = (y * a * invDet - x * c * invDet); - return world; - }; - Bone.prototype.localToWorld = function (local) { - var x = local.x, y = local.y; - local.x = x * this.a + y * this.b + this.worldX; - local.y = x * this.c + y * this.d + this.worldY; - return local; - }; - Bone.prototype.worldToLocalRotation = function (worldRotation) { - var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); - return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; - }; - Bone.prototype.localToWorldRotation = function (localRotation) { - var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); - return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.rotateWorld = function (degrees) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); - this.a = cos * a - sin * c; - this.b = cos * b - sin * d; - this.c = sin * a + cos * c; - this.d = sin * b + cos * d; - this.appliedValid = false; - }; - return Bone; - }()); - spine.Bone = Bone; + var Bone = (function () { + function Bone(data, skeleton, parent) { + this.children = new Array(); + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 0; + this.scaleY = 0; + this.shearX = 0; + this.shearY = 0; + this.ax = 0; + this.ay = 0; + this.arotation = 0; + this.ascaleX = 0; + this.ascaleY = 0; + this.ashearX = 0; + this.ashearY = 0; + this.appliedValid = false; + this.a = 0; + this.b = 0; + this.worldX = 0; + this.c = 0; + this.d = 0; + this.worldY = 0; + this.sorted = false; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.skeleton = skeleton; + this.parent = parent; + this.setToSetupPose(); + } + Bone.prototype.update = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransform = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { + this.ax = x; + this.ay = y; + this.arotation = rotation; + this.ascaleX = scaleX; + this.ascaleY = scaleY; + this.ashearX = shearX; + this.ashearY = shearY; + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + var skeleton = this.skeleton; + if (skeleton.flipX) { + x = -x; + la = -la; + lb = -lb; + } + if (skeleton.flipY) { + y = -y; + lc = -lc; + ld = -ld; + } + this.a = la; + this.b = lb; + this.c = lc; + this.d = ld; + this.worldX = x + skeleton.x; + this.worldY = y + skeleton.y; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + this.worldX = pa * x + pb * y + parent.worldX; + this.worldY = pc * x + pd * y + parent.worldY; + switch (this.data.transformMode) { + case spine.TransformMode.Normal: { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + this.a = pa * la + pb * lc; + this.b = pa * lb + pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + return; + } + case spine.TransformMode.OnlyTranslation: { + var rotationY = rotation + 90 + shearY; + this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; + this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; + break; + } + case spine.TransformMode.NoRotationOrReflection: { + var s = pa * pa + pc * pc; + var prx = 0; + if (s > 0.0001) { + s = Math.abs(pa * pd - pb * pc) / s; + pb = pc * s; + pd = pa * s; + prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; + } + else { + pa = 0; + pc = 0; + prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; + } + var rx = rotation + shearX - prx; + var ry = rotation + shearY - prx + 90; + var la = spine.MathUtils.cosDeg(rx) * scaleX; + var lb = spine.MathUtils.cosDeg(ry) * scaleY; + var lc = spine.MathUtils.sinDeg(rx) * scaleX; + var ld = spine.MathUtils.sinDeg(ry) * scaleY; + this.a = pa * la - pb * lc; + this.b = pa * lb - pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + break; + } + case spine.TransformMode.NoScale: + case spine.TransformMode.NoScaleOrReflection: { + var cos = spine.MathUtils.cosDeg(rotation); + var sin = spine.MathUtils.sinDeg(rotation); + var za = pa * cos + pb * sin; + var zc = pc * cos + pd * sin; + var s = Math.sqrt(za * za + zc * zc); + if (s > 0.00001) + s = 1 / s; + za *= s; + zc *= s; + s = Math.sqrt(za * za + zc * zc); + var r = Math.PI / 2 + Math.atan2(zc, za); + var zb = Math.cos(r) * s; + var zd = Math.sin(r) * s; + var la = spine.MathUtils.cosDeg(shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; + var lc = spine.MathUtils.sinDeg(shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; + this.a = za * la + zb * lc; + this.b = za * lb + zb * ld; + this.c = zc * la + zd * lc; + this.d = zc * lb + zd * ld; + if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { + this.b = -this.b; + this.d = -this.d; + } + return; + } + } + if (this.skeleton.flipX) { + this.a = -this.a; + this.b = -this.b; + } + if (this.skeleton.flipY) { + this.c = -this.c; + this.d = -this.d; + } + }; + Bone.prototype.setToSetupPose = function () { + var data = this.data; + this.x = data.x; + this.y = data.y; + this.rotation = data.rotation; + this.scaleX = data.scaleX; + this.scaleY = data.scaleY; + this.shearX = data.shearX; + this.shearY = data.shearY; + }; + Bone.prototype.getWorldRotationX = function () { + return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldRotationY = function () { + return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldScaleX = function () { + return Math.sqrt(this.a * this.a + this.c * this.c); + }; + Bone.prototype.getWorldScaleY = function () { + return Math.sqrt(this.b * this.b + this.d * this.d); + }; + Bone.prototype.updateAppliedTransform = function () { + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + this.ax = this.worldX; + this.ay = this.worldY; + this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); + this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); + this.ashearX = 0; + this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + var pid = 1 / (pa * pd - pb * pc); + var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; + this.ax = (dx * pd * pid - dy * pb * pid); + this.ay = (dy * pa * pid - dx * pc * pid); + var ia = pid * pd; + var id = pid * pa; + var ib = pid * pb; + var ic = pid * pc; + var ra = ia * this.a - ib * this.c; + var rb = ia * this.b - ib * this.d; + var rc = id * this.c - ic * this.a; + var rd = id * this.d - ic * this.b; + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { + var det = ra * rd - rb * rc; + this.ascaleY = det / this.ascaleX; + this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; + this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; + } + else { + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; + } + }; + Bone.prototype.worldToLocal = function (world) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var invDet = 1 / (a * d - b * c); + var x = world.x - this.worldX, y = world.y - this.worldY; + world.x = (x * d * invDet - y * b * invDet); + world.y = (y * a * invDet - x * c * invDet); + return world; + }; + Bone.prototype.localToWorld = function (local) { + var x = local.x, y = local.y; + local.x = x * this.a + y * this.b + this.worldX; + local.y = x * this.c + y * this.d + this.worldY; + return local; + }; + Bone.prototype.worldToLocalRotation = function (worldRotation) { + var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); + return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; + }; + Bone.prototype.localToWorldRotation = function (localRotation) { + var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); + return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.rotateWorld = function (degrees) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); + this.a = cos * a - sin * c; + this.b = cos * b - sin * d; + this.c = sin * a + cos * c; + this.d = sin * b + cos * d; + this.appliedValid = false; + }; + return Bone; + }()); + spine.Bone = Bone; })(spine || (spine = {})); var spine; (function (spine) { - var BoneData = (function () { - function BoneData(index, name, parent) { - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 1; - this.scaleY = 1; - this.shearX = 0; - this.shearY = 0; - this.transformMode = TransformMode.Normal; - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - this.index = index; - this.name = name; - this.parent = parent; - } - return BoneData; - }()); - spine.BoneData = BoneData; - (function (TransformMode) { - TransformMode[TransformMode["Normal"] = 0] = "Normal"; - TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; - TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; - TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; - TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; - })(spine.TransformMode || (spine.TransformMode = {})); - var TransformMode = spine.TransformMode; + var BoneData = (function () { + function BoneData(index, name, parent) { + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 1; + this.scaleY = 1; + this.shearX = 0; + this.shearY = 0; + this.transformMode = TransformMode.Normal; + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + this.index = index; + this.name = name; + this.parent = parent; + } + return BoneData; + }()); + spine.BoneData = BoneData; + (function (TransformMode) { + TransformMode[TransformMode["Normal"] = 0] = "Normal"; + TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; + TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; + TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; + TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; + })(spine.TransformMode || (spine.TransformMode = {})); + var TransformMode = spine.TransformMode; })(spine || (spine = {})); var spine; (function (spine) { - var Event = (function () { - function Event(time, data) { - if (data == null) - throw new Error("data cannot be null."); - this.time = time; - this.data = data; - } - return Event; - }()); - spine.Event = Event; + var Event = (function () { + function Event(time, data) { + if (data == null) + throw new Error("data cannot be null."); + this.time = time; + this.data = data; + } + return Event; + }()); + spine.Event = Event; })(spine || (spine = {})); var spine; (function (spine) { - var EventData = (function () { - function EventData(name) { - this.name = name; - } - return EventData; - }()); - spine.EventData = EventData; + var EventData = (function () { + function EventData(name) { + this.name = name; + } + return EventData; + }()); + spine.EventData = EventData; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraint = (function () { - function IkConstraint(data, skeleton) { - this.mix = 1; - this.bendDirection = 0; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.mix = data.mix; - this.bendDirection = data.bendDirection; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - IkConstraint.prototype.getOrder = function () { - return this.data.order; - }; - IkConstraint.prototype.apply = function () { - this.update(); - }; - IkConstraint.prototype.update = function () { - var target = this.target; - var bones = this.bones; - switch (bones.length) { - case 1: - this.apply1(bones[0], target.worldX, target.worldY, this.mix); - break; - case 2: - this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); - break; - } - }; - IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var p = bone.parent; - var id = 1 / (p.a * p.d - p.b * p.c); - var x = targetX - p.worldX, y = targetY - p.worldY; - var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; - var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; - if (bone.ascaleX < 0) - rotationIK += 180; - if (rotationIK > 180) - rotationIK -= 360; - else if (rotationIK < -180) - rotationIK += 360; - bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); - }; - IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { - if (alpha == 0) { - child.updateWorldTransform(); - return; - } - if (!parent.appliedValid) - parent.updateAppliedTransform(); - if (!child.appliedValid) - child.updateAppliedTransform(); - var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; - var os1 = 0, os2 = 0, s2 = 0; - if (psx < 0) { - psx = -psx; - os1 = 180; - s2 = -1; - } - else { - os1 = 0; - s2 = 1; - } - if (psy < 0) { - psy = -psy; - s2 = -s2; - } - if (csx < 0) { - csx = -csx; - os2 = 180; - } - else - os2 = 0; - var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; - var u = Math.abs(psx - psy) <= 0.0001; - if (!u) { - cy = 0; - cwx = a * cx + parent.worldX; - cwy = c * cx + parent.worldY; - } - else { - cy = child.ay; - cwx = a * cx + b * cy + parent.worldX; - cwy = c * cx + d * cy + parent.worldY; - } - var pp = parent.parent; - a = pp.a; - b = pp.b; - c = pp.c; - d = pp.d; - var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; - var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; - x = cwx - pp.worldX; - y = cwy - pp.worldY; - var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; - var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; - outer: if (u) { - l2 *= psx; - var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); - if (cos < -1) - cos = -1; - else if (cos > 1) - cos = 1; - a2 = Math.acos(cos) * bendDir; - a = l1 + l2 * cos; - b = l2 * Math.sin(a2); - a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); - } - else { - a = psx * l2; - b = psy * l2; - var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); - c = bb * l1 * l1 + aa * dd - aa * bb; - var c1 = -2 * bb * l1, c2 = bb - aa; - d = c1 * c1 - 4 * c2 * c; - if (d >= 0) { - var q = Math.sqrt(d); - if (c1 < 0) - q = -q; - q = -(c1 + q) / 2; - var r0 = q / c2, r1 = c / q; - var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; - if (r * r <= dd) { - y = Math.sqrt(dd - r * r) * bendDir; - a1 = ta - Math.atan2(y, r); - a2 = Math.atan2(y / psy, (r - l1) / psx); - break outer; - } - } - var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; - var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; - c = -a * l1 / (aa - bb); - if (c >= -1 && c <= 1) { - c = Math.acos(c); - x = a * Math.cos(c) + l1; - y = b * Math.sin(c); - d = x * x + y * y; - if (d < minDist) { - minAngle = c; - minDist = d; - minX = x; - minY = y; - } - if (d > maxDist) { - maxAngle = c; - maxDist = d; - maxX = x; - maxY = y; - } - } - if (dd <= (minDist + maxDist) / 2) { - a1 = ta - Math.atan2(minY * bendDir, minX); - a2 = minAngle * bendDir; - } - else { - a1 = ta - Math.atan2(maxY * bendDir, maxX); - a2 = maxAngle * bendDir; - } - } - var os = Math.atan2(cy, cx) * s2; - var rotation = parent.arotation; - a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; - if (a1 > 180) - a1 -= 360; - else if (a1 < -180) - a1 += 360; - parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); - rotation = child.arotation; - a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; - if (a2 > 180) - a2 -= 360; - else if (a2 < -180) - a2 += 360; - child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); - }; - return IkConstraint; - }()); - spine.IkConstraint = IkConstraint; + var IkConstraint = (function () { + function IkConstraint(data, skeleton) { + this.mix = 1; + this.bendDirection = 0; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.mix = data.mix; + this.bendDirection = data.bendDirection; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + IkConstraint.prototype.getOrder = function () { + return this.data.order; + }; + IkConstraint.prototype.apply = function () { + this.update(); + }; + IkConstraint.prototype.update = function () { + var target = this.target; + var bones = this.bones; + switch (bones.length) { + case 1: + this.apply1(bones[0], target.worldX, target.worldY, this.mix); + break; + case 2: + this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); + break; + } + }; + IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var p = bone.parent; + var id = 1 / (p.a * p.d - p.b * p.c); + var x = targetX - p.worldX, y = targetY - p.worldY; + var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; + var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; + if (bone.ascaleX < 0) + rotationIK += 180; + if (rotationIK > 180) + rotationIK -= 360; + else if (rotationIK < -180) + rotationIK += 360; + bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); + }; + IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { + if (alpha == 0) { + child.updateWorldTransform(); + return; + } + if (!parent.appliedValid) + parent.updateAppliedTransform(); + if (!child.appliedValid) + child.updateAppliedTransform(); + var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; + var os1 = 0, os2 = 0, s2 = 0; + if (psx < 0) { + psx = -psx; + os1 = 180; + s2 = -1; + } + else { + os1 = 0; + s2 = 1; + } + if (psy < 0) { + psy = -psy; + s2 = -s2; + } + if (csx < 0) { + csx = -csx; + os2 = 180; + } + else + os2 = 0; + var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + var u = Math.abs(psx - psy) <= 0.0001; + if (!u) { + cy = 0; + cwx = a * cx + parent.worldX; + cwy = c * cx + parent.worldY; + } + else { + cy = child.ay; + cwx = a * cx + b * cy + parent.worldX; + cwy = c * cx + d * cy + parent.worldY; + } + var pp = parent.parent; + a = pp.a; + b = pp.b; + c = pp.c; + d = pp.d; + var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; + var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; + x = cwx - pp.worldX; + y = cwy - pp.worldY; + var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; + var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; + outer: if (u) { + l2 *= psx; + var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); + if (cos < -1) + cos = -1; + else if (cos > 1) + cos = 1; + a2 = Math.acos(cos) * bendDir; + a = l1 + l2 * cos; + b = l2 * Math.sin(a2); + a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); + } + else { + a = psx * l2; + b = psy * l2; + var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); + c = bb * l1 * l1 + aa * dd - aa * bb; + var c1 = -2 * bb * l1, c2 = bb - aa; + d = c1 * c1 - 4 * c2 * c; + if (d >= 0) { + var q = Math.sqrt(d); + if (c1 < 0) + q = -q; + q = -(c1 + q) / 2; + var r0 = q / c2, r1 = c / q; + var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; + if (r * r <= dd) { + y = Math.sqrt(dd - r * r) * bendDir; + a1 = ta - Math.atan2(y, r); + a2 = Math.atan2(y / psy, (r - l1) / psx); + break outer; + } + } + var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; + var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } + } + if (dd <= (minDist + maxDist) / 2) { + a1 = ta - Math.atan2(minY * bendDir, minX); + a2 = minAngle * bendDir; + } + else { + a1 = ta - Math.atan2(maxY * bendDir, maxX); + a2 = maxAngle * bendDir; + } + } + var os = Math.atan2(cy, cx) * s2; + var rotation = parent.arotation; + a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; + if (a1 > 180) + a1 -= 360; + else if (a1 < -180) + a1 += 360; + parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); + rotation = child.arotation; + a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; + if (a2 > 180) + a2 -= 360; + else if (a2 < -180) + a2 += 360; + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); + }; + return IkConstraint; + }()); + spine.IkConstraint = IkConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraintData = (function () { - function IkConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.bendDirection = 1; - this.mix = 1; - this.name = name; - } - return IkConstraintData; - }()); - spine.IkConstraintData = IkConstraintData; + var IkConstraintData = (function () { + function IkConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.bendDirection = 1; + this.mix = 1; + this.name = name; + } + return IkConstraintData; + }()); + spine.IkConstraintData = IkConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraint = (function () { - function PathConstraint(data, skeleton) { - this.position = 0; - this.spacing = 0; - this.rotateMix = 0; - this.translateMix = 0; - this.spaces = new Array(); - this.positions = new Array(); - this.world = new Array(); - this.curves = new Array(); - this.lengths = new Array(); - this.segments = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0, n = data.bones.length; i < n; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findSlot(data.target.name); - this.position = data.position; - this.spacing = data.spacing; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - } - PathConstraint.prototype.apply = function () { - this.update(); - }; - PathConstraint.prototype.update = function () { - var attachment = this.target.getAttachment(); - if (!(attachment instanceof spine.PathAttachment)) - return; - var rotateMix = this.rotateMix, translateMix = this.translateMix; - var translate = translateMix > 0, rotate = rotateMix > 0; - if (!translate && !rotate) - return; - var data = this.data; - var spacingMode = data.spacingMode; - var lengthSpacing = spacingMode == spine.SpacingMode.Length; - var rotateMode = data.rotateMode; - var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; - var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; - var bones = this.bones; - var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; - var spacing = this.spacing; - if (scale || lengthSpacing) { - if (scale) - lengths = spine.Utils.setArraySize(this.lengths, boneCount); - for (var i = 0, n = spacesCount - 1; i < n;) { - var bone = bones[i]; - var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; - var length_1 = Math.sqrt(x * x + y * y); - if (scale) - lengths[i] = length_1; - spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; - } - } - else { - for (var i = 1; i < spacesCount; i++) - spaces[i] = spacing; - } - var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); - var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - var tip = false; - if (offsetRotation == 0) - tip = rotateMode == spine.RotateMode.Chain; - else { - tip = false; - var p = this.target.bone; - offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - } - for (var i = 0, p = 3; i < boneCount; i++, p += 3) { - var bone = bones[i]; - bone.worldX += (boneX - bone.worldX) * translateMix; - bone.worldY += (boneY - bone.worldY) * translateMix; - var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; - if (scale) { - var length_2 = lengths[i]; - if (length_2 != 0) { - var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; - bone.a *= s; - bone.c *= s; - } - } - boneX = x; - boneY = y; - if (rotate) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; - if (tangents) - r = positions[p - 1]; - else if (spaces[i + 1] == 0) - r = positions[p + 2]; - else - r = Math.atan2(dy, dx); - r -= Math.atan2(c, a); - if (tip) { - cos = Math.cos(r); - sin = Math.sin(r); - var length_3 = bone.data.length; - boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; - boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; - } - else { - r += offsetRotation; - } - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - cos = Math.cos(r); - sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - } - bone.appliedValid = false; - } - }; - PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { - var target = this.target; - var position = this.position; - var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; - var closed = path.closed; - var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; - if (!path.constantSpeed) { - var lengths = path.lengths; - curveCount -= closed ? 1 : 2; - var pathLength_1 = lengths[curveCount]; - if (percentPosition) - position *= pathLength_1; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength_1; - } - world = spine.Utils.setArraySize(this.world, 8); - for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength_1; - if (p < 0) - p += pathLength_1; - curve = 0; - } - else if (p < 0) { - if (prevCurve != PathConstraint.BEFORE) { - prevCurve = PathConstraint.BEFORE; - path.computeWorldVertices(target, 2, 4, world, 0, 2); - } - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength_1) { - if (prevCurve != PathConstraint.AFTER) { - prevCurve = PathConstraint.AFTER; - path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); - } - this.addAfterPosition(p - pathLength_1, world, 0, out, o); - continue; - } - for (;; curve++) { - var length_4 = lengths[curve]; - if (p > length_4) - continue; - if (curve == 0) - p /= length_4; - else { - var prev = lengths[curve - 1]; - p = (p - prev) / (length_4 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - if (closed && curve == curveCount) { - path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); - path.computeWorldVertices(target, 0, 4, world, 4, 2); - } - else - path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); - } - this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); - } - return out; - } - if (closed) { - verticesLength += 2; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); - path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); - world[verticesLength - 2] = world[0]; - world[verticesLength - 1] = world[1]; - } - else { - curveCount--; - verticesLength -= 4; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); - } - var curves = spine.Utils.setArraySize(this.curves, curveCount); - var pathLength = 0; - var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; - var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; - for (var i = 0, w = 2; i < curveCount; i++, w += 6) { - cx1 = world[w]; - cy1 = world[w + 1]; - cx2 = world[w + 2]; - cy2 = world[w + 3]; - x2 = world[w + 4]; - y2 = world[w + 5]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; - tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - curves[i] = pathLength; - x1 = x2; - y1 = y2; - } - if (percentPosition) - position *= pathLength; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength; - } - var segments = this.segments; - var curveLength = 0; - for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength; - if (p < 0) - p += pathLength; - curve = 0; - } - else if (p < 0) { - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength) { - this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); - continue; - } - for (;; curve++) { - var length_5 = curves[curve]; - if (p > length_5) - continue; - if (curve == 0) - p /= length_5; - else { - var prev = curves[curve - 1]; - p = (p - prev) / (length_5 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - var ii = curve * 6; - x1 = world[ii]; - y1 = world[ii + 1]; - cx1 = world[ii + 2]; - cy1 = world[ii + 3]; - cx2 = world[ii + 4]; - cy2 = world[ii + 5]; - x2 = world[ii + 6]; - y2 = world[ii + 7]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.03; - tmpy = (y1 - cy1 * 2 + cy2) * 0.03; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; - curveLength = Math.sqrt(dfx * dfx + dfy * dfy); - segments[0] = curveLength; - for (ii = 1; ii < 8; ii++) { - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[ii] = curveLength; - } - dfx += ddfx; - dfy += ddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[8] = curveLength; - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[9] = curveLength; - segment = 0; - } - p *= curveLength; - for (;; segment++) { - var length_6 = segments[segment]; - if (p > length_6) - continue; - if (segment == 0) - p /= length_6; - else { - var prev = segments[segment - 1]; - p = segment + (p - prev) / (length_6 - prev); - } - break; - } - this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); - } - return out; - }; - PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { - var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { - var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { - if (p == 0 || isNaN(p)) - p = 0.0001; - var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; - var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; - var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; - out[o] = x; - out[o + 1] = y; - if (tangents) - out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); - }; - PathConstraint.prototype.getOrder = function () { - return this.data.order; - }; - PathConstraint.NONE = -1; - PathConstraint.BEFORE = -2; - PathConstraint.AFTER = -3; - return PathConstraint; - }()); - spine.PathConstraint = PathConstraint; + var PathConstraint = (function () { + function PathConstraint(data, skeleton) { + this.position = 0; + this.spacing = 0; + this.rotateMix = 0; + this.translateMix = 0; + this.spaces = new Array(); + this.positions = new Array(); + this.world = new Array(); + this.curves = new Array(); + this.lengths = new Array(); + this.segments = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0, n = data.bones.length; i < n; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findSlot(data.target.name); + this.position = data.position; + this.spacing = data.spacing; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + } + PathConstraint.prototype.apply = function () { + this.update(); + }; + PathConstraint.prototype.update = function () { + var attachment = this.target.getAttachment(); + if (!(attachment instanceof spine.PathAttachment)) + return; + var rotateMix = this.rotateMix, translateMix = this.translateMix; + var translate = translateMix > 0, rotate = rotateMix > 0; + if (!translate && !rotate) + return; + var data = this.data; + var spacingMode = data.spacingMode; + var lengthSpacing = spacingMode == spine.SpacingMode.Length; + var rotateMode = data.rotateMode; + var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; + var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; + var bones = this.bones; + var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; + var spacing = this.spacing; + if (scale || lengthSpacing) { + if (scale) + lengths = spine.Utils.setArraySize(this.lengths, boneCount); + for (var i = 0, n = spacesCount - 1; i < n;) { + var bone = bones[i]; + var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; + var length_1 = Math.sqrt(x * x + y * y); + if (scale) + lengths[i] = length_1; + spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; + } + } + else { + for (var i = 1; i < spacesCount; i++) + spaces[i] = spacing; + } + var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); + var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; + var tip = false; + if (offsetRotation == 0) + tip = rotateMode == spine.RotateMode.Chain; + else { + tip = false; + var p = this.target.bone; + offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + } + for (var i = 0, p = 3; i < boneCount; i++, p += 3) { + var bone = bones[i]; + bone.worldX += (boneX - bone.worldX) * translateMix; + bone.worldY += (boneY - bone.worldY) * translateMix; + var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; + if (scale) { + var length_2 = lengths[i]; + if (length_2 != 0) { + var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; + bone.a *= s; + bone.c *= s; + } + } + boneX = x; + boneY = y; + if (rotate) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; + if (tangents) + r = positions[p - 1]; + else if (spaces[i + 1] == 0) + r = positions[p + 2]; + else + r = Math.atan2(dy, dx); + r -= Math.atan2(c, a); + if (tip) { + cos = Math.cos(r); + sin = Math.sin(r); + var length_3 = bone.data.length; + boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; + boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; + } + else { + r += offsetRotation; + } + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + cos = Math.cos(r); + sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + bone.appliedValid = false; + } + }; + PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { + var target = this.target; + var position = this.position; + var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; + var closed = path.closed; + var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; + if (!path.constantSpeed) { + var lengths = path.lengths; + curveCount -= closed ? 1 : 2; + var pathLength_1 = lengths[curveCount]; + if (percentPosition) + position *= pathLength_1; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength_1; + } + world = spine.Utils.setArraySize(this.world, 8); + for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength_1; + if (p < 0) + p += pathLength_1; + curve = 0; + } + else if (p < 0) { + if (prevCurve != PathConstraint.BEFORE) { + prevCurve = PathConstraint.BEFORE; + path.computeWorldVertices(target, 2, 4, world, 0, 2); + } + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength_1) { + if (prevCurve != PathConstraint.AFTER) { + prevCurve = PathConstraint.AFTER; + path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); + } + this.addAfterPosition(p - pathLength_1, world, 0, out, o); + continue; + } + for (;; curve++) { + var length_4 = lengths[curve]; + if (p > length_4) + continue; + if (curve == 0) + p /= length_4; + else { + var prev = lengths[curve - 1]; + p = (p - prev) / (length_4 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + if (closed && curve == curveCount) { + path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); + path.computeWorldVertices(target, 0, 4, world, 4, 2); + } + else + path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); + } + this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); + } + return out; + } + if (closed) { + verticesLength += 2; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); + path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); + world[verticesLength - 2] = world[0]; + world[verticesLength - 1] = world[1]; + } + else { + curveCount--; + verticesLength -= 4; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); + } + var curves = spine.Utils.setArraySize(this.curves, curveCount); + var pathLength = 0; + var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; + var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; + for (var i = 0, w = 2; i < curveCount; i++, w += 6) { + cx1 = world[w]; + cy1 = world[w + 1]; + cx2 = world[w + 2]; + cy2 = world[w + 3]; + x2 = world[w + 4]; + y2 = world[w + 5]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; + tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + curves[i] = pathLength; + x1 = x2; + y1 = y2; + } + if (percentPosition) + position *= pathLength; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength; + } + var segments = this.segments; + var curveLength = 0; + for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength; + if (p < 0) + p += pathLength; + curve = 0; + } + else if (p < 0) { + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength) { + this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); + continue; + } + for (;; curve++) { + var length_5 = curves[curve]; + if (p > length_5) + continue; + if (curve == 0) + p /= length_5; + else { + var prev = curves[curve - 1]; + p = (p - prev) / (length_5 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + var ii = curve * 6; + x1 = world[ii]; + y1 = world[ii + 1]; + cx1 = world[ii + 2]; + cy1 = world[ii + 3]; + cx2 = world[ii + 4]; + cy2 = world[ii + 5]; + x2 = world[ii + 6]; + y2 = world[ii + 7]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.03; + tmpy = (y1 - cy1 * 2 + cy2) * 0.03; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; + curveLength = Math.sqrt(dfx * dfx + dfy * dfy); + segments[0] = curveLength; + for (ii = 1; ii < 8; ii++) { + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[ii] = curveLength; + } + dfx += ddfx; + dfy += ddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[8] = curveLength; + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[9] = curveLength; + segment = 0; + } + p *= curveLength; + for (;; segment++) { + var length_6 = segments[segment]; + if (p > length_6) + continue; + if (segment == 0) + p /= length_6; + else { + var prev = segments[segment - 1]; + p = segment + (p - prev) / (length_6 - prev); + } + break; + } + this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); + } + return out; + }; + PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { + var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { + var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { + if (p == 0 || isNaN(p)) + p = 0.0001; + var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; + var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; + var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; + out[o] = x; + out[o + 1] = y; + if (tangents) + out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); + }; + PathConstraint.prototype.getOrder = function () { + return this.data.order; + }; + PathConstraint.NONE = -1; + PathConstraint.BEFORE = -2; + PathConstraint.AFTER = -3; + return PathConstraint; + }()); + spine.PathConstraint = PathConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraintData = (function () { - function PathConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.name = name; - } - return PathConstraintData; - }()); - spine.PathConstraintData = PathConstraintData; - (function (PositionMode) { - PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; - PositionMode[PositionMode["Percent"] = 1] = "Percent"; - })(spine.PositionMode || (spine.PositionMode = {})); - var PositionMode = spine.PositionMode; - (function (SpacingMode) { - SpacingMode[SpacingMode["Length"] = 0] = "Length"; - SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; - SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; - })(spine.SpacingMode || (spine.SpacingMode = {})); - var SpacingMode = spine.SpacingMode; - (function (RotateMode) { - RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; - RotateMode[RotateMode["Chain"] = 1] = "Chain"; - RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; - })(spine.RotateMode || (spine.RotateMode = {})); - var RotateMode = spine.RotateMode; + var PathConstraintData = (function () { + function PathConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.name = name; + } + return PathConstraintData; + }()); + spine.PathConstraintData = PathConstraintData; + (function (PositionMode) { + PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; + PositionMode[PositionMode["Percent"] = 1] = "Percent"; + })(spine.PositionMode || (spine.PositionMode = {})); + var PositionMode = spine.PositionMode; + (function (SpacingMode) { + SpacingMode[SpacingMode["Length"] = 0] = "Length"; + SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; + SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; + })(spine.SpacingMode || (spine.SpacingMode = {})); + var SpacingMode = spine.SpacingMode; + (function (RotateMode) { + RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; + RotateMode[RotateMode["Chain"] = 1] = "Chain"; + RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; + })(spine.RotateMode || (spine.RotateMode = {})); + var RotateMode = spine.RotateMode; })(spine || (spine = {})); var spine; (function (spine) { - var Assets = (function () { - function Assets(clientId) { - this.toLoad = new Array(); - this.assets = {}; - this.clientId = clientId; - } - Assets.prototype.loaded = function () { - var i = 0; - for (var v in this.assets) - i++; - return i; - }; - return Assets; - }()); - var SharedAssetManager = (function () { - function SharedAssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.clientAssets = {}; - this.queuedAssets = {}; - this.rawAssets = {}; - this.errors = {}; - this.pathPrefix = pathPrefix; - } - SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) { - clientAssets = new Assets(clientId); - this.clientAssets[clientId] = clientAssets; - } - if (textureLoader !== null) - clientAssets.textureLoader = textureLoader; - clientAssets.toLoad.push(path); - if (this.queuedAssets[path] === path) { - return false; - } - else { - this.queuedAssets[path] = path; - return true; - } - }; - SharedAssetManager.prototype.loadText = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = request.responseText; - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadJson = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = JSON.parse(request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, textureLoader, path)) - return; - var img = new Image(); - img.src = path; - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - _this.rawAssets[path] = img; - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - }; - }; - SharedAssetManager.prototype.get = function (clientId, path) { - path = this.pathPrefix + path; - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - return clientAssets.assets[path]; - }; - SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { - for (var i = 0; i < clientAssets.toLoad.length; i++) { - var path = clientAssets.toLoad[i]; - var asset = clientAssets.assets[path]; - if (asset === null || asset === undefined) { - var rawAsset = this.rawAssets[path]; - if (rawAsset === null || rawAsset === undefined) - continue; - if (rawAsset instanceof HTMLImageElement) { - clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); - } - else { - clientAssets.assets[path] = rawAsset; - } - } - } - }; - SharedAssetManager.prototype.isLoadingComplete = function (clientId) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - this.updateClientAssets(clientAssets); - return clientAssets.toLoad.length == clientAssets.loaded(); - }; - SharedAssetManager.prototype.dispose = function () { - }; - SharedAssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - SharedAssetManager.prototype.getErrors = function () { - return this.errors; - }; - return SharedAssetManager; - }()); - spine.SharedAssetManager = SharedAssetManager; + var Assets = (function () { + function Assets(clientId) { + this.toLoad = new Array(); + this.assets = {}; + this.clientId = clientId; + } + Assets.prototype.loaded = function () { + var i = 0; + for (var v in this.assets) + i++; + return i; + }; + return Assets; + }()); + var SharedAssetManager = (function () { + function SharedAssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.clientAssets = {}; + this.queuedAssets = {}; + this.rawAssets = {}; + this.errors = {}; + this.pathPrefix = pathPrefix; + } + SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) { + clientAssets = new Assets(clientId); + this.clientAssets[clientId] = clientAssets; + } + if (textureLoader !== null) + clientAssets.textureLoader = textureLoader; + clientAssets.toLoad.push(path); + if (this.queuedAssets[path] === path) { + return false; + } + else { + this.queuedAssets[path] = path; + return true; + } + }; + SharedAssetManager.prototype.loadText = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = request.responseText; + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadJson = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = JSON.parse(request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, textureLoader, path)) + return; + var img = new Image(); + img.src = path; + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + _this.rawAssets[path] = img; + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + }; + }; + SharedAssetManager.prototype.get = function (clientId, path) { + path = this.pathPrefix + path; + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + return clientAssets.assets[path]; + }; + SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { + for (var i = 0; i < clientAssets.toLoad.length; i++) { + var path = clientAssets.toLoad[i]; + var asset = clientAssets.assets[path]; + if (asset === null || asset === undefined) { + var rawAsset = this.rawAssets[path]; + if (rawAsset === null || rawAsset === undefined) + continue; + if (rawAsset instanceof HTMLImageElement) { + clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); + } + else { + clientAssets.assets[path] = rawAsset; + } + } + } + }; + SharedAssetManager.prototype.isLoadingComplete = function (clientId) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + this.updateClientAssets(clientAssets); + return clientAssets.toLoad.length == clientAssets.loaded(); + }; + SharedAssetManager.prototype.dispose = function () { + }; + SharedAssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + SharedAssetManager.prototype.getErrors = function () { + return this.errors; + }; + return SharedAssetManager; + }()); + spine.SharedAssetManager = SharedAssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var Skeleton = (function () { - function Skeleton(data) { - this._updateCache = new Array(); - this.updateCacheReset = new Array(); - this.time = 0; - this.flipX = false; - this.flipY = false; - this.x = 0; - this.y = 0; - if (data == null) - throw new Error("data cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) { - var boneData = data.bones[i]; - var bone = void 0; - if (boneData.parent == null) - bone = new spine.Bone(boneData, this, null); - else { - var parent_1 = this.bones[boneData.parent.index]; - bone = new spine.Bone(boneData, this, parent_1); - parent_1.children.push(bone); - } - this.bones.push(bone); - } - this.slots = new Array(); - this.drawOrder = new Array(); - for (var i = 0; i < data.slots.length; i++) { - var slotData = data.slots[i]; - var bone = this.bones[slotData.boneData.index]; - var slot = new spine.Slot(slotData, bone); - this.slots.push(slot); - this.drawOrder.push(slot); - } - this.ikConstraints = new Array(); - for (var i = 0; i < data.ikConstraints.length; i++) { - var ikConstraintData = data.ikConstraints[i]; - this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); - } - this.transformConstraints = new Array(); - for (var i = 0; i < data.transformConstraints.length; i++) { - var transformConstraintData = data.transformConstraints[i]; - this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); - } - this.pathConstraints = new Array(); - for (var i = 0; i < data.pathConstraints.length; i++) { - var pathConstraintData = data.pathConstraints[i]; - this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); - } - this.color = new spine.Color(1, 1, 1, 1); - this.updateCache(); - } - Skeleton.prototype.updateCache = function () { - var updateCache = this._updateCache; - updateCache.length = 0; - this.updateCacheReset.length = 0; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].sorted = false; - var ikConstraints = this.ikConstraints; - var transformConstraints = this.transformConstraints; - var pathConstraints = this.pathConstraints; - var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; - var constraintCount = ikCount + transformCount + pathCount; - outer: for (var i = 0; i < constraintCount; i++) { - for (var ii = 0; ii < ikCount; ii++) { - var constraint = ikConstraints[ii]; - if (constraint.data.order == i) { - this.sortIkConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < transformCount; ii++) { - var constraint = transformConstraints[ii]; - if (constraint.data.order == i) { - this.sortTransformConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < pathCount; ii++) { - var constraint = pathConstraints[ii]; - if (constraint.data.order == i) { - this.sortPathConstraint(constraint); - continue outer; - } - } - } - for (var i = 0, n = bones.length; i < n; i++) - this.sortBone(bones[i]); - }; - Skeleton.prototype.sortIkConstraint = function (constraint) { - var target = constraint.target; - this.sortBone(target); - var constrained = constraint.bones; - var parent = constrained[0]; - this.sortBone(parent); - if (constrained.length > 1) { - var child = constrained[constrained.length - 1]; - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - this._updateCache.push(constraint); - this.sortReset(parent.children); - constrained[constrained.length - 1].sorted = true; - }; - Skeleton.prototype.sortPathConstraint = function (constraint) { - var slot = constraint.target; - var slotIndex = slot.data.index; - var slotBone = slot.bone; - if (this.skin != null) - this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); - if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) - this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); - for (var i = 0, n = this.data.skins.length; i < n; i++) - this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); - var attachment = slot.getAttachment(); - if (attachment instanceof spine.PathAttachment) - this.sortPathConstraintAttachmentWith(attachment, slotBone); - var constrained = constraint.bones; - var boneCount = constrained.length; - for (var i = 0; i < boneCount; i++) - this.sortBone(constrained[i]); - this._updateCache.push(constraint); - for (var i = 0; i < boneCount; i++) - this.sortReset(constrained[i].children); - for (var i = 0; i < boneCount; i++) - constrained[i].sorted = true; - }; - Skeleton.prototype.sortTransformConstraint = function (constraint) { - this.sortBone(constraint.target); - var constrained = constraint.bones; - var boneCount = constrained.length; - if (constraint.data.local) { - for (var i = 0; i < boneCount; i++) { - var child = constrained[i]; - this.sortBone(child.parent); - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - } - else { - for (var i = 0; i < boneCount; i++) { - this.sortBone(constrained[i]); - } - } - this._updateCache.push(constraint); - for (var ii = 0; ii < boneCount; ii++) - this.sortReset(constrained[ii].children); - for (var ii = 0; ii < boneCount; ii++) - constrained[ii].sorted = true; - }; - Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { - var attachments = skin.attachments[slotIndex]; - if (!attachments) - return; - for (var key in attachments) { - this.sortPathConstraintAttachmentWith(attachments[key], slotBone); - } - }; - Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { - if (!(attachment instanceof spine.PathAttachment)) - return; - var pathBones = attachment.bones; - if (pathBones == null) - this.sortBone(slotBone); - else { - var bones = this.bones; - var i = 0; - while (i < pathBones.length) { - var boneCount = pathBones[i++]; - for (var n = i + boneCount; i < n; i++) { - var boneIndex = pathBones[i]; - this.sortBone(bones[boneIndex]); - } - } - } - }; - Skeleton.prototype.sortBone = function (bone) { - if (bone.sorted) - return; - var parent = bone.parent; - if (parent != null) - this.sortBone(parent); - bone.sorted = true; - this._updateCache.push(bone); - }; - Skeleton.prototype.sortReset = function (bones) { - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.sorted) - this.sortReset(bone.children); - bone.sorted = false; - } - }; - Skeleton.prototype.updateWorldTransform = function () { - var updateCacheReset = this.updateCacheReset; - for (var i = 0, n = updateCacheReset.length; i < n; i++) { - var bone = updateCacheReset[i]; - bone.ax = bone.x; - bone.ay = bone.y; - bone.arotation = bone.rotation; - bone.ascaleX = bone.scaleX; - bone.ascaleY = bone.scaleY; - bone.ashearX = bone.shearX; - bone.ashearY = bone.shearY; - bone.appliedValid = true; - } - var updateCache = this._updateCache; - for (var i = 0, n = updateCache.length; i < n; i++) - updateCache[i].update(); - }; - Skeleton.prototype.setToSetupPose = function () { - this.setBonesToSetupPose(); - this.setSlotsToSetupPose(); - }; - Skeleton.prototype.setBonesToSetupPose = function () { - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].setToSetupPose(); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - constraint.bendDirection = constraint.data.bendDirection; - constraint.mix = constraint.data.mix; - } - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - var data = constraint.data; - constraint.position = data.position; - constraint.spacing = data.spacing; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - } - }; - Skeleton.prototype.setSlotsToSetupPose = function () { - var slots = this.slots; - spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); - for (var i = 0, n = slots.length; i < n; i++) - slots[i].setToSetupPose(); - }; - Skeleton.prototype.getRootBone = function () { - if (this.bones.length == 0) - return null; - return this.bones[0]; - }; - Skeleton.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.data.name == boneName) - return bone; - } - return null; - }; - Skeleton.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].data.name == boneName) - return i; - return -1; - }; - Skeleton.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) - return slot; - } - return null; - }; - Skeleton.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].data.name == slotName) - return i; - return -1; - }; - Skeleton.prototype.setSkinByName = function (skinName) { - var skin = this.data.findSkin(skinName); - if (skin == null) - throw new Error("Skin not found: " + skinName); - this.setSkin(skin); - }; - Skeleton.prototype.setSkin = function (newSkin) { - if (newSkin != null) { - if (this.skin != null) - newSkin.attachAll(this, this.skin); - else { - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var name_1 = slot.data.attachmentName; - if (name_1 != null) { - var attachment = newSkin.getAttachment(i, name_1); - if (attachment != null) - slot.setAttachment(attachment); - } - } - } - } - this.skin = newSkin; - }; - Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { - return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); - }; - Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { - if (attachmentName == null) - throw new Error("attachmentName cannot be null."); - if (this.skin != null) { - var attachment = this.skin.getAttachment(slotIndex, attachmentName); - if (attachment != null) - return attachment; - } - if (this.data.defaultSkin != null) - return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); - return null; - }; - Skeleton.prototype.setAttachment = function (slotName, attachmentName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) { - var attachment = null; - if (attachmentName != null) { - attachment = this.getAttachment(i, attachmentName); - if (attachment == null) - throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); - } - slot.setAttachment(attachment); - return; - } - } - throw new Error("Slot not found: " + slotName); - }; - Skeleton.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var ikConstraint = ikConstraints[i]; - if (ikConstraint.data.name == constraintName) - return ikConstraint; - } - return null; - }; - Skeleton.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.getBounds = function (offset, size, temp) { - if (offset == null) - throw new Error("offset cannot be null."); - if (size == null) - throw new Error("size cannot be null."); - var drawOrder = this.drawOrder; - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var verticesLength = 0; - var vertices = null; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.RegionAttachment) { - verticesLength = 8; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - attachment.computeWorldVertices(slot.bone, vertices, 0, 2); - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - verticesLength = mesh.worldVerticesLength; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); - } - if (vertices != null) { - for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { - var x = vertices[ii], y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - } - offset.set(minX, minY); - size.set(maxX - minX, maxY - minY); - }; - Skeleton.prototype.update = function (delta) { - this.time += delta; - }; - return Skeleton; - }()); - spine.Skeleton = Skeleton; + var Skeleton = (function () { + function Skeleton(data) { + this._updateCache = new Array(); + this.updateCacheReset = new Array(); + this.time = 0; + this.flipX = false; + this.flipY = false; + this.x = 0; + this.y = 0; + if (data == null) + throw new Error("data cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) { + var boneData = data.bones[i]; + var bone = void 0; + if (boneData.parent == null) + bone = new spine.Bone(boneData, this, null); + else { + var parent_1 = this.bones[boneData.parent.index]; + bone = new spine.Bone(boneData, this, parent_1); + parent_1.children.push(bone); + } + this.bones.push(bone); + } + this.slots = new Array(); + this.drawOrder = new Array(); + for (var i = 0; i < data.slots.length; i++) { + var slotData = data.slots[i]; + var bone = this.bones[slotData.boneData.index]; + var slot = new spine.Slot(slotData, bone); + this.slots.push(slot); + this.drawOrder.push(slot); + } + this.ikConstraints = new Array(); + for (var i = 0; i < data.ikConstraints.length; i++) { + var ikConstraintData = data.ikConstraints[i]; + this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); + } + this.transformConstraints = new Array(); + for (var i = 0; i < data.transformConstraints.length; i++) { + var transformConstraintData = data.transformConstraints[i]; + this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); + } + this.pathConstraints = new Array(); + for (var i = 0; i < data.pathConstraints.length; i++) { + var pathConstraintData = data.pathConstraints[i]; + this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); + } + this.color = new spine.Color(1, 1, 1, 1); + this.updateCache(); + } + Skeleton.prototype.updateCache = function () { + var updateCache = this._updateCache; + updateCache.length = 0; + this.updateCacheReset.length = 0; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].sorted = false; + var ikConstraints = this.ikConstraints; + var transformConstraints = this.transformConstraints; + var pathConstraints = this.pathConstraints; + var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; + var constraintCount = ikCount + transformCount + pathCount; + outer: for (var i = 0; i < constraintCount; i++) { + for (var ii = 0; ii < ikCount; ii++) { + var constraint = ikConstraints[ii]; + if (constraint.data.order == i) { + this.sortIkConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < transformCount; ii++) { + var constraint = transformConstraints[ii]; + if (constraint.data.order == i) { + this.sortTransformConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < pathCount; ii++) { + var constraint = pathConstraints[ii]; + if (constraint.data.order == i) { + this.sortPathConstraint(constraint); + continue outer; + } + } + } + for (var i = 0, n = bones.length; i < n; i++) + this.sortBone(bones[i]); + }; + Skeleton.prototype.sortIkConstraint = function (constraint) { + var target = constraint.target; + this.sortBone(target); + var constrained = constraint.bones; + var parent = constrained[0]; + this.sortBone(parent); + if (constrained.length > 1) { + var child = constrained[constrained.length - 1]; + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + this._updateCache.push(constraint); + this.sortReset(parent.children); + constrained[constrained.length - 1].sorted = true; + }; + Skeleton.prototype.sortPathConstraint = function (constraint) { + var slot = constraint.target; + var slotIndex = slot.data.index; + var slotBone = slot.bone; + if (this.skin != null) + this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); + if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) + this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); + for (var i = 0, n = this.data.skins.length; i < n; i++) + this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); + var attachment = slot.getAttachment(); + if (attachment instanceof spine.PathAttachment) + this.sortPathConstraintAttachmentWith(attachment, slotBone); + var constrained = constraint.bones; + var boneCount = constrained.length; + for (var i = 0; i < boneCount; i++) + this.sortBone(constrained[i]); + this._updateCache.push(constraint); + for (var i = 0; i < boneCount; i++) + this.sortReset(constrained[i].children); + for (var i = 0; i < boneCount; i++) + constrained[i].sorted = true; + }; + Skeleton.prototype.sortTransformConstraint = function (constraint) { + this.sortBone(constraint.target); + var constrained = constraint.bones; + var boneCount = constrained.length; + if (constraint.data.local) { + for (var i = 0; i < boneCount; i++) { + var child = constrained[i]; + this.sortBone(child.parent); + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + } + else { + for (var i = 0; i < boneCount; i++) { + this.sortBone(constrained[i]); + } + } + this._updateCache.push(constraint); + for (var ii = 0; ii < boneCount; ii++) + this.sortReset(constrained[ii].children); + for (var ii = 0; ii < boneCount; ii++) + constrained[ii].sorted = true; + }; + Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { + var attachments = skin.attachments[slotIndex]; + if (!attachments) + return; + for (var key in attachments) { + this.sortPathConstraintAttachmentWith(attachments[key], slotBone); + } + }; + Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { + if (!(attachment instanceof spine.PathAttachment)) + return; + var pathBones = attachment.bones; + if (pathBones == null) + this.sortBone(slotBone); + else { + var bones = this.bones; + var i = 0; + while (i < pathBones.length) { + var boneCount = pathBones[i++]; + for (var n = i + boneCount; i < n; i++) { + var boneIndex = pathBones[i]; + this.sortBone(bones[boneIndex]); + } + } + } + }; + Skeleton.prototype.sortBone = function (bone) { + if (bone.sorted) + return; + var parent = bone.parent; + if (parent != null) + this.sortBone(parent); + bone.sorted = true; + this._updateCache.push(bone); + }; + Skeleton.prototype.sortReset = function (bones) { + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.sorted) + this.sortReset(bone.children); + bone.sorted = false; + } + }; + Skeleton.prototype.updateWorldTransform = function () { + var updateCacheReset = this.updateCacheReset; + for (var i = 0, n = updateCacheReset.length; i < n; i++) { + var bone = updateCacheReset[i]; + bone.ax = bone.x; + bone.ay = bone.y; + bone.arotation = bone.rotation; + bone.ascaleX = bone.scaleX; + bone.ascaleY = bone.scaleY; + bone.ashearX = bone.shearX; + bone.ashearY = bone.shearY; + bone.appliedValid = true; + } + var updateCache = this._updateCache; + for (var i = 0, n = updateCache.length; i < n; i++) + updateCache[i].update(); + }; + Skeleton.prototype.setToSetupPose = function () { + this.setBonesToSetupPose(); + this.setSlotsToSetupPose(); + }; + Skeleton.prototype.setBonesToSetupPose = function () { + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].setToSetupPose(); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + constraint.bendDirection = constraint.data.bendDirection; + constraint.mix = constraint.data.mix; + } + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + var data = constraint.data; + constraint.position = data.position; + constraint.spacing = data.spacing; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + } + }; + Skeleton.prototype.setSlotsToSetupPose = function () { + var slots = this.slots; + spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); + for (var i = 0, n = slots.length; i < n; i++) + slots[i].setToSetupPose(); + }; + Skeleton.prototype.getRootBone = function () { + if (this.bones.length == 0) + return null; + return this.bones[0]; + }; + Skeleton.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.data.name == boneName) + return bone; + } + return null; + }; + Skeleton.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].data.name == boneName) + return i; + return -1; + }; + Skeleton.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) + return slot; + } + return null; + }; + Skeleton.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].data.name == slotName) + return i; + return -1; + }; + Skeleton.prototype.setSkinByName = function (skinName) { + var skin = this.data.findSkin(skinName); + if (skin == null) + throw new Error("Skin not found: " + skinName); + this.setSkin(skin); + }; + Skeleton.prototype.setSkin = function (newSkin) { + if (newSkin != null) { + if (this.skin != null) + newSkin.attachAll(this, this.skin); + else { + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var name_1 = slot.data.attachmentName; + if (name_1 != null) { + var attachment = newSkin.getAttachment(i, name_1); + if (attachment != null) + slot.setAttachment(attachment); + } + } + } + } + this.skin = newSkin; + }; + Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { + return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); + }; + Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { + if (attachmentName == null) + throw new Error("attachmentName cannot be null."); + if (this.skin != null) { + var attachment = this.skin.getAttachment(slotIndex, attachmentName); + if (attachment != null) + return attachment; + } + if (this.data.defaultSkin != null) + return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); + return null; + }; + Skeleton.prototype.setAttachment = function (slotName, attachmentName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) { + var attachment = null; + if (attachmentName != null) { + attachment = this.getAttachment(i, attachmentName); + if (attachment == null) + throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); + } + slot.setAttachment(attachment); + return; + } + } + throw new Error("Slot not found: " + slotName); + }; + Skeleton.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var ikConstraint = ikConstraints[i]; + if (ikConstraint.data.name == constraintName) + return ikConstraint; + } + return null; + }; + Skeleton.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.getBounds = function (offset, size, temp) { + if (offset == null) + throw new Error("offset cannot be null."); + if (size == null) + throw new Error("size cannot be null."); + var drawOrder = this.drawOrder; + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var verticesLength = 0; + var vertices = null; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.RegionAttachment) { + verticesLength = 8; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + attachment.computeWorldVertices(slot.bone, vertices, 0, 2); + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + verticesLength = mesh.worldVerticesLength; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); + } + if (vertices != null) { + for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { + var x = vertices[ii], y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + } + offset.set(minX, minY); + size.set(maxX - minX, maxY - minY); + }; + Skeleton.prototype.update = function (delta) { + this.time += delta; + }; + return Skeleton; + }()); + spine.Skeleton = Skeleton; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonBounds = (function () { - function SkeletonBounds() { - this.minX = 0; - this.minY = 0; - this.maxX = 0; - this.maxY = 0; - this.boundingBoxes = new Array(); - this.polygons = new Array(); - this.polygonPool = new spine.Pool(function () { - return spine.Utils.newFloatArray(16); - }); - } - SkeletonBounds.prototype.update = function (skeleton, updateAabb) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - var boundingBoxes = this.boundingBoxes; - var polygons = this.polygons; - var polygonPool = this.polygonPool; - var slots = skeleton.slots; - var slotCount = slots.length; - boundingBoxes.length = 0; - polygonPool.freeAll(polygons); - polygons.length = 0; - for (var i = 0; i < slotCount; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.BoundingBoxAttachment) { - var boundingBox = attachment; - boundingBoxes.push(boundingBox); - var polygon = polygonPool.obtain(); - if (polygon.length != boundingBox.worldVerticesLength) { - polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); - } - polygons.push(polygon); - boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); - } - } - if (updateAabb) { - this.aabbCompute(); - } - else { - this.minX = Number.POSITIVE_INFINITY; - this.minY = Number.POSITIVE_INFINITY; - this.maxX = Number.NEGATIVE_INFINITY; - this.maxY = Number.NEGATIVE_INFINITY; - } - }; - SkeletonBounds.prototype.aabbCompute = function () { - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) { - var polygon = polygons[i]; - var vertices = polygon; - for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { - var x = vertices[ii]; - var y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - this.minX = minX; - this.minY = minY; - this.maxX = maxX; - this.maxY = maxY; - }; - SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { - return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; - }; - SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { - var minX = this.minX; - var minY = this.minY; - var maxX = this.maxX; - var maxY = this.maxY; - if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) - return false; - var m = (y2 - y1) / (x2 - x1); - var y = m * (minX - x1) + y1; - if (y > minY && y < maxY) - return true; - y = m * (maxX - x1) + y1; - if (y > minY && y < maxY) - return true; - var x = (minY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - x = (maxY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - return false; - }; - SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { - return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; - }; - SkeletonBounds.prototype.containsPoint = function (x, y) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.containsPointPolygon(polygons[i], x, y)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { - var vertices = polygon; - var nn = polygon.length; - var prevIndex = nn - 2; - var inside = false; - for (var ii = 0; ii < nn; ii += 2) { - var vertexY = vertices[ii + 1]; - var prevY = vertices[prevIndex + 1]; - if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { - var vertexX = vertices[ii]; - if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) - inside = !inside; - } - prevIndex = ii; - } - return inside; - }; - SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { - var vertices = polygon; - var nn = polygon.length; - var width12 = x1 - x2, height12 = y1 - y2; - var det1 = x1 * y2 - y1 * x2; - var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; - for (var ii = 0; ii < nn; ii += 2) { - var x4 = vertices[ii], y4 = vertices[ii + 1]; - var det2 = x3 * y4 - y3 * x4; - var width34 = x3 - x4, height34 = y3 - y4; - var det3 = width12 * height34 - height12 * width34; - var x = (det1 * width34 - width12 * det2) / det3; - if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { - var y = (det1 * height34 - height12 * det2) / det3; - if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) - return true; - } - x3 = x4; - y3 = y4; - } - return false; - }; - SkeletonBounds.prototype.getPolygon = function (boundingBox) { - if (boundingBox == null) - throw new Error("boundingBox cannot be null."); - var index = this.boundingBoxes.indexOf(boundingBox); - return index == -1 ? null : this.polygons[index]; - }; - SkeletonBounds.prototype.getWidth = function () { - return this.maxX - this.minX; - }; - SkeletonBounds.prototype.getHeight = function () { - return this.maxY - this.minY; - }; - return SkeletonBounds; - }()); - spine.SkeletonBounds = SkeletonBounds; + var SkeletonBounds = (function () { + function SkeletonBounds() { + this.minX = 0; + this.minY = 0; + this.maxX = 0; + this.maxY = 0; + this.boundingBoxes = new Array(); + this.polygons = new Array(); + this.polygonPool = new spine.Pool(function () { + return spine.Utils.newFloatArray(16); + }); + } + SkeletonBounds.prototype.update = function (skeleton, updateAabb) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + var boundingBoxes = this.boundingBoxes; + var polygons = this.polygons; + var polygonPool = this.polygonPool; + var slots = skeleton.slots; + var slotCount = slots.length; + boundingBoxes.length = 0; + polygonPool.freeAll(polygons); + polygons.length = 0; + for (var i = 0; i < slotCount; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.BoundingBoxAttachment) { + var boundingBox = attachment; + boundingBoxes.push(boundingBox); + var polygon = polygonPool.obtain(); + if (polygon.length != boundingBox.worldVerticesLength) { + polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); + } + polygons.push(polygon); + boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); + } + } + if (updateAabb) { + this.aabbCompute(); + } + else { + this.minX = Number.POSITIVE_INFINITY; + this.minY = Number.POSITIVE_INFINITY; + this.maxX = Number.NEGATIVE_INFINITY; + this.maxY = Number.NEGATIVE_INFINITY; + } + }; + SkeletonBounds.prototype.aabbCompute = function () { + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) { + var polygon = polygons[i]; + var vertices = polygon; + for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { + var x = vertices[ii]; + var y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + this.minX = minX; + this.minY = minY; + this.maxX = maxX; + this.maxY = maxY; + }; + SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { + return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; + }; + SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { + var minX = this.minX; + var minY = this.minY; + var maxX = this.maxX; + var maxY = this.maxY; + if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) + return false; + var m = (y2 - y1) / (x2 - x1); + var y = m * (minX - x1) + y1; + if (y > minY && y < maxY) + return true; + y = m * (maxX - x1) + y1; + if (y > minY && y < maxY) + return true; + var x = (minY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + x = (maxY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + return false; + }; + SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { + return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; + }; + SkeletonBounds.prototype.containsPoint = function (x, y) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.containsPointPolygon(polygons[i], x, y)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { + var vertices = polygon; + var nn = polygon.length; + var prevIndex = nn - 2; + var inside = false; + for (var ii = 0; ii < nn; ii += 2) { + var vertexY = vertices[ii + 1]; + var prevY = vertices[prevIndex + 1]; + if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { + var vertexX = vertices[ii]; + if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) + inside = !inside; + } + prevIndex = ii; + } + return inside; + }; + SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { + var vertices = polygon; + var nn = polygon.length; + var width12 = x1 - x2, height12 = y1 - y2; + var det1 = x1 * y2 - y1 * x2; + var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; + for (var ii = 0; ii < nn; ii += 2) { + var x4 = vertices[ii], y4 = vertices[ii + 1]; + var det2 = x3 * y4 - y3 * x4; + var width34 = x3 - x4, height34 = y3 - y4; + var det3 = width12 * height34 - height12 * width34; + var x = (det1 * width34 - width12 * det2) / det3; + if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { + var y = (det1 * height34 - height12 * det2) / det3; + if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) + return true; + } + x3 = x4; + y3 = y4; + } + return false; + }; + SkeletonBounds.prototype.getPolygon = function (boundingBox) { + if (boundingBox == null) + throw new Error("boundingBox cannot be null."); + var index = this.boundingBoxes.indexOf(boundingBox); + return index == -1 ? null : this.polygons[index]; + }; + SkeletonBounds.prototype.getWidth = function () { + return this.maxX - this.minX; + }; + SkeletonBounds.prototype.getHeight = function () { + return this.maxY - this.minY; + }; + return SkeletonBounds; + }()); + spine.SkeletonBounds = SkeletonBounds; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonClipping = (function () { - function SkeletonClipping() { - this.triangulator = new spine.Triangulator(); - this.clippingPolygon = new Array(); - this.clipOutput = new Array(); - this.clippedVertices = new Array(); - this.clippedTriangles = new Array(); - this.scratch = new Array(); - } - SkeletonClipping.prototype.clipStart = function (slot, clip) { - if (this.clipAttachment != null) - return 0; - this.clipAttachment = clip; - var n = clip.worldVerticesLength; - var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); - clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); - var clippingPolygon = this.clippingPolygon; - SkeletonClipping.makeClockwise(clippingPolygon); - var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); - for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { - var polygon = clippingPolygons[i]; - SkeletonClipping.makeClockwise(polygon); - polygon.push(polygon[0]); - polygon.push(polygon[1]); - } - return clippingPolygons.length; - }; - SkeletonClipping.prototype.clipEndWithSlot = function (slot) { - if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) - this.clipEnd(); - }; - SkeletonClipping.prototype.clipEnd = function () { - if (this.clipAttachment == null) - return; - this.clipAttachment = null; - this.clippingPolygons = null; - this.clippedVertices.length = 0; - this.clippedTriangles.length = 0; - this.clippingPolygon.length = 0; - }; - SkeletonClipping.prototype.isClipping = function () { - return this.clipAttachment != null; - }; - SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { - var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; - var clippedTriangles = this.clippedTriangles; - var polygons = this.clippingPolygons; - var polygonsCount = this.clippingPolygons.length; - var vertexSize = twoColor ? 12 : 8; - var index = 0; - clippedVertices.length = 0; - clippedTriangles.length = 0; - outer: for (var i = 0; i < trianglesLength; i += 3) { - var vertexOffset = triangles[i] << 1; - var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; - var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 1] << 1; - var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; - var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 2] << 1; - var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; - var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; - for (var p = 0; p < polygonsCount; p++) { - var s = clippedVertices.length; - if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { - var clipOutputLength = clipOutput.length; - if (clipOutputLength == 0) - continue; - var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; - var d = 1 / (d0 * d2 + d1 * (y1 - y3)); - var clipOutputCount = clipOutputLength >> 1; - var clipOutputItems = this.clipOutput; - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); - for (var ii = 0; ii < clipOutputLength; ii += 2) { - var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; - clippedVerticesItems[s] = x; - clippedVerticesItems[s + 1] = y; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - var c0 = x - x3, c1 = y - y3; - var a = (d0 * c0 + d1 * c1) * d; - var b = (d4 * c0 + d2 * c1) * d; - var c = 1 - a - b; - clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; - clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; - if (twoColor) { - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 8] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - } - s += vertexSize; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); - clipOutputCount--; - for (var ii = 1; ii < clipOutputCount; ii++) { - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + ii); - clippedTrianglesItems[s + 2] = (index + ii + 1); - s += 3; - } - index += clipOutputCount + 1; - } - else { - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); - clippedVerticesItems[s] = x1; - clippedVerticesItems[s + 1] = y1; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - if (!twoColor) { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = x2; - clippedVerticesItems[s + 9] = y2; - clippedVerticesItems[s + 10] = light.r; - clippedVerticesItems[s + 11] = light.g; - clippedVerticesItems[s + 12] = light.b; - clippedVerticesItems[s + 13] = light.a; - clippedVerticesItems[s + 14] = u2; - clippedVerticesItems[s + 15] = v2; - clippedVerticesItems[s + 16] = x3; - clippedVerticesItems[s + 17] = y3; - clippedVerticesItems[s + 18] = light.r; - clippedVerticesItems[s + 19] = light.g; - clippedVerticesItems[s + 20] = light.b; - clippedVerticesItems[s + 21] = light.a; - clippedVerticesItems[s + 22] = u3; - clippedVerticesItems[s + 23] = v3; - } - else { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 9] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - clippedVerticesItems[s + 12] = x2; - clippedVerticesItems[s + 13] = y2; - clippedVerticesItems[s + 14] = light.r; - clippedVerticesItems[s + 15] = light.g; - clippedVerticesItems[s + 16] = light.b; - clippedVerticesItems[s + 17] = light.a; - clippedVerticesItems[s + 18] = u2; - clippedVerticesItems[s + 19] = v2; - clippedVerticesItems[s + 20] = dark.r; - clippedVerticesItems[s + 21] = dark.g; - clippedVerticesItems[s + 22] = dark.b; - clippedVerticesItems[s + 23] = dark.a; - clippedVerticesItems[s + 24] = x3; - clippedVerticesItems[s + 25] = y3; - clippedVerticesItems[s + 26] = light.r; - clippedVerticesItems[s + 27] = light.g; - clippedVerticesItems[s + 28] = light.b; - clippedVerticesItems[s + 29] = light.a; - clippedVerticesItems[s + 30] = u3; - clippedVerticesItems[s + 31] = v3; - clippedVerticesItems[s + 32] = dark.r; - clippedVerticesItems[s + 33] = dark.g; - clippedVerticesItems[s + 34] = dark.b; - clippedVerticesItems[s + 35] = dark.a; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + 1); - clippedTrianglesItems[s + 2] = (index + 2); - index += 3; - continue outer; - } - } - } - }; - SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { - var originalOutput = output; - var clipped = false; - var input = null; - if (clippingArea.length % 4 >= 2) { - input = output; - output = this.scratch; - } - else - input = this.scratch; - input.length = 0; - input.push(x1); - input.push(y1); - input.push(x2); - input.push(y2); - input.push(x3); - input.push(y3); - input.push(x1); - input.push(y1); - output.length = 0; - var clippingVertices = clippingArea; - var clippingVerticesLast = clippingArea.length - 4; - for (var i = 0;; i += 2) { - var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; - var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; - var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; - var inputVertices = input; - var inputVerticesLength = input.length - 2, outputStart = output.length; - for (var ii = 0; ii < inputVerticesLength; ii += 2) { - var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; - var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; - var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; - if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { - if (side2) { - output.push(inputX2); - output.push(inputY2); - continue; - } - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - } - else if (side2) { - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - output.push(inputX2); - output.push(inputY2); - } - clipped = true; - } - if (outputStart == output.length) { - originalOutput.length = 0; - return true; - } - output.push(output[0]); - output.push(output[1]); - if (i == clippingVerticesLast) - break; - var temp = output; - output = input; - output.length = 0; - input = temp; - } - if (originalOutput != output) { - originalOutput.length = 0; - for (var i = 0, n = output.length - 2; i < n; i++) - originalOutput[i] = output[i]; - } - else - originalOutput.length = originalOutput.length - 2; - return clipped; - }; - SkeletonClipping.makeClockwise = function (polygon) { - var vertices = polygon; - var verticeslength = polygon.length; - var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; - for (var i = 0, n = verticeslength - 3; i < n; i += 2) { - p1x = vertices[i]; - p1y = vertices[i + 1]; - p2x = vertices[i + 2]; - p2y = vertices[i + 3]; - area += p1x * p2y - p2x * p1y; - } - if (area < 0) - return; - for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { - var x = vertices[i], y = vertices[i + 1]; - var other = lastX - i; - vertices[i] = vertices[other]; - vertices[i + 1] = vertices[other + 1]; - vertices[other] = x; - vertices[other + 1] = y; - } - }; - return SkeletonClipping; - }()); - spine.SkeletonClipping = SkeletonClipping; + var SkeletonClipping = (function () { + function SkeletonClipping() { + this.triangulator = new spine.Triangulator(); + this.clippingPolygon = new Array(); + this.clipOutput = new Array(); + this.clippedVertices = new Array(); + this.clippedTriangles = new Array(); + this.scratch = new Array(); + } + SkeletonClipping.prototype.clipStart = function (slot, clip) { + if (this.clipAttachment != null) + return 0; + this.clipAttachment = clip; + var n = clip.worldVerticesLength; + var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); + clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); + var clippingPolygon = this.clippingPolygon; + SkeletonClipping.makeClockwise(clippingPolygon); + var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); + for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { + var polygon = clippingPolygons[i]; + SkeletonClipping.makeClockwise(polygon); + polygon.push(polygon[0]); + polygon.push(polygon[1]); + } + return clippingPolygons.length; + }; + SkeletonClipping.prototype.clipEndWithSlot = function (slot) { + if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) + this.clipEnd(); + }; + SkeletonClipping.prototype.clipEnd = function () { + if (this.clipAttachment == null) + return; + this.clipAttachment = null; + this.clippingPolygons = null; + this.clippedVertices.length = 0; + this.clippedTriangles.length = 0; + this.clippingPolygon.length = 0; + }; + SkeletonClipping.prototype.isClipping = function () { + return this.clipAttachment != null; + }; + SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { + var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; + var clippedTriangles = this.clippedTriangles; + var polygons = this.clippingPolygons; + var polygonsCount = this.clippingPolygons.length; + var vertexSize = twoColor ? 12 : 8; + var index = 0; + clippedVertices.length = 0; + clippedTriangles.length = 0; + outer: for (var i = 0; i < trianglesLength; i += 3) { + var vertexOffset = triangles[i] << 1; + var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; + var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 1] << 1; + var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; + var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 2] << 1; + var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; + var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; + for (var p = 0; p < polygonsCount; p++) { + var s = clippedVertices.length; + if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { + var clipOutputLength = clipOutput.length; + if (clipOutputLength == 0) + continue; + var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; + var d = 1 / (d0 * d2 + d1 * (y1 - y3)); + var clipOutputCount = clipOutputLength >> 1; + var clipOutputItems = this.clipOutput; + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); + for (var ii = 0; ii < clipOutputLength; ii += 2) { + var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; + clippedVerticesItems[s] = x; + clippedVerticesItems[s + 1] = y; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + var c0 = x - x3, c1 = y - y3; + var a = (d0 * c0 + d1 * c1) * d; + var b = (d4 * c0 + d2 * c1) * d; + var c = 1 - a - b; + clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; + clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; + if (twoColor) { + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 8] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + } + s += vertexSize; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); + clipOutputCount--; + for (var ii = 1; ii < clipOutputCount; ii++) { + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + ii); + clippedTrianglesItems[s + 2] = (index + ii + 1); + s += 3; + } + index += clipOutputCount + 1; + } + else { + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); + clippedVerticesItems[s] = x1; + clippedVerticesItems[s + 1] = y1; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + if (!twoColor) { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = x2; + clippedVerticesItems[s + 9] = y2; + clippedVerticesItems[s + 10] = light.r; + clippedVerticesItems[s + 11] = light.g; + clippedVerticesItems[s + 12] = light.b; + clippedVerticesItems[s + 13] = light.a; + clippedVerticesItems[s + 14] = u2; + clippedVerticesItems[s + 15] = v2; + clippedVerticesItems[s + 16] = x3; + clippedVerticesItems[s + 17] = y3; + clippedVerticesItems[s + 18] = light.r; + clippedVerticesItems[s + 19] = light.g; + clippedVerticesItems[s + 20] = light.b; + clippedVerticesItems[s + 21] = light.a; + clippedVerticesItems[s + 22] = u3; + clippedVerticesItems[s + 23] = v3; + } + else { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 9] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + clippedVerticesItems[s + 12] = x2; + clippedVerticesItems[s + 13] = y2; + clippedVerticesItems[s + 14] = light.r; + clippedVerticesItems[s + 15] = light.g; + clippedVerticesItems[s + 16] = light.b; + clippedVerticesItems[s + 17] = light.a; + clippedVerticesItems[s + 18] = u2; + clippedVerticesItems[s + 19] = v2; + clippedVerticesItems[s + 20] = dark.r; + clippedVerticesItems[s + 21] = dark.g; + clippedVerticesItems[s + 22] = dark.b; + clippedVerticesItems[s + 23] = dark.a; + clippedVerticesItems[s + 24] = x3; + clippedVerticesItems[s + 25] = y3; + clippedVerticesItems[s + 26] = light.r; + clippedVerticesItems[s + 27] = light.g; + clippedVerticesItems[s + 28] = light.b; + clippedVerticesItems[s + 29] = light.a; + clippedVerticesItems[s + 30] = u3; + clippedVerticesItems[s + 31] = v3; + clippedVerticesItems[s + 32] = dark.r; + clippedVerticesItems[s + 33] = dark.g; + clippedVerticesItems[s + 34] = dark.b; + clippedVerticesItems[s + 35] = dark.a; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + 1); + clippedTrianglesItems[s + 2] = (index + 2); + index += 3; + continue outer; + } + } + } + }; + SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { + var originalOutput = output; + var clipped = false; + var input = null; + if (clippingArea.length % 4 >= 2) { + input = output; + output = this.scratch; + } + else + input = this.scratch; + input.length = 0; + input.push(x1); + input.push(y1); + input.push(x2); + input.push(y2); + input.push(x3); + input.push(y3); + input.push(x1); + input.push(y1); + output.length = 0; + var clippingVertices = clippingArea; + var clippingVerticesLast = clippingArea.length - 4; + for (var i = 0;; i += 2) { + var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; + var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; + var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; + var inputVertices = input; + var inputVerticesLength = input.length - 2, outputStart = output.length; + for (var ii = 0; ii < inputVerticesLength; ii += 2) { + var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; + var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; + var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; + if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { + if (side2) { + output.push(inputX2); + output.push(inputY2); + continue; + } + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + } + else if (side2) { + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + output.push(inputX2); + output.push(inputY2); + } + clipped = true; + } + if (outputStart == output.length) { + originalOutput.length = 0; + return true; + } + output.push(output[0]); + output.push(output[1]); + if (i == clippingVerticesLast) + break; + var temp = output; + output = input; + output.length = 0; + input = temp; + } + if (originalOutput != output) { + originalOutput.length = 0; + for (var i = 0, n = output.length - 2; i < n; i++) + originalOutput[i] = output[i]; + } + else + originalOutput.length = originalOutput.length - 2; + return clipped; + }; + SkeletonClipping.makeClockwise = function (polygon) { + var vertices = polygon; + var verticeslength = polygon.length; + var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; + for (var i = 0, n = verticeslength - 3; i < n; i += 2) { + p1x = vertices[i]; + p1y = vertices[i + 1]; + p2x = vertices[i + 2]; + p2y = vertices[i + 3]; + area += p1x * p2y - p2x * p1y; + } + if (area < 0) + return; + for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { + var x = vertices[i], y = vertices[i + 1]; + var other = lastX - i; + vertices[i] = vertices[other]; + vertices[i + 1] = vertices[other + 1]; + vertices[other] = x; + vertices[other + 1] = y; + } + }; + return SkeletonClipping; + }()); + spine.SkeletonClipping = SkeletonClipping; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonData = (function () { - function SkeletonData() { - this.bones = new Array(); - this.slots = new Array(); - this.skins = new Array(); - this.events = new Array(); - this.animations = new Array(); - this.ikConstraints = new Array(); - this.transformConstraints = new Array(); - this.pathConstraints = new Array(); - this.fps = 0; - } - SkeletonData.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.name == boneName) - return bone; - } - return null; - }; - SkeletonData.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].name == boneName) - return i; - return -1; - }; - SkeletonData.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.name == slotName) - return slot; - } - return null; - }; - SkeletonData.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].name == slotName) - return i; - return -1; - }; - SkeletonData.prototype.findSkin = function (skinName) { - if (skinName == null) - throw new Error("skinName cannot be null."); - var skins = this.skins; - for (var i = 0, n = skins.length; i < n; i++) { - var skin = skins[i]; - if (skin.name == skinName) - return skin; - } - return null; - }; - SkeletonData.prototype.findEvent = function (eventDataName) { - if (eventDataName == null) - throw new Error("eventDataName cannot be null."); - var events = this.events; - for (var i = 0, n = events.length; i < n; i++) { - var event_4 = events[i]; - if (event_4.name == eventDataName) - return event_4; - } - return null; - }; - SkeletonData.prototype.findAnimation = function (animationName) { - if (animationName == null) - throw new Error("animationName cannot be null."); - var animations = this.animations; - for (var i = 0, n = animations.length; i < n; i++) { - var animation = animations[i]; - if (animation.name == animationName) - return animation; - } - return null; - }; - SkeletonData.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { - if (pathConstraintName == null) - throw new Error("pathConstraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) - if (pathConstraints[i].name == pathConstraintName) - return i; - return -1; - }; - return SkeletonData; - }()); - spine.SkeletonData = SkeletonData; + var SkeletonData = (function () { + function SkeletonData() { + this.bones = new Array(); + this.slots = new Array(); + this.skins = new Array(); + this.events = new Array(); + this.animations = new Array(); + this.ikConstraints = new Array(); + this.transformConstraints = new Array(); + this.pathConstraints = new Array(); + this.fps = 0; + } + SkeletonData.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.name == boneName) + return bone; + } + return null; + }; + SkeletonData.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].name == boneName) + return i; + return -1; + }; + SkeletonData.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.name == slotName) + return slot; + } + return null; + }; + SkeletonData.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].name == slotName) + return i; + return -1; + }; + SkeletonData.prototype.findSkin = function (skinName) { + if (skinName == null) + throw new Error("skinName cannot be null."); + var skins = this.skins; + for (var i = 0, n = skins.length; i < n; i++) { + var skin = skins[i]; + if (skin.name == skinName) + return skin; + } + return null; + }; + SkeletonData.prototype.findEvent = function (eventDataName) { + if (eventDataName == null) + throw new Error("eventDataName cannot be null."); + var events = this.events; + for (var i = 0, n = events.length; i < n; i++) { + var event_4 = events[i]; + if (event_4.name == eventDataName) + return event_4; + } + return null; + }; + SkeletonData.prototype.findAnimation = function (animationName) { + if (animationName == null) + throw new Error("animationName cannot be null."); + var animations = this.animations; + for (var i = 0, n = animations.length; i < n; i++) { + var animation = animations[i]; + if (animation.name == animationName) + return animation; + } + return null; + }; + SkeletonData.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { + if (pathConstraintName == null) + throw new Error("pathConstraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) + if (pathConstraints[i].name == pathConstraintName) + return i; + return -1; + }; + return SkeletonData; + }()); + spine.SkeletonData = SkeletonData; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonJson = (function () { - function SkeletonJson(attachmentLoader) { - this.scale = 1; - this.linkedMeshes = new Array(); - this.attachmentLoader = attachmentLoader; - } - SkeletonJson.prototype.readSkeletonData = function (json) { - var scale = this.scale; - var skeletonData = new spine.SkeletonData(); - var root = typeof (json) === "string" ? JSON.parse(json) : json; - var skeletonMap = root.skeleton; - if (skeletonMap != null) { - skeletonData.hash = skeletonMap.hash; - skeletonData.version = skeletonMap.spine; - skeletonData.width = skeletonMap.width; - skeletonData.height = skeletonMap.height; - skeletonData.fps = skeletonMap.fps; - skeletonData.imagesPath = skeletonMap.images; - } - if (root.bones) { - for (var i = 0; i < root.bones.length; i++) { - var boneMap = root.bones[i]; - var parent_2 = null; - var parentName = this.getValue(boneMap, "parent", null); - if (parentName != null) { - parent_2 = skeletonData.findBone(parentName); - if (parent_2 == null) - throw new Error("Parent bone not found: " + parentName); - } - var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); - data.length = this.getValue(boneMap, "length", 0) * scale; - data.x = this.getValue(boneMap, "x", 0) * scale; - data.y = this.getValue(boneMap, "y", 0) * scale; - data.rotation = this.getValue(boneMap, "rotation", 0); - data.scaleX = this.getValue(boneMap, "scaleX", 1); - data.scaleY = this.getValue(boneMap, "scaleY", 1); - data.shearX = this.getValue(boneMap, "shearX", 0); - data.shearY = this.getValue(boneMap, "shearY", 0); - data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); - skeletonData.bones.push(data); - } - } - if (root.slots) { - for (var i = 0; i < root.slots.length; i++) { - var slotMap = root.slots[i]; - var slotName = slotMap.name; - var boneName = slotMap.bone; - var boneData = skeletonData.findBone(boneName); - if (boneData == null) - throw new Error("Slot bone not found: " + boneName); - var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); - var color = this.getValue(slotMap, "color", null); - if (color != null) - data.color.setFromString(color); - var dark = this.getValue(slotMap, "dark", null); - if (dark != null) { - data.darkColor = new spine.Color(1, 1, 1, 1); - data.darkColor.setFromString(dark); - } - data.attachmentName = this.getValue(slotMap, "attachment", null); - data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); - skeletonData.slots.push(data); - } - } - if (root.ik) { - for (var i = 0; i < root.ik.length; i++) { - var constraintMap = root.ik[i]; - var data = new spine.IkConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("IK bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("IK target bone not found: " + targetName); - data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; - data.mix = this.getValue(constraintMap, "mix", 1); - skeletonData.ikConstraints.push(data); - } - } - if (root.transform) { - for (var i = 0; i < root.transform.length; i++) { - var constraintMap = root.transform[i]; - var data = new spine.TransformConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("Transform constraint target bone not found: " + targetName); - data.local = this.getValue(constraintMap, "local", false); - data.relative = this.getValue(constraintMap, "relative", false); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.offsetX = this.getValue(constraintMap, "x", 0) * scale; - data.offsetY = this.getValue(constraintMap, "y", 0) * scale; - data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); - data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); - data.offsetShearY = this.getValue(constraintMap, "shearY", 0); - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); - data.shearMix = this.getValue(constraintMap, "shearMix", 1); - skeletonData.transformConstraints.push(data); - } - } - if (root.path) { - for (var i = 0; i < root.path.length; i++) { - var constraintMap = root.path[i]; - var data = new spine.PathConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findSlot(targetName); - if (data.target == null) - throw new Error("Path target slot not found: " + targetName); - data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); - data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); - data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.position = this.getValue(constraintMap, "position", 0); - if (data.positionMode == spine.PositionMode.Fixed) - data.position *= scale; - data.spacing = this.getValue(constraintMap, "spacing", 0); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - data.spacing *= scale; - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - skeletonData.pathConstraints.push(data); - } - } - if (root.skins) { - for (var skinName in root.skins) { - var skinMap = root.skins[skinName]; - var skin = new spine.Skin(skinName); - for (var slotName in skinMap) { - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - var slotMap = skinMap[slotName]; - for (var entryName in slotMap) { - var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); - if (attachment != null) - skin.addAttachment(slotIndex, entryName, attachment); - } - } - skeletonData.skins.push(skin); - if (skin.name == "default") - skeletonData.defaultSkin = skin; - } - } - for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { - var linkedMesh = this.linkedMeshes[i]; - var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); - if (skin == null) - throw new Error("Skin not found: " + linkedMesh.skin); - var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_3 == null) - throw new Error("Parent mesh not found: " + linkedMesh.parent); - linkedMesh.mesh.setParentMesh(parent_3); - linkedMesh.mesh.updateUVs(); - } - this.linkedMeshes.length = 0; - if (root.events) { - for (var eventName in root.events) { - var eventMap = root.events[eventName]; - var data = new spine.EventData(eventName); - data.intValue = this.getValue(eventMap, "int", 0); - data.floatValue = this.getValue(eventMap, "float", 0); - data.stringValue = this.getValue(eventMap, "string", ""); - skeletonData.events.push(data); - } - } - if (root.animations) { - for (var animationName in root.animations) { - var animationMap = root.animations[animationName]; - this.readAnimation(animationMap, animationName, skeletonData); - } - } - return skeletonData; - }; - SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { - var scale = this.scale; - name = this.getValue(map, "name", name); - var type = this.getValue(map, "type", "region"); - switch (type) { - case "region": { - var path = this.getValue(map, "path", name); - var region = this.attachmentLoader.newRegionAttachment(skin, name, path); - if (region == null) - return null; - region.path = path; - region.x = this.getValue(map, "x", 0) * scale; - region.y = this.getValue(map, "y", 0) * scale; - region.scaleX = this.getValue(map, "scaleX", 1); - region.scaleY = this.getValue(map, "scaleY", 1); - region.rotation = this.getValue(map, "rotation", 0); - region.width = map.width * scale; - region.height = map.height * scale; - var color = this.getValue(map, "color", null); - if (color != null) - region.color.setFromString(color); - region.updateOffset(); - return region; - } - case "boundingbox": { - var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); - if (box == null) - return null; - this.readVertices(map, box, map.vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - box.color.setFromString(color); - return box; - } - case "mesh": - case "linkedmesh": { - var path = this.getValue(map, "path", name); - var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); - if (mesh == null) - return null; - mesh.path = path; - var color = this.getValue(map, "color", null); - if (color != null) - mesh.color.setFromString(color); - var parent_4 = this.getValue(map, "parent", null); - if (parent_4 != null) { - mesh.inheritDeform = this.getValue(map, "deform", true); - this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); - return mesh; - } - var uvs = map.uvs; - this.readVertices(map, mesh, uvs.length); - mesh.triangles = map.triangles; - mesh.regionUVs = uvs; - mesh.updateUVs(); - mesh.hullLength = this.getValue(map, "hull", 0) * 2; - return mesh; - } - case "path": { - var path = this.attachmentLoader.newPathAttachment(skin, name); - if (path == null) - return null; - path.closed = this.getValue(map, "closed", false); - path.constantSpeed = this.getValue(map, "constantSpeed", true); - var vertexCount = map.vertexCount; - this.readVertices(map, path, vertexCount << 1); - var lengths = spine.Utils.newArray(vertexCount / 3, 0); - for (var i = 0; i < map.lengths.length; i++) - lengths[i++] = map.lengths[i] * scale; - path.lengths = lengths; - var color = this.getValue(map, "color", null); - if (color != null) - path.color.setFromString(color); - return path; - } - case "point": { - var point = this.attachmentLoader.newPointAttachment(skin, name); - if (point == null) - return null; - point.x = this.getValue(map, "x", 0) * scale; - point.y = this.getValue(map, "y", 0) * scale; - point.rotation = this.getValue(map, "rotation", 0); - var color = this.getValue(map, "color", null); - if (color != null) - point.color.setFromString(color); - return point; - } - case "clipping": { - var clip = this.attachmentLoader.newClippingAttachment(skin, name); - if (clip == null) - return null; - var end = this.getValue(map, "end", null); - if (end != null) { - var slot = skeletonData.findSlot(end); - if (slot == null) - throw new Error("Clipping end slot not found: " + end); - clip.endSlot = slot; - } - var vertexCount = map.vertexCount; - this.readVertices(map, clip, vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - clip.color.setFromString(color); - return clip; - } - } - return null; - }; - SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { - var scale = this.scale; - attachment.worldVerticesLength = verticesLength; - var vertices = map.vertices; - if (verticesLength == vertices.length) { - var scaledVertices = spine.Utils.toFloatArray(vertices); - if (scale != 1) { - for (var i = 0, n = vertices.length; i < n; i++) - scaledVertices[i] *= scale; - } - attachment.vertices = scaledVertices; - return; - } - var weights = new Array(); - var bones = new Array(); - for (var i = 0, n = vertices.length; i < n;) { - var boneCount = vertices[i++]; - bones.push(boneCount); - for (var nn = i + boneCount * 4; i < nn; i += 4) { - bones.push(vertices[i]); - weights.push(vertices[i + 1] * scale); - weights.push(vertices[i + 2] * scale); - weights.push(vertices[i + 3]); - } - } - attachment.bones = bones; - attachment.vertices = spine.Utils.toFloatArray(weights); - }; - SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { - var scale = this.scale; - var timelines = new Array(); - var duration = 0; - if (map.slots) { - for (var slotName in map.slots) { - var slotMap = map.slots[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - if (timelineName == "attachment") { - var timeline = new spine.AttachmentTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - else if (timelineName == "color") { - var timeline = new spine.ColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var color = new spine.Color(); - color.setFromString(valueMap.color); - timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); - } - else if (timelineName == "twoColor") { - var timeline = new spine.TwoColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var light = new spine.Color(); - var dark = new spine.Color(); - light.setFromString(valueMap.light); - dark.setFromString(valueMap.dark); - timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); - } - } - } - if (map.bones) { - for (var boneName in map.bones) { - var boneMap = map.bones[boneName]; - var boneIndex = skeletonData.findBoneIndex(boneName); - if (boneIndex == -1) - throw new Error("Bone not found: " + boneName); - for (var timelineName in boneMap) { - var timelineMap = boneMap[timelineName]; - if (timelineName === "rotate") { - var timeline = new spine.RotateTimeline(timelineMap.length); - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); - } - else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "scale") - timeline = new spine.ScaleTimeline(timelineMap.length); - else if (timelineName === "shear") - timeline = new spine.ShearTimeline(timelineMap.length); - else { - timeline = new spine.TranslateTimeline(timelineMap.length); - timelineScale = scale; - } - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); - timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); - } - } - } - if (map.ik) { - for (var constraintName in map.ik) { - var constraintMap = map.ik[constraintName]; - var constraint = skeletonData.findIkConstraint(constraintName); - var timeline = new spine.IkConstraintTimeline(constraintMap.length); - timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); - } - } - if (map.transform) { - for (var constraintName in map.transform) { - var constraintMap = map.transform[constraintName]; - var constraint = skeletonData.findTransformConstraint(constraintName); - var timeline = new spine.TransformConstraintTimeline(constraintMap.length); - timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); - } - } - if (map.paths) { - for (var constraintName in map.paths) { - var constraintMap = map.paths[constraintName]; - var index = skeletonData.findPathConstraintIndex(constraintName); - if (index == -1) - throw new Error("Path constraint not found: " + constraintName); - var data = skeletonData.pathConstraints[index]; - for (var timelineName in constraintMap) { - var timelineMap = constraintMap[timelineName]; - if (timelineName === "position" || timelineName === "spacing") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "spacing") { - timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - timelineScale = scale; - } - else { - timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); - if (data.positionMode == spine.PositionMode.Fixed) - timelineScale = scale; - } - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); - } - else if (timelineName === "mix") { - var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); - } - } - } - } - if (map.deform) { - for (var deformName in map.deform) { - var deformMap = map.deform[deformName]; - var skin = skeletonData.findSkin(deformName); - if (skin == null) - throw new Error("Skin not found: " + deformName); - for (var slotName in deformMap) { - var slotMap = deformMap[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotMap.name); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - var attachment = skin.getAttachment(slotIndex, timelineName); - if (attachment == null) - throw new Error("Deform attachment not found: " + timelineMap.name); - var weighted = attachment.bones != null; - var vertices = attachment.vertices; - var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; - var timeline = new spine.DeformTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - timeline.attachment = attachment; - var frameIndex = 0; - for (var j = 0; j < timelineMap.length; j++) { - var valueMap = timelineMap[j]; - var deform = void 0; - var verticesValue = this.getValue(valueMap, "vertices", null); - if (verticesValue == null) - deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; - else { - deform = spine.Utils.newFloatArray(deformLength); - var start = this.getValue(valueMap, "offset", 0); - spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); - if (scale != 1) { - for (var i = start, n = i + verticesValue.length; i < n; i++) - deform[i] *= scale; - } - if (!weighted) { - for (var i = 0; i < deformLength; i++) - deform[i] += vertices[i]; - } - } - timeline.setFrame(frameIndex, valueMap.time, deform); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - } - } - } - var drawOrderNode = map.drawOrder; - if (drawOrderNode == null) - drawOrderNode = map.draworder; - if (drawOrderNode != null) { - var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); - var slotCount = skeletonData.slots.length; - var frameIndex = 0; - for (var j = 0; j < drawOrderNode.length; j++) { - var drawOrderMap = drawOrderNode[j]; - var drawOrder = null; - var offsets = this.getValue(drawOrderMap, "offsets", null); - if (offsets != null) { - drawOrder = spine.Utils.newArray(slotCount, -1); - var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); - var originalIndex = 0, unchangedIndex = 0; - for (var i = 0; i < offsets.length; i++) { - var offsetMap = offsets[i]; - var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); - if (slotIndex == -1) - throw new Error("Slot not found: " + offsetMap.slot); - while (originalIndex != slotIndex) - unchanged[unchangedIndex++] = originalIndex++; - drawOrder[originalIndex + offsetMap.offset] = originalIndex++; - } - while (originalIndex < slotCount) - unchanged[unchangedIndex++] = originalIndex++; - for (var i = slotCount - 1; i >= 0; i--) - if (drawOrder[i] == -1) - drawOrder[i] = unchanged[--unchangedIndex]; - } - timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (map.events) { - var timeline = new spine.EventTimeline(map.events.length); - var frameIndex = 0; - for (var i = 0; i < map.events.length; i++) { - var eventMap = map.events[i]; - var eventData = skeletonData.findEvent(eventMap.name); - if (eventData == null) - throw new Error("Event not found: " + eventMap.name); - var event_5 = new spine.Event(eventMap.time, eventData); - event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); - event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); - event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); - timeline.setFrame(frameIndex++, event_5); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (isNaN(duration)) { - throw new Error("Error while parsing animation, duration is NaN"); - } - skeletonData.animations.push(new spine.Animation(name, timelines, duration)); - }; - SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { - if (!map.curve) - return; - if (map.curve === "stepped") - timeline.setStepped(frameIndex); - else if (Object.prototype.toString.call(map.curve) === '[object Array]') { - var curve = map.curve; - timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); - } - }; - SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { - return map[prop] !== undefined ? map[prop] : defaultValue; - }; - SkeletonJson.blendModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.BlendMode.Normal; - if (str == "additive") - return spine.BlendMode.Additive; - if (str == "multiply") - return spine.BlendMode.Multiply; - if (str == "screen") - return spine.BlendMode.Screen; - throw new Error("Unknown blend mode: " + str); - }; - SkeletonJson.positionModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "fixed") - return spine.PositionMode.Fixed; - if (str == "percent") - return spine.PositionMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.spacingModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "length") - return spine.SpacingMode.Length; - if (str == "fixed") - return spine.SpacingMode.Fixed; - if (str == "percent") - return spine.SpacingMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.rotateModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "tangent") - return spine.RotateMode.Tangent; - if (str == "chain") - return spine.RotateMode.Chain; - if (str == "chainscale") - return spine.RotateMode.ChainScale; - throw new Error("Unknown rotate mode: " + str); - }; - SkeletonJson.transformModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.TransformMode.Normal; - if (str == "onlytranslation") - return spine.TransformMode.OnlyTranslation; - if (str == "norotationorreflection") - return spine.TransformMode.NoRotationOrReflection; - if (str == "noscale") - return spine.TransformMode.NoScale; - if (str == "noscaleorreflection") - return spine.TransformMode.NoScaleOrReflection; - throw new Error("Unknown transform mode: " + str); - }; - return SkeletonJson; - }()); - spine.SkeletonJson = SkeletonJson; - var LinkedMesh = (function () { - function LinkedMesh(mesh, skin, slotIndex, parent) { - this.mesh = mesh; - this.skin = skin; - this.slotIndex = slotIndex; - this.parent = parent; - } - return LinkedMesh; - }()); + var SkeletonJson = (function () { + function SkeletonJson(attachmentLoader) { + this.scale = 1; + this.linkedMeshes = new Array(); + this.attachmentLoader = attachmentLoader; + } + SkeletonJson.prototype.readSkeletonData = function (json) { + var scale = this.scale; + var skeletonData = new spine.SkeletonData(); + var root = typeof (json) === "string" ? JSON.parse(json) : json; + var skeletonMap = root.skeleton; + if (skeletonMap != null) { + skeletonData.hash = skeletonMap.hash; + skeletonData.version = skeletonMap.spine; + skeletonData.width = skeletonMap.width; + skeletonData.height = skeletonMap.height; + skeletonData.fps = skeletonMap.fps; + skeletonData.imagesPath = skeletonMap.images; + } + if (root.bones) { + for (var i = 0; i < root.bones.length; i++) { + var boneMap = root.bones[i]; + var parent_2 = null; + var parentName = this.getValue(boneMap, "parent", null); + if (parentName != null) { + parent_2 = skeletonData.findBone(parentName); + if (parent_2 == null) + throw new Error("Parent bone not found: " + parentName); + } + var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); + data.length = this.getValue(boneMap, "length", 0) * scale; + data.x = this.getValue(boneMap, "x", 0) * scale; + data.y = this.getValue(boneMap, "y", 0) * scale; + data.rotation = this.getValue(boneMap, "rotation", 0); + data.scaleX = this.getValue(boneMap, "scaleX", 1); + data.scaleY = this.getValue(boneMap, "scaleY", 1); + data.shearX = this.getValue(boneMap, "shearX", 0); + data.shearY = this.getValue(boneMap, "shearY", 0); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); + skeletonData.bones.push(data); + } + } + if (root.slots) { + for (var i = 0; i < root.slots.length; i++) { + var slotMap = root.slots[i]; + var slotName = slotMap.name; + var boneName = slotMap.bone; + var boneData = skeletonData.findBone(boneName); + if (boneData == null) + throw new Error("Slot bone not found: " + boneName); + var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); + var color = this.getValue(slotMap, "color", null); + if (color != null) + data.color.setFromString(color); + var dark = this.getValue(slotMap, "dark", null); + if (dark != null) { + data.darkColor = new spine.Color(1, 1, 1, 1); + data.darkColor.setFromString(dark); + } + data.attachmentName = this.getValue(slotMap, "attachment", null); + data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); + skeletonData.slots.push(data); + } + } + if (root.ik) { + for (var i = 0; i < root.ik.length; i++) { + var constraintMap = root.ik[i]; + var data = new spine.IkConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("IK bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("IK target bone not found: " + targetName); + data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; + data.mix = this.getValue(constraintMap, "mix", 1); + skeletonData.ikConstraints.push(data); + } + } + if (root.transform) { + for (var i = 0; i < root.transform.length; i++) { + var constraintMap = root.transform[i]; + var data = new spine.TransformConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("Transform constraint target bone not found: " + targetName); + data.local = this.getValue(constraintMap, "local", false); + data.relative = this.getValue(constraintMap, "relative", false); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.offsetX = this.getValue(constraintMap, "x", 0) * scale; + data.offsetY = this.getValue(constraintMap, "y", 0) * scale; + data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); + data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); + data.offsetShearY = this.getValue(constraintMap, "shearY", 0); + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); + data.shearMix = this.getValue(constraintMap, "shearMix", 1); + skeletonData.transformConstraints.push(data); + } + } + if (root.path) { + for (var i = 0; i < root.path.length; i++) { + var constraintMap = root.path[i]; + var data = new spine.PathConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findSlot(targetName); + if (data.target == null) + throw new Error("Path target slot not found: " + targetName); + data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); + data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); + data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.position = this.getValue(constraintMap, "position", 0); + if (data.positionMode == spine.PositionMode.Fixed) + data.position *= scale; + data.spacing = this.getValue(constraintMap, "spacing", 0); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + data.spacing *= scale; + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + skeletonData.pathConstraints.push(data); + } + } + if (root.skins) { + for (var skinName in root.skins) { + var skinMap = root.skins[skinName]; + var skin = new spine.Skin(skinName); + for (var slotName in skinMap) { + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + var slotMap = skinMap[slotName]; + for (var entryName in slotMap) { + var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); + if (attachment != null) + skin.addAttachment(slotIndex, entryName, attachment); + } + } + skeletonData.skins.push(skin); + if (skin.name == "default") + skeletonData.defaultSkin = skin; + } + } + for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { + var linkedMesh = this.linkedMeshes[i]; + var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); + if (skin == null) + throw new Error("Skin not found: " + linkedMesh.skin); + var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); + if (parent_3 == null) + throw new Error("Parent mesh not found: " + linkedMesh.parent); + linkedMesh.mesh.setParentMesh(parent_3); + linkedMesh.mesh.updateUVs(); + } + this.linkedMeshes.length = 0; + if (root.events) { + for (var eventName in root.events) { + var eventMap = root.events[eventName]; + var data = new spine.EventData(eventName); + data.intValue = this.getValue(eventMap, "int", 0); + data.floatValue = this.getValue(eventMap, "float", 0); + data.stringValue = this.getValue(eventMap, "string", ""); + skeletonData.events.push(data); + } + } + if (root.animations) { + for (var animationName in root.animations) { + var animationMap = root.animations[animationName]; + this.readAnimation(animationMap, animationName, skeletonData); + } + } + return skeletonData; + }; + SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { + var scale = this.scale; + name = this.getValue(map, "name", name); + var type = this.getValue(map, "type", "region"); + switch (type) { + case "region": { + var path = this.getValue(map, "path", name); + var region = this.attachmentLoader.newRegionAttachment(skin, name, path); + if (region == null) + return null; + region.path = path; + region.x = this.getValue(map, "x", 0) * scale; + region.y = this.getValue(map, "y", 0) * scale; + region.scaleX = this.getValue(map, "scaleX", 1); + region.scaleY = this.getValue(map, "scaleY", 1); + region.rotation = this.getValue(map, "rotation", 0); + region.width = map.width * scale; + region.height = map.height * scale; + var color = this.getValue(map, "color", null); + if (color != null) + region.color.setFromString(color); + region.updateOffset(); + return region; + } + case "boundingbox": { + var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); + if (box == null) + return null; + this.readVertices(map, box, map.vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + box.color.setFromString(color); + return box; + } + case "mesh": + case "linkedmesh": { + var path = this.getValue(map, "path", name); + var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); + if (mesh == null) + return null; + mesh.path = path; + var color = this.getValue(map, "color", null); + if (color != null) + mesh.color.setFromString(color); + var parent_4 = this.getValue(map, "parent", null); + if (parent_4 != null) { + mesh.inheritDeform = this.getValue(map, "deform", true); + this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); + return mesh; + } + var uvs = map.uvs; + this.readVertices(map, mesh, uvs.length); + mesh.triangles = map.triangles; + mesh.regionUVs = uvs; + mesh.updateUVs(); + mesh.hullLength = this.getValue(map, "hull", 0) * 2; + return mesh; + } + case "path": { + var path = this.attachmentLoader.newPathAttachment(skin, name); + if (path == null) + return null; + path.closed = this.getValue(map, "closed", false); + path.constantSpeed = this.getValue(map, "constantSpeed", true); + var vertexCount = map.vertexCount; + this.readVertices(map, path, vertexCount << 1); + var lengths = spine.Utils.newArray(vertexCount / 3, 0); + for (var i = 0; i < map.lengths.length; i++) + lengths[i++] = map.lengths[i] * scale; + path.lengths = lengths; + var color = this.getValue(map, "color", null); + if (color != null) + path.color.setFromString(color); + return path; + } + case "point": { + var point = this.attachmentLoader.newPointAttachment(skin, name); + if (point == null) + return null; + point.x = this.getValue(map, "x", 0) * scale; + point.y = this.getValue(map, "y", 0) * scale; + point.rotation = this.getValue(map, "rotation", 0); + var color = this.getValue(map, "color", null); + if (color != null) + point.color.setFromString(color); + return point; + } + case "clipping": { + var clip = this.attachmentLoader.newClippingAttachment(skin, name); + if (clip == null) + return null; + var end = this.getValue(map, "end", null); + if (end != null) { + var slot = skeletonData.findSlot(end); + if (slot == null) + throw new Error("Clipping end slot not found: " + end); + clip.endSlot = slot; + } + var vertexCount = map.vertexCount; + this.readVertices(map, clip, vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + clip.color.setFromString(color); + return clip; + } + } + return null; + }; + SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { + var scale = this.scale; + attachment.worldVerticesLength = verticesLength; + var vertices = map.vertices; + if (verticesLength == vertices.length) { + var scaledVertices = spine.Utils.toFloatArray(vertices); + if (scale != 1) { + for (var i = 0, n = vertices.length; i < n; i++) + scaledVertices[i] *= scale; + } + attachment.vertices = scaledVertices; + return; + } + var weights = new Array(); + var bones = new Array(); + for (var i = 0, n = vertices.length; i < n;) { + var boneCount = vertices[i++]; + bones.push(boneCount); + for (var nn = i + boneCount * 4; i < nn; i += 4) { + bones.push(vertices[i]); + weights.push(vertices[i + 1] * scale); + weights.push(vertices[i + 2] * scale); + weights.push(vertices[i + 3]); + } + } + attachment.bones = bones; + attachment.vertices = spine.Utils.toFloatArray(weights); + }; + SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { + var scale = this.scale; + var timelines = new Array(); + var duration = 0; + if (map.slots) { + for (var slotName in map.slots) { + var slotMap = map.slots[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + if (timelineName == "attachment") { + var timeline = new spine.AttachmentTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + else if (timelineName == "color") { + var timeline = new spine.ColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var color = new spine.Color(); + color.setFromString(valueMap.color); + timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); + } + else if (timelineName == "twoColor") { + var timeline = new spine.TwoColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var light = new spine.Color(); + var dark = new spine.Color(); + light.setFromString(valueMap.light); + dark.setFromString(valueMap.dark); + timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); + } + } + } + if (map.bones) { + for (var boneName in map.bones) { + var boneMap = map.bones[boneName]; + var boneIndex = skeletonData.findBoneIndex(boneName); + if (boneIndex == -1) + throw new Error("Bone not found: " + boneName); + for (var timelineName in boneMap) { + var timelineMap = boneMap[timelineName]; + if (timelineName === "rotate") { + var timeline = new spine.RotateTimeline(timelineMap.length); + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); + } + else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "scale") + timeline = new spine.ScaleTimeline(timelineMap.length); + else if (timelineName === "shear") + timeline = new spine.ShearTimeline(timelineMap.length); + else { + timeline = new spine.TranslateTimeline(timelineMap.length); + timelineScale = scale; + } + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); + timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); + } + } + } + if (map.ik) { + for (var constraintName in map.ik) { + var constraintMap = map.ik[constraintName]; + var constraint = skeletonData.findIkConstraint(constraintName); + var timeline = new spine.IkConstraintTimeline(constraintMap.length); + timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); + } + } + if (map.transform) { + for (var constraintName in map.transform) { + var constraintMap = map.transform[constraintName]; + var constraint = skeletonData.findTransformConstraint(constraintName); + var timeline = new spine.TransformConstraintTimeline(constraintMap.length); + timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); + } + } + if (map.paths) { + for (var constraintName in map.paths) { + var constraintMap = map.paths[constraintName]; + var index = skeletonData.findPathConstraintIndex(constraintName); + if (index == -1) + throw new Error("Path constraint not found: " + constraintName); + var data = skeletonData.pathConstraints[index]; + for (var timelineName in constraintMap) { + var timelineMap = constraintMap[timelineName]; + if (timelineName === "position" || timelineName === "spacing") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "spacing") { + timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + timelineScale = scale; + } + else { + timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); + if (data.positionMode == spine.PositionMode.Fixed) + timelineScale = scale; + } + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); + } + else if (timelineName === "mix") { + var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); + } + } + } + } + if (map.deform) { + for (var deformName in map.deform) { + var deformMap = map.deform[deformName]; + var skin = skeletonData.findSkin(deformName); + if (skin == null) + throw new Error("Skin not found: " + deformName); + for (var slotName in deformMap) { + var slotMap = deformMap[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotMap.name); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + var attachment = skin.getAttachment(slotIndex, timelineName); + if (attachment == null) + throw new Error("Deform attachment not found: " + timelineMap.name); + var weighted = attachment.bones != null; + var vertices = attachment.vertices; + var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; + var timeline = new spine.DeformTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + timeline.attachment = attachment; + var frameIndex = 0; + for (var j = 0; j < timelineMap.length; j++) { + var valueMap = timelineMap[j]; + var deform = void 0; + var verticesValue = this.getValue(valueMap, "vertices", null); + if (verticesValue == null) + deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; + else { + deform = spine.Utils.newFloatArray(deformLength); + var start = this.getValue(valueMap, "offset", 0); + spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); + if (scale != 1) { + for (var i = start, n = i + verticesValue.length; i < n; i++) + deform[i] *= scale; + } + if (!weighted) { + for (var i = 0; i < deformLength; i++) + deform[i] += vertices[i]; + } + } + timeline.setFrame(frameIndex, valueMap.time, deform); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + } + } + } + var drawOrderNode = map.drawOrder; + if (drawOrderNode == null) + drawOrderNode = map.draworder; + if (drawOrderNode != null) { + var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); + var slotCount = skeletonData.slots.length; + var frameIndex = 0; + for (var j = 0; j < drawOrderNode.length; j++) { + var drawOrderMap = drawOrderNode[j]; + var drawOrder = null; + var offsets = this.getValue(drawOrderMap, "offsets", null); + if (offsets != null) { + drawOrder = spine.Utils.newArray(slotCount, -1); + var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); + var originalIndex = 0, unchangedIndex = 0; + for (var i = 0; i < offsets.length; i++) { + var offsetMap = offsets[i]; + var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); + if (slotIndex == -1) + throw new Error("Slot not found: " + offsetMap.slot); + while (originalIndex != slotIndex) + unchanged[unchangedIndex++] = originalIndex++; + drawOrder[originalIndex + offsetMap.offset] = originalIndex++; + } + while (originalIndex < slotCount) + unchanged[unchangedIndex++] = originalIndex++; + for (var i = slotCount - 1; i >= 0; i--) + if (drawOrder[i] == -1) + drawOrder[i] = unchanged[--unchangedIndex]; + } + timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (map.events) { + var timeline = new spine.EventTimeline(map.events.length); + var frameIndex = 0; + for (var i = 0; i < map.events.length; i++) { + var eventMap = map.events[i]; + var eventData = skeletonData.findEvent(eventMap.name); + if (eventData == null) + throw new Error("Event not found: " + eventMap.name); + var event_5 = new spine.Event(eventMap.time, eventData); + event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); + event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); + event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); + timeline.setFrame(frameIndex++, event_5); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (isNaN(duration)) { + throw new Error("Error while parsing animation, duration is NaN"); + } + skeletonData.animations.push(new spine.Animation(name, timelines, duration)); + }; + SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { + if (!map.curve) + return; + if (map.curve === "stepped") + timeline.setStepped(frameIndex); + else if (Object.prototype.toString.call(map.curve) === '[object Array]') { + var curve = map.curve; + timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); + } + }; + SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { + return map[prop] !== undefined ? map[prop] : defaultValue; + }; + SkeletonJson.blendModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.BlendMode.Normal; + if (str == "additive") + return spine.BlendMode.Additive; + if (str == "multiply") + return spine.BlendMode.Multiply; + if (str == "screen") + return spine.BlendMode.Screen; + throw new Error("Unknown blend mode: " + str); + }; + SkeletonJson.positionModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "fixed") + return spine.PositionMode.Fixed; + if (str == "percent") + return spine.PositionMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.spacingModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "length") + return spine.SpacingMode.Length; + if (str == "fixed") + return spine.SpacingMode.Fixed; + if (str == "percent") + return spine.SpacingMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.rotateModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "tangent") + return spine.RotateMode.Tangent; + if (str == "chain") + return spine.RotateMode.Chain; + if (str == "chainscale") + return spine.RotateMode.ChainScale; + throw new Error("Unknown rotate mode: " + str); + }; + SkeletonJson.transformModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.TransformMode.Normal; + if (str == "onlytranslation") + return spine.TransformMode.OnlyTranslation; + if (str == "norotationorreflection") + return spine.TransformMode.NoRotationOrReflection; + if (str == "noscale") + return spine.TransformMode.NoScale; + if (str == "noscaleorreflection") + return spine.TransformMode.NoScaleOrReflection; + throw new Error("Unknown transform mode: " + str); + }; + return SkeletonJson; + }()); + spine.SkeletonJson = SkeletonJson; + var LinkedMesh = (function () { + function LinkedMesh(mesh, skin, slotIndex, parent) { + this.mesh = mesh; + this.skin = skin; + this.slotIndex = slotIndex; + this.parent = parent; + } + return LinkedMesh; + }()); })(spine || (spine = {})); var spine; (function (spine) { - var Skin = (function () { - function Skin(name) { - this.attachments = new Array(); - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - Skin.prototype.addAttachment = function (slotIndex, name, attachment) { - if (attachment == null) - throw new Error("attachment cannot be null."); - var attachments = this.attachments; - if (slotIndex >= attachments.length) - attachments.length = slotIndex + 1; - if (!attachments[slotIndex]) - attachments[slotIndex] = {}; - attachments[slotIndex][name] = attachment; - }; - Skin.prototype.getAttachment = function (slotIndex, name) { - var dictionary = this.attachments[slotIndex]; - return dictionary ? dictionary[name] : null; - }; - Skin.prototype.attachAll = function (skeleton, oldSkin) { - var slotIndex = 0; - for (var i = 0; i < skeleton.slots.length; i++) { - var slot = skeleton.slots[i]; - var slotAttachment = slot.getAttachment(); - if (slotAttachment && slotIndex < oldSkin.attachments.length) { - var dictionary = oldSkin.attachments[slotIndex]; - for (var key in dictionary) { - var skinAttachment = dictionary[key]; - if (slotAttachment == skinAttachment) { - var attachment = this.getAttachment(slotIndex, key); - if (attachment != null) - slot.setAttachment(attachment); - break; - } - } - } - slotIndex++; - } - }; - return Skin; - }()); - spine.Skin = Skin; + var Skin = (function () { + function Skin(name) { + this.attachments = new Array(); + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + Skin.prototype.addAttachment = function (slotIndex, name, attachment) { + if (attachment == null) + throw new Error("attachment cannot be null."); + var attachments = this.attachments; + if (slotIndex >= attachments.length) + attachments.length = slotIndex + 1; + if (!attachments[slotIndex]) + attachments[slotIndex] = {}; + attachments[slotIndex][name] = attachment; + }; + Skin.prototype.getAttachment = function (slotIndex, name) { + var dictionary = this.attachments[slotIndex]; + return dictionary ? dictionary[name] : null; + }; + Skin.prototype.attachAll = function (skeleton, oldSkin) { + var slotIndex = 0; + for (var i = 0; i < skeleton.slots.length; i++) { + var slot = skeleton.slots[i]; + var slotAttachment = slot.getAttachment(); + if (slotAttachment && slotIndex < oldSkin.attachments.length) { + var dictionary = oldSkin.attachments[slotIndex]; + for (var key in dictionary) { + var skinAttachment = dictionary[key]; + if (slotAttachment == skinAttachment) { + var attachment = this.getAttachment(slotIndex, key); + if (attachment != null) + slot.setAttachment(attachment); + break; + } + } + } + slotIndex++; + } + }; + return Skin; + }()); + spine.Skin = Skin; })(spine || (spine = {})); var spine; (function (spine) { - var Slot = (function () { - function Slot(data, bone) { - this.attachmentVertices = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (bone == null) - throw new Error("bone cannot be null."); - this.data = data; - this.bone = bone; - this.color = new spine.Color(); - this.darkColor = data.darkColor == null ? null : new spine.Color(); - this.setToSetupPose(); - } - Slot.prototype.getAttachment = function () { - return this.attachment; - }; - Slot.prototype.setAttachment = function (attachment) { - if (this.attachment == attachment) - return; - this.attachment = attachment; - this.attachmentTime = this.bone.skeleton.time; - this.attachmentVertices.length = 0; - }; - Slot.prototype.setAttachmentTime = function (time) { - this.attachmentTime = this.bone.skeleton.time - time; - }; - Slot.prototype.getAttachmentTime = function () { - return this.bone.skeleton.time - this.attachmentTime; - }; - Slot.prototype.setToSetupPose = function () { - this.color.setFromColor(this.data.color); - if (this.darkColor != null) - this.darkColor.setFromColor(this.data.darkColor); - if (this.data.attachmentName == null) - this.attachment = null; - else { - this.attachment = null; - this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); - } - }; - return Slot; - }()); - spine.Slot = Slot; + var Slot = (function () { + function Slot(data, bone) { + this.attachmentVertices = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (bone == null) + throw new Error("bone cannot be null."); + this.data = data; + this.bone = bone; + this.color = new spine.Color(); + this.darkColor = data.darkColor == null ? null : new spine.Color(); + this.setToSetupPose(); + } + Slot.prototype.getAttachment = function () { + return this.attachment; + }; + Slot.prototype.setAttachment = function (attachment) { + if (this.attachment == attachment) + return; + this.attachment = attachment; + this.attachmentTime = this.bone.skeleton.time; + this.attachmentVertices.length = 0; + }; + Slot.prototype.setAttachmentTime = function (time) { + this.attachmentTime = this.bone.skeleton.time - time; + }; + Slot.prototype.getAttachmentTime = function () { + return this.bone.skeleton.time - this.attachmentTime; + }; + Slot.prototype.setToSetupPose = function () { + this.color.setFromColor(this.data.color); + if (this.darkColor != null) + this.darkColor.setFromColor(this.data.darkColor); + if (this.data.attachmentName == null) + this.attachment = null; + else { + this.attachment = null; + this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); + } + }; + return Slot; + }()); + spine.Slot = Slot; })(spine || (spine = {})); var spine; (function (spine) { - var SlotData = (function () { - function SlotData(index, name, boneData) { - this.color = new spine.Color(1, 1, 1, 1); - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - if (boneData == null) - throw new Error("boneData cannot be null."); - this.index = index; - this.name = name; - this.boneData = boneData; - } - return SlotData; - }()); - spine.SlotData = SlotData; + var SlotData = (function () { + function SlotData(index, name, boneData) { + this.color = new spine.Color(1, 1, 1, 1); + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + if (boneData == null) + throw new Error("boneData cannot be null."); + this.index = index; + this.name = name; + this.boneData = boneData; + } + return SlotData; + }()); + spine.SlotData = SlotData; })(spine || (spine = {})); var spine; (function (spine) { - var TextureAtlas = (function () { - function TextureAtlas(atlasText, textureLoader) { - this.pages = new Array(); - this.regions = new Array(); - this.load(atlasText, textureLoader); - } - TextureAtlas.prototype.load = function (atlasText, textureLoader) { - if (textureLoader == null) - throw new Error("textureLoader cannot be null."); - var reader = new TextureAtlasReader(atlasText); - var tuple = new Array(4); - var page = null; - while (true) { - var line = reader.readLine(); - if (line == null) - break; - line = line.trim(); - if (line.length == 0) - page = null; - else if (!page) { - page = new TextureAtlasPage(); - page.name = line; - if (reader.readTuple(tuple) == 2) { - page.width = parseInt(tuple[0]); - page.height = parseInt(tuple[1]); - reader.readTuple(tuple); - } - reader.readTuple(tuple); - page.minFilter = spine.Texture.filterFromString(tuple[0]); - page.magFilter = spine.Texture.filterFromString(tuple[1]); - var direction = reader.readValue(); - page.uWrap = spine.TextureWrap.ClampToEdge; - page.vWrap = spine.TextureWrap.ClampToEdge; - if (direction == "x") - page.uWrap = spine.TextureWrap.Repeat; - else if (direction == "y") - page.vWrap = spine.TextureWrap.Repeat; - else if (direction == "xy") - page.uWrap = page.vWrap = spine.TextureWrap.Repeat; - page.texture = textureLoader(line); - page.texture.setFilters(page.minFilter, page.magFilter); - page.texture.setWraps(page.uWrap, page.vWrap); - page.width = page.texture.getImage().width; - page.height = page.texture.getImage().height; - this.pages.push(page); - } - else { - var region = new TextureAtlasRegion(); - region.name = line; - region.page = page; - region.rotate = reader.readValue() == "true"; - reader.readTuple(tuple); - var x = parseInt(tuple[0]); - var y = parseInt(tuple[1]); - reader.readTuple(tuple); - var width = parseInt(tuple[0]); - var height = parseInt(tuple[1]); - region.u = x / page.width; - region.v = y / page.height; - if (region.rotate) { - region.u2 = (x + height) / page.width; - region.v2 = (y + width) / page.height; - } - else { - region.u2 = (x + width) / page.width; - region.v2 = (y + height) / page.height; - } - region.x = x; - region.y = y; - region.width = Math.abs(width); - region.height = Math.abs(height); - if (reader.readTuple(tuple) == 4) { - if (reader.readTuple(tuple) == 4) { - reader.readTuple(tuple); - } - } - region.originalWidth = parseInt(tuple[0]); - region.originalHeight = parseInt(tuple[1]); - reader.readTuple(tuple); - region.offsetX = parseInt(tuple[0]); - region.offsetY = parseInt(tuple[1]); - region.index = parseInt(reader.readValue()); - region.texture = page.texture; - this.regions.push(region); - } - } - }; - TextureAtlas.prototype.findRegion = function (name) { - for (var i = 0; i < this.regions.length; i++) { - if (this.regions[i].name == name) { - return this.regions[i]; - } - } - return null; - }; - TextureAtlas.prototype.dispose = function () { - for (var i = 0; i < this.pages.length; i++) { - this.pages[i].texture.dispose(); - } - }; - return TextureAtlas; - }()); - spine.TextureAtlas = TextureAtlas; - var TextureAtlasReader = (function () { - function TextureAtlasReader(text) { - this.index = 0; - this.lines = text.split(/\r\n|\r|\n/); - } - TextureAtlasReader.prototype.readLine = function () { - if (this.index >= this.lines.length) - return null; - return this.lines[this.index++]; - }; - TextureAtlasReader.prototype.readValue = function () { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - return line.substring(colon + 1).trim(); - }; - TextureAtlasReader.prototype.readTuple = function (tuple) { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - var i = 0, lastMatch = colon + 1; - for (; i < 3; i++) { - var comma = line.indexOf(",", lastMatch); - if (comma == -1) - break; - tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); - lastMatch = comma + 1; - } - tuple[i] = line.substring(lastMatch).trim(); - return i + 1; - }; - return TextureAtlasReader; - }()); - var TextureAtlasPage = (function () { - function TextureAtlasPage() { - } - return TextureAtlasPage; - }()); - spine.TextureAtlasPage = TextureAtlasPage; - var TextureAtlasRegion = (function (_super) { - __extends(TextureAtlasRegion, _super); - function TextureAtlasRegion() { - _super.apply(this, arguments); - } - return TextureAtlasRegion; - }(spine.TextureRegion)); - spine.TextureAtlasRegion = TextureAtlasRegion; + var TextureAtlas = (function () { + function TextureAtlas(atlasText, textureLoader) { + this.pages = new Array(); + this.regions = new Array(); + this.load(atlasText, textureLoader); + } + TextureAtlas.prototype.load = function (atlasText, textureLoader) { + if (textureLoader == null) + throw new Error("textureLoader cannot be null."); + var reader = new TextureAtlasReader(atlasText); + var tuple = new Array(4); + var page = null; + while (true) { + var line = reader.readLine(); + if (line == null) + break; + line = line.trim(); + if (line.length == 0) + page = null; + else if (!page) { + page = new TextureAtlasPage(); + page.name = line; + if (reader.readTuple(tuple) == 2) { + page.width = parseInt(tuple[0]); + page.height = parseInt(tuple[1]); + reader.readTuple(tuple); + } + reader.readTuple(tuple); + page.minFilter = spine.Texture.filterFromString(tuple[0]); + page.magFilter = spine.Texture.filterFromString(tuple[1]); + var direction = reader.readValue(); + page.uWrap = spine.TextureWrap.ClampToEdge; + page.vWrap = spine.TextureWrap.ClampToEdge; + if (direction == "x") + page.uWrap = spine.TextureWrap.Repeat; + else if (direction == "y") + page.vWrap = spine.TextureWrap.Repeat; + else if (direction == "xy") + page.uWrap = page.vWrap = spine.TextureWrap.Repeat; + page.texture = textureLoader(line); + page.texture.setFilters(page.minFilter, page.magFilter); + page.texture.setWraps(page.uWrap, page.vWrap); + page.width = page.texture.getImage().width; + page.height = page.texture.getImage().height; + this.pages.push(page); + } + else { + var region = new TextureAtlasRegion(); + region.name = line; + region.page = page; + region.rotate = reader.readValue() == "true"; + reader.readTuple(tuple); + var x = parseInt(tuple[0]); + var y = parseInt(tuple[1]); + reader.readTuple(tuple); + var width = parseInt(tuple[0]); + var height = parseInt(tuple[1]); + region.u = x / page.width; + region.v = y / page.height; + if (region.rotate) { + region.u2 = (x + height) / page.width; + region.v2 = (y + width) / page.height; + } + else { + region.u2 = (x + width) / page.width; + region.v2 = (y + height) / page.height; + } + region.x = x; + region.y = y; + region.width = Math.abs(width); + region.height = Math.abs(height); + if (reader.readTuple(tuple) == 4) { + if (reader.readTuple(tuple) == 4) { + reader.readTuple(tuple); + } + } + region.originalWidth = parseInt(tuple[0]); + region.originalHeight = parseInt(tuple[1]); + reader.readTuple(tuple); + region.offsetX = parseInt(tuple[0]); + region.offsetY = parseInt(tuple[1]); + region.index = parseInt(reader.readValue()); + region.texture = page.texture; + this.regions.push(region); + } + } + }; + TextureAtlas.prototype.findRegion = function (name) { + for (var i = 0; i < this.regions.length; i++) { + if (this.regions[i].name == name) { + return this.regions[i]; + } + } + return null; + }; + TextureAtlas.prototype.dispose = function () { + for (var i = 0; i < this.pages.length; i++) { + this.pages[i].texture.dispose(); + } + }; + return TextureAtlas; + }()); + spine.TextureAtlas = TextureAtlas; + var TextureAtlasReader = (function () { + function TextureAtlasReader(text) { + this.index = 0; + this.lines = text.split(/\r\n|\r|\n/); + } + TextureAtlasReader.prototype.readLine = function () { + if (this.index >= this.lines.length) + return null; + return this.lines[this.index++]; + }; + TextureAtlasReader.prototype.readValue = function () { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + return line.substring(colon + 1).trim(); + }; + TextureAtlasReader.prototype.readTuple = function (tuple) { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + var i = 0, lastMatch = colon + 1; + for (; i < 3; i++) { + var comma = line.indexOf(",", lastMatch); + if (comma == -1) + break; + tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); + lastMatch = comma + 1; + } + tuple[i] = line.substring(lastMatch).trim(); + return i + 1; + }; + return TextureAtlasReader; + }()); + var TextureAtlasPage = (function () { + function TextureAtlasPage() { + } + return TextureAtlasPage; + }()); + spine.TextureAtlasPage = TextureAtlasPage; + var TextureAtlasRegion = (function (_super) { + __extends(TextureAtlasRegion, _super); + function TextureAtlasRegion() { + _super.apply(this, arguments); + } + return TextureAtlasRegion; + }(spine.TextureRegion)); + spine.TextureAtlasRegion = TextureAtlasRegion; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraint = (function () { - function TransformConstraint(data, skeleton) { - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.temp = new spine.Vector2(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - this.scaleMix = data.scaleMix; - this.shearMix = data.shearMix; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - TransformConstraint.prototype.apply = function () { - this.update(); - }; - TransformConstraint.prototype.update = function () { - if (this.data.local) { - if (this.data.relative) - this.applyRelativeLocal(); - else - this.applyAbsoluteLocal(); - } - else { - if (this.data.relative) - this.applyRelativeWorld(); - else - this.applyAbsoluteWorld(); - } - }; - TransformConstraint.prototype.applyAbsoluteWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect; - var offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += (temp.x - bone.worldX) * translateMix; - bone.worldY += (temp.y - bone.worldY) * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); - var ts = Math.sqrt(ta * ta + tc * tc); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; - bone.a *= s; - bone.c *= s; - s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); - ts = Math.sqrt(tb * tb + td * td); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var b = bone.b, d = bone.d; - var by = Math.atan2(d, b); - var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r = by + (r + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyRelativeWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += temp.x * translateMix; - bone.worldY += temp.y * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; - bone.a *= s; - bone.c *= s; - s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var r = Math.atan2(td, tb) - Math.atan2(tc, ta); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - var b = bone.b, d = bone.d; - r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyAbsoluteLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) { - var r = target.arotation - rotation + this.data.offsetRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - rotation += r * rotateMix; - } - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax - x + this.data.offsetX) * translateMix; - y += (target.ay - y + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; - if (scaleY > 0.00001) - scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; - } - var shearY = bone.ashearY; - if (shearMix > 0) { - var r = target.ashearY - shearY + this.data.offsetShearY; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.shearY += r * shearMix; - } - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.applyRelativeLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) - rotation += (target.arotation + this.data.offsetRotation) * rotateMix; - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax + this.data.offsetX) * translateMix; - y += (target.ay + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; - if (scaleY > 0.00001) - scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; - } - var shearY = bone.ashearY; - if (shearMix > 0) - shearY += (target.ashearY + this.data.offsetShearY) * shearMix; - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.getOrder = function () { - return this.data.order; - }; - return TransformConstraint; - }()); - spine.TransformConstraint = TransformConstraint; + var TransformConstraint = (function () { + function TransformConstraint(data, skeleton) { + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.temp = new spine.Vector2(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + this.scaleMix = data.scaleMix; + this.shearMix = data.shearMix; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + TransformConstraint.prototype.apply = function () { + this.update(); + }; + TransformConstraint.prototype.update = function () { + if (this.data.local) { + if (this.data.relative) + this.applyRelativeLocal(); + else + this.applyAbsoluteLocal(); + } + else { + if (this.data.relative) + this.applyRelativeWorld(); + else + this.applyAbsoluteWorld(); + } + }; + TransformConstraint.prototype.applyAbsoluteWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect; + var offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += (temp.x - bone.worldX) * translateMix; + bone.worldY += (temp.y - bone.worldY) * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var ts = Math.sqrt(ta * ta + tc * tc); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; + bone.a *= s; + bone.c *= s; + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + ts = Math.sqrt(tb * tb + td * td); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var b = bone.b, d = bone.d; + var by = Math.atan2(d, b); + var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r = by + (r + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyRelativeWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += temp.x * translateMix; + bone.worldY += temp.y * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; + bone.a *= s; + bone.c *= s; + s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var r = Math.atan2(td, tb) - Math.atan2(tc, ta); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + var b = bone.b, d = bone.d; + r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyAbsoluteLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) { + var r = target.arotation - rotation + this.data.offsetRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + rotation += r * rotateMix; + } + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax - x + this.data.offsetX) * translateMix; + y += (target.ay - y + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; + if (scaleY > 0.00001) + scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; + } + var shearY = bone.ashearY; + if (shearMix > 0) { + var r = target.ashearY - shearY + this.data.offsetShearY; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.shearY += r * shearMix; + } + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.applyRelativeLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) + rotation += (target.arotation + this.data.offsetRotation) * rotateMix; + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax + this.data.offsetX) * translateMix; + y += (target.ay + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; + if (scaleY > 0.00001) + scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; + } + var shearY = bone.ashearY; + if (shearMix > 0) + shearY += (target.ashearY + this.data.offsetShearY) * shearMix; + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.getOrder = function () { + return this.data.order; + }; + return TransformConstraint; + }()); + spine.TransformConstraint = TransformConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraintData = (function () { - function TransformConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.offsetRotation = 0; - this.offsetX = 0; - this.offsetY = 0; - this.offsetScaleX = 0; - this.offsetScaleY = 0; - this.offsetShearY = 0; - this.relative = false; - this.local = false; - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return TransformConstraintData; - }()); - spine.TransformConstraintData = TransformConstraintData; + var TransformConstraintData = (function () { + function TransformConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.offsetRotation = 0; + this.offsetX = 0; + this.offsetY = 0; + this.offsetScaleX = 0; + this.offsetScaleY = 0; + this.offsetShearY = 0; + this.relative = false; + this.local = false; + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return TransformConstraintData; + }()); + spine.TransformConstraintData = TransformConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var Triangulator = (function () { - function Triangulator() { - this.convexPolygons = new Array(); - this.convexPolygonsIndices = new Array(); - this.indicesArray = new Array(); - this.isConcaveArray = new Array(); - this.triangles = new Array(); - this.polygonPool = new spine.Pool(function () { - return new Array(); - }); - this.polygonIndicesPool = new spine.Pool(function () { - return new Array(); - }); - } - Triangulator.prototype.triangulate = function (verticesArray) { - var vertices = verticesArray; - var vertexCount = verticesArray.length >> 1; - var indices = this.indicesArray; - indices.length = 0; - for (var i = 0; i < vertexCount; i++) - indices[i] = i; - var isConcave = this.isConcaveArray; - isConcave.length = 0; - for (var i = 0, n = vertexCount; i < n; ++i) - isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); - var triangles = this.triangles; - triangles.length = 0; - while (vertexCount > 3) { - var previous = vertexCount - 1, i = 0, next = 1; - while (true) { - outer: if (!isConcave[i]) { - var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; - var p1x = vertices[p1], p1y = vertices[p1 + 1]; - var p2x = vertices[p2], p2y = vertices[p2 + 1]; - var p3x = vertices[p3], p3y = vertices[p3 + 1]; - for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { - if (!isConcave[ii]) - continue; - var v = indices[ii] << 1; - var vx = vertices[v], vy = vertices[v + 1]; - if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { - if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { - if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) - break outer; - } - } - } - break; - } - if (next == 0) { - do { - if (!isConcave[i]) - break; - i--; - } while (i > 0); - break; - } - previous = i; - i = next; - next = (next + 1) % vertexCount; - } - triangles.push(indices[(vertexCount + i - 1) % vertexCount]); - triangles.push(indices[i]); - triangles.push(indices[(i + 1) % vertexCount]); - indices.splice(i, 1); - isConcave.splice(i, 1); - vertexCount--; - var previousIndex = (vertexCount + i - 1) % vertexCount; - var nextIndex = i == vertexCount ? 0 : i; - isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); - isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); - } - if (vertexCount == 3) { - triangles.push(indices[2]); - triangles.push(indices[0]); - triangles.push(indices[1]); - } - return triangles; - }; - Triangulator.prototype.decompose = function (verticesArray, triangles) { - var vertices = verticesArray; - var convexPolygons = this.convexPolygons; - this.polygonPool.freeAll(convexPolygons); - convexPolygons.length = 0; - var convexPolygonsIndices = this.convexPolygonsIndices; - this.polygonIndicesPool.freeAll(convexPolygonsIndices); - convexPolygonsIndices.length = 0; - var polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - var polygon = this.polygonPool.obtain(); - polygon.length = 0; - var fanBaseIndex = -1, lastWinding = 0; - for (var i = 0, n = triangles.length; i < n; i += 3) { - var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; - var x1 = vertices[t1], y1 = vertices[t1 + 1]; - var x2 = vertices[t2], y2 = vertices[t2 + 1]; - var x3 = vertices[t3], y3 = vertices[t3 + 1]; - var merged = false; - if (fanBaseIndex == t1) { - var o = polygon.length - 4; - var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); - var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); - if (winding1 == lastWinding && winding2 == lastWinding) { - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(t3); - merged = true; - } - } - if (!merged) { - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - else { - this.polygonPool.free(polygon); - this.polygonIndicesPool.free(polygonIndices); - } - polygon = this.polygonPool.obtain(); - polygon.length = 0; - polygon.push(x1); - polygon.push(y1); - polygon.push(x2); - polygon.push(y2); - polygon.push(x3); - polygon.push(y3); - polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - polygonIndices.push(t1); - polygonIndices.push(t2); - polygonIndices.push(t3); - lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); - fanBaseIndex = t1; - } - } - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - for (var i = 0, n = convexPolygons.length; i < n; i++) { - polygonIndices = convexPolygonsIndices[i]; - if (polygonIndices.length == 0) - continue; - var firstIndex = polygonIndices[0]; - var lastIndex = polygonIndices[polygonIndices.length - 1]; - polygon = convexPolygons[i]; - var o = polygon.length - 4; - var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; - var prevX = polygon[o + 2], prevY = polygon[o + 3]; - var firstX = polygon[0], firstY = polygon[1]; - var secondX = polygon[2], secondY = polygon[3]; - var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); - for (var ii = 0; ii < n; ii++) { - if (ii == i) - continue; - var otherIndices = convexPolygonsIndices[ii]; - if (otherIndices.length != 3) - continue; - var otherFirstIndex = otherIndices[0]; - var otherSecondIndex = otherIndices[1]; - var otherLastIndex = otherIndices[2]; - var otherPoly = convexPolygons[ii]; - var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; - if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) - continue; - var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); - var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); - if (winding1 == winding && winding2 == winding) { - otherPoly.length = 0; - otherIndices.length = 0; - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(otherLastIndex); - prevPrevX = prevX; - prevPrevY = prevY; - prevX = x3; - prevY = y3; - ii = 0; - } - } - } - for (var i = convexPolygons.length - 1; i >= 0; i--) { - polygon = convexPolygons[i]; - if (polygon.length == 0) { - convexPolygons.splice(i, 1); - this.polygonPool.free(polygon); - polygonIndices = convexPolygonsIndices[i]; - convexPolygonsIndices.splice(i, 1); - this.polygonIndicesPool.free(polygonIndices); - } - } - return convexPolygons; - }; - Triangulator.isConcave = function (index, vertexCount, vertices, indices) { - var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; - var current = indices[index] << 1; - var next = indices[(index + 1) % vertexCount] << 1; - return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); - }; - Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { - return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; - }; - Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { - var px = p2x - p1x, py = p2y - p1y; - return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; - }; - return Triangulator; - }()); - spine.Triangulator = Triangulator; + var Triangulator = (function () { + function Triangulator() { + this.convexPolygons = new Array(); + this.convexPolygonsIndices = new Array(); + this.indicesArray = new Array(); + this.isConcaveArray = new Array(); + this.triangles = new Array(); + this.polygonPool = new spine.Pool(function () { + return new Array(); + }); + this.polygonIndicesPool = new spine.Pool(function () { + return new Array(); + }); + } + Triangulator.prototype.triangulate = function (verticesArray) { + var vertices = verticesArray; + var vertexCount = verticesArray.length >> 1; + var indices = this.indicesArray; + indices.length = 0; + for (var i = 0; i < vertexCount; i++) + indices[i] = i; + var isConcave = this.isConcaveArray; + isConcave.length = 0; + for (var i = 0, n = vertexCount; i < n; ++i) + isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); + var triangles = this.triangles; + triangles.length = 0; + while (vertexCount > 3) { + var previous = vertexCount - 1, i = 0, next = 1; + while (true) { + outer: if (!isConcave[i]) { + var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; + var p1x = vertices[p1], p1y = vertices[p1 + 1]; + var p2x = vertices[p2], p2y = vertices[p2 + 1]; + var p3x = vertices[p3], p3y = vertices[p3 + 1]; + for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { + if (!isConcave[ii]) + continue; + var v = indices[ii] << 1; + var vx = vertices[v], vy = vertices[v + 1]; + if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { + if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { + if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) + break outer; + } + } + } + break; + } + if (next == 0) { + do { + if (!isConcave[i]) + break; + i--; + } while (i > 0); + break; + } + previous = i; + i = next; + next = (next + 1) % vertexCount; + } + triangles.push(indices[(vertexCount + i - 1) % vertexCount]); + triangles.push(indices[i]); + triangles.push(indices[(i + 1) % vertexCount]); + indices.splice(i, 1); + isConcave.splice(i, 1); + vertexCount--; + var previousIndex = (vertexCount + i - 1) % vertexCount; + var nextIndex = i == vertexCount ? 0 : i; + isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); + isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); + } + if (vertexCount == 3) { + triangles.push(indices[2]); + triangles.push(indices[0]); + triangles.push(indices[1]); + } + return triangles; + }; + Triangulator.prototype.decompose = function (verticesArray, triangles) { + var vertices = verticesArray; + var convexPolygons = this.convexPolygons; + this.polygonPool.freeAll(convexPolygons); + convexPolygons.length = 0; + var convexPolygonsIndices = this.convexPolygonsIndices; + this.polygonIndicesPool.freeAll(convexPolygonsIndices); + convexPolygonsIndices.length = 0; + var polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + var polygon = this.polygonPool.obtain(); + polygon.length = 0; + var fanBaseIndex = -1, lastWinding = 0; + for (var i = 0, n = triangles.length; i < n; i += 3) { + var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; + var x1 = vertices[t1], y1 = vertices[t1 + 1]; + var x2 = vertices[t2], y2 = vertices[t2 + 1]; + var x3 = vertices[t3], y3 = vertices[t3 + 1]; + var merged = false; + if (fanBaseIndex == t1) { + var o = polygon.length - 4; + var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); + var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); + if (winding1 == lastWinding && winding2 == lastWinding) { + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(t3); + merged = true; + } + } + if (!merged) { + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + else { + this.polygonPool.free(polygon); + this.polygonIndicesPool.free(polygonIndices); + } + polygon = this.polygonPool.obtain(); + polygon.length = 0; + polygon.push(x1); + polygon.push(y1); + polygon.push(x2); + polygon.push(y2); + polygon.push(x3); + polygon.push(y3); + polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + polygonIndices.push(t1); + polygonIndices.push(t2); + polygonIndices.push(t3); + lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); + fanBaseIndex = t1; + } + } + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + for (var i = 0, n = convexPolygons.length; i < n; i++) { + polygonIndices = convexPolygonsIndices[i]; + if (polygonIndices.length == 0) + continue; + var firstIndex = polygonIndices[0]; + var lastIndex = polygonIndices[polygonIndices.length - 1]; + polygon = convexPolygons[i]; + var o = polygon.length - 4; + var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; + var prevX = polygon[o + 2], prevY = polygon[o + 3]; + var firstX = polygon[0], firstY = polygon[1]; + var secondX = polygon[2], secondY = polygon[3]; + var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); + for (var ii = 0; ii < n; ii++) { + if (ii == i) + continue; + var otherIndices = convexPolygonsIndices[ii]; + if (otherIndices.length != 3) + continue; + var otherFirstIndex = otherIndices[0]; + var otherSecondIndex = otherIndices[1]; + var otherLastIndex = otherIndices[2]; + var otherPoly = convexPolygons[ii]; + var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; + if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) + continue; + var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); + var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); + if (winding1 == winding && winding2 == winding) { + otherPoly.length = 0; + otherIndices.length = 0; + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(otherLastIndex); + prevPrevX = prevX; + prevPrevY = prevY; + prevX = x3; + prevY = y3; + ii = 0; + } + } + } + for (var i = convexPolygons.length - 1; i >= 0; i--) { + polygon = convexPolygons[i]; + if (polygon.length == 0) { + convexPolygons.splice(i, 1); + this.polygonPool.free(polygon); + polygonIndices = convexPolygonsIndices[i]; + convexPolygonsIndices.splice(i, 1); + this.polygonIndicesPool.free(polygonIndices); + } + } + return convexPolygons; + }; + Triangulator.isConcave = function (index, vertexCount, vertices, indices) { + var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; + var current = indices[index] << 1; + var next = indices[(index + 1) % vertexCount] << 1; + return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); + }; + Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { + return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; + }; + Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { + var px = p2x - p1x, py = p2y - p1y; + return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; + }; + return Triangulator; + }()); + spine.Triangulator = Triangulator; })(spine || (spine = {})); var spine; (function (spine) { - var IntSet = (function () { - function IntSet() { - this.array = new Array(); - } - IntSet.prototype.add = function (value) { - var contains = this.contains(value); - this.array[value | 0] = value | 0; - return !contains; - }; - IntSet.prototype.contains = function (value) { - return this.array[value | 0] != undefined; - }; - IntSet.prototype.remove = function (value) { - this.array[value | 0] = undefined; - }; - IntSet.prototype.clear = function () { - this.array.length = 0; - }; - return IntSet; - }()); - spine.IntSet = IntSet; - var Color = (function () { - function Color(r, g, b, a) { - if (r === void 0) { r = 0; } - if (g === void 0) { g = 0; } - if (b === void 0) { b = 0; } - if (a === void 0) { a = 0; } - this.r = r; - this.g = g; - this.b = b; - this.a = a; - } - Color.prototype.set = function (r, g, b, a) { - this.r = r; - this.g = g; - this.b = b; - this.a = a; - this.clamp(); - return this; - }; - Color.prototype.setFromColor = function (c) { - this.r = c.r; - this.g = c.g; - this.b = c.b; - this.a = c.a; - return this; - }; - Color.prototype.setFromString = function (hex) { - hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; - this.r = parseInt(hex.substr(0, 2), 16) / 255.0; - this.g = parseInt(hex.substr(2, 2), 16) / 255.0; - this.b = parseInt(hex.substr(4, 2), 16) / 255.0; - this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; - return this; - }; - Color.prototype.add = function (r, g, b, a) { - this.r += r; - this.g += g; - this.b += b; - this.a += a; - this.clamp(); - return this; - }; - Color.prototype.clamp = function () { - if (this.r < 0) - this.r = 0; - else if (this.r > 1) - this.r = 1; - if (this.g < 0) - this.g = 0; - else if (this.g > 1) - this.g = 1; - if (this.b < 0) - this.b = 0; - else if (this.b > 1) - this.b = 1; - if (this.a < 0) - this.a = 0; - else if (this.a > 1) - this.a = 1; - return this; - }; - Color.WHITE = new Color(1, 1, 1, 1); - Color.RED = new Color(1, 0, 0, 1); - Color.GREEN = new Color(0, 1, 0, 1); - Color.BLUE = new Color(0, 0, 1, 1); - Color.MAGENTA = new Color(1, 0, 1, 1); - return Color; - }()); - spine.Color = Color; - var MathUtils = (function () { - function MathUtils() { - } - MathUtils.clamp = function (value, min, max) { - if (value < min) - return min; - if (value > max) - return max; - return value; - }; - MathUtils.cosDeg = function (degrees) { - return Math.cos(degrees * MathUtils.degRad); - }; - MathUtils.sinDeg = function (degrees) { - return Math.sin(degrees * MathUtils.degRad); - }; - MathUtils.signum = function (value) { - return value > 0 ? 1 : value < 0 ? -1 : 0; - }; - MathUtils.toInt = function (x) { - return x > 0 ? Math.floor(x) : Math.ceil(x); - }; - MathUtils.cbrt = function (x) { - var y = Math.pow(Math.abs(x), 1 / 3); - return x < 0 ? -y : y; - }; - MathUtils.PI = 3.1415927; - MathUtils.PI2 = MathUtils.PI * 2; - MathUtils.radiansToDegrees = 180 / MathUtils.PI; - MathUtils.radDeg = MathUtils.radiansToDegrees; - MathUtils.degreesToRadians = MathUtils.PI / 180; - MathUtils.degRad = MathUtils.degreesToRadians; - return MathUtils; - }()); - spine.MathUtils = MathUtils; - var Utils = (function () { - function Utils() { - } - Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { - for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { - dest[j] = source[i]; - } - }; - Utils.setArraySize = function (array, size, value) { - if (value === void 0) { value = 0; } - var oldSize = array.length; - if (oldSize == size) - return array; - array.length = size; - if (oldSize < size) { - for (var i = oldSize; i < size; i++) - array[i] = value; - } - return array; - }; - Utils.ensureArrayCapacity = function (array, size, value) { - if (value === void 0) { value = 0; } - if (array.length >= size) - return array; - return Utils.setArraySize(array, size, value); - }; - Utils.newArray = function (size, defaultValue) { - var array = new Array(size); - for (var i = 0; i < size; i++) - array[i] = defaultValue; - return array; - }; - Utils.newFloatArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Float32Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.newShortArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Int16Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.toFloatArray = function (array) { - return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; - }; - Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; - return Utils; - }()); - spine.Utils = Utils; - var DebugUtils = (function () { - function DebugUtils() { - } - DebugUtils.logBones = function (skeleton) { - for (var i = 0; i < skeleton.bones.length; i++) { - var bone = skeleton.bones[i]; - console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); - } - }; - return DebugUtils; - }()); - spine.DebugUtils = DebugUtils; - var Pool = (function () { - function Pool(instantiator) { - this.items = new Array(); - this.instantiator = instantiator; - } - Pool.prototype.obtain = function () { - return this.items.length > 0 ? this.items.pop() : this.instantiator(); - }; - Pool.prototype.free = function (item) { - if (item.reset) - item.reset(); - this.items.push(item); - }; - Pool.prototype.freeAll = function (items) { - for (var i = 0; i < items.length; i++) { - if (items[i].reset) - items[i].reset(); - this.items[i] = items[i]; - } - }; - Pool.prototype.clear = function () { - this.items.length = 0; - }; - return Pool; - }()); - spine.Pool = Pool; - var Vector2 = (function () { - function Vector2(x, y) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - this.x = x; - this.y = y; - } - Vector2.prototype.set = function (x, y) { - this.x = x; - this.y = y; - return this; - }; - Vector2.prototype.length = function () { - var x = this.x; - var y = this.y; - return Math.sqrt(x * x + y * y); - }; - Vector2.prototype.normalize = function () { - var len = this.length(); - if (len != 0) { - this.x /= len; - this.y /= len; - } - return this; - }; - return Vector2; - }()); - spine.Vector2 = Vector2; - var TimeKeeper = (function () { - function TimeKeeper() { - this.maxDelta = 0.064; - this.framesPerSecond = 0; - this.delta = 0; - this.totalTime = 0; - this.lastTime = Date.now() / 1000; - this.frameCount = 0; - this.frameTime = 0; - } - TimeKeeper.prototype.update = function () { - var now = Date.now() / 1000; - this.delta = now - this.lastTime; - this.frameTime += this.delta; - this.totalTime += this.delta; - if (this.delta > this.maxDelta) - this.delta = this.maxDelta; - this.lastTime = now; - this.frameCount++; - if (this.frameTime > 1) { - this.framesPerSecond = this.frameCount / this.frameTime; - this.frameTime = 0; - this.frameCount = 0; - } - }; - return TimeKeeper; - }()); - spine.TimeKeeper = TimeKeeper; - var WindowedMean = (function () { - function WindowedMean(windowSize) { - if (windowSize === void 0) { windowSize = 32; } - this.addedValues = 0; - this.lastValue = 0; - this.mean = 0; - this.dirty = true; - this.values = new Array(windowSize); - } - WindowedMean.prototype.hasEnoughData = function () { - return this.addedValues >= this.values.length; - }; - WindowedMean.prototype.addValue = function (value) { - if (this.addedValues < this.values.length) - this.addedValues++; - this.values[this.lastValue++] = value; - if (this.lastValue > this.values.length - 1) - this.lastValue = 0; - this.dirty = true; - }; - WindowedMean.prototype.getMean = function () { - if (this.hasEnoughData()) { - if (this.dirty) { - var mean = 0; - for (var i = 0; i < this.values.length; i++) { - mean += this.values[i]; - } - this.mean = mean / this.values.length; - this.dirty = false; - } - return this.mean; - } - else { - return 0; - } - }; - return WindowedMean; - }()); - spine.WindowedMean = WindowedMean; + var IntSet = (function () { + function IntSet() { + this.array = new Array(); + } + IntSet.prototype.add = function (value) { + var contains = this.contains(value); + this.array[value | 0] = value | 0; + return !contains; + }; + IntSet.prototype.contains = function (value) { + return this.array[value | 0] != undefined; + }; + IntSet.prototype.remove = function (value) { + this.array[value | 0] = undefined; + }; + IntSet.prototype.clear = function () { + this.array.length = 0; + }; + return IntSet; + }()); + spine.IntSet = IntSet; + var Color = (function () { + function Color(r, g, b, a) { + if (r === void 0) { r = 0; } + if (g === void 0) { g = 0; } + if (b === void 0) { b = 0; } + if (a === void 0) { a = 0; } + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + Color.prototype.set = function (r, g, b, a) { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + this.clamp(); + return this; + }; + Color.prototype.setFromColor = function (c) { + this.r = c.r; + this.g = c.g; + this.b = c.b; + this.a = c.a; + return this; + }; + Color.prototype.setFromString = function (hex) { + hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; + this.r = parseInt(hex.substr(0, 2), 16) / 255.0; + this.g = parseInt(hex.substr(2, 2), 16) / 255.0; + this.b = parseInt(hex.substr(4, 2), 16) / 255.0; + this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; + return this; + }; + Color.prototype.add = function (r, g, b, a) { + this.r += r; + this.g += g; + this.b += b; + this.a += a; + this.clamp(); + return this; + }; + Color.prototype.clamp = function () { + if (this.r < 0) + this.r = 0; + else if (this.r > 1) + this.r = 1; + if (this.g < 0) + this.g = 0; + else if (this.g > 1) + this.g = 1; + if (this.b < 0) + this.b = 0; + else if (this.b > 1) + this.b = 1; + if (this.a < 0) + this.a = 0; + else if (this.a > 1) + this.a = 1; + return this; + }; + Color.WHITE = new Color(1, 1, 1, 1); + Color.RED = new Color(1, 0, 0, 1); + Color.GREEN = new Color(0, 1, 0, 1); + Color.BLUE = new Color(0, 0, 1, 1); + Color.MAGENTA = new Color(1, 0, 1, 1); + return Color; + }()); + spine.Color = Color; + var MathUtils = (function () { + function MathUtils() { + } + MathUtils.clamp = function (value, min, max) { + if (value < min) + return min; + if (value > max) + return max; + return value; + }; + MathUtils.cosDeg = function (degrees) { + return Math.cos(degrees * MathUtils.degRad); + }; + MathUtils.sinDeg = function (degrees) { + return Math.sin(degrees * MathUtils.degRad); + }; + MathUtils.signum = function (value) { + return value > 0 ? 1 : value < 0 ? -1 : 0; + }; + MathUtils.toInt = function (x) { + return x > 0 ? Math.floor(x) : Math.ceil(x); + }; + MathUtils.cbrt = function (x) { + var y = Math.pow(Math.abs(x), 1 / 3); + return x < 0 ? -y : y; + }; + MathUtils.PI = 3.1415927; + MathUtils.PI2 = MathUtils.PI * 2; + MathUtils.radiansToDegrees = 180 / MathUtils.PI; + MathUtils.radDeg = MathUtils.radiansToDegrees; + MathUtils.degreesToRadians = MathUtils.PI / 180; + MathUtils.degRad = MathUtils.degreesToRadians; + return MathUtils; + }()); + spine.MathUtils = MathUtils; + var Utils = (function () { + function Utils() { + } + Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { + for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { + dest[j] = source[i]; + } + }; + Utils.setArraySize = function (array, size, value) { + if (value === void 0) { value = 0; } + var oldSize = array.length; + if (oldSize == size) + return array; + array.length = size; + if (oldSize < size) { + for (var i = oldSize; i < size; i++) + array[i] = value; + } + return array; + }; + Utils.ensureArrayCapacity = function (array, size, value) { + if (value === void 0) { value = 0; } + if (array.length >= size) + return array; + return Utils.setArraySize(array, size, value); + }; + Utils.newArray = function (size, defaultValue) { + var array = new Array(size); + for (var i = 0; i < size; i++) + array[i] = defaultValue; + return array; + }; + Utils.newFloatArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Float32Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.newShortArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Int16Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.toFloatArray = function (array) { + return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; + }; + Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; + return Utils; + }()); + spine.Utils = Utils; + var DebugUtils = (function () { + function DebugUtils() { + } + DebugUtils.logBones = function (skeleton) { + for (var i = 0; i < skeleton.bones.length; i++) { + var bone = skeleton.bones[i]; + console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); + } + }; + return DebugUtils; + }()); + spine.DebugUtils = DebugUtils; + var Pool = (function () { + function Pool(instantiator) { + this.items = new Array(); + this.instantiator = instantiator; + } + Pool.prototype.obtain = function () { + return this.items.length > 0 ? this.items.pop() : this.instantiator(); + }; + Pool.prototype.free = function (item) { + if (item.reset) + item.reset(); + this.items.push(item); + }; + Pool.prototype.freeAll = function (items) { + for (var i = 0; i < items.length; i++) { + if (items[i].reset) + items[i].reset(); + this.items[i] = items[i]; + } + }; + Pool.prototype.clear = function () { + this.items.length = 0; + }; + return Pool; + }()); + spine.Pool = Pool; + var Vector2 = (function () { + function Vector2(x, y) { + if (x === void 0) { x = 0; } + if (y === void 0) { y = 0; } + this.x = x; + this.y = y; + } + Vector2.prototype.set = function (x, y) { + this.x = x; + this.y = y; + return this; + }; + Vector2.prototype.length = function () { + var x = this.x; + var y = this.y; + return Math.sqrt(x * x + y * y); + }; + Vector2.prototype.normalize = function () { + var len = this.length(); + if (len != 0) { + this.x /= len; + this.y /= len; + } + return this; + }; + return Vector2; + }()); + spine.Vector2 = Vector2; + var TimeKeeper = (function () { + function TimeKeeper() { + this.maxDelta = 0.064; + this.framesPerSecond = 0; + this.delta = 0; + this.totalTime = 0; + this.lastTime = Date.now() / 1000; + this.frameCount = 0; + this.frameTime = 0; + } + TimeKeeper.prototype.update = function () { + var now = Date.now() / 1000; + this.delta = now - this.lastTime; + this.frameTime += this.delta; + this.totalTime += this.delta; + if (this.delta > this.maxDelta) + this.delta = this.maxDelta; + this.lastTime = now; + this.frameCount++; + if (this.frameTime > 1) { + this.framesPerSecond = this.frameCount / this.frameTime; + this.frameTime = 0; + this.frameCount = 0; + } + }; + return TimeKeeper; + }()); + spine.TimeKeeper = TimeKeeper; + var WindowedMean = (function () { + function WindowedMean(windowSize) { + if (windowSize === void 0) { windowSize = 32; } + this.addedValues = 0; + this.lastValue = 0; + this.mean = 0; + this.dirty = true; + this.values = new Array(windowSize); + } + WindowedMean.prototype.hasEnoughData = function () { + return this.addedValues >= this.values.length; + }; + WindowedMean.prototype.addValue = function (value) { + if (this.addedValues < this.values.length) + this.addedValues++; + this.values[this.lastValue++] = value; + if (this.lastValue > this.values.length - 1) + this.lastValue = 0; + this.dirty = true; + }; + WindowedMean.prototype.getMean = function () { + if (this.hasEnoughData()) { + if (this.dirty) { + var mean = 0; + for (var i = 0; i < this.values.length; i++) { + mean += this.values[i]; + } + this.mean = mean / this.values.length; + this.dirty = false; + } + return this.mean; + } + else { + return 0; + } + }; + return WindowedMean; + }()); + spine.WindowedMean = WindowedMean; })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var AssetManager = (function (_super) { - __extends(AssetManager, _super); - function AssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - _super.call(this, function (image) { - return new threejs.ThreeJsTexture(image); - }, pathPrefix); - } - return AssetManager; - }(spine.AssetManager)); - threejs.AssetManager = AssetManager; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var AssetManager = (function (_super) { + __extends(AssetManager, _super); + function AssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + _super.call(this, function (image) { + return new threejs.ThreeJsTexture(image); + }, pathPrefix); + } + return AssetManager; + }(spine.AssetManager)); + threejs.AssetManager = AssetManager; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var MeshBatcher = (function () { - function MeshBatcher(mesh, maxVertices) { - if (maxVertices === void 0) { maxVertices = 10920; } - this.verticesLength = 0; - this.indicesLength = 0; - if (maxVertices > 10920) - throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); - var vertices = this.vertices = new Float32Array(maxVertices * MeshBatcher.VERTEX_SIZE); - var indices = this.indices = new Uint16Array(maxVertices * 3); - this.mesh = mesh; - var geo = new THREE.BufferGeometry(); - var vertexBuffer = this.vertexBuffer = new THREE.InterleavedBuffer(vertices, MeshBatcher.VERTEX_SIZE); - vertexBuffer.dynamic = true; - geo.addAttribute("position", new THREE.InterleavedBufferAttribute(vertexBuffer, 3, 0, false)); - geo.addAttribute("color", new THREE.InterleavedBufferAttribute(vertexBuffer, 4, 3, false)); - geo.addAttribute("uv", new THREE.InterleavedBufferAttribute(vertexBuffer, 2, 7, false)); - geo.setIndex(new THREE.BufferAttribute(indices, 1)); - geo.getIndex().dynamic = true; - geo.drawRange.start = 0; - geo.drawRange.count = 0; - mesh.geometry = geo; - } - MeshBatcher.prototype.begin = function () { - this.verticesLength = 0; - this.indicesLength = 0; - }; - MeshBatcher.prototype.batch = function (vertices, verticesLength, indices, indicesLength, z) { - if (z === void 0) { z = 0; } - var indexStart = this.verticesLength / MeshBatcher.VERTEX_SIZE; - var vertexBuffer = this.vertices; - var i = this.verticesLength; - var j = 0; - for (; j < verticesLength;) { - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = z; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - } - this.verticesLength = i; - var indicesArray = this.indices; - for (i = this.indicesLength, j = 0; j < indicesLength; i++, j++) - indicesArray[i] = indices[j] + indexStart; - this.indicesLength += indicesLength; - }; - MeshBatcher.prototype.end = function () { - this.vertexBuffer.needsUpdate = true; - this.vertexBuffer.updateRange.offset = 0; - this.vertexBuffer.updateRange.count = this.verticesLength; - var geo = this.mesh.geometry; - geo.getIndex().needsUpdate = true; - geo.getIndex().updateRange.offset = 0; - geo.getIndex().updateRange.count = this.indicesLength; - geo.drawRange.start = 0; - geo.drawRange.count = this.indicesLength; - }; - MeshBatcher.VERTEX_SIZE = 9; - return MeshBatcher; - }()); - threejs.MeshBatcher = MeshBatcher; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var MeshBatcher = (function () { + function MeshBatcher(mesh, maxVertices) { + if (maxVertices === void 0) { maxVertices = 10920; } + this.verticesLength = 0; + this.indicesLength = 0; + if (maxVertices > 10920) + throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); + var vertices = this.vertices = new Float32Array(maxVertices * MeshBatcher.VERTEX_SIZE); + var indices = this.indices = new Uint16Array(maxVertices * 3); + this.mesh = mesh; + var geo = new THREE.BufferGeometry(); + var vertexBuffer = this.vertexBuffer = new THREE.InterleavedBuffer(vertices, MeshBatcher.VERTEX_SIZE); + vertexBuffer.dynamic = true; + geo.addAttribute("position", new THREE.InterleavedBufferAttribute(vertexBuffer, 3, 0, false)); + geo.addAttribute("color", new THREE.InterleavedBufferAttribute(vertexBuffer, 4, 3, false)); + geo.addAttribute("uv", new THREE.InterleavedBufferAttribute(vertexBuffer, 2, 7, false)); + geo.setIndex(new THREE.BufferAttribute(indices, 1)); + geo.getIndex().dynamic = true; + geo.drawRange.start = 0; + geo.drawRange.count = 0; + mesh.geometry = geo; + } + MeshBatcher.prototype.begin = function () { + this.verticesLength = 0; + this.indicesLength = 0; + }; + MeshBatcher.prototype.batch = function (vertices, verticesLength, indices, indicesLength, z) { + if (z === void 0) { z = 0; } + var indexStart = this.verticesLength / MeshBatcher.VERTEX_SIZE; + var vertexBuffer = this.vertices; + var i = this.verticesLength; + var j = 0; + for (; j < verticesLength;) { + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = z; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + } + this.verticesLength = i; + var indicesArray = this.indices; + for (i = this.indicesLength, j = 0; j < indicesLength; i++, j++) + indicesArray[i] = indices[j] + indexStart; + this.indicesLength += indicesLength; + }; + MeshBatcher.prototype.end = function () { + this.vertexBuffer.needsUpdate = true; + this.vertexBuffer.updateRange.offset = 0; + this.vertexBuffer.updateRange.count = this.verticesLength; + var geo = this.mesh.geometry; + geo.getIndex().needsUpdate = true; + geo.getIndex().updateRange.offset = 0; + geo.getIndex().updateRange.count = this.indicesLength; + geo.drawRange.start = 0; + geo.drawRange.count = this.indicesLength; + }; + MeshBatcher.VERTEX_SIZE = 9; + return MeshBatcher; + }()); + threejs.MeshBatcher = MeshBatcher; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var SkeletonMesh = (function (_super) { - __extends(SkeletonMesh, _super); - function SkeletonMesh(skeletonData) { - _super.call(this); - this.zOffset = 0.1; - this.clipper = new spine.SkeletonClipping(); - this.vertices = spine.Utils.newFloatArray(1024); - this.tempColor = new spine.Color(); - this.skeleton = new spine.Skeleton(skeletonData); - var animData = new spine.AnimationStateData(skeletonData); - this.state = new spine.AnimationState(animData); - var material = this.material = new THREE.MeshBasicMaterial(); - material.side = THREE.DoubleSide; - material.transparent = true; - material.alphaTest = 0.5; - this.batcher = new threejs.MeshBatcher(this); - } - SkeletonMesh.prototype.update = function (deltaTime) { - var state = this.state; - var skeleton = this.skeleton; - state.update(deltaTime); - state.apply(skeleton); - skeleton.updateWorldTransform(); - this.updateGeometry(); - }; - SkeletonMesh.prototype.updateGeometry = function () { - var geometry = this.geometry; - var numVertices = 0; - var verticesLength = 0; - var indicesLength = 0; - var blendMode = null; - var clipper = this.clipper; - var vertices = this.vertices; - var triangles = null; - var uvs = null; - var drawOrder = this.skeleton.drawOrder; - var batcher = this.batcher; - batcher.begin(); - var z = 0; - var zOffset = this.zOffset; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var vertexSize = clipper.isClipping() ? 2 : SkeletonMesh.VERTEX_SIZE; - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var attachmentColor = null; - var texture = null; - var numFloats = 0; - if (attachment instanceof spine.RegionAttachment) { - var region = attachment; - attachmentColor = region.color; - vertices = this.vertices; - numFloats = vertexSize * 4; - region.computeWorldVertices(slot.bone, vertices, 0, vertexSize); - triangles = SkeletonMesh.QUAD_TRIANGLES; - uvs = region.uvs; - texture = region.region.renderObject.texture; - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - attachmentColor = mesh.color; - vertices = this.vertices; - numFloats = (mesh.worldVerticesLength >> 1) * vertexSize; - if (numFloats > vertices.length) { - vertices = this.vertices = spine.Utils.newFloatArray(numFloats); - } - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, vertexSize); - triangles = mesh.triangles; - uvs = mesh.uvs; - texture = mesh.region.renderObject.texture; - } - else if (attachment instanceof spine.ClippingAttachment) { - var clip = (attachment); - clipper.clipStart(slot, clip); - continue; - } - else - continue; - if (texture != null) { - if (!this.material.map) { - var mat = this.material; - mat.map = texture.texture; - mat.needsUpdate = true; - } - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var alpha = skeletonColor.a * slotColor.a * attachmentColor.a; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * attachmentColor.r, skeletonColor.g * slotColor.g * attachmentColor.g, skeletonColor.b * slotColor.b * attachmentColor.b, alpha); - if (clipper.isClipping()) { - clipper.clipTriangles(vertices, numFloats, triangles, triangles.length, uvs, color, null, false); - var clippedVertices = clipper.clippedVertices; - var clippedTriangles = clipper.clippedTriangles; - batcher.batch(clippedVertices, clippedVertices.length, clippedTriangles, clippedTriangles.length, z); - } - else { - var verts = vertices; - for (var v = 2, u = 0, n_2 = numFloats; v < n_2; v += vertexSize, u += 2) { - verts[v] = color.r; - verts[v + 1] = color.g; - verts[v + 2] = color.b; - verts[v + 3] = color.a; - verts[v + 4] = uvs[u]; - verts[v + 5] = uvs[u + 1]; - } - batcher.batch(vertices, numFloats, triangles, triangles.length, z); - } - z += zOffset; - } - } - batcher.end(); - }; - SkeletonMesh.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - SkeletonMesh.VERTEX_SIZE = 2 + 2 + 4; - return SkeletonMesh; - }(THREE.Mesh)); - threejs.SkeletonMesh = SkeletonMesh; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var SkeletonMesh = (function (_super) { + __extends(SkeletonMesh, _super); + function SkeletonMesh(skeletonData) { + _super.call(this); + this.zOffset = 0.1; + this.clipper = new spine.SkeletonClipping(); + this.vertices = spine.Utils.newFloatArray(1024); + this.tempColor = new spine.Color(); + this.skeleton = new spine.Skeleton(skeletonData); + var animData = new spine.AnimationStateData(skeletonData); + this.state = new spine.AnimationState(animData); + var material = this.material = new THREE.MeshBasicMaterial(); + material.side = THREE.DoubleSide; + material.transparent = true; + material.alphaTest = 0.5; + this.batcher = new threejs.MeshBatcher(this); + } + SkeletonMesh.prototype.update = function (deltaTime) { + var state = this.state; + var skeleton = this.skeleton; + state.update(deltaTime); + state.apply(skeleton); + skeleton.updateWorldTransform(); + this.updateGeometry(); + }; + SkeletonMesh.prototype.updateGeometry = function () { + var geometry = this.geometry; + var numVertices = 0; + var verticesLength = 0; + var indicesLength = 0; + var blendMode = null; + var clipper = this.clipper; + var vertices = this.vertices; + var triangles = null; + var uvs = null; + var drawOrder = this.skeleton.drawOrder; + var batcher = this.batcher; + batcher.begin(); + var z = 0; + var zOffset = this.zOffset; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var vertexSize = clipper.isClipping() ? 2 : SkeletonMesh.VERTEX_SIZE; + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var attachmentColor = null; + var texture = null; + var numFloats = 0; + if (attachment instanceof spine.RegionAttachment) { + var region = attachment; + attachmentColor = region.color; + vertices = this.vertices; + numFloats = vertexSize * 4; + region.computeWorldVertices(slot.bone, vertices, 0, vertexSize); + triangles = SkeletonMesh.QUAD_TRIANGLES; + uvs = region.uvs; + texture = region.region.renderObject.texture; + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + attachmentColor = mesh.color; + vertices = this.vertices; + numFloats = (mesh.worldVerticesLength >> 1) * vertexSize; + if (numFloats > vertices.length) { + vertices = this.vertices = spine.Utils.newFloatArray(numFloats); + } + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, vertexSize); + triangles = mesh.triangles; + uvs = mesh.uvs; + texture = mesh.region.renderObject.texture; + } + else if (attachment instanceof spine.ClippingAttachment) { + var clip = (attachment); + clipper.clipStart(slot, clip); + continue; + } + else + continue; + if (texture != null) { + if (!this.material.map) { + var mat = this.material; + mat.map = texture.texture; + mat.needsUpdate = true; + } + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var alpha = skeletonColor.a * slotColor.a * attachmentColor.a; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * attachmentColor.r, skeletonColor.g * slotColor.g * attachmentColor.g, skeletonColor.b * slotColor.b * attachmentColor.b, alpha); + if (clipper.isClipping()) { + clipper.clipTriangles(vertices, numFloats, triangles, triangles.length, uvs, color, null, false); + var clippedVertices = clipper.clippedVertices; + var clippedTriangles = clipper.clippedTriangles; + batcher.batch(clippedVertices, clippedVertices.length, clippedTriangles, clippedTriangles.length, z); + } + else { + var verts = vertices; + for (var v = 2, u = 0, n_2 = numFloats; v < n_2; v += vertexSize, u += 2) { + verts[v] = color.r; + verts[v + 1] = color.g; + verts[v + 2] = color.b; + verts[v + 3] = color.a; + verts[v + 4] = uvs[u]; + verts[v + 5] = uvs[u + 1]; + } + batcher.batch(vertices, numFloats, triangles, triangles.length, z); + } + z += zOffset; + } + } + batcher.end(); + }; + SkeletonMesh.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + SkeletonMesh.VERTEX_SIZE = 2 + 2 + 4; + return SkeletonMesh; + }(THREE.Mesh)); + threejs.SkeletonMesh = SkeletonMesh; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var ThreeJsTexture = (function (_super) { - __extends(ThreeJsTexture, _super); - function ThreeJsTexture(image) { - _super.call(this, image); - this.texture = new THREE.Texture(image); - this.texture.flipY = false; - this.texture.needsUpdate = true; - } - ThreeJsTexture.prototype.setFilters = function (minFilter, magFilter) { - this.texture.minFilter = ThreeJsTexture.toThreeJsTextureFilter(minFilter); - this.texture.magFilter = ThreeJsTexture.toThreeJsTextureFilter(magFilter); - }; - ThreeJsTexture.prototype.setWraps = function (uWrap, vWrap) { - this.texture.wrapS = ThreeJsTexture.toThreeJsTextureWrap(uWrap); - this.texture.wrapT = ThreeJsTexture.toThreeJsTextureWrap(vWrap); - }; - ThreeJsTexture.prototype.dispose = function () { - this.texture.dispose(); - }; - ThreeJsTexture.toThreeJsTextureFilter = function (filter) { - if (filter === spine.TextureFilter.Linear) - return THREE.LinearFilter; - else if (filter === spine.TextureFilter.MipMap) - return THREE.LinearMipMapLinearFilter; - else if (filter === spine.TextureFilter.MipMapLinearNearest) - return THREE.LinearMipMapNearestFilter; - else if (filter === spine.TextureFilter.MipMapNearestLinear) - return THREE.NearestMipMapLinearFilter; - else if (filter === spine.TextureFilter.MipMapNearestNearest) - return THREE.NearestMipMapNearestFilter; - else if (filter === spine.TextureFilter.Nearest) - return THREE.NearestFilter; - else - throw new Error("Unknown texture filter: " + filter); - }; - ThreeJsTexture.toThreeJsTextureWrap = function (wrap) { - if (wrap === spine.TextureWrap.ClampToEdge) - return THREE.ClampToEdgeWrapping; - else if (wrap === spine.TextureWrap.MirroredRepeat) - return THREE.MirroredRepeatWrapping; - else if (wrap === spine.TextureWrap.Repeat) - return THREE.RepeatWrapping; - else - throw new Error("Unknown texture wrap: " + wrap); - }; - return ThreeJsTexture; - }(spine.Texture)); - threejs.ThreeJsTexture = ThreeJsTexture; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var ThreeJsTexture = (function (_super) { + __extends(ThreeJsTexture, _super); + function ThreeJsTexture(image) { + _super.call(this, image); + this.texture = new THREE.Texture(image); + this.texture.flipY = false; + this.texture.needsUpdate = true; + } + ThreeJsTexture.prototype.setFilters = function (minFilter, magFilter) { + this.texture.minFilter = ThreeJsTexture.toThreeJsTextureFilter(minFilter); + this.texture.magFilter = ThreeJsTexture.toThreeJsTextureFilter(magFilter); + }; + ThreeJsTexture.prototype.setWraps = function (uWrap, vWrap) { + this.texture.wrapS = ThreeJsTexture.toThreeJsTextureWrap(uWrap); + this.texture.wrapT = ThreeJsTexture.toThreeJsTextureWrap(vWrap); + }; + ThreeJsTexture.prototype.dispose = function () { + this.texture.dispose(); + }; + ThreeJsTexture.toThreeJsTextureFilter = function (filter) { + if (filter === spine.TextureFilter.Linear) + return THREE.LinearFilter; + else if (filter === spine.TextureFilter.MipMap) + return THREE.LinearMipMapLinearFilter; + else if (filter === spine.TextureFilter.MipMapLinearNearest) + return THREE.LinearMipMapNearestFilter; + else if (filter === spine.TextureFilter.MipMapNearestLinear) + return THREE.NearestMipMapLinearFilter; + else if (filter === spine.TextureFilter.MipMapNearestNearest) + return THREE.NearestMipMapNearestFilter; + else if (filter === spine.TextureFilter.Nearest) + return THREE.NearestFilter; + else + throw new Error("Unknown texture filter: " + filter); + }; + ThreeJsTexture.toThreeJsTextureWrap = function (wrap) { + if (wrap === spine.TextureWrap.ClampToEdge) + return THREE.ClampToEdgeWrapping; + else if (wrap === spine.TextureWrap.MirroredRepeat) + return THREE.MirroredRepeatWrapping; + else if (wrap === spine.TextureWrap.Repeat) + return THREE.RepeatWrapping; + else + throw new Error("Unknown texture wrap: " + wrap); + }; + return ThreeJsTexture; + }(spine.Texture)); + threejs.ThreeJsTexture = ThreeJsTexture; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var AssetManager = (function (_super) { - __extends(AssetManager, _super); - function AssetManager(context, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - _super.call(this, function (image) { - return new spine.webgl.GLTexture(context, image); - }, pathPrefix); - } - return AssetManager; - }(spine.AssetManager)); - webgl.AssetManager = AssetManager; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var AssetManager = (function (_super) { + __extends(AssetManager, _super); + function AssetManager(context, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + _super.call(this, function (image) { + return new spine.webgl.GLTexture(context, image); + }, pathPrefix); + } + return AssetManager; + }(spine.AssetManager)); + webgl.AssetManager = AssetManager; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var OrthoCamera = (function () { - function OrthoCamera(viewportWidth, viewportHeight) { - this.position = new webgl.Vector3(0, 0, 0); - this.direction = new webgl.Vector3(0, 0, -1); - this.up = new webgl.Vector3(0, 1, 0); - this.near = 0; - this.far = 100; - this.zoom = 1; - this.viewportWidth = 0; - this.viewportHeight = 0; - this.projectionView = new webgl.Matrix4(); - this.inverseProjectionView = new webgl.Matrix4(); - this.projection = new webgl.Matrix4(); - this.view = new webgl.Matrix4(); - this.tmp = new webgl.Vector3(); - this.viewportWidth = viewportWidth; - this.viewportHeight = viewportHeight; - this.update(); - } - OrthoCamera.prototype.update = function () { - var projection = this.projection; - var view = this.view; - var projectionView = this.projectionView; - var inverseProjectionView = this.inverseProjectionView; - var zoom = this.zoom, viewportWidth = this.viewportWidth, viewportHeight = this.viewportHeight; - projection.ortho(zoom * (-viewportWidth / 2), zoom * (viewportWidth / 2), zoom * (-viewportHeight / 2), zoom * (viewportHeight / 2), this.near, this.far); - view.lookAt(this.position, this.direction, this.up); - projectionView.set(projection.values); - projectionView.multiply(view); - inverseProjectionView.set(projectionView.values).invert(); - }; - OrthoCamera.prototype.screenToWorld = function (screenCoords, screenWidth, screenHeight) { - var x = screenCoords.x, y = screenHeight - screenCoords.y - 1; - var tmp = this.tmp; - tmp.x = (2 * x) / screenWidth - 1; - tmp.y = (2 * y) / screenHeight - 1; - tmp.z = (2 * screenCoords.z) - 1; - tmp.project(this.inverseProjectionView); - screenCoords.set(tmp.x, tmp.y, tmp.z); - return screenCoords; - }; - OrthoCamera.prototype.setViewport = function (viewportWidth, viewportHeight) { - this.viewportWidth = viewportWidth; - this.viewportHeight = viewportHeight; - }; - return OrthoCamera; - }()); - webgl.OrthoCamera = OrthoCamera; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var OrthoCamera = (function () { + function OrthoCamera(viewportWidth, viewportHeight) { + this.position = new webgl.Vector3(0, 0, 0); + this.direction = new webgl.Vector3(0, 0, -1); + this.up = new webgl.Vector3(0, 1, 0); + this.near = 0; + this.far = 100; + this.zoom = 1; + this.viewportWidth = 0; + this.viewportHeight = 0; + this.projectionView = new webgl.Matrix4(); + this.inverseProjectionView = new webgl.Matrix4(); + this.projection = new webgl.Matrix4(); + this.view = new webgl.Matrix4(); + this.tmp = new webgl.Vector3(); + this.viewportWidth = viewportWidth; + this.viewportHeight = viewportHeight; + this.update(); + } + OrthoCamera.prototype.update = function () { + var projection = this.projection; + var view = this.view; + var projectionView = this.projectionView; + var inverseProjectionView = this.inverseProjectionView; + var zoom = this.zoom, viewportWidth = this.viewportWidth, viewportHeight = this.viewportHeight; + projection.ortho(zoom * (-viewportWidth / 2), zoom * (viewportWidth / 2), zoom * (-viewportHeight / 2), zoom * (viewportHeight / 2), this.near, this.far); + view.lookAt(this.position, this.direction, this.up); + projectionView.set(projection.values); + projectionView.multiply(view); + inverseProjectionView.set(projectionView.values).invert(); + }; + OrthoCamera.prototype.screenToWorld = function (screenCoords, screenWidth, screenHeight) { + var x = screenCoords.x, y = screenHeight - screenCoords.y - 1; + var tmp = this.tmp; + tmp.x = (2 * x) / screenWidth - 1; + tmp.y = (2 * y) / screenHeight - 1; + tmp.z = (2 * screenCoords.z) - 1; + tmp.project(this.inverseProjectionView); + screenCoords.set(tmp.x, tmp.y, tmp.z); + return screenCoords; + }; + OrthoCamera.prototype.setViewport = function (viewportWidth, viewportHeight) { + this.viewportWidth = viewportWidth; + this.viewportHeight = viewportHeight; + }; + return OrthoCamera; + }()); + webgl.OrthoCamera = OrthoCamera; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var GLTexture = (function (_super) { - __extends(GLTexture, _super); - function GLTexture(context, image, useMipMaps) { - if (useMipMaps === void 0) { useMipMaps = false; } - _super.call(this, image); - this.texture = null; - this.boundUnit = 0; - this.useMipMaps = false; - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.useMipMaps = useMipMaps; - this.restore(); - this.context.addRestorable(this); - } - GLTexture.prototype.setFilters = function (minFilter, magFilter) { - var gl = this.context.gl; - this.bind(); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, magFilter); - }; - GLTexture.prototype.setWraps = function (uWrap, vWrap) { - var gl = this.context.gl; - this.bind(); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, uWrap); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, vWrap); - }; - GLTexture.prototype.update = function (useMipMaps) { - var gl = this.context.gl; - if (!this.texture) { - this.texture = this.context.gl.createTexture(); - } - this.bind(); - gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this._image); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, useMipMaps ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); - if (useMipMaps) - gl.generateMipmap(gl.TEXTURE_2D); - }; - GLTexture.prototype.restore = function () { - this.texture = null; - this.update(this.useMipMaps); - }; - GLTexture.prototype.bind = function (unit) { - if (unit === void 0) { unit = 0; } - var gl = this.context.gl; - this.boundUnit = unit; - gl.activeTexture(gl.TEXTURE0 + unit); - gl.bindTexture(gl.TEXTURE_2D, this.texture); - }; - GLTexture.prototype.unbind = function () { - var gl = this.context.gl; - gl.activeTexture(gl.TEXTURE0 + this.boundUnit); - gl.bindTexture(gl.TEXTURE_2D, null); - }; - GLTexture.prototype.dispose = function () { - this.context.removeRestorable(this); - var gl = this.context.gl; - gl.deleteTexture(this.texture); - }; - return GLTexture; - }(spine.Texture)); - webgl.GLTexture = GLTexture; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var GLTexture = (function (_super) { + __extends(GLTexture, _super); + function GLTexture(context, image, useMipMaps) { + if (useMipMaps === void 0) { useMipMaps = false; } + _super.call(this, image); + this.texture = null; + this.boundUnit = 0; + this.useMipMaps = false; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.useMipMaps = useMipMaps; + this.restore(); + this.context.addRestorable(this); + } + GLTexture.prototype.setFilters = function (minFilter, magFilter) { + var gl = this.context.gl; + this.bind(); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, magFilter); + }; + GLTexture.prototype.setWraps = function (uWrap, vWrap) { + var gl = this.context.gl; + this.bind(); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, uWrap); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, vWrap); + }; + GLTexture.prototype.update = function (useMipMaps) { + var gl = this.context.gl; + if (!this.texture) { + this.texture = this.context.gl.createTexture(); + } + this.bind(); + gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this._image); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, useMipMaps ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); + if (useMipMaps) + gl.generateMipmap(gl.TEXTURE_2D); + }; + GLTexture.prototype.restore = function () { + this.texture = null; + this.update(this.useMipMaps); + }; + GLTexture.prototype.bind = function (unit) { + if (unit === void 0) { unit = 0; } + var gl = this.context.gl; + this.boundUnit = unit; + gl.activeTexture(gl.TEXTURE0 + unit); + gl.bindTexture(gl.TEXTURE_2D, this.texture); + }; + GLTexture.prototype.unbind = function () { + var gl = this.context.gl; + gl.activeTexture(gl.TEXTURE0 + this.boundUnit); + gl.bindTexture(gl.TEXTURE_2D, null); + }; + GLTexture.prototype.dispose = function () { + this.context.removeRestorable(this); + var gl = this.context.gl; + gl.deleteTexture(this.texture); + }; + return GLTexture; + }(spine.Texture)); + webgl.GLTexture = GLTexture; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Input = (function () { - function Input(element) { - this.lastX = 0; - this.lastY = 0; - this.buttonDown = false; - this.currTouch = null; - this.touchesPool = new spine.Pool(function () { - return new spine.webgl.Touch(0, 0, 0); - }); - this.listeners = new Array(); - this.element = element; - this.setupCallbacks(element); - } - Input.prototype.setupCallbacks = function (element) { - var _this = this; - element.addEventListener("mousedown", function (ev) { - if (ev instanceof MouseEvent) { - var rect = element.getBoundingClientRect(); - var x = ev.clientX - rect.left; - var y = ev.clientY - rect.top; - var listeners = _this.listeners; - for (var i = 0; i < listeners.length; i++) { - listeners[i].down(x, y); - } - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = true; - } - }, true); - element.addEventListener("mousemove", function (ev) { - if (ev instanceof MouseEvent) { - var rect = element.getBoundingClientRect(); - var x = ev.clientX - rect.left; - var y = ev.clientY - rect.top; - var listeners = _this.listeners; - for (var i = 0; i < listeners.length; i++) { - if (_this.buttonDown) { - listeners[i].dragged(x, y); - } - else { - listeners[i].moved(x, y); - } - } - _this.lastX = x; - _this.lastY = y; - } - }, true); - element.addEventListener("mouseup", function (ev) { - if (ev instanceof MouseEvent) { - var rect = element.getBoundingClientRect(); - var x = ev.clientX - rect.left; - var y = ev.clientY - rect.top; - var listeners = _this.listeners; - for (var i = 0; i < listeners.length; i++) { - listeners[i].up(x, y); - } - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = false; - } - }, true); - element.addEventListener("touchstart", function (ev) { - if (_this.currTouch != null) - return; - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - var rect = element.getBoundingClientRect(); - var x = touch.clientX - rect.left; - var y = touch.clientY - rect.top; - _this.currTouch = _this.touchesPool.obtain(); - _this.currTouch.identifier = touch.identifier; - _this.currTouch.x = x; - _this.currTouch.y = y; - break; - } - var listeners = _this.listeners; - for (var i_1 = 0; i_1 < listeners.length; i_1++) { - listeners[i_1].down(_this.currTouch.x, _this.currTouch.y); - } - console.log("Start " + _this.currTouch.x + ", " + _this.currTouch.y); - _this.lastX = _this.currTouch.x; - _this.lastY = _this.currTouch.y; - _this.buttonDown = true; - ev.preventDefault(); - }, false); - element.addEventListener("touchend", function (ev) { - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - if (_this.currTouch.identifier === touch.identifier) { - var rect = element.getBoundingClientRect(); - var x = _this.currTouch.x = touch.clientX - rect.left; - var y = _this.currTouch.y = touch.clientY - rect.top; - _this.touchesPool.free(_this.currTouch); - var listeners = _this.listeners; - for (var i_2 = 0; i_2 < listeners.length; i_2++) { - listeners[i_2].up(x, y); - } - console.log("End " + x + ", " + y); - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = false; - _this.currTouch = null; - break; - } - } - ev.preventDefault(); - }, false); - element.addEventListener("touchcancel", function (ev) { - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - if (_this.currTouch.identifier === touch.identifier) { - var rect = element.getBoundingClientRect(); - var x = _this.currTouch.x = touch.clientX - rect.left; - var y = _this.currTouch.y = touch.clientY - rect.top; - _this.touchesPool.free(_this.currTouch); - var listeners = _this.listeners; - for (var i_3 = 0; i_3 < listeners.length; i_3++) { - listeners[i_3].up(x, y); - } - console.log("End " + x + ", " + y); - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = false; - _this.currTouch = null; - break; - } - } - ev.preventDefault(); - }, false); - element.addEventListener("touchmove", function (ev) { - if (_this.currTouch == null) - return; - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - if (_this.currTouch.identifier === touch.identifier) { - var rect = element.getBoundingClientRect(); - var x = touch.clientX - rect.left; - var y = touch.clientY - rect.top; - var listeners = _this.listeners; - for (var i_4 = 0; i_4 < listeners.length; i_4++) { - listeners[i_4].dragged(x, y); - } - console.log("Drag " + x + ", " + y); - _this.lastX = _this.currTouch.x = x; - _this.lastY = _this.currTouch.y = y; - break; - } - } - ev.preventDefault(); - }, false); - }; - Input.prototype.addListener = function (listener) { - this.listeners.push(listener); - }; - Input.prototype.removeListener = function (listener) { - var idx = this.listeners.indexOf(listener); - if (idx > -1) { - this.listeners.splice(idx, 1); - } - }; - return Input; - }()); - webgl.Input = Input; - var Touch = (function () { - function Touch(identifier, x, y) { - this.identifier = identifier; - this.x = x; - this.y = y; - } - return Touch; - }()); - webgl.Touch = Touch; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Input = (function () { + function Input(element) { + this.lastX = 0; + this.lastY = 0; + this.buttonDown = false; + this.currTouch = null; + this.touchesPool = new spine.Pool(function () { + return new spine.webgl.Touch(0, 0, 0); + }); + this.listeners = new Array(); + this.element = element; + this.setupCallbacks(element); + } + Input.prototype.setupCallbacks = function (element) { + var _this = this; + element.addEventListener("mousedown", function (ev) { + if (ev instanceof MouseEvent) { + var rect = element.getBoundingClientRect(); + var x = ev.clientX - rect.left; + var y = ev.clientY - rect.top; + var listeners = _this.listeners; + for (var i = 0; i < listeners.length; i++) { + listeners[i].down(x, y); + } + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = true; + } + }, true); + element.addEventListener("mousemove", function (ev) { + if (ev instanceof MouseEvent) { + var rect = element.getBoundingClientRect(); + var x = ev.clientX - rect.left; + var y = ev.clientY - rect.top; + var listeners = _this.listeners; + for (var i = 0; i < listeners.length; i++) { + if (_this.buttonDown) { + listeners[i].dragged(x, y); + } + else { + listeners[i].moved(x, y); + } + } + _this.lastX = x; + _this.lastY = y; + } + }, true); + element.addEventListener("mouseup", function (ev) { + if (ev instanceof MouseEvent) { + var rect = element.getBoundingClientRect(); + var x = ev.clientX - rect.left; + var y = ev.clientY - rect.top; + var listeners = _this.listeners; + for (var i = 0; i < listeners.length; i++) { + listeners[i].up(x, y); + } + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = false; + } + }, true); + element.addEventListener("touchstart", function (ev) { + if (_this.currTouch != null) + return; + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + var rect = element.getBoundingClientRect(); + var x = touch.clientX - rect.left; + var y = touch.clientY - rect.top; + _this.currTouch = _this.touchesPool.obtain(); + _this.currTouch.identifier = touch.identifier; + _this.currTouch.x = x; + _this.currTouch.y = y; + break; + } + var listeners = _this.listeners; + for (var i_1 = 0; i_1 < listeners.length; i_1++) { + listeners[i_1].down(_this.currTouch.x, _this.currTouch.y); + } + console.log("Start " + _this.currTouch.x + ", " + _this.currTouch.y); + _this.lastX = _this.currTouch.x; + _this.lastY = _this.currTouch.y; + _this.buttonDown = true; + ev.preventDefault(); + }, false); + element.addEventListener("touchend", function (ev) { + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + if (_this.currTouch.identifier === touch.identifier) { + var rect = element.getBoundingClientRect(); + var x = _this.currTouch.x = touch.clientX - rect.left; + var y = _this.currTouch.y = touch.clientY - rect.top; + _this.touchesPool.free(_this.currTouch); + var listeners = _this.listeners; + for (var i_2 = 0; i_2 < listeners.length; i_2++) { + listeners[i_2].up(x, y); + } + console.log("End " + x + ", " + y); + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = false; + _this.currTouch = null; + break; + } + } + ev.preventDefault(); + }, false); + element.addEventListener("touchcancel", function (ev) { + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + if (_this.currTouch.identifier === touch.identifier) { + var rect = element.getBoundingClientRect(); + var x = _this.currTouch.x = touch.clientX - rect.left; + var y = _this.currTouch.y = touch.clientY - rect.top; + _this.touchesPool.free(_this.currTouch); + var listeners = _this.listeners; + for (var i_3 = 0; i_3 < listeners.length; i_3++) { + listeners[i_3].up(x, y); + } + console.log("End " + x + ", " + y); + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = false; + _this.currTouch = null; + break; + } + } + ev.preventDefault(); + }, false); + element.addEventListener("touchmove", function (ev) { + if (_this.currTouch == null) + return; + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + if (_this.currTouch.identifier === touch.identifier) { + var rect = element.getBoundingClientRect(); + var x = touch.clientX - rect.left; + var y = touch.clientY - rect.top; + var listeners = _this.listeners; + for (var i_4 = 0; i_4 < listeners.length; i_4++) { + listeners[i_4].dragged(x, y); + } + console.log("Drag " + x + ", " + y); + _this.lastX = _this.currTouch.x = x; + _this.lastY = _this.currTouch.y = y; + break; + } + } + ev.preventDefault(); + }, false); + }; + Input.prototype.addListener = function (listener) { + this.listeners.push(listener); + }; + Input.prototype.removeListener = function (listener) { + var idx = this.listeners.indexOf(listener); + if (idx > -1) { + this.listeners.splice(idx, 1); + } + }; + return Input; + }()); + webgl.Input = Input; + var Touch = (function () { + function Touch(identifier, x, y) { + this.identifier = identifier; + this.x = x; + this.y = y; + } + return Touch; + }()); + webgl.Touch = Touch; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var LoadingScreen = (function () { - function LoadingScreen(renderer) { - this.logo = null; - this.spinner = null; - this.angle = 0; - this.fadeOut = 0; - this.timeKeeper = new spine.TimeKeeper(); - this.backgroundColor = new spine.Color(0.135, 0.135, 0.135, 1); - this.tempColor = new spine.Color(); - this.firstDraw = 0; - this.renderer = renderer; - this.timeKeeper.maxDelta = 9; - if (LoadingScreen.logoImg === null) { - var isSafari = navigator.userAgent.indexOf("Safari") > -1; - LoadingScreen.logoImg = new Image(); - LoadingScreen.logoImg.src = LoadingScreen.SPINE_LOGO_DATA; - if (!isSafari) - LoadingScreen.logoImg.crossOrigin = "anonymous"; - LoadingScreen.logoImg.onload = function (ev) { - LoadingScreen.loaded++; - }; - LoadingScreen.spinnerImg = new Image(); - LoadingScreen.spinnerImg.src = LoadingScreen.SPINNER_DATA; - if (!isSafari) - LoadingScreen.spinnerImg.crossOrigin = "anonymous"; - LoadingScreen.spinnerImg.onload = function (ev) { - LoadingScreen.loaded++; - }; - } - } - LoadingScreen.prototype.draw = function (complete) { - if (complete === void 0) { complete = false; } - if (complete && this.fadeOut > LoadingScreen.FADE_SECONDS) - return; - this.timeKeeper.update(); - var a = Math.abs(Math.sin(this.timeKeeper.totalTime + 0.75)); - this.angle -= this.timeKeeper.delta * 360 * (1 + 1.5 * Math.pow(a, 5)); - var renderer = this.renderer; - var canvas = renderer.canvas; - var gl = renderer.context.gl; - var oldX = renderer.camera.position.x, oldY = renderer.camera.position.y; - renderer.camera.position.set(canvas.width / 2, canvas.height / 2, 0); - renderer.camera.viewportWidth = canvas.width; - renderer.camera.viewportHeight = canvas.height; - renderer.resize(webgl.ResizeMode.Stretch); - if (!complete) { - gl.clearColor(this.backgroundColor.r, this.backgroundColor.g, this.backgroundColor.b, this.backgroundColor.a); - gl.clear(gl.COLOR_BUFFER_BIT); - this.tempColor.a = 1; - } - else { - this.fadeOut += this.timeKeeper.delta * (this.timeKeeper.totalTime < 1 ? 2 : 1); - if (this.fadeOut > LoadingScreen.FADE_SECONDS) { - renderer.camera.position.set(oldX, oldY, 0); - return; - } - a = 1 - this.fadeOut / LoadingScreen.FADE_SECONDS; - this.tempColor.setFromColor(this.backgroundColor); - this.tempColor.a = 1 - (a - 1) * (a - 1); - renderer.begin(); - renderer.quad(true, 0, 0, canvas.width, 0, canvas.width, canvas.height, 0, canvas.height, this.tempColor, this.tempColor, this.tempColor, this.tempColor); - renderer.end(); - } - this.tempColor.set(1, 1, 1, this.tempColor.a); - if (LoadingScreen.loaded != 2) - return; - if (this.logo === null) { - this.logo = new webgl.GLTexture(renderer.context, LoadingScreen.logoImg); - this.spinner = new webgl.GLTexture(renderer.context, LoadingScreen.spinnerImg); - } - this.logo.update(false); - this.spinner.update(false); - var logoWidth = this.logo.getImage().width; - var logoHeight = this.logo.getImage().height; - var spinnerWidth = this.spinner.getImage().width; - var spinnerHeight = this.spinner.getImage().height; - renderer.batcher.setBlendMode(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA); - renderer.begin(); - renderer.drawTexture(this.logo, (canvas.width - logoWidth) / 2, (canvas.height - logoHeight) / 2, logoWidth, logoHeight, this.tempColor); - renderer.drawTextureRotated(this.spinner, (canvas.width - spinnerWidth) / 2, (canvas.height - spinnerHeight) / 2, spinnerWidth, spinnerHeight, spinnerWidth / 2, spinnerHeight / 2, this.angle, this.tempColor); - renderer.end(); - renderer.camera.position.set(oldX, oldY, 0); - }; - LoadingScreen.FADE_SECONDS = 1; - LoadingScreen.loaded = 0; - LoadingScreen.spinnerImg = null; - LoadingScreen.logoImg = null; - LoadingScreen.SPINNER_DATA = "data:image/png;base64,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"; - LoadingScreen.SPINE_LOGO_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAAAZCAYAAACis3k0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtNJREFUaN7tmT2I1EAUxwN+oWgRT0HFKo0WCkJ6ObmAWFwZbCxsXGysLNJaiCyIoDaSwk4ETzvhmnBaCRbBWoQ01ho4PwotjP8cE337mMy8TLK757mBH3fLTWbe/PbN53neNniqZW8FvAVvQAqugwvgDDgO9niLRyTyJagM/ACPF6bsIl9ZRDac/Cc6tLn5xQdRQ496QlKPLxD5QCDxO9jtGM8QfYoIgUlgCipGCRJL5VvlyOdCU09iEXkCfLSIfCrs7Fab6nOsiafu06iDwES9w/uU1QnDC+ekkVS9vEaDsgVeB0d+z1VDtOGxRaYPboP3Gokb4GgXkZp4chZPJKgvZ3U0XkriK/TIt9YUDllFgTAjGwoaoHqfBhMI58yD4BQ4V6/aHYdfxToftvw9F2SiVroawU2/Cv5C4Thv0KB9S5nxlOd4STxjwUjzSdYlgrYijw2BsEfgsaFcM09lhiys94xXQQwugcvgJrgFLjrEE7WUiTuWCQzt/ZXN7FfqGwuGClyVy2xZAFmfDQvNtwFFSspMDGsD+UTWqu1KoVmVooFEJgKRXw0if85RpISEzwsjzeqWzkjkC4PIJ3MUmQgITAHlQwTFhnZhELkEntfZRwR+AvfAgXmJHOqU02XligWT8ppg67NXbdCXeq7afUQ6L8C2DalEZNt2YyQ94Qy8/ekjMpBMbfyl5iTjG7YAI8cNecROAb4kJmTjaXAF3AGvwQewOiuRxEtlSaT4j2h2lMsUueQEoMlIKpTvAmKhxPMtC876jEX6rE8l8TNx/KVbn6xlWU9NWcSDUsO4NGWpQOTZFpHPOooMXcswmW2XFk3ixb2v0Nq+XVKP00QNaffBLyWwBI/AkTlfMYZDXMf12kc6yjwEjoFdO/5me5oi/6tnyhlZX6OtgmX1c2Uh0k3khmbB2b9TRfpd/jfTUeRDJvHdYg5wE7kPXAN3wQ1weDvH+xufEgpi5qIl3QAAAABJRU5ErkJggg=="; - return LoadingScreen; - }()); - webgl.LoadingScreen = LoadingScreen; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var LoadingScreen = (function () { + function LoadingScreen(renderer) { + this.logo = null; + this.spinner = null; + this.angle = 0; + this.fadeOut = 0; + this.timeKeeper = new spine.TimeKeeper(); + this.backgroundColor = new spine.Color(0.135, 0.135, 0.135, 1); + this.tempColor = new spine.Color(); + this.firstDraw = 0; + this.renderer = renderer; + this.timeKeeper.maxDelta = 9; + if (LoadingScreen.logoImg === null) { + var isSafari = navigator.userAgent.indexOf("Safari") > -1; + LoadingScreen.logoImg = new Image(); + LoadingScreen.logoImg.src = LoadingScreen.SPINE_LOGO_DATA; + if (!isSafari) + LoadingScreen.logoImg.crossOrigin = "anonymous"; + LoadingScreen.logoImg.onload = function (ev) { + LoadingScreen.loaded++; + }; + LoadingScreen.spinnerImg = new Image(); + LoadingScreen.spinnerImg.src = LoadingScreen.SPINNER_DATA; + if (!isSafari) + LoadingScreen.spinnerImg.crossOrigin = "anonymous"; + LoadingScreen.spinnerImg.onload = function (ev) { + LoadingScreen.loaded++; + }; + } + } + LoadingScreen.prototype.draw = function (complete) { + if (complete === void 0) { complete = false; } + if (complete && this.fadeOut > LoadingScreen.FADE_SECONDS) + return; + this.timeKeeper.update(); + var a = Math.abs(Math.sin(this.timeKeeper.totalTime + 0.75)); + this.angle -= this.timeKeeper.delta * 360 * (1 + 1.5 * Math.pow(a, 5)); + var renderer = this.renderer; + var canvas = renderer.canvas; + var gl = renderer.context.gl; + var oldX = renderer.camera.position.x, oldY = renderer.camera.position.y; + renderer.camera.position.set(canvas.width / 2, canvas.height / 2, 0); + renderer.camera.viewportWidth = canvas.width; + renderer.camera.viewportHeight = canvas.height; + renderer.resize(webgl.ResizeMode.Stretch); + if (!complete) { + gl.clearColor(this.backgroundColor.r, this.backgroundColor.g, this.backgroundColor.b, this.backgroundColor.a); + gl.clear(gl.COLOR_BUFFER_BIT); + this.tempColor.a = 1; + } + else { + this.fadeOut += this.timeKeeper.delta * (this.timeKeeper.totalTime < 1 ? 2 : 1); + if (this.fadeOut > LoadingScreen.FADE_SECONDS) { + renderer.camera.position.set(oldX, oldY, 0); + return; + } + a = 1 - this.fadeOut / LoadingScreen.FADE_SECONDS; + this.tempColor.setFromColor(this.backgroundColor); + this.tempColor.a = 1 - (a - 1) * (a - 1); + renderer.begin(); + renderer.quad(true, 0, 0, canvas.width, 0, canvas.width, canvas.height, 0, canvas.height, this.tempColor, this.tempColor, this.tempColor, this.tempColor); + renderer.end(); + } + this.tempColor.set(1, 1, 1, this.tempColor.a); + if (LoadingScreen.loaded != 2) + return; + if (this.logo === null) { + this.logo = new webgl.GLTexture(renderer.context, LoadingScreen.logoImg); + this.spinner = new webgl.GLTexture(renderer.context, LoadingScreen.spinnerImg); + } + this.logo.update(false); + this.spinner.update(false); + var logoWidth = this.logo.getImage().width; + var logoHeight = this.logo.getImage().height; + var spinnerWidth = this.spinner.getImage().width; + var spinnerHeight = this.spinner.getImage().height; + renderer.batcher.setBlendMode(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA); + renderer.begin(); + renderer.drawTexture(this.logo, (canvas.width - logoWidth) / 2, (canvas.height - logoHeight) / 2, logoWidth, logoHeight, this.tempColor); + renderer.drawTextureRotated(this.spinner, (canvas.width - spinnerWidth) / 2, (canvas.height - spinnerHeight) / 2, spinnerWidth, spinnerHeight, spinnerWidth / 2, spinnerHeight / 2, this.angle, this.tempColor); + renderer.end(); + renderer.camera.position.set(oldX, oldY, 0); + }; + LoadingScreen.FADE_SECONDS = 1; + LoadingScreen.loaded = 0; + LoadingScreen.spinnerImg = null; + LoadingScreen.logoImg = null; + LoadingScreen.SPINNER_DATA = "data:image/png;base64,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"; + LoadingScreen.SPINE_LOGO_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAAAZCAYAAACis3k0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtNJREFUaN7tmT2I1EAUxwN+oWgRT0HFKo0WCkJ6ObmAWFwZbCxsXGysLNJaiCyIoDaSwk4ETzvhmnBaCRbBWoQ01ho4PwotjP8cE337mMy8TLK757mBH3fLTWbe/PbN53neNniqZW8FvAVvQAqugwvgDDgO9niLRyTyJagM/ACPF6bsIl9ZRDac/Cc6tLn5xQdRQ496QlKPLxD5QCDxO9jtGM8QfYoIgUlgCipGCRJL5VvlyOdCU09iEXkCfLSIfCrs7Fab6nOsiafu06iDwES9w/uU1QnDC+ekkVS9vEaDsgVeB0d+z1VDtOGxRaYPboP3Gokb4GgXkZp4chZPJKgvZ3U0XkriK/TIt9YUDllFgTAjGwoaoHqfBhMI58yD4BQ4V6/aHYdfxToftvw9F2SiVroawU2/Cv5C4Thv0KB9S5nxlOd4STxjwUjzSdYlgrYijw2BsEfgsaFcM09lhiys94xXQQwugcvgJrgFLjrEE7WUiTuWCQzt/ZXN7FfqGwuGClyVy2xZAFmfDQvNtwFFSspMDGsD+UTWqu1KoVmVooFEJgKRXw0if85RpISEzwsjzeqWzkjkC4PIJ3MUmQgITAHlQwTFhnZhELkEntfZRwR+AvfAgXmJHOqU02XligWT8ppg67NXbdCXeq7afUQ6L8C2DalEZNt2YyQ94Qy8/ekjMpBMbfyl5iTjG7YAI8cNecROAb4kJmTjaXAF3AGvwQewOiuRxEtlSaT4j2h2lMsUueQEoMlIKpTvAmKhxPMtC876jEX6rE8l8TNx/KVbn6xlWU9NWcSDUsO4NGWpQOTZFpHPOooMXcswmW2XFk3ixb2v0Nq+XVKP00QNaffBLyWwBI/AkTlfMYZDXMf12kc6yjwEjoFdO/5me5oi/6tnyhlZX6OtgmX1c2Uh0k3khmbB2b9TRfpd/jfTUeRDJvHdYg5wE7kPXAN3wQ1weDvH+xufEgpi5qIl3QAAAABJRU5ErkJggg=="; + return LoadingScreen; + }()); + webgl.LoadingScreen = LoadingScreen; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - webgl.M00 = 0; - webgl.M01 = 4; - webgl.M02 = 8; - webgl.M03 = 12; - webgl.M10 = 1; - webgl.M11 = 5; - webgl.M12 = 9; - webgl.M13 = 13; - webgl.M20 = 2; - webgl.M21 = 6; - webgl.M22 = 10; - webgl.M23 = 14; - webgl.M30 = 3; - webgl.M31 = 7; - webgl.M32 = 11; - webgl.M33 = 15; - var Matrix4 = (function () { - function Matrix4() { - this.temp = new Float32Array(16); - this.values = new Float32Array(16); - var v = this.values; - v[webgl.M00] = 1; - v[webgl.M11] = 1; - v[webgl.M22] = 1; - v[webgl.M33] = 1; - } - Matrix4.prototype.set = function (values) { - this.values.set(values); - return this; - }; - Matrix4.prototype.transpose = function () { - var t = this.temp; - var v = this.values; - t[webgl.M00] = v[webgl.M00]; - t[webgl.M01] = v[webgl.M10]; - t[webgl.M02] = v[webgl.M20]; - t[webgl.M03] = v[webgl.M30]; - t[webgl.M10] = v[webgl.M01]; - t[webgl.M11] = v[webgl.M11]; - t[webgl.M12] = v[webgl.M21]; - t[webgl.M13] = v[webgl.M31]; - t[webgl.M20] = v[webgl.M02]; - t[webgl.M21] = v[webgl.M12]; - t[webgl.M22] = v[webgl.M22]; - t[webgl.M23] = v[webgl.M32]; - t[webgl.M30] = v[webgl.M03]; - t[webgl.M31] = v[webgl.M13]; - t[webgl.M32] = v[webgl.M23]; - t[webgl.M33] = v[webgl.M33]; - return this.set(t); - }; - Matrix4.prototype.identity = function () { - var v = this.values; - v[webgl.M00] = 1; - v[webgl.M01] = 0; - v[webgl.M02] = 0; - v[webgl.M03] = 0; - v[webgl.M10] = 0; - v[webgl.M11] = 1; - v[webgl.M12] = 0; - v[webgl.M13] = 0; - v[webgl.M20] = 0; - v[webgl.M21] = 0; - v[webgl.M22] = 1; - v[webgl.M23] = 0; - v[webgl.M30] = 0; - v[webgl.M31] = 0; - v[webgl.M32] = 0; - v[webgl.M33] = 1; - return this; - }; - Matrix4.prototype.invert = function () { - var v = this.values; - var t = this.temp; - var l_det = v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] - + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] - - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] - - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] - + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] - + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] - - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] - - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; - if (l_det == 0) - throw new Error("non-invertible matrix"); - var inv_det = 1.0 / l_det; - t[webgl.M00] = v[webgl.M12] * v[webgl.M23] * v[webgl.M31] - v[webgl.M13] * v[webgl.M22] * v[webgl.M31] + v[webgl.M13] * v[webgl.M21] * v[webgl.M32] - - v[webgl.M11] * v[webgl.M23] * v[webgl.M32] - v[webgl.M12] * v[webgl.M21] * v[webgl.M33] + v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M01] = v[webgl.M03] * v[webgl.M22] * v[webgl.M31] - v[webgl.M02] * v[webgl.M23] * v[webgl.M31] - v[webgl.M03] * v[webgl.M21] * v[webgl.M32] - + v[webgl.M01] * v[webgl.M23] * v[webgl.M32] + v[webgl.M02] * v[webgl.M21] * v[webgl.M33] - v[webgl.M01] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M02] = v[webgl.M02] * v[webgl.M13] * v[webgl.M31] - v[webgl.M03] * v[webgl.M12] * v[webgl.M31] + v[webgl.M03] * v[webgl.M11] * v[webgl.M32] - - v[webgl.M01] * v[webgl.M13] * v[webgl.M32] - v[webgl.M02] * v[webgl.M11] * v[webgl.M33] + v[webgl.M01] * v[webgl.M12] * v[webgl.M33]; - t[webgl.M03] = v[webgl.M03] * v[webgl.M12] * v[webgl.M21] - v[webgl.M02] * v[webgl.M13] * v[webgl.M21] - v[webgl.M03] * v[webgl.M11] * v[webgl.M22] - + v[webgl.M01] * v[webgl.M13] * v[webgl.M22] + v[webgl.M02] * v[webgl.M11] * v[webgl.M23] - v[webgl.M01] * v[webgl.M12] * v[webgl.M23]; - t[webgl.M10] = v[webgl.M13] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M20] * v[webgl.M32] - + v[webgl.M10] * v[webgl.M23] * v[webgl.M32] + v[webgl.M12] * v[webgl.M20] * v[webgl.M33] - v[webgl.M10] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M11] = v[webgl.M02] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M22] * v[webgl.M30] + v[webgl.M03] * v[webgl.M20] * v[webgl.M32] - - v[webgl.M00] * v[webgl.M23] * v[webgl.M32] - v[webgl.M02] * v[webgl.M20] * v[webgl.M33] + v[webgl.M00] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M12] = v[webgl.M03] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M10] * v[webgl.M32] - + v[webgl.M00] * v[webgl.M13] * v[webgl.M32] + v[webgl.M02] * v[webgl.M10] * v[webgl.M33] - v[webgl.M00] * v[webgl.M12] * v[webgl.M33]; - t[webgl.M13] = v[webgl.M02] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M12] * v[webgl.M20] + v[webgl.M03] * v[webgl.M10] * v[webgl.M22] - - v[webgl.M00] * v[webgl.M13] * v[webgl.M22] - v[webgl.M02] * v[webgl.M10] * v[webgl.M23] + v[webgl.M00] * v[webgl.M12] * v[webgl.M23]; - t[webgl.M20] = v[webgl.M11] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M21] * v[webgl.M30] + v[webgl.M13] * v[webgl.M20] * v[webgl.M31] - - v[webgl.M10] * v[webgl.M23] * v[webgl.M31] - v[webgl.M11] * v[webgl.M20] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M33]; - t[webgl.M21] = v[webgl.M03] * v[webgl.M21] * v[webgl.M30] - v[webgl.M01] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M20] * v[webgl.M31] - + v[webgl.M00] * v[webgl.M23] * v[webgl.M31] + v[webgl.M01] * v[webgl.M20] * v[webgl.M33] - v[webgl.M00] * v[webgl.M21] * v[webgl.M33]; - t[webgl.M22] = v[webgl.M01] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M11] * v[webgl.M30] + v[webgl.M03] * v[webgl.M10] * v[webgl.M31] - - v[webgl.M00] * v[webgl.M13] * v[webgl.M31] - v[webgl.M01] * v[webgl.M10] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M33]; - t[webgl.M23] = v[webgl.M03] * v[webgl.M11] * v[webgl.M20] - v[webgl.M01] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M10] * v[webgl.M21] - + v[webgl.M00] * v[webgl.M13] * v[webgl.M21] + v[webgl.M01] * v[webgl.M10] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M23]; - t[webgl.M30] = v[webgl.M12] * v[webgl.M21] * v[webgl.M30] - v[webgl.M11] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M20] * v[webgl.M31] - + v[webgl.M10] * v[webgl.M22] * v[webgl.M31] + v[webgl.M11] * v[webgl.M20] * v[webgl.M32] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32]; - t[webgl.M31] = v[webgl.M01] * v[webgl.M22] * v[webgl.M30] - v[webgl.M02] * v[webgl.M21] * v[webgl.M30] + v[webgl.M02] * v[webgl.M20] * v[webgl.M31] - - v[webgl.M00] * v[webgl.M22] * v[webgl.M31] - v[webgl.M01] * v[webgl.M20] * v[webgl.M32] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32]; - t[webgl.M32] = v[webgl.M02] * v[webgl.M11] * v[webgl.M30] - v[webgl.M01] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M10] * v[webgl.M31] - + v[webgl.M00] * v[webgl.M12] * v[webgl.M31] + v[webgl.M01] * v[webgl.M10] * v[webgl.M32] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32]; - t[webgl.M33] = v[webgl.M01] * v[webgl.M12] * v[webgl.M20] - v[webgl.M02] * v[webgl.M11] * v[webgl.M20] + v[webgl.M02] * v[webgl.M10] * v[webgl.M21] - - v[webgl.M00] * v[webgl.M12] * v[webgl.M21] - v[webgl.M01] * v[webgl.M10] * v[webgl.M22] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22]; - v[webgl.M00] = t[webgl.M00] * inv_det; - v[webgl.M01] = t[webgl.M01] * inv_det; - v[webgl.M02] = t[webgl.M02] * inv_det; - v[webgl.M03] = t[webgl.M03] * inv_det; - v[webgl.M10] = t[webgl.M10] * inv_det; - v[webgl.M11] = t[webgl.M11] * inv_det; - v[webgl.M12] = t[webgl.M12] * inv_det; - v[webgl.M13] = t[webgl.M13] * inv_det; - v[webgl.M20] = t[webgl.M20] * inv_det; - v[webgl.M21] = t[webgl.M21] * inv_det; - v[webgl.M22] = t[webgl.M22] * inv_det; - v[webgl.M23] = t[webgl.M23] * inv_det; - v[webgl.M30] = t[webgl.M30] * inv_det; - v[webgl.M31] = t[webgl.M31] * inv_det; - v[webgl.M32] = t[webgl.M32] * inv_det; - v[webgl.M33] = t[webgl.M33] * inv_det; - return this; - }; - Matrix4.prototype.determinant = function () { - var v = this.values; - return v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] - + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] - - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] - - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] - + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] - + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] - - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] - - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; - }; - Matrix4.prototype.translate = function (x, y, z) { - var v = this.values; - v[webgl.M03] += x; - v[webgl.M13] += y; - v[webgl.M23] += z; - return this; - }; - Matrix4.prototype.copy = function () { - return new Matrix4().set(this.values); - }; - Matrix4.prototype.projection = function (near, far, fovy, aspectRatio) { - this.identity(); - var l_fd = (1.0 / Math.tan((fovy * (Math.PI / 180)) / 2.0)); - var l_a1 = (far + near) / (near - far); - var l_a2 = (2 * far * near) / (near - far); - var v = this.values; - v[webgl.M00] = l_fd / aspectRatio; - v[webgl.M10] = 0; - v[webgl.M20] = 0; - v[webgl.M30] = 0; - v[webgl.M01] = 0; - v[webgl.M11] = l_fd; - v[webgl.M21] = 0; - v[webgl.M31] = 0; - v[webgl.M02] = 0; - v[webgl.M12] = 0; - v[webgl.M22] = l_a1; - v[webgl.M32] = -1; - v[webgl.M03] = 0; - v[webgl.M13] = 0; - v[webgl.M23] = l_a2; - v[webgl.M33] = 0; - return this; - }; - Matrix4.prototype.ortho2d = function (x, y, width, height) { - return this.ortho(x, x + width, y, y + height, 0, 1); - }; - Matrix4.prototype.ortho = function (left, right, bottom, top, near, far) { - this.identity(); - var x_orth = 2 / (right - left); - var y_orth = 2 / (top - bottom); - var z_orth = -2 / (far - near); - var tx = -(right + left) / (right - left); - var ty = -(top + bottom) / (top - bottom); - var tz = -(far + near) / (far - near); - var v = this.values; - v[webgl.M00] = x_orth; - v[webgl.M10] = 0; - v[webgl.M20] = 0; - v[webgl.M30] = 0; - v[webgl.M01] = 0; - v[webgl.M11] = y_orth; - v[webgl.M21] = 0; - v[webgl.M31] = 0; - v[webgl.M02] = 0; - v[webgl.M12] = 0; - v[webgl.M22] = z_orth; - v[webgl.M32] = 0; - v[webgl.M03] = tx; - v[webgl.M13] = ty; - v[webgl.M23] = tz; - v[webgl.M33] = 1; - return this; - }; - Matrix4.prototype.multiply = function (matrix) { - var t = this.temp; - var v = this.values; - var m = matrix.values; - t[webgl.M00] = v[webgl.M00] * m[webgl.M00] + v[webgl.M01] * m[webgl.M10] + v[webgl.M02] * m[webgl.M20] + v[webgl.M03] * m[webgl.M30]; - t[webgl.M01] = v[webgl.M00] * m[webgl.M01] + v[webgl.M01] * m[webgl.M11] + v[webgl.M02] * m[webgl.M21] + v[webgl.M03] * m[webgl.M31]; - t[webgl.M02] = v[webgl.M00] * m[webgl.M02] + v[webgl.M01] * m[webgl.M12] + v[webgl.M02] * m[webgl.M22] + v[webgl.M03] * m[webgl.M32]; - t[webgl.M03] = v[webgl.M00] * m[webgl.M03] + v[webgl.M01] * m[webgl.M13] + v[webgl.M02] * m[webgl.M23] + v[webgl.M03] * m[webgl.M33]; - t[webgl.M10] = v[webgl.M10] * m[webgl.M00] + v[webgl.M11] * m[webgl.M10] + v[webgl.M12] * m[webgl.M20] + v[webgl.M13] * m[webgl.M30]; - t[webgl.M11] = v[webgl.M10] * m[webgl.M01] + v[webgl.M11] * m[webgl.M11] + v[webgl.M12] * m[webgl.M21] + v[webgl.M13] * m[webgl.M31]; - t[webgl.M12] = v[webgl.M10] * m[webgl.M02] + v[webgl.M11] * m[webgl.M12] + v[webgl.M12] * m[webgl.M22] + v[webgl.M13] * m[webgl.M32]; - t[webgl.M13] = v[webgl.M10] * m[webgl.M03] + v[webgl.M11] * m[webgl.M13] + v[webgl.M12] * m[webgl.M23] + v[webgl.M13] * m[webgl.M33]; - t[webgl.M20] = v[webgl.M20] * m[webgl.M00] + v[webgl.M21] * m[webgl.M10] + v[webgl.M22] * m[webgl.M20] + v[webgl.M23] * m[webgl.M30]; - t[webgl.M21] = v[webgl.M20] * m[webgl.M01] + v[webgl.M21] * m[webgl.M11] + v[webgl.M22] * m[webgl.M21] + v[webgl.M23] * m[webgl.M31]; - t[webgl.M22] = v[webgl.M20] * m[webgl.M02] + v[webgl.M21] * m[webgl.M12] + v[webgl.M22] * m[webgl.M22] + v[webgl.M23] * m[webgl.M32]; - t[webgl.M23] = v[webgl.M20] * m[webgl.M03] + v[webgl.M21] * m[webgl.M13] + v[webgl.M22] * m[webgl.M23] + v[webgl.M23] * m[webgl.M33]; - t[webgl.M30] = v[webgl.M30] * m[webgl.M00] + v[webgl.M31] * m[webgl.M10] + v[webgl.M32] * m[webgl.M20] + v[webgl.M33] * m[webgl.M30]; - t[webgl.M31] = v[webgl.M30] * m[webgl.M01] + v[webgl.M31] * m[webgl.M11] + v[webgl.M32] * m[webgl.M21] + v[webgl.M33] * m[webgl.M31]; - t[webgl.M32] = v[webgl.M30] * m[webgl.M02] + v[webgl.M31] * m[webgl.M12] + v[webgl.M32] * m[webgl.M22] + v[webgl.M33] * m[webgl.M32]; - t[webgl.M33] = v[webgl.M30] * m[webgl.M03] + v[webgl.M31] * m[webgl.M13] + v[webgl.M32] * m[webgl.M23] + v[webgl.M33] * m[webgl.M33]; - return this.set(this.temp); - }; - Matrix4.prototype.multiplyLeft = function (matrix) { - var t = this.temp; - var v = this.values; - var m = matrix.values; - t[webgl.M00] = m[webgl.M00] * v[webgl.M00] + m[webgl.M01] * v[webgl.M10] + m[webgl.M02] * v[webgl.M20] + m[webgl.M03] * v[webgl.M30]; - t[webgl.M01] = m[webgl.M00] * v[webgl.M01] + m[webgl.M01] * v[webgl.M11] + m[webgl.M02] * v[webgl.M21] + m[webgl.M03] * v[webgl.M31]; - t[webgl.M02] = m[webgl.M00] * v[webgl.M02] + m[webgl.M01] * v[webgl.M12] + m[webgl.M02] * v[webgl.M22] + m[webgl.M03] * v[webgl.M32]; - t[webgl.M03] = m[webgl.M00] * v[webgl.M03] + m[webgl.M01] * v[webgl.M13] + m[webgl.M02] * v[webgl.M23] + m[webgl.M03] * v[webgl.M33]; - t[webgl.M10] = m[webgl.M10] * v[webgl.M00] + m[webgl.M11] * v[webgl.M10] + m[webgl.M12] * v[webgl.M20] + m[webgl.M13] * v[webgl.M30]; - t[webgl.M11] = m[webgl.M10] * v[webgl.M01] + m[webgl.M11] * v[webgl.M11] + m[webgl.M12] * v[webgl.M21] + m[webgl.M13] * v[webgl.M31]; - t[webgl.M12] = m[webgl.M10] * v[webgl.M02] + m[webgl.M11] * v[webgl.M12] + m[webgl.M12] * v[webgl.M22] + m[webgl.M13] * v[webgl.M32]; - t[webgl.M13] = m[webgl.M10] * v[webgl.M03] + m[webgl.M11] * v[webgl.M13] + m[webgl.M12] * v[webgl.M23] + m[webgl.M13] * v[webgl.M33]; - t[webgl.M20] = m[webgl.M20] * v[webgl.M00] + m[webgl.M21] * v[webgl.M10] + m[webgl.M22] * v[webgl.M20] + m[webgl.M23] * v[webgl.M30]; - t[webgl.M21] = m[webgl.M20] * v[webgl.M01] + m[webgl.M21] * v[webgl.M11] + m[webgl.M22] * v[webgl.M21] + m[webgl.M23] * v[webgl.M31]; - t[webgl.M22] = m[webgl.M20] * v[webgl.M02] + m[webgl.M21] * v[webgl.M12] + m[webgl.M22] * v[webgl.M22] + m[webgl.M23] * v[webgl.M32]; - t[webgl.M23] = m[webgl.M20] * v[webgl.M03] + m[webgl.M21] * v[webgl.M13] + m[webgl.M22] * v[webgl.M23] + m[webgl.M23] * v[webgl.M33]; - t[webgl.M30] = m[webgl.M30] * v[webgl.M00] + m[webgl.M31] * v[webgl.M10] + m[webgl.M32] * v[webgl.M20] + m[webgl.M33] * v[webgl.M30]; - t[webgl.M31] = m[webgl.M30] * v[webgl.M01] + m[webgl.M31] * v[webgl.M11] + m[webgl.M32] * v[webgl.M21] + m[webgl.M33] * v[webgl.M31]; - t[webgl.M32] = m[webgl.M30] * v[webgl.M02] + m[webgl.M31] * v[webgl.M12] + m[webgl.M32] * v[webgl.M22] + m[webgl.M33] * v[webgl.M32]; - t[webgl.M33] = m[webgl.M30] * v[webgl.M03] + m[webgl.M31] * v[webgl.M13] + m[webgl.M32] * v[webgl.M23] + m[webgl.M33] * v[webgl.M33]; - return this.set(this.temp); - }; - Matrix4.prototype.lookAt = function (position, direction, up) { - Matrix4.initTemps(); - var xAxis = Matrix4.xAxis, yAxis = Matrix4.yAxis, zAxis = Matrix4.zAxis; - zAxis.setFrom(direction).normalize(); - xAxis.setFrom(direction).normalize(); - xAxis.cross(up).normalize(); - yAxis.setFrom(xAxis).cross(zAxis).normalize(); - this.identity(); - var val = this.values; - val[webgl.M00] = xAxis.x; - val[webgl.M01] = xAxis.y; - val[webgl.M02] = xAxis.z; - val[webgl.M10] = yAxis.x; - val[webgl.M11] = yAxis.y; - val[webgl.M12] = yAxis.z; - val[webgl.M20] = -zAxis.x; - val[webgl.M21] = -zAxis.y; - val[webgl.M22] = -zAxis.z; - Matrix4.tmpMatrix.identity(); - Matrix4.tmpMatrix.values[webgl.M03] = -position.x; - Matrix4.tmpMatrix.values[webgl.M13] = -position.y; - Matrix4.tmpMatrix.values[webgl.M23] = -position.z; - this.multiply(Matrix4.tmpMatrix); - return this; - }; - Matrix4.initTemps = function () { - if (Matrix4.xAxis === null) - Matrix4.xAxis = new webgl.Vector3(); - if (Matrix4.yAxis === null) - Matrix4.yAxis = new webgl.Vector3(); - if (Matrix4.zAxis === null) - Matrix4.zAxis = new webgl.Vector3(); - }; - Matrix4.xAxis = null; - Matrix4.yAxis = null; - Matrix4.zAxis = null; - Matrix4.tmpMatrix = new Matrix4(); - return Matrix4; - }()); - webgl.Matrix4 = Matrix4; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + webgl.M00 = 0; + webgl.M01 = 4; + webgl.M02 = 8; + webgl.M03 = 12; + webgl.M10 = 1; + webgl.M11 = 5; + webgl.M12 = 9; + webgl.M13 = 13; + webgl.M20 = 2; + webgl.M21 = 6; + webgl.M22 = 10; + webgl.M23 = 14; + webgl.M30 = 3; + webgl.M31 = 7; + webgl.M32 = 11; + webgl.M33 = 15; + var Matrix4 = (function () { + function Matrix4() { + this.temp = new Float32Array(16); + this.values = new Float32Array(16); + var v = this.values; + v[webgl.M00] = 1; + v[webgl.M11] = 1; + v[webgl.M22] = 1; + v[webgl.M33] = 1; + } + Matrix4.prototype.set = function (values) { + this.values.set(values); + return this; + }; + Matrix4.prototype.transpose = function () { + var t = this.temp; + var v = this.values; + t[webgl.M00] = v[webgl.M00]; + t[webgl.M01] = v[webgl.M10]; + t[webgl.M02] = v[webgl.M20]; + t[webgl.M03] = v[webgl.M30]; + t[webgl.M10] = v[webgl.M01]; + t[webgl.M11] = v[webgl.M11]; + t[webgl.M12] = v[webgl.M21]; + t[webgl.M13] = v[webgl.M31]; + t[webgl.M20] = v[webgl.M02]; + t[webgl.M21] = v[webgl.M12]; + t[webgl.M22] = v[webgl.M22]; + t[webgl.M23] = v[webgl.M32]; + t[webgl.M30] = v[webgl.M03]; + t[webgl.M31] = v[webgl.M13]; + t[webgl.M32] = v[webgl.M23]; + t[webgl.M33] = v[webgl.M33]; + return this.set(t); + }; + Matrix4.prototype.identity = function () { + var v = this.values; + v[webgl.M00] = 1; + v[webgl.M01] = 0; + v[webgl.M02] = 0; + v[webgl.M03] = 0; + v[webgl.M10] = 0; + v[webgl.M11] = 1; + v[webgl.M12] = 0; + v[webgl.M13] = 0; + v[webgl.M20] = 0; + v[webgl.M21] = 0; + v[webgl.M22] = 1; + v[webgl.M23] = 0; + v[webgl.M30] = 0; + v[webgl.M31] = 0; + v[webgl.M32] = 0; + v[webgl.M33] = 1; + return this; + }; + Matrix4.prototype.invert = function () { + var v = this.values; + var t = this.temp; + var l_det = v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] + + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] + - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] + - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] + + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] + + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] + - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] + - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; + if (l_det == 0) + throw new Error("non-invertible matrix"); + var inv_det = 1.0 / l_det; + t[webgl.M00] = v[webgl.M12] * v[webgl.M23] * v[webgl.M31] - v[webgl.M13] * v[webgl.M22] * v[webgl.M31] + v[webgl.M13] * v[webgl.M21] * v[webgl.M32] + - v[webgl.M11] * v[webgl.M23] * v[webgl.M32] - v[webgl.M12] * v[webgl.M21] * v[webgl.M33] + v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M01] = v[webgl.M03] * v[webgl.M22] * v[webgl.M31] - v[webgl.M02] * v[webgl.M23] * v[webgl.M31] - v[webgl.M03] * v[webgl.M21] * v[webgl.M32] + + v[webgl.M01] * v[webgl.M23] * v[webgl.M32] + v[webgl.M02] * v[webgl.M21] * v[webgl.M33] - v[webgl.M01] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M02] = v[webgl.M02] * v[webgl.M13] * v[webgl.M31] - v[webgl.M03] * v[webgl.M12] * v[webgl.M31] + v[webgl.M03] * v[webgl.M11] * v[webgl.M32] + - v[webgl.M01] * v[webgl.M13] * v[webgl.M32] - v[webgl.M02] * v[webgl.M11] * v[webgl.M33] + v[webgl.M01] * v[webgl.M12] * v[webgl.M33]; + t[webgl.M03] = v[webgl.M03] * v[webgl.M12] * v[webgl.M21] - v[webgl.M02] * v[webgl.M13] * v[webgl.M21] - v[webgl.M03] * v[webgl.M11] * v[webgl.M22] + + v[webgl.M01] * v[webgl.M13] * v[webgl.M22] + v[webgl.M02] * v[webgl.M11] * v[webgl.M23] - v[webgl.M01] * v[webgl.M12] * v[webgl.M23]; + t[webgl.M10] = v[webgl.M13] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M20] * v[webgl.M32] + + v[webgl.M10] * v[webgl.M23] * v[webgl.M32] + v[webgl.M12] * v[webgl.M20] * v[webgl.M33] - v[webgl.M10] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M11] = v[webgl.M02] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M22] * v[webgl.M30] + v[webgl.M03] * v[webgl.M20] * v[webgl.M32] + - v[webgl.M00] * v[webgl.M23] * v[webgl.M32] - v[webgl.M02] * v[webgl.M20] * v[webgl.M33] + v[webgl.M00] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M12] = v[webgl.M03] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M10] * v[webgl.M32] + + v[webgl.M00] * v[webgl.M13] * v[webgl.M32] + v[webgl.M02] * v[webgl.M10] * v[webgl.M33] - v[webgl.M00] * v[webgl.M12] * v[webgl.M33]; + t[webgl.M13] = v[webgl.M02] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M12] * v[webgl.M20] + v[webgl.M03] * v[webgl.M10] * v[webgl.M22] + - v[webgl.M00] * v[webgl.M13] * v[webgl.M22] - v[webgl.M02] * v[webgl.M10] * v[webgl.M23] + v[webgl.M00] * v[webgl.M12] * v[webgl.M23]; + t[webgl.M20] = v[webgl.M11] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M21] * v[webgl.M30] + v[webgl.M13] * v[webgl.M20] * v[webgl.M31] + - v[webgl.M10] * v[webgl.M23] * v[webgl.M31] - v[webgl.M11] * v[webgl.M20] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M33]; + t[webgl.M21] = v[webgl.M03] * v[webgl.M21] * v[webgl.M30] - v[webgl.M01] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M20] * v[webgl.M31] + + v[webgl.M00] * v[webgl.M23] * v[webgl.M31] + v[webgl.M01] * v[webgl.M20] * v[webgl.M33] - v[webgl.M00] * v[webgl.M21] * v[webgl.M33]; + t[webgl.M22] = v[webgl.M01] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M11] * v[webgl.M30] + v[webgl.M03] * v[webgl.M10] * v[webgl.M31] + - v[webgl.M00] * v[webgl.M13] * v[webgl.M31] - v[webgl.M01] * v[webgl.M10] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M33]; + t[webgl.M23] = v[webgl.M03] * v[webgl.M11] * v[webgl.M20] - v[webgl.M01] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M10] * v[webgl.M21] + + v[webgl.M00] * v[webgl.M13] * v[webgl.M21] + v[webgl.M01] * v[webgl.M10] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M23]; + t[webgl.M30] = v[webgl.M12] * v[webgl.M21] * v[webgl.M30] - v[webgl.M11] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M20] * v[webgl.M31] + + v[webgl.M10] * v[webgl.M22] * v[webgl.M31] + v[webgl.M11] * v[webgl.M20] * v[webgl.M32] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32]; + t[webgl.M31] = v[webgl.M01] * v[webgl.M22] * v[webgl.M30] - v[webgl.M02] * v[webgl.M21] * v[webgl.M30] + v[webgl.M02] * v[webgl.M20] * v[webgl.M31] + - v[webgl.M00] * v[webgl.M22] * v[webgl.M31] - v[webgl.M01] * v[webgl.M20] * v[webgl.M32] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32]; + t[webgl.M32] = v[webgl.M02] * v[webgl.M11] * v[webgl.M30] - v[webgl.M01] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M10] * v[webgl.M31] + + v[webgl.M00] * v[webgl.M12] * v[webgl.M31] + v[webgl.M01] * v[webgl.M10] * v[webgl.M32] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32]; + t[webgl.M33] = v[webgl.M01] * v[webgl.M12] * v[webgl.M20] - v[webgl.M02] * v[webgl.M11] * v[webgl.M20] + v[webgl.M02] * v[webgl.M10] * v[webgl.M21] + - v[webgl.M00] * v[webgl.M12] * v[webgl.M21] - v[webgl.M01] * v[webgl.M10] * v[webgl.M22] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22]; + v[webgl.M00] = t[webgl.M00] * inv_det; + v[webgl.M01] = t[webgl.M01] * inv_det; + v[webgl.M02] = t[webgl.M02] * inv_det; + v[webgl.M03] = t[webgl.M03] * inv_det; + v[webgl.M10] = t[webgl.M10] * inv_det; + v[webgl.M11] = t[webgl.M11] * inv_det; + v[webgl.M12] = t[webgl.M12] * inv_det; + v[webgl.M13] = t[webgl.M13] * inv_det; + v[webgl.M20] = t[webgl.M20] * inv_det; + v[webgl.M21] = t[webgl.M21] * inv_det; + v[webgl.M22] = t[webgl.M22] * inv_det; + v[webgl.M23] = t[webgl.M23] * inv_det; + v[webgl.M30] = t[webgl.M30] * inv_det; + v[webgl.M31] = t[webgl.M31] * inv_det; + v[webgl.M32] = t[webgl.M32] * inv_det; + v[webgl.M33] = t[webgl.M33] * inv_det; + return this; + }; + Matrix4.prototype.determinant = function () { + var v = this.values; + return v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] + + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] + - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] + - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] + + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] + + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] + - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] + - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; + }; + Matrix4.prototype.translate = function (x, y, z) { + var v = this.values; + v[webgl.M03] += x; + v[webgl.M13] += y; + v[webgl.M23] += z; + return this; + }; + Matrix4.prototype.copy = function () { + return new Matrix4().set(this.values); + }; + Matrix4.prototype.projection = function (near, far, fovy, aspectRatio) { + this.identity(); + var l_fd = (1.0 / Math.tan((fovy * (Math.PI / 180)) / 2.0)); + var l_a1 = (far + near) / (near - far); + var l_a2 = (2 * far * near) / (near - far); + var v = this.values; + v[webgl.M00] = l_fd / aspectRatio; + v[webgl.M10] = 0; + v[webgl.M20] = 0; + v[webgl.M30] = 0; + v[webgl.M01] = 0; + v[webgl.M11] = l_fd; + v[webgl.M21] = 0; + v[webgl.M31] = 0; + v[webgl.M02] = 0; + v[webgl.M12] = 0; + v[webgl.M22] = l_a1; + v[webgl.M32] = -1; + v[webgl.M03] = 0; + v[webgl.M13] = 0; + v[webgl.M23] = l_a2; + v[webgl.M33] = 0; + return this; + }; + Matrix4.prototype.ortho2d = function (x, y, width, height) { + return this.ortho(x, x + width, y, y + height, 0, 1); + }; + Matrix4.prototype.ortho = function (left, right, bottom, top, near, far) { + this.identity(); + var x_orth = 2 / (right - left); + var y_orth = 2 / (top - bottom); + var z_orth = -2 / (far - near); + var tx = -(right + left) / (right - left); + var ty = -(top + bottom) / (top - bottom); + var tz = -(far + near) / (far - near); + var v = this.values; + v[webgl.M00] = x_orth; + v[webgl.M10] = 0; + v[webgl.M20] = 0; + v[webgl.M30] = 0; + v[webgl.M01] = 0; + v[webgl.M11] = y_orth; + v[webgl.M21] = 0; + v[webgl.M31] = 0; + v[webgl.M02] = 0; + v[webgl.M12] = 0; + v[webgl.M22] = z_orth; + v[webgl.M32] = 0; + v[webgl.M03] = tx; + v[webgl.M13] = ty; + v[webgl.M23] = tz; + v[webgl.M33] = 1; + return this; + }; + Matrix4.prototype.multiply = function (matrix) { + var t = this.temp; + var v = this.values; + var m = matrix.values; + t[webgl.M00] = v[webgl.M00] * m[webgl.M00] + v[webgl.M01] * m[webgl.M10] + v[webgl.M02] * m[webgl.M20] + v[webgl.M03] * m[webgl.M30]; + t[webgl.M01] = v[webgl.M00] * m[webgl.M01] + v[webgl.M01] * m[webgl.M11] + v[webgl.M02] * m[webgl.M21] + v[webgl.M03] * m[webgl.M31]; + t[webgl.M02] = v[webgl.M00] * m[webgl.M02] + v[webgl.M01] * m[webgl.M12] + v[webgl.M02] * m[webgl.M22] + v[webgl.M03] * m[webgl.M32]; + t[webgl.M03] = v[webgl.M00] * m[webgl.M03] + v[webgl.M01] * m[webgl.M13] + v[webgl.M02] * m[webgl.M23] + v[webgl.M03] * m[webgl.M33]; + t[webgl.M10] = v[webgl.M10] * m[webgl.M00] + v[webgl.M11] * m[webgl.M10] + v[webgl.M12] * m[webgl.M20] + v[webgl.M13] * m[webgl.M30]; + t[webgl.M11] = v[webgl.M10] * m[webgl.M01] + v[webgl.M11] * m[webgl.M11] + v[webgl.M12] * m[webgl.M21] + v[webgl.M13] * m[webgl.M31]; + t[webgl.M12] = v[webgl.M10] * m[webgl.M02] + v[webgl.M11] * m[webgl.M12] + v[webgl.M12] * m[webgl.M22] + v[webgl.M13] * m[webgl.M32]; + t[webgl.M13] = v[webgl.M10] * m[webgl.M03] + v[webgl.M11] * m[webgl.M13] + v[webgl.M12] * m[webgl.M23] + v[webgl.M13] * m[webgl.M33]; + t[webgl.M20] = v[webgl.M20] * m[webgl.M00] + v[webgl.M21] * m[webgl.M10] + v[webgl.M22] * m[webgl.M20] + v[webgl.M23] * m[webgl.M30]; + t[webgl.M21] = v[webgl.M20] * m[webgl.M01] + v[webgl.M21] * m[webgl.M11] + v[webgl.M22] * m[webgl.M21] + v[webgl.M23] * m[webgl.M31]; + t[webgl.M22] = v[webgl.M20] * m[webgl.M02] + v[webgl.M21] * m[webgl.M12] + v[webgl.M22] * m[webgl.M22] + v[webgl.M23] * m[webgl.M32]; + t[webgl.M23] = v[webgl.M20] * m[webgl.M03] + v[webgl.M21] * m[webgl.M13] + v[webgl.M22] * m[webgl.M23] + v[webgl.M23] * m[webgl.M33]; + t[webgl.M30] = v[webgl.M30] * m[webgl.M00] + v[webgl.M31] * m[webgl.M10] + v[webgl.M32] * m[webgl.M20] + v[webgl.M33] * m[webgl.M30]; + t[webgl.M31] = v[webgl.M30] * m[webgl.M01] + v[webgl.M31] * m[webgl.M11] + v[webgl.M32] * m[webgl.M21] + v[webgl.M33] * m[webgl.M31]; + t[webgl.M32] = v[webgl.M30] * m[webgl.M02] + v[webgl.M31] * m[webgl.M12] + v[webgl.M32] * m[webgl.M22] + v[webgl.M33] * m[webgl.M32]; + t[webgl.M33] = v[webgl.M30] * m[webgl.M03] + v[webgl.M31] * m[webgl.M13] + v[webgl.M32] * m[webgl.M23] + v[webgl.M33] * m[webgl.M33]; + return this.set(this.temp); + }; + Matrix4.prototype.multiplyLeft = function (matrix) { + var t = this.temp; + var v = this.values; + var m = matrix.values; + t[webgl.M00] = m[webgl.M00] * v[webgl.M00] + m[webgl.M01] * v[webgl.M10] + m[webgl.M02] * v[webgl.M20] + m[webgl.M03] * v[webgl.M30]; + t[webgl.M01] = m[webgl.M00] * v[webgl.M01] + m[webgl.M01] * v[webgl.M11] + m[webgl.M02] * v[webgl.M21] + m[webgl.M03] * v[webgl.M31]; + t[webgl.M02] = m[webgl.M00] * v[webgl.M02] + m[webgl.M01] * v[webgl.M12] + m[webgl.M02] * v[webgl.M22] + m[webgl.M03] * v[webgl.M32]; + t[webgl.M03] = m[webgl.M00] * v[webgl.M03] + m[webgl.M01] * v[webgl.M13] + m[webgl.M02] * v[webgl.M23] + m[webgl.M03] * v[webgl.M33]; + t[webgl.M10] = m[webgl.M10] * v[webgl.M00] + m[webgl.M11] * v[webgl.M10] + m[webgl.M12] * v[webgl.M20] + m[webgl.M13] * v[webgl.M30]; + t[webgl.M11] = m[webgl.M10] * v[webgl.M01] + m[webgl.M11] * v[webgl.M11] + m[webgl.M12] * v[webgl.M21] + m[webgl.M13] * v[webgl.M31]; + t[webgl.M12] = m[webgl.M10] * v[webgl.M02] + m[webgl.M11] * v[webgl.M12] + m[webgl.M12] * v[webgl.M22] + m[webgl.M13] * v[webgl.M32]; + t[webgl.M13] = m[webgl.M10] * v[webgl.M03] + m[webgl.M11] * v[webgl.M13] + m[webgl.M12] * v[webgl.M23] + m[webgl.M13] * v[webgl.M33]; + t[webgl.M20] = m[webgl.M20] * v[webgl.M00] + m[webgl.M21] * v[webgl.M10] + m[webgl.M22] * v[webgl.M20] + m[webgl.M23] * v[webgl.M30]; + t[webgl.M21] = m[webgl.M20] * v[webgl.M01] + m[webgl.M21] * v[webgl.M11] + m[webgl.M22] * v[webgl.M21] + m[webgl.M23] * v[webgl.M31]; + t[webgl.M22] = m[webgl.M20] * v[webgl.M02] + m[webgl.M21] * v[webgl.M12] + m[webgl.M22] * v[webgl.M22] + m[webgl.M23] * v[webgl.M32]; + t[webgl.M23] = m[webgl.M20] * v[webgl.M03] + m[webgl.M21] * v[webgl.M13] + m[webgl.M22] * v[webgl.M23] + m[webgl.M23] * v[webgl.M33]; + t[webgl.M30] = m[webgl.M30] * v[webgl.M00] + m[webgl.M31] * v[webgl.M10] + m[webgl.M32] * v[webgl.M20] + m[webgl.M33] * v[webgl.M30]; + t[webgl.M31] = m[webgl.M30] * v[webgl.M01] + m[webgl.M31] * v[webgl.M11] + m[webgl.M32] * v[webgl.M21] + m[webgl.M33] * v[webgl.M31]; + t[webgl.M32] = m[webgl.M30] * v[webgl.M02] + m[webgl.M31] * v[webgl.M12] + m[webgl.M32] * v[webgl.M22] + m[webgl.M33] * v[webgl.M32]; + t[webgl.M33] = m[webgl.M30] * v[webgl.M03] + m[webgl.M31] * v[webgl.M13] + m[webgl.M32] * v[webgl.M23] + m[webgl.M33] * v[webgl.M33]; + return this.set(this.temp); + }; + Matrix4.prototype.lookAt = function (position, direction, up) { + Matrix4.initTemps(); + var xAxis = Matrix4.xAxis, yAxis = Matrix4.yAxis, zAxis = Matrix4.zAxis; + zAxis.setFrom(direction).normalize(); + xAxis.setFrom(direction).normalize(); + xAxis.cross(up).normalize(); + yAxis.setFrom(xAxis).cross(zAxis).normalize(); + this.identity(); + var val = this.values; + val[webgl.M00] = xAxis.x; + val[webgl.M01] = xAxis.y; + val[webgl.M02] = xAxis.z; + val[webgl.M10] = yAxis.x; + val[webgl.M11] = yAxis.y; + val[webgl.M12] = yAxis.z; + val[webgl.M20] = -zAxis.x; + val[webgl.M21] = -zAxis.y; + val[webgl.M22] = -zAxis.z; + Matrix4.tmpMatrix.identity(); + Matrix4.tmpMatrix.values[webgl.M03] = -position.x; + Matrix4.tmpMatrix.values[webgl.M13] = -position.y; + Matrix4.tmpMatrix.values[webgl.M23] = -position.z; + this.multiply(Matrix4.tmpMatrix); + return this; + }; + Matrix4.initTemps = function () { + if (Matrix4.xAxis === null) + Matrix4.xAxis = new webgl.Vector3(); + if (Matrix4.yAxis === null) + Matrix4.yAxis = new webgl.Vector3(); + if (Matrix4.zAxis === null) + Matrix4.zAxis = new webgl.Vector3(); + }; + Matrix4.xAxis = null; + Matrix4.yAxis = null; + Matrix4.zAxis = null; + Matrix4.tmpMatrix = new Matrix4(); + return Matrix4; + }()); + webgl.Matrix4 = Matrix4; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Mesh = (function () { - function Mesh(context, attributes, maxVertices, maxIndices) { - this.attributes = attributes; - this.verticesLength = 0; - this.dirtyVertices = false; - this.indicesLength = 0; - this.dirtyIndices = false; - this.elementsPerVertex = 0; - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.elementsPerVertex = 0; - for (var i = 0; i < attributes.length; i++) { - this.elementsPerVertex += attributes[i].numElements; - } - this.vertices = new Float32Array(maxVertices * this.elementsPerVertex); - this.indices = new Uint16Array(maxIndices); - this.context.addRestorable(this); - } - Mesh.prototype.getAttributes = function () { return this.attributes; }; - Mesh.prototype.maxVertices = function () { return this.vertices.length / this.elementsPerVertex; }; - Mesh.prototype.numVertices = function () { return this.verticesLength / this.elementsPerVertex; }; - Mesh.prototype.setVerticesLength = function (length) { - this.dirtyVertices = true; - this.verticesLength = length; - }; - Mesh.prototype.getVertices = function () { return this.vertices; }; - Mesh.prototype.maxIndices = function () { return this.indices.length; }; - Mesh.prototype.numIndices = function () { return this.indicesLength; }; - Mesh.prototype.setIndicesLength = function (length) { - this.dirtyIndices = true; - this.indicesLength = length; - }; - Mesh.prototype.getIndices = function () { return this.indices; }; - ; - Mesh.prototype.getVertexSizeInFloats = function () { - var size = 0; - for (var i = 0; i < this.attributes.length; i++) { - var attribute = this.attributes[i]; - size += attribute.numElements; - } - return size; - }; - Mesh.prototype.setVertices = function (vertices) { - this.dirtyVertices = true; - if (vertices.length > this.vertices.length) - throw Error("Mesh can't store more than " + this.maxVertices() + " vertices"); - this.vertices.set(vertices, 0); - this.verticesLength = vertices.length; - }; - Mesh.prototype.setIndices = function (indices) { - this.dirtyIndices = true; - if (indices.length > this.indices.length) - throw Error("Mesh can't store more than " + this.maxIndices() + " indices"); - this.indices.set(indices, 0); - this.indicesLength = indices.length; - }; - Mesh.prototype.draw = function (shader, primitiveType) { - this.drawWithOffset(shader, primitiveType, 0, this.indicesLength > 0 ? this.indicesLength : this.verticesLength / this.elementsPerVertex); - }; - Mesh.prototype.drawWithOffset = function (shader, primitiveType, offset, count) { - var gl = this.context.gl; - if (this.dirtyVertices || this.dirtyIndices) - this.update(); - this.bind(shader); - if (this.indicesLength > 0) { - gl.drawElements(primitiveType, count, gl.UNSIGNED_SHORT, offset * 2); - } - else { - gl.drawArrays(primitiveType, offset, count); - } - this.unbind(shader); - }; - Mesh.prototype.bind = function (shader) { - var gl = this.context.gl; - gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); - var offset = 0; - for (var i = 0; i < this.attributes.length; i++) { - var attrib = this.attributes[i]; - var location_1 = shader.getAttributeLocation(attrib.name); - gl.enableVertexAttribArray(location_1); - gl.vertexAttribPointer(location_1, attrib.numElements, gl.FLOAT, false, this.elementsPerVertex * 4, offset * 4); - offset += attrib.numElements; - } - if (this.indicesLength > 0) - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); - }; - Mesh.prototype.unbind = function (shader) { - var gl = this.context.gl; - for (var i = 0; i < this.attributes.length; i++) { - var attrib = this.attributes[i]; - var location_2 = shader.getAttributeLocation(attrib.name); - gl.disableVertexAttribArray(location_2); - } - gl.bindBuffer(gl.ARRAY_BUFFER, null); - if (this.indicesLength > 0) - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); - }; - Mesh.prototype.update = function () { - var gl = this.context.gl; - if (this.dirtyVertices) { - if (!this.verticesBuffer) { - this.verticesBuffer = gl.createBuffer(); - } - gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.vertices.subarray(0, this.verticesLength), gl.DYNAMIC_DRAW); - this.dirtyVertices = false; - } - if (this.dirtyIndices) { - if (!this.indicesBuffer) { - this.indicesBuffer = gl.createBuffer(); - } - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); - gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices.subarray(0, this.indicesLength), gl.DYNAMIC_DRAW); - this.dirtyIndices = false; - } - }; - Mesh.prototype.restore = function () { - this.verticesBuffer = null; - this.indicesBuffer = null; - this.update(); - }; - Mesh.prototype.dispose = function () { - this.context.removeRestorable(this); - var gl = this.context.gl; - gl.deleteBuffer(this.verticesBuffer); - gl.deleteBuffer(this.indicesBuffer); - }; - return Mesh; - }()); - webgl.Mesh = Mesh; - var VertexAttribute = (function () { - function VertexAttribute(name, type, numElements) { - this.name = name; - this.type = type; - this.numElements = numElements; - } - return VertexAttribute; - }()); - webgl.VertexAttribute = VertexAttribute; - var Position2Attribute = (function (_super) { - __extends(Position2Attribute, _super); - function Position2Attribute() { - _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 2); - } - return Position2Attribute; - }(VertexAttribute)); - webgl.Position2Attribute = Position2Attribute; - var Position3Attribute = (function (_super) { - __extends(Position3Attribute, _super); - function Position3Attribute() { - _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 3); - } - return Position3Attribute; - }(VertexAttribute)); - webgl.Position3Attribute = Position3Attribute; - var TexCoordAttribute = (function (_super) { - __extends(TexCoordAttribute, _super); - function TexCoordAttribute(unit) { - if (unit === void 0) { unit = 0; } - _super.call(this, webgl.Shader.TEXCOORDS + (unit == 0 ? "" : unit), VertexAttributeType.Float, 2); - } - return TexCoordAttribute; - }(VertexAttribute)); - webgl.TexCoordAttribute = TexCoordAttribute; - var ColorAttribute = (function (_super) { - __extends(ColorAttribute, _super); - function ColorAttribute() { - _super.call(this, webgl.Shader.COLOR, VertexAttributeType.Float, 4); - } - return ColorAttribute; - }(VertexAttribute)); - webgl.ColorAttribute = ColorAttribute; - var Color2Attribute = (function (_super) { - __extends(Color2Attribute, _super); - function Color2Attribute() { - _super.call(this, webgl.Shader.COLOR2, VertexAttributeType.Float, 4); - } - return Color2Attribute; - }(VertexAttribute)); - webgl.Color2Attribute = Color2Attribute; - (function (VertexAttributeType) { - VertexAttributeType[VertexAttributeType["Float"] = 0] = "Float"; - })(webgl.VertexAttributeType || (webgl.VertexAttributeType = {})); - var VertexAttributeType = webgl.VertexAttributeType; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Mesh = (function () { + function Mesh(context, attributes, maxVertices, maxIndices) { + this.attributes = attributes; + this.verticesLength = 0; + this.dirtyVertices = false; + this.indicesLength = 0; + this.dirtyIndices = false; + this.elementsPerVertex = 0; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.elementsPerVertex = 0; + for (var i = 0; i < attributes.length; i++) { + this.elementsPerVertex += attributes[i].numElements; + } + this.vertices = new Float32Array(maxVertices * this.elementsPerVertex); + this.indices = new Uint16Array(maxIndices); + this.context.addRestorable(this); + } + Mesh.prototype.getAttributes = function () { return this.attributes; }; + Mesh.prototype.maxVertices = function () { return this.vertices.length / this.elementsPerVertex; }; + Mesh.prototype.numVertices = function () { return this.verticesLength / this.elementsPerVertex; }; + Mesh.prototype.setVerticesLength = function (length) { + this.dirtyVertices = true; + this.verticesLength = length; + }; + Mesh.prototype.getVertices = function () { return this.vertices; }; + Mesh.prototype.maxIndices = function () { return this.indices.length; }; + Mesh.prototype.numIndices = function () { return this.indicesLength; }; + Mesh.prototype.setIndicesLength = function (length) { + this.dirtyIndices = true; + this.indicesLength = length; + }; + Mesh.prototype.getIndices = function () { return this.indices; }; + ; + Mesh.prototype.getVertexSizeInFloats = function () { + var size = 0; + for (var i = 0; i < this.attributes.length; i++) { + var attribute = this.attributes[i]; + size += attribute.numElements; + } + return size; + }; + Mesh.prototype.setVertices = function (vertices) { + this.dirtyVertices = true; + if (vertices.length > this.vertices.length) + throw Error("Mesh can't store more than " + this.maxVertices() + " vertices"); + this.vertices.set(vertices, 0); + this.verticesLength = vertices.length; + }; + Mesh.prototype.setIndices = function (indices) { + this.dirtyIndices = true; + if (indices.length > this.indices.length) + throw Error("Mesh can't store more than " + this.maxIndices() + " indices"); + this.indices.set(indices, 0); + this.indicesLength = indices.length; + }; + Mesh.prototype.draw = function (shader, primitiveType) { + this.drawWithOffset(shader, primitiveType, 0, this.indicesLength > 0 ? this.indicesLength : this.verticesLength / this.elementsPerVertex); + }; + Mesh.prototype.drawWithOffset = function (shader, primitiveType, offset, count) { + var gl = this.context.gl; + if (this.dirtyVertices || this.dirtyIndices) + this.update(); + this.bind(shader); + if (this.indicesLength > 0) { + gl.drawElements(primitiveType, count, gl.UNSIGNED_SHORT, offset * 2); + } + else { + gl.drawArrays(primitiveType, offset, count); + } + this.unbind(shader); + }; + Mesh.prototype.bind = function (shader) { + var gl = this.context.gl; + gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); + var offset = 0; + for (var i = 0; i < this.attributes.length; i++) { + var attrib = this.attributes[i]; + var location_1 = shader.getAttributeLocation(attrib.name); + gl.enableVertexAttribArray(location_1); + gl.vertexAttribPointer(location_1, attrib.numElements, gl.FLOAT, false, this.elementsPerVertex * 4, offset * 4); + offset += attrib.numElements; + } + if (this.indicesLength > 0) + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); + }; + Mesh.prototype.unbind = function (shader) { + var gl = this.context.gl; + for (var i = 0; i < this.attributes.length; i++) { + var attrib = this.attributes[i]; + var location_2 = shader.getAttributeLocation(attrib.name); + gl.disableVertexAttribArray(location_2); + } + gl.bindBuffer(gl.ARRAY_BUFFER, null); + if (this.indicesLength > 0) + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); + }; + Mesh.prototype.update = function () { + var gl = this.context.gl; + if (this.dirtyVertices) { + if (!this.verticesBuffer) { + this.verticesBuffer = gl.createBuffer(); + } + gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.vertices.subarray(0, this.verticesLength), gl.DYNAMIC_DRAW); + this.dirtyVertices = false; + } + if (this.dirtyIndices) { + if (!this.indicesBuffer) { + this.indicesBuffer = gl.createBuffer(); + } + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices.subarray(0, this.indicesLength), gl.DYNAMIC_DRAW); + this.dirtyIndices = false; + } + }; + Mesh.prototype.restore = function () { + this.verticesBuffer = null; + this.indicesBuffer = null; + this.update(); + }; + Mesh.prototype.dispose = function () { + this.context.removeRestorable(this); + var gl = this.context.gl; + gl.deleteBuffer(this.verticesBuffer); + gl.deleteBuffer(this.indicesBuffer); + }; + return Mesh; + }()); + webgl.Mesh = Mesh; + var VertexAttribute = (function () { + function VertexAttribute(name, type, numElements) { + this.name = name; + this.type = type; + this.numElements = numElements; + } + return VertexAttribute; + }()); + webgl.VertexAttribute = VertexAttribute; + var Position2Attribute = (function (_super) { + __extends(Position2Attribute, _super); + function Position2Attribute() { + _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 2); + } + return Position2Attribute; + }(VertexAttribute)); + webgl.Position2Attribute = Position2Attribute; + var Position3Attribute = (function (_super) { + __extends(Position3Attribute, _super); + function Position3Attribute() { + _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 3); + } + return Position3Attribute; + }(VertexAttribute)); + webgl.Position3Attribute = Position3Attribute; + var TexCoordAttribute = (function (_super) { + __extends(TexCoordAttribute, _super); + function TexCoordAttribute(unit) { + if (unit === void 0) { unit = 0; } + _super.call(this, webgl.Shader.TEXCOORDS + (unit == 0 ? "" : unit), VertexAttributeType.Float, 2); + } + return TexCoordAttribute; + }(VertexAttribute)); + webgl.TexCoordAttribute = TexCoordAttribute; + var ColorAttribute = (function (_super) { + __extends(ColorAttribute, _super); + function ColorAttribute() { + _super.call(this, webgl.Shader.COLOR, VertexAttributeType.Float, 4); + } + return ColorAttribute; + }(VertexAttribute)); + webgl.ColorAttribute = ColorAttribute; + var Color2Attribute = (function (_super) { + __extends(Color2Attribute, _super); + function Color2Attribute() { + _super.call(this, webgl.Shader.COLOR2, VertexAttributeType.Float, 4); + } + return Color2Attribute; + }(VertexAttribute)); + webgl.Color2Attribute = Color2Attribute; + (function (VertexAttributeType) { + VertexAttributeType[VertexAttributeType["Float"] = 0] = "Float"; + })(webgl.VertexAttributeType || (webgl.VertexAttributeType = {})); + var VertexAttributeType = webgl.VertexAttributeType; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var PolygonBatcher = (function () { - function PolygonBatcher(context, twoColorTint, maxVertices) { - if (twoColorTint === void 0) { twoColorTint = true; } - if (maxVertices === void 0) { maxVertices = 10920; } - this.isDrawing = false; - this.shader = null; - this.lastTexture = null; - this.verticesLength = 0; - this.indicesLength = 0; - if (maxVertices > 10920) - throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - var attributes = twoColorTint ? - [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute(), new webgl.Color2Attribute()] : - [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute()]; - this.mesh = new webgl.Mesh(context, attributes, maxVertices, maxVertices * 3); - this.srcBlend = this.context.gl.SRC_ALPHA; - this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; - } - PolygonBatcher.prototype.begin = function (shader) { - var gl = this.context.gl; - if (this.isDrawing) - throw new Error("PolygonBatch is already drawing. Call PolygonBatch.end() before calling PolygonBatch.begin()"); - this.drawCalls = 0; - this.shader = shader; - this.lastTexture = null; - this.isDrawing = true; - gl.enable(gl.BLEND); - gl.blendFunc(this.srcBlend, this.dstBlend); - }; - PolygonBatcher.prototype.setBlendMode = function (srcBlend, dstBlend) { - var gl = this.context.gl; - this.srcBlend = srcBlend; - this.dstBlend = dstBlend; - if (this.isDrawing) { - this.flush(); - gl.blendFunc(this.srcBlend, this.dstBlend); - } - }; - PolygonBatcher.prototype.draw = function (texture, vertices, indices) { - if (texture != this.lastTexture) { - this.flush(); - this.lastTexture = texture; - } - else if (this.verticesLength + vertices.length > this.mesh.getVertices().length || - this.indicesLength + indices.length > this.mesh.getIndices().length) { - this.flush(); - } - var indexStart = this.mesh.numVertices(); - this.mesh.getVertices().set(vertices, this.verticesLength); - this.verticesLength += vertices.length; - this.mesh.setVerticesLength(this.verticesLength); - var indicesArray = this.mesh.getIndices(); - for (var i = this.indicesLength, j = 0; j < indices.length; i++, j++) - indicesArray[i] = indices[j] + indexStart; - this.indicesLength += indices.length; - this.mesh.setIndicesLength(this.indicesLength); - }; - PolygonBatcher.prototype.flush = function () { - var gl = this.context.gl; - if (this.verticesLength == 0) - return; - this.lastTexture.bind(); - this.mesh.draw(this.shader, gl.TRIANGLES); - this.verticesLength = 0; - this.indicesLength = 0; - this.mesh.setVerticesLength(0); - this.mesh.setIndicesLength(0); - this.drawCalls++; - }; - PolygonBatcher.prototype.end = function () { - var gl = this.context.gl; - if (!this.isDrawing) - throw new Error("PolygonBatch is not drawing. Call PolygonBatch.begin() before calling PolygonBatch.end()"); - if (this.verticesLength > 0 || this.indicesLength > 0) - this.flush(); - this.shader = null; - this.lastTexture = null; - this.isDrawing = false; - gl.disable(gl.BLEND); - }; - PolygonBatcher.prototype.getDrawCalls = function () { return this.drawCalls; }; - PolygonBatcher.prototype.dispose = function () { - this.mesh.dispose(); - }; - return PolygonBatcher; - }()); - webgl.PolygonBatcher = PolygonBatcher; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var PolygonBatcher = (function () { + function PolygonBatcher(context, twoColorTint, maxVertices) { + if (twoColorTint === void 0) { twoColorTint = true; } + if (maxVertices === void 0) { maxVertices = 10920; } + this.isDrawing = false; + this.shader = null; + this.lastTexture = null; + this.verticesLength = 0; + this.indicesLength = 0; + if (maxVertices > 10920) + throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + var attributes = twoColorTint ? + [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute(), new webgl.Color2Attribute()] : + [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute()]; + this.mesh = new webgl.Mesh(context, attributes, maxVertices, maxVertices * 3); + this.srcBlend = this.context.gl.SRC_ALPHA; + this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; + } + PolygonBatcher.prototype.begin = function (shader) { + var gl = this.context.gl; + if (this.isDrawing) + throw new Error("PolygonBatch is already drawing. Call PolygonBatch.end() before calling PolygonBatch.begin()"); + this.drawCalls = 0; + this.shader = shader; + this.lastTexture = null; + this.isDrawing = true; + gl.enable(gl.BLEND); + gl.blendFunc(this.srcBlend, this.dstBlend); + }; + PolygonBatcher.prototype.setBlendMode = function (srcBlend, dstBlend) { + var gl = this.context.gl; + this.srcBlend = srcBlend; + this.dstBlend = dstBlend; + if (this.isDrawing) { + this.flush(); + gl.blendFunc(this.srcBlend, this.dstBlend); + } + }; + PolygonBatcher.prototype.draw = function (texture, vertices, indices) { + if (texture != this.lastTexture) { + this.flush(); + this.lastTexture = texture; + } + else if (this.verticesLength + vertices.length > this.mesh.getVertices().length || + this.indicesLength + indices.length > this.mesh.getIndices().length) { + this.flush(); + } + var indexStart = this.mesh.numVertices(); + this.mesh.getVertices().set(vertices, this.verticesLength); + this.verticesLength += vertices.length; + this.mesh.setVerticesLength(this.verticesLength); + var indicesArray = this.mesh.getIndices(); + for (var i = this.indicesLength, j = 0; j < indices.length; i++, j++) + indicesArray[i] = indices[j] + indexStart; + this.indicesLength += indices.length; + this.mesh.setIndicesLength(this.indicesLength); + }; + PolygonBatcher.prototype.flush = function () { + var gl = this.context.gl; + if (this.verticesLength == 0) + return; + this.lastTexture.bind(); + this.mesh.draw(this.shader, gl.TRIANGLES); + this.verticesLength = 0; + this.indicesLength = 0; + this.mesh.setVerticesLength(0); + this.mesh.setIndicesLength(0); + this.drawCalls++; + }; + PolygonBatcher.prototype.end = function () { + var gl = this.context.gl; + if (!this.isDrawing) + throw new Error("PolygonBatch is not drawing. Call PolygonBatch.begin() before calling PolygonBatch.end()"); + if (this.verticesLength > 0 || this.indicesLength > 0) + this.flush(); + this.shader = null; + this.lastTexture = null; + this.isDrawing = false; + gl.disable(gl.BLEND); + }; + PolygonBatcher.prototype.getDrawCalls = function () { return this.drawCalls; }; + PolygonBatcher.prototype.dispose = function () { + this.mesh.dispose(); + }; + return PolygonBatcher; + }()); + webgl.PolygonBatcher = PolygonBatcher; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var SceneRenderer = (function () { - function SceneRenderer(canvas, context, twoColorTint) { - if (twoColorTint === void 0) { twoColorTint = true; } - this.twoColorTint = false; - this.activeRenderer = null; - this.QUAD = [ - 0, 0, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 0, 0, - ]; - this.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - this.WHITE = new spine.Color(1, 1, 1, 1); - this.canvas = canvas; - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.twoColorTint = twoColorTint; - this.camera = new webgl.OrthoCamera(canvas.width, canvas.height); - this.batcherShader = twoColorTint ? webgl.Shader.newTwoColoredTextured(this.context) : webgl.Shader.newColoredTextured(this.context); - this.batcher = new webgl.PolygonBatcher(this.context, twoColorTint); - this.shapesShader = webgl.Shader.newColored(this.context); - this.shapes = new webgl.ShapeRenderer(this.context); - this.skeletonRenderer = new webgl.SkeletonRenderer(this.context, twoColorTint); - this.skeletonDebugRenderer = new webgl.SkeletonDebugRenderer(this.context); - } - SceneRenderer.prototype.begin = function () { - this.camera.update(); - this.enableRenderer(this.batcher); - }; - SceneRenderer.prototype.drawSkeleton = function (skeleton, premultipliedAlpha) { - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - this.enableRenderer(this.batcher); - this.skeletonRenderer.premultipliedAlpha = premultipliedAlpha; - this.skeletonRenderer.draw(this.batcher, skeleton); - }; - SceneRenderer.prototype.drawSkeletonDebug = function (skeleton, premultipliedAlpha, ignoredBones) { - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - if (ignoredBones === void 0) { ignoredBones = null; } - this.enableRenderer(this.shapes); - this.skeletonDebugRenderer.premultipliedAlpha = premultipliedAlpha; - this.skeletonDebugRenderer.draw(this.shapes, skeleton, ignoredBones); - }; - SceneRenderer.prototype.drawTexture = function (texture, x, y, width, height, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.batcher); - if (color === null) - color = this.WHITE; - var quad = this.QUAD; - var i = 0; - quad[i++] = x; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); - }; - SceneRenderer.prototype.drawTextureRotated = function (texture, x, y, width, height, pivotX, pivotY, angle, color, premultipliedAlpha) { - if (color === void 0) { color = null; } - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - this.enableRenderer(this.batcher); - if (color === null) - color = this.WHITE; - var quad = this.QUAD; - var worldOriginX = x + pivotX; - var worldOriginY = y + pivotY; - var fx = -pivotX; - var fy = -pivotY; - var fx2 = width - pivotX; - var fy2 = height - pivotY; - var p1x = fx; - var p1y = fy; - var p2x = fx; - var p2y = fy2; - var p3x = fx2; - var p3y = fy2; - var p4x = fx2; - var p4y = fy; - var x1 = 0; - var y1 = 0; - var x2 = 0; - var y2 = 0; - var x3 = 0; - var y3 = 0; - var x4 = 0; - var y4 = 0; - if (angle != 0) { - var cos = spine.MathUtils.cosDeg(angle); - var sin = spine.MathUtils.sinDeg(angle); - x1 = cos * p1x - sin * p1y; - y1 = sin * p1x + cos * p1y; - x4 = cos * p2x - sin * p2y; - y4 = sin * p2x + cos * p2y; - x3 = cos * p3x - sin * p3y; - y3 = sin * p3x + cos * p3y; - x2 = x3 + (x1 - x4); - y2 = y3 + (y1 - y4); - } - else { - x1 = p1x; - y1 = p1y; - x4 = p2x; - y4 = p2y; - x3 = p3x; - y3 = p3y; - x2 = p4x; - y2 = p4y; - } - x1 += worldOriginX; - y1 += worldOriginY; - x2 += worldOriginX; - y2 += worldOriginY; - x3 += worldOriginX; - y3 += worldOriginY; - x4 += worldOriginX; - y4 += worldOriginY; - var i = 0; - quad[i++] = x1; - quad[i++] = y1; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x2; - quad[i++] = y2; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x3; - quad[i++] = y3; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x4; - quad[i++] = y4; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); - }; - SceneRenderer.prototype.drawRegion = function (region, x, y, width, height, color, premultipliedAlpha) { - if (color === void 0) { color = null; } - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - this.enableRenderer(this.batcher); - if (color === null) - color = this.WHITE; - var quad = this.QUAD; - var i = 0; - quad[i++] = x; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u; - quad[i++] = region.v2; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u2; - quad[i++] = region.v2; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u2; - quad[i++] = region.v; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u; - quad[i++] = region.v; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - this.batcher.draw(region.texture, quad, this.QUAD_TRIANGLES); - }; - SceneRenderer.prototype.line = function (x, y, x2, y2, color, color2) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - this.enableRenderer(this.shapes); - this.shapes.line(x, y, x2, y2, color); - }; - SceneRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - this.enableRenderer(this.shapes); - this.shapes.triangle(filled, x, y, x2, y2, x3, y3, color, color2, color3); - }; - SceneRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - if (color4 === void 0) { color4 = null; } - this.enableRenderer(this.shapes); - this.shapes.quad(filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4); - }; - SceneRenderer.prototype.rect = function (filled, x, y, width, height, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.rect(filled, x, y, width, height, color); - }; - SceneRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.rectLine(filled, x1, y1, x2, y2, width, color); - }; - SceneRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.polygon(polygonVertices, offset, count, color); - }; - SceneRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { - if (color === void 0) { color = null; } - if (segments === void 0) { segments = 0; } - this.enableRenderer(this.shapes); - this.shapes.circle(filled, x, y, radius, color, segments); - }; - SceneRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color); - }; - SceneRenderer.prototype.end = function () { - if (this.activeRenderer === this.batcher) - this.batcher.end(); - else if (this.activeRenderer === this.shapes) - this.shapes.end(); - this.activeRenderer = null; - }; - SceneRenderer.prototype.resize = function (resizeMode) { - var canvas = this.canvas; - var w = canvas.clientWidth; - var h = canvas.clientHeight; - if (canvas.width != w || canvas.height != h) { - canvas.width = w; - canvas.height = h; - } - this.context.gl.viewport(0, 0, canvas.width, canvas.height); - if (resizeMode === ResizeMode.Stretch) { - } - else if (resizeMode === ResizeMode.Expand) { - this.camera.setViewport(w, h); - } - else if (resizeMode === ResizeMode.Fit) { - var sourceWidth = canvas.width, sourceHeight = canvas.height; - var targetWidth = this.camera.viewportWidth, targetHeight = this.camera.viewportHeight; - var targetRatio = targetHeight / targetWidth; - var sourceRatio = sourceHeight / sourceWidth; - var scale = targetRatio < sourceRatio ? targetWidth / sourceWidth : targetHeight / sourceHeight; - this.camera.viewportWidth = sourceWidth * scale; - this.camera.viewportHeight = sourceHeight * scale; - } - this.camera.update(); - }; - SceneRenderer.prototype.enableRenderer = function (renderer) { - if (this.activeRenderer === renderer) - return; - this.end(); - if (renderer instanceof webgl.PolygonBatcher) { - this.batcherShader.bind(); - this.batcherShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); - this.batcherShader.setUniformi("u_texture", 0); - this.batcher.begin(this.batcherShader); - this.activeRenderer = this.batcher; - } - else if (renderer instanceof webgl.ShapeRenderer) { - this.shapesShader.bind(); - this.shapesShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); - this.shapes.begin(this.shapesShader); - this.activeRenderer = this.shapes; - } - else { - this.activeRenderer = this.skeletonDebugRenderer; - } - }; - SceneRenderer.prototype.dispose = function () { - this.batcher.dispose(); - this.batcherShader.dispose(); - this.shapes.dispose(); - this.shapesShader.dispose(); - this.skeletonDebugRenderer.dispose(); - }; - return SceneRenderer; - }()); - webgl.SceneRenderer = SceneRenderer; - (function (ResizeMode) { - ResizeMode[ResizeMode["Stretch"] = 0] = "Stretch"; - ResizeMode[ResizeMode["Expand"] = 1] = "Expand"; - ResizeMode[ResizeMode["Fit"] = 2] = "Fit"; - })(webgl.ResizeMode || (webgl.ResizeMode = {})); - var ResizeMode = webgl.ResizeMode; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var SceneRenderer = (function () { + function SceneRenderer(canvas, context, twoColorTint) { + if (twoColorTint === void 0) { twoColorTint = true; } + this.twoColorTint = false; + this.activeRenderer = null; + this.QUAD = [ + 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, + ]; + this.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + this.WHITE = new spine.Color(1, 1, 1, 1); + this.canvas = canvas; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.twoColorTint = twoColorTint; + this.camera = new webgl.OrthoCamera(canvas.width, canvas.height); + this.batcherShader = twoColorTint ? webgl.Shader.newTwoColoredTextured(this.context) : webgl.Shader.newColoredTextured(this.context); + this.batcher = new webgl.PolygonBatcher(this.context, twoColorTint); + this.shapesShader = webgl.Shader.newColored(this.context); + this.shapes = new webgl.ShapeRenderer(this.context); + this.skeletonRenderer = new webgl.SkeletonRenderer(this.context, twoColorTint); + this.skeletonDebugRenderer = new webgl.SkeletonDebugRenderer(this.context); + } + SceneRenderer.prototype.begin = function () { + this.camera.update(); + this.enableRenderer(this.batcher); + }; + SceneRenderer.prototype.drawSkeleton = function (skeleton, premultipliedAlpha) { + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + this.enableRenderer(this.batcher); + this.skeletonRenderer.premultipliedAlpha = premultipliedAlpha; + this.skeletonRenderer.draw(this.batcher, skeleton); + }; + SceneRenderer.prototype.drawSkeletonDebug = function (skeleton, premultipliedAlpha, ignoredBones) { + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + if (ignoredBones === void 0) { ignoredBones = null; } + this.enableRenderer(this.shapes); + this.skeletonDebugRenderer.premultipliedAlpha = premultipliedAlpha; + this.skeletonDebugRenderer.draw(this.shapes, skeleton, ignoredBones); + }; + SceneRenderer.prototype.drawTexture = function (texture, x, y, width, height, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.batcher); + if (color === null) + color = this.WHITE; + var quad = this.QUAD; + var i = 0; + quad[i++] = x; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); + }; + SceneRenderer.prototype.drawTextureRotated = function (texture, x, y, width, height, pivotX, pivotY, angle, color, premultipliedAlpha) { + if (color === void 0) { color = null; } + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + this.enableRenderer(this.batcher); + if (color === null) + color = this.WHITE; + var quad = this.QUAD; + var worldOriginX = x + pivotX; + var worldOriginY = y + pivotY; + var fx = -pivotX; + var fy = -pivotY; + var fx2 = width - pivotX; + var fy2 = height - pivotY; + var p1x = fx; + var p1y = fy; + var p2x = fx; + var p2y = fy2; + var p3x = fx2; + var p3y = fy2; + var p4x = fx2; + var p4y = fy; + var x1 = 0; + var y1 = 0; + var x2 = 0; + var y2 = 0; + var x3 = 0; + var y3 = 0; + var x4 = 0; + var y4 = 0; + if (angle != 0) { + var cos = spine.MathUtils.cosDeg(angle); + var sin = spine.MathUtils.sinDeg(angle); + x1 = cos * p1x - sin * p1y; + y1 = sin * p1x + cos * p1y; + x4 = cos * p2x - sin * p2y; + y4 = sin * p2x + cos * p2y; + x3 = cos * p3x - sin * p3y; + y3 = sin * p3x + cos * p3y; + x2 = x3 + (x1 - x4); + y2 = y3 + (y1 - y4); + } + else { + x1 = p1x; + y1 = p1y; + x4 = p2x; + y4 = p2y; + x3 = p3x; + y3 = p3y; + x2 = p4x; + y2 = p4y; + } + x1 += worldOriginX; + y1 += worldOriginY; + x2 += worldOriginX; + y2 += worldOriginY; + x3 += worldOriginX; + y3 += worldOriginY; + x4 += worldOriginX; + y4 += worldOriginY; + var i = 0; + quad[i++] = x1; + quad[i++] = y1; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x2; + quad[i++] = y2; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x3; + quad[i++] = y3; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x4; + quad[i++] = y4; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); + }; + SceneRenderer.prototype.drawRegion = function (region, x, y, width, height, color, premultipliedAlpha) { + if (color === void 0) { color = null; } + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + this.enableRenderer(this.batcher); + if (color === null) + color = this.WHITE; + var quad = this.QUAD; + var i = 0; + quad[i++] = x; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u; + quad[i++] = region.v2; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u2; + quad[i++] = region.v2; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u2; + quad[i++] = region.v; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u; + quad[i++] = region.v; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + this.batcher.draw(region.texture, quad, this.QUAD_TRIANGLES); + }; + SceneRenderer.prototype.line = function (x, y, x2, y2, color, color2) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + this.enableRenderer(this.shapes); + this.shapes.line(x, y, x2, y2, color); + }; + SceneRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + this.enableRenderer(this.shapes); + this.shapes.triangle(filled, x, y, x2, y2, x3, y3, color, color2, color3); + }; + SceneRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + if (color4 === void 0) { color4 = null; } + this.enableRenderer(this.shapes); + this.shapes.quad(filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4); + }; + SceneRenderer.prototype.rect = function (filled, x, y, width, height, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.rect(filled, x, y, width, height, color); + }; + SceneRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.rectLine(filled, x1, y1, x2, y2, width, color); + }; + SceneRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.polygon(polygonVertices, offset, count, color); + }; + SceneRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { + if (color === void 0) { color = null; } + if (segments === void 0) { segments = 0; } + this.enableRenderer(this.shapes); + this.shapes.circle(filled, x, y, radius, color, segments); + }; + SceneRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color); + }; + SceneRenderer.prototype.end = function () { + if (this.activeRenderer === this.batcher) + this.batcher.end(); + else if (this.activeRenderer === this.shapes) + this.shapes.end(); + this.activeRenderer = null; + }; + SceneRenderer.prototype.resize = function (resizeMode) { + var canvas = this.canvas; + var w = canvas.clientWidth; + var h = canvas.clientHeight; + if (canvas.width != w || canvas.height != h) { + canvas.width = w; + canvas.height = h; + } + this.context.gl.viewport(0, 0, canvas.width, canvas.height); + if (resizeMode === ResizeMode.Stretch) { + } + else if (resizeMode === ResizeMode.Expand) { + this.camera.setViewport(w, h); + } + else if (resizeMode === ResizeMode.Fit) { + var sourceWidth = canvas.width, sourceHeight = canvas.height; + var targetWidth = this.camera.viewportWidth, targetHeight = this.camera.viewportHeight; + var targetRatio = targetHeight / targetWidth; + var sourceRatio = sourceHeight / sourceWidth; + var scale = targetRatio < sourceRatio ? targetWidth / sourceWidth : targetHeight / sourceHeight; + this.camera.viewportWidth = sourceWidth * scale; + this.camera.viewportHeight = sourceHeight * scale; + } + this.camera.update(); + }; + SceneRenderer.prototype.enableRenderer = function (renderer) { + if (this.activeRenderer === renderer) + return; + this.end(); + if (renderer instanceof webgl.PolygonBatcher) { + this.batcherShader.bind(); + this.batcherShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); + this.batcherShader.setUniformi("u_texture", 0); + this.batcher.begin(this.batcherShader); + this.activeRenderer = this.batcher; + } + else if (renderer instanceof webgl.ShapeRenderer) { + this.shapesShader.bind(); + this.shapesShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); + this.shapes.begin(this.shapesShader); + this.activeRenderer = this.shapes; + } + else { + this.activeRenderer = this.skeletonDebugRenderer; + } + }; + SceneRenderer.prototype.dispose = function () { + this.batcher.dispose(); + this.batcherShader.dispose(); + this.shapes.dispose(); + this.shapesShader.dispose(); + this.skeletonDebugRenderer.dispose(); + }; + return SceneRenderer; + }()); + webgl.SceneRenderer = SceneRenderer; + (function (ResizeMode) { + ResizeMode[ResizeMode["Stretch"] = 0] = "Stretch"; + ResizeMode[ResizeMode["Expand"] = 1] = "Expand"; + ResizeMode[ResizeMode["Fit"] = 2] = "Fit"; + })(webgl.ResizeMode || (webgl.ResizeMode = {})); + var ResizeMode = webgl.ResizeMode; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Shader = (function () { - function Shader(context, vertexShader, fragmentShader) { - this.vertexShader = vertexShader; - this.fragmentShader = fragmentShader; - this.vs = null; - this.fs = null; - this.program = null; - this.tmp2x2 = new Float32Array(2 * 2); - this.tmp3x3 = new Float32Array(3 * 3); - this.tmp4x4 = new Float32Array(4 * 4); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.context.addRestorable(this); - this.compile(); - } - Shader.prototype.getProgram = function () { return this.program; }; - Shader.prototype.getVertexShader = function () { return this.vertexShader; }; - Shader.prototype.getFragmentShader = function () { return this.fragmentShader; }; - Shader.prototype.compile = function () { - var gl = this.context.gl; - try { - this.vs = this.compileShader(gl.VERTEX_SHADER, this.vertexShader); - this.fs = this.compileShader(gl.FRAGMENT_SHADER, this.fragmentShader); - this.program = this.compileProgram(this.vs, this.fs); - } - catch (e) { - this.dispose(); - throw e; - } - }; - Shader.prototype.compileShader = function (type, source) { - var gl = this.context.gl; - var shader = gl.createShader(type); - gl.shaderSource(shader, source); - gl.compileShader(shader); - if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { - var error = "Couldn't compile shader: " + gl.getShaderInfoLog(shader); - gl.deleteShader(shader); - if (!gl.isContextLost()) - throw new Error(error); - } - return shader; - }; - Shader.prototype.compileProgram = function (vs, fs) { - var gl = this.context.gl; - var program = gl.createProgram(); - gl.attachShader(program, vs); - gl.attachShader(program, fs); - gl.linkProgram(program); - if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { - var error = "Couldn't compile shader program: " + gl.getProgramInfoLog(program); - gl.deleteProgram(program); - if (!gl.isContextLost()) - throw new Error(error); - } - return program; - }; - Shader.prototype.restore = function () { - this.compile(); - }; - Shader.prototype.bind = function () { - this.context.gl.useProgram(this.program); - }; - Shader.prototype.unbind = function () { - this.context.gl.useProgram(null); - }; - Shader.prototype.setUniformi = function (uniform, value) { - this.context.gl.uniform1i(this.getUniformLocation(uniform), value); - }; - Shader.prototype.setUniformf = function (uniform, value) { - this.context.gl.uniform1f(this.getUniformLocation(uniform), value); - }; - Shader.prototype.setUniform2f = function (uniform, value, value2) { - this.context.gl.uniform2f(this.getUniformLocation(uniform), value, value2); - }; - Shader.prototype.setUniform3f = function (uniform, value, value2, value3) { - this.context.gl.uniform3f(this.getUniformLocation(uniform), value, value2, value3); - }; - Shader.prototype.setUniform4f = function (uniform, value, value2, value3, value4) { - this.context.gl.uniform4f(this.getUniformLocation(uniform), value, value2, value3, value4); - }; - Shader.prototype.setUniform2x2f = function (uniform, value) { - var gl = this.context.gl; - this.tmp2x2.set(value); - gl.uniformMatrix2fv(this.getUniformLocation(uniform), false, this.tmp2x2); - }; - Shader.prototype.setUniform3x3f = function (uniform, value) { - var gl = this.context.gl; - this.tmp3x3.set(value); - gl.uniformMatrix3fv(this.getUniformLocation(uniform), false, this.tmp3x3); - }; - Shader.prototype.setUniform4x4f = function (uniform, value) { - var gl = this.context.gl; - this.tmp4x4.set(value); - gl.uniformMatrix4fv(this.getUniformLocation(uniform), false, this.tmp4x4); - }; - Shader.prototype.getUniformLocation = function (uniform) { - var gl = this.context.gl; - var location = gl.getUniformLocation(this.program, uniform); - if (!location && !gl.isContextLost()) - throw new Error("Couldn't find location for uniform " + uniform); - return location; - }; - Shader.prototype.getAttributeLocation = function (attribute) { - var gl = this.context.gl; - var location = gl.getAttribLocation(this.program, attribute); - if (location == -1 && !gl.isContextLost()) - throw new Error("Couldn't find location for attribute " + attribute); - return location; - }; - Shader.prototype.dispose = function () { - this.context.removeRestorable(this); - var gl = this.context.gl; - if (this.vs) { - gl.deleteShader(this.vs); - this.vs = null; - } - if (this.fs) { - gl.deleteShader(this.fs); - this.fs = null; - } - if (this.program) { - gl.deleteProgram(this.program); - this.program = null; - } - }; - Shader.newColoredTextured = function (context) { - var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; - var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color * texture2D(u_texture, v_texCoords);\n\t\t\t\t}\n\t\t\t"; - return new Shader(context, vs, fs); - }; - Shader.newTwoColoredTextured = function (context) { - var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR2 + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_light;\n\t\t\t\tvarying vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_light = " + Shader.COLOR + ";\n\t\t\t\t\tv_dark = " + Shader.COLOR2 + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; - var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_light;\n\t\t\t\tvarying LOWP vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tvec4 texColor = texture2D(u_texture, v_texCoords);\n\t\t\t\t\tfloat alpha = texColor.a * v_light.a;\n\t\t\t\t\tgl_FragColor.a = alpha;\n\t\t\t\t\tgl_FragColor.rgb = (1.0 - texColor.rgb) * v_dark.rgb * alpha + texColor.rgb * v_light.rgb;\n\t\t\t\t}\n\t\t\t"; - return new Shader(context, vs, fs); - }; - Shader.newColored = function (context) { - var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; - var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color;\n\t\t\t\t}\n\t\t\t"; - return new Shader(context, vs, fs); - }; - Shader.MVP_MATRIX = "u_projTrans"; - Shader.POSITION = "a_position"; - Shader.COLOR = "a_color"; - Shader.COLOR2 = "a_color2"; - Shader.TEXCOORDS = "a_texCoords"; - Shader.SAMPLER = "u_texture"; - return Shader; - }()); - webgl.Shader = Shader; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Shader = (function () { + function Shader(context, vertexShader, fragmentShader) { + this.vertexShader = vertexShader; + this.fragmentShader = fragmentShader; + this.vs = null; + this.fs = null; + this.program = null; + this.tmp2x2 = new Float32Array(2 * 2); + this.tmp3x3 = new Float32Array(3 * 3); + this.tmp4x4 = new Float32Array(4 * 4); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.context.addRestorable(this); + this.compile(); + } + Shader.prototype.getProgram = function () { return this.program; }; + Shader.prototype.getVertexShader = function () { return this.vertexShader; }; + Shader.prototype.getFragmentShader = function () { return this.fragmentShader; }; + Shader.prototype.compile = function () { + var gl = this.context.gl; + try { + this.vs = this.compileShader(gl.VERTEX_SHADER, this.vertexShader); + this.fs = this.compileShader(gl.FRAGMENT_SHADER, this.fragmentShader); + this.program = this.compileProgram(this.vs, this.fs); + } + catch (e) { + this.dispose(); + throw e; + } + }; + Shader.prototype.compileShader = function (type, source) { + var gl = this.context.gl; + var shader = gl.createShader(type); + gl.shaderSource(shader, source); + gl.compileShader(shader); + if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { + var error = "Couldn't compile shader: " + gl.getShaderInfoLog(shader); + gl.deleteShader(shader); + if (!gl.isContextLost()) + throw new Error(error); + } + return shader; + }; + Shader.prototype.compileProgram = function (vs, fs) { + var gl = this.context.gl; + var program = gl.createProgram(); + gl.attachShader(program, vs); + gl.attachShader(program, fs); + gl.linkProgram(program); + if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { + var error = "Couldn't compile shader program: " + gl.getProgramInfoLog(program); + gl.deleteProgram(program); + if (!gl.isContextLost()) + throw new Error(error); + } + return program; + }; + Shader.prototype.restore = function () { + this.compile(); + }; + Shader.prototype.bind = function () { + this.context.gl.useProgram(this.program); + }; + Shader.prototype.unbind = function () { + this.context.gl.useProgram(null); + }; + Shader.prototype.setUniformi = function (uniform, value) { + this.context.gl.uniform1i(this.getUniformLocation(uniform), value); + }; + Shader.prototype.setUniformf = function (uniform, value) { + this.context.gl.uniform1f(this.getUniformLocation(uniform), value); + }; + Shader.prototype.setUniform2f = function (uniform, value, value2) { + this.context.gl.uniform2f(this.getUniformLocation(uniform), value, value2); + }; + Shader.prototype.setUniform3f = function (uniform, value, value2, value3) { + this.context.gl.uniform3f(this.getUniformLocation(uniform), value, value2, value3); + }; + Shader.prototype.setUniform4f = function (uniform, value, value2, value3, value4) { + this.context.gl.uniform4f(this.getUniformLocation(uniform), value, value2, value3, value4); + }; + Shader.prototype.setUniform2x2f = function (uniform, value) { + var gl = this.context.gl; + this.tmp2x2.set(value); + gl.uniformMatrix2fv(this.getUniformLocation(uniform), false, this.tmp2x2); + }; + Shader.prototype.setUniform3x3f = function (uniform, value) { + var gl = this.context.gl; + this.tmp3x3.set(value); + gl.uniformMatrix3fv(this.getUniformLocation(uniform), false, this.tmp3x3); + }; + Shader.prototype.setUniform4x4f = function (uniform, value) { + var gl = this.context.gl; + this.tmp4x4.set(value); + gl.uniformMatrix4fv(this.getUniformLocation(uniform), false, this.tmp4x4); + }; + Shader.prototype.getUniformLocation = function (uniform) { + var gl = this.context.gl; + var location = gl.getUniformLocation(this.program, uniform); + if (!location && !gl.isContextLost()) + throw new Error("Couldn't find location for uniform " + uniform); + return location; + }; + Shader.prototype.getAttributeLocation = function (attribute) { + var gl = this.context.gl; + var location = gl.getAttribLocation(this.program, attribute); + if (location == -1 && !gl.isContextLost()) + throw new Error("Couldn't find location for attribute " + attribute); + return location; + }; + Shader.prototype.dispose = function () { + this.context.removeRestorable(this); + var gl = this.context.gl; + if (this.vs) { + gl.deleteShader(this.vs); + this.vs = null; + } + if (this.fs) { + gl.deleteShader(this.fs); + this.fs = null; + } + if (this.program) { + gl.deleteProgram(this.program); + this.program = null; + } + }; + Shader.newColoredTextured = function (context) { + var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; + var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color * texture2D(u_texture, v_texCoords);\n\t\t\t\t}\n\t\t\t"; + return new Shader(context, vs, fs); + }; + Shader.newTwoColoredTextured = function (context) { + var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR2 + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_light;\n\t\t\t\tvarying vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_light = " + Shader.COLOR + ";\n\t\t\t\t\tv_dark = " + Shader.COLOR2 + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; + var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_light;\n\t\t\t\tvarying LOWP vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tvec4 texColor = texture2D(u_texture, v_texCoords);\n\t\t\t\t\tfloat alpha = texColor.a * v_light.a;\n\t\t\t\t\tgl_FragColor.a = alpha;\n\t\t\t\t\tgl_FragColor.rgb = (1.0 - texColor.rgb) * v_dark.rgb * alpha + texColor.rgb * v_light.rgb;\n\t\t\t\t}\n\t\t\t"; + return new Shader(context, vs, fs); + }; + Shader.newColored = function (context) { + var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; + var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color;\n\t\t\t\t}\n\t\t\t"; + return new Shader(context, vs, fs); + }; + Shader.MVP_MATRIX = "u_projTrans"; + Shader.POSITION = "a_position"; + Shader.COLOR = "a_color"; + Shader.COLOR2 = "a_color2"; + Shader.TEXCOORDS = "a_texCoords"; + Shader.SAMPLER = "u_texture"; + return Shader; + }()); + webgl.Shader = Shader; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var ShapeRenderer = (function () { - function ShapeRenderer(context, maxVertices) { - if (maxVertices === void 0) { maxVertices = 10920; } - this.isDrawing = false; - this.shapeType = ShapeType.Filled; - this.color = new spine.Color(1, 1, 1, 1); - this.vertexIndex = 0; - this.tmp = new spine.Vector2(); - if (maxVertices > 10920) - throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.mesh = new webgl.Mesh(context, [new webgl.Position2Attribute(), new webgl.ColorAttribute()], maxVertices, 0); - this.srcBlend = this.context.gl.SRC_ALPHA; - this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; - } - ShapeRenderer.prototype.begin = function (shader) { - if (this.isDrawing) - throw new Error("ShapeRenderer.begin() has already been called"); - this.shader = shader; - this.vertexIndex = 0; - this.isDrawing = true; - var gl = this.context.gl; - gl.enable(gl.BLEND); - gl.blendFunc(this.srcBlend, this.dstBlend); - }; - ShapeRenderer.prototype.setBlendMode = function (srcBlend, dstBlend) { - var gl = this.context.gl; - this.srcBlend = srcBlend; - this.dstBlend = dstBlend; - if (this.isDrawing) { - this.flush(); - gl.blendFunc(this.srcBlend, this.dstBlend); - } - }; - ShapeRenderer.prototype.setColor = function (color) { - this.color.setFromColor(color); - }; - ShapeRenderer.prototype.setColorWith = function (r, g, b, a) { - this.color.set(r, g, b, a); - }; - ShapeRenderer.prototype.point = function (x, y, color) { - if (color === void 0) { color = null; } - this.check(ShapeType.Point, 1); - if (color === null) - color = this.color; - this.vertex(x, y, color); - }; - ShapeRenderer.prototype.line = function (x, y, x2, y2, color) { - if (color === void 0) { color = null; } - this.check(ShapeType.Line, 2); - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - if (color === null) - color = this.color; - this.vertex(x, y, color); - this.vertex(x2, y2, color); - }; - ShapeRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - if (color === null) - color = this.color; - if (color2 === null) - color2 = this.color; - if (color3 === null) - color3 = this.color; - if (filled) { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x3, y3, color3); - } - else { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x2, y2, color); - this.vertex(x3, y3, color2); - this.vertex(x3, y3, color); - this.vertex(x, y, color2); - } - }; - ShapeRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - if (color4 === void 0) { color4 = null; } - this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - if (color === null) - color = this.color; - if (color2 === null) - color2 = this.color; - if (color3 === null) - color3 = this.color; - if (color4 === null) - color4 = this.color; - if (filled) { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x3, y3, color3); - this.vertex(x3, y3, color3); - this.vertex(x4, y4, color4); - this.vertex(x, y, color); - } - else { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x2, y2, color2); - this.vertex(x3, y3, color3); - this.vertex(x3, y3, color3); - this.vertex(x4, y4, color4); - this.vertex(x4, y4, color4); - this.vertex(x, y, color); - } - }; - ShapeRenderer.prototype.rect = function (filled, x, y, width, height, color) { - if (color === void 0) { color = null; } - this.quad(filled, x, y, x + width, y, x + width, y + height, x, y + height, color, color, color, color); - }; - ShapeRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { - if (color === void 0) { color = null; } - this.check(filled ? ShapeType.Filled : ShapeType.Line, 8); - if (color === null) - color = this.color; - var t = this.tmp.set(y2 - y1, x1 - x2); - t.normalize(); - width *= 0.5; - var tx = t.x * width; - var ty = t.y * width; - if (!filled) { - this.vertex(x1 + tx, y1 + ty, color); - this.vertex(x1 - tx, y1 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x2 - tx, y2 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x1 + tx, y1 + ty, color); - this.vertex(x2 - tx, y2 - ty, color); - this.vertex(x1 - tx, y1 - ty, color); - } - else { - this.vertex(x1 + tx, y1 + ty, color); - this.vertex(x1 - tx, y1 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x2 - tx, y2 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x1 - tx, y1 - ty, color); - } - }; - ShapeRenderer.prototype.x = function (x, y, size) { - this.line(x - size, y - size, x + size, y + size); - this.line(x - size, y + size, x + size, y - size); - }; - ShapeRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { - if (color === void 0) { color = null; } - if (count < 3) - throw new Error("Polygon must contain at least 3 vertices"); - this.check(ShapeType.Line, count * 2); - if (color === null) - color = this.color; - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - offset <<= 1; - count <<= 1; - var firstX = polygonVertices[offset]; - var firstY = polygonVertices[offset + 1]; - var last = offset + count; - for (var i = offset, n = offset + count - 2; i < n; i += 2) { - var x1 = polygonVertices[i]; - var y1 = polygonVertices[i + 1]; - var x2 = 0; - var y2 = 0; - if (i + 2 >= last) { - x2 = firstX; - y2 = firstY; - } - else { - x2 = polygonVertices[i + 2]; - y2 = polygonVertices[i + 3]; - } - this.vertex(x1, y1, color); - this.vertex(x2, y2, color); - } - }; - ShapeRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { - if (color === void 0) { color = null; } - if (segments === void 0) { segments = 0; } - if (segments === 0) - segments = Math.max(1, (6 * spine.MathUtils.cbrt(radius)) | 0); - if (segments <= 0) - throw new Error("segments must be > 0."); - if (color === null) - color = this.color; - var angle = 2 * spine.MathUtils.PI / segments; - var cos = Math.cos(angle); - var sin = Math.sin(angle); - var cx = radius, cy = 0; - if (!filled) { - this.check(ShapeType.Line, segments * 2 + 2); - for (var i = 0; i < segments; i++) { - this.vertex(x + cx, y + cy, color); - var temp_1 = cx; - cx = cos * cx - sin * cy; - cy = sin * temp_1 + cos * cy; - this.vertex(x + cx, y + cy, color); - } - this.vertex(x + cx, y + cy, color); - } - else { - this.check(ShapeType.Filled, segments * 3 + 3); - segments--; - for (var i = 0; i < segments; i++) { - this.vertex(x, y, color); - this.vertex(x + cx, y + cy, color); - var temp_2 = cx; - cx = cos * cx - sin * cy; - cy = sin * temp_2 + cos * cy; - this.vertex(x + cx, y + cy, color); - } - this.vertex(x, y, color); - this.vertex(x + cx, y + cy, color); - } - var temp = cx; - cx = radius; - cy = 0; - this.vertex(x + cx, y + cy, color); - }; - ShapeRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { - if (color === void 0) { color = null; } - this.check(ShapeType.Line, segments * 2 + 2); - if (color === null) - color = this.color; - var subdiv_step = 1 / segments; - var subdiv_step2 = subdiv_step * subdiv_step; - var subdiv_step3 = subdiv_step * subdiv_step * subdiv_step; - var pre1 = 3 * subdiv_step; - var pre2 = 3 * subdiv_step2; - var pre4 = 6 * subdiv_step2; - var pre5 = 6 * subdiv_step3; - var tmp1x = x1 - cx1 * 2 + cx2; - var tmp1y = y1 - cy1 * 2 + cy2; - var tmp2x = (cx1 - cx2) * 3 - x1 + x2; - var tmp2y = (cy1 - cy2) * 3 - y1 + y2; - var fx = x1; - var fy = y1; - var dfx = (cx1 - x1) * pre1 + tmp1x * pre2 + tmp2x * subdiv_step3; - var dfy = (cy1 - y1) * pre1 + tmp1y * pre2 + tmp2y * subdiv_step3; - var ddfx = tmp1x * pre4 + tmp2x * pre5; - var ddfy = tmp1y * pre4 + tmp2y * pre5; - var dddfx = tmp2x * pre5; - var dddfy = tmp2y * pre5; - while (segments-- > 0) { - this.vertex(fx, fy, color); - fx += dfx; - fy += dfy; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - this.vertex(fx, fy, color); - } - this.vertex(fx, fy, color); - this.vertex(x2, y2, color); - }; - ShapeRenderer.prototype.vertex = function (x, y, color) { - var idx = this.vertexIndex; - var vertices = this.mesh.getVertices(); - vertices[idx++] = x; - vertices[idx++] = y; - vertices[idx++] = color.r; - vertices[idx++] = color.g; - vertices[idx++] = color.b; - vertices[idx++] = color.a; - this.vertexIndex = idx; - }; - ShapeRenderer.prototype.end = function () { - if (!this.isDrawing) - throw new Error("ShapeRenderer.begin() has not been called"); - this.flush(); - this.context.gl.disable(this.context.gl.BLEND); - this.isDrawing = false; - }; - ShapeRenderer.prototype.flush = function () { - if (this.vertexIndex == 0) - return; - this.mesh.setVerticesLength(this.vertexIndex); - this.mesh.draw(this.shader, this.shapeType); - this.vertexIndex = 0; - }; - ShapeRenderer.prototype.check = function (shapeType, numVertices) { - if (!this.isDrawing) - throw new Error("ShapeRenderer.begin() has not been called"); - if (this.shapeType == shapeType) { - if (this.mesh.maxVertices() - this.mesh.numVertices() < numVertices) - this.flush(); - else - return; - } - else { - this.flush(); - this.shapeType = shapeType; - } - }; - ShapeRenderer.prototype.dispose = function () { - this.mesh.dispose(); - }; - return ShapeRenderer; - }()); - webgl.ShapeRenderer = ShapeRenderer; - (function (ShapeType) { - ShapeType[ShapeType["Point"] = 0] = "Point"; - ShapeType[ShapeType["Line"] = 1] = "Line"; - ShapeType[ShapeType["Filled"] = 4] = "Filled"; - })(webgl.ShapeType || (webgl.ShapeType = {})); - var ShapeType = webgl.ShapeType; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var ShapeRenderer = (function () { + function ShapeRenderer(context, maxVertices) { + if (maxVertices === void 0) { maxVertices = 10920; } + this.isDrawing = false; + this.shapeType = ShapeType.Filled; + this.color = new spine.Color(1, 1, 1, 1); + this.vertexIndex = 0; + this.tmp = new spine.Vector2(); + if (maxVertices > 10920) + throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.mesh = new webgl.Mesh(context, [new webgl.Position2Attribute(), new webgl.ColorAttribute()], maxVertices, 0); + this.srcBlend = this.context.gl.SRC_ALPHA; + this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; + } + ShapeRenderer.prototype.begin = function (shader) { + if (this.isDrawing) + throw new Error("ShapeRenderer.begin() has already been called"); + this.shader = shader; + this.vertexIndex = 0; + this.isDrawing = true; + var gl = this.context.gl; + gl.enable(gl.BLEND); + gl.blendFunc(this.srcBlend, this.dstBlend); + }; + ShapeRenderer.prototype.setBlendMode = function (srcBlend, dstBlend) { + var gl = this.context.gl; + this.srcBlend = srcBlend; + this.dstBlend = dstBlend; + if (this.isDrawing) { + this.flush(); + gl.blendFunc(this.srcBlend, this.dstBlend); + } + }; + ShapeRenderer.prototype.setColor = function (color) { + this.color.setFromColor(color); + }; + ShapeRenderer.prototype.setColorWith = function (r, g, b, a) { + this.color.set(r, g, b, a); + }; + ShapeRenderer.prototype.point = function (x, y, color) { + if (color === void 0) { color = null; } + this.check(ShapeType.Point, 1); + if (color === null) + color = this.color; + this.vertex(x, y, color); + }; + ShapeRenderer.prototype.line = function (x, y, x2, y2, color) { + if (color === void 0) { color = null; } + this.check(ShapeType.Line, 2); + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + if (color === null) + color = this.color; + this.vertex(x, y, color); + this.vertex(x2, y2, color); + }; + ShapeRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + if (color === null) + color = this.color; + if (color2 === null) + color2 = this.color; + if (color3 === null) + color3 = this.color; + if (filled) { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x3, y3, color3); + } + else { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x2, y2, color); + this.vertex(x3, y3, color2); + this.vertex(x3, y3, color); + this.vertex(x, y, color2); + } + }; + ShapeRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + if (color4 === void 0) { color4 = null; } + this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + if (color === null) + color = this.color; + if (color2 === null) + color2 = this.color; + if (color3 === null) + color3 = this.color; + if (color4 === null) + color4 = this.color; + if (filled) { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x3, y3, color3); + this.vertex(x3, y3, color3); + this.vertex(x4, y4, color4); + this.vertex(x, y, color); + } + else { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x2, y2, color2); + this.vertex(x3, y3, color3); + this.vertex(x3, y3, color3); + this.vertex(x4, y4, color4); + this.vertex(x4, y4, color4); + this.vertex(x, y, color); + } + }; + ShapeRenderer.prototype.rect = function (filled, x, y, width, height, color) { + if (color === void 0) { color = null; } + this.quad(filled, x, y, x + width, y, x + width, y + height, x, y + height, color, color, color, color); + }; + ShapeRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { + if (color === void 0) { color = null; } + this.check(filled ? ShapeType.Filled : ShapeType.Line, 8); + if (color === null) + color = this.color; + var t = this.tmp.set(y2 - y1, x1 - x2); + t.normalize(); + width *= 0.5; + var tx = t.x * width; + var ty = t.y * width; + if (!filled) { + this.vertex(x1 + tx, y1 + ty, color); + this.vertex(x1 - tx, y1 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x2 - tx, y2 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x1 + tx, y1 + ty, color); + this.vertex(x2 - tx, y2 - ty, color); + this.vertex(x1 - tx, y1 - ty, color); + } + else { + this.vertex(x1 + tx, y1 + ty, color); + this.vertex(x1 - tx, y1 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x2 - tx, y2 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x1 - tx, y1 - ty, color); + } + }; + ShapeRenderer.prototype.x = function (x, y, size) { + this.line(x - size, y - size, x + size, y + size); + this.line(x - size, y + size, x + size, y - size); + }; + ShapeRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { + if (color === void 0) { color = null; } + if (count < 3) + throw new Error("Polygon must contain at least 3 vertices"); + this.check(ShapeType.Line, count * 2); + if (color === null) + color = this.color; + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + offset <<= 1; + count <<= 1; + var firstX = polygonVertices[offset]; + var firstY = polygonVertices[offset + 1]; + var last = offset + count; + for (var i = offset, n = offset + count - 2; i < n; i += 2) { + var x1 = polygonVertices[i]; + var y1 = polygonVertices[i + 1]; + var x2 = 0; + var y2 = 0; + if (i + 2 >= last) { + x2 = firstX; + y2 = firstY; + } + else { + x2 = polygonVertices[i + 2]; + y2 = polygonVertices[i + 3]; + } + this.vertex(x1, y1, color); + this.vertex(x2, y2, color); + } + }; + ShapeRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { + if (color === void 0) { color = null; } + if (segments === void 0) { segments = 0; } + if (segments === 0) + segments = Math.max(1, (6 * spine.MathUtils.cbrt(radius)) | 0); + if (segments <= 0) + throw new Error("segments must be > 0."); + if (color === null) + color = this.color; + var angle = 2 * spine.MathUtils.PI / segments; + var cos = Math.cos(angle); + var sin = Math.sin(angle); + var cx = radius, cy = 0; + if (!filled) { + this.check(ShapeType.Line, segments * 2 + 2); + for (var i = 0; i < segments; i++) { + this.vertex(x + cx, y + cy, color); + var temp_1 = cx; + cx = cos * cx - sin * cy; + cy = sin * temp_1 + cos * cy; + this.vertex(x + cx, y + cy, color); + } + this.vertex(x + cx, y + cy, color); + } + else { + this.check(ShapeType.Filled, segments * 3 + 3); + segments--; + for (var i = 0; i < segments; i++) { + this.vertex(x, y, color); + this.vertex(x + cx, y + cy, color); + var temp_2 = cx; + cx = cos * cx - sin * cy; + cy = sin * temp_2 + cos * cy; + this.vertex(x + cx, y + cy, color); + } + this.vertex(x, y, color); + this.vertex(x + cx, y + cy, color); + } + var temp = cx; + cx = radius; + cy = 0; + this.vertex(x + cx, y + cy, color); + }; + ShapeRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { + if (color === void 0) { color = null; } + this.check(ShapeType.Line, segments * 2 + 2); + if (color === null) + color = this.color; + var subdiv_step = 1 / segments; + var subdiv_step2 = subdiv_step * subdiv_step; + var subdiv_step3 = subdiv_step * subdiv_step * subdiv_step; + var pre1 = 3 * subdiv_step; + var pre2 = 3 * subdiv_step2; + var pre4 = 6 * subdiv_step2; + var pre5 = 6 * subdiv_step3; + var tmp1x = x1 - cx1 * 2 + cx2; + var tmp1y = y1 - cy1 * 2 + cy2; + var tmp2x = (cx1 - cx2) * 3 - x1 + x2; + var tmp2y = (cy1 - cy2) * 3 - y1 + y2; + var fx = x1; + var fy = y1; + var dfx = (cx1 - x1) * pre1 + tmp1x * pre2 + tmp2x * subdiv_step3; + var dfy = (cy1 - y1) * pre1 + tmp1y * pre2 + tmp2y * subdiv_step3; + var ddfx = tmp1x * pre4 + tmp2x * pre5; + var ddfy = tmp1y * pre4 + tmp2y * pre5; + var dddfx = tmp2x * pre5; + var dddfy = tmp2y * pre5; + while (segments-- > 0) { + this.vertex(fx, fy, color); + fx += dfx; + fy += dfy; + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + this.vertex(fx, fy, color); + } + this.vertex(fx, fy, color); + this.vertex(x2, y2, color); + }; + ShapeRenderer.prototype.vertex = function (x, y, color) { + var idx = this.vertexIndex; + var vertices = this.mesh.getVertices(); + vertices[idx++] = x; + vertices[idx++] = y; + vertices[idx++] = color.r; + vertices[idx++] = color.g; + vertices[idx++] = color.b; + vertices[idx++] = color.a; + this.vertexIndex = idx; + }; + ShapeRenderer.prototype.end = function () { + if (!this.isDrawing) + throw new Error("ShapeRenderer.begin() has not been called"); + this.flush(); + this.context.gl.disable(this.context.gl.BLEND); + this.isDrawing = false; + }; + ShapeRenderer.prototype.flush = function () { + if (this.vertexIndex == 0) + return; + this.mesh.setVerticesLength(this.vertexIndex); + this.mesh.draw(this.shader, this.shapeType); + this.vertexIndex = 0; + }; + ShapeRenderer.prototype.check = function (shapeType, numVertices) { + if (!this.isDrawing) + throw new Error("ShapeRenderer.begin() has not been called"); + if (this.shapeType == shapeType) { + if (this.mesh.maxVertices() - this.mesh.numVertices() < numVertices) + this.flush(); + else + return; + } + else { + this.flush(); + this.shapeType = shapeType; + } + }; + ShapeRenderer.prototype.dispose = function () { + this.mesh.dispose(); + }; + return ShapeRenderer; + }()); + webgl.ShapeRenderer = ShapeRenderer; + (function (ShapeType) { + ShapeType[ShapeType["Point"] = 0] = "Point"; + ShapeType[ShapeType["Line"] = 1] = "Line"; + ShapeType[ShapeType["Filled"] = 4] = "Filled"; + })(webgl.ShapeType || (webgl.ShapeType = {})); + var ShapeType = webgl.ShapeType; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var SkeletonDebugRenderer = (function () { - function SkeletonDebugRenderer(context) { - this.boneLineColor = new spine.Color(1, 0, 0, 1); - this.boneOriginColor = new spine.Color(0, 1, 0, 1); - this.attachmentLineColor = new spine.Color(0, 0, 1, 0.5); - this.triangleLineColor = new spine.Color(1, 0.64, 0, 0.5); - this.pathColor = new spine.Color().setFromString("FF7F00"); - this.clipColor = new spine.Color(0.8, 0, 0, 2); - this.aabbColor = new spine.Color(0, 1, 0, 0.5); - this.drawBones = true; - this.drawRegionAttachments = true; - this.drawBoundingBoxes = true; - this.drawMeshHull = true; - this.drawMeshTriangles = true; - this.drawPaths = true; - this.drawSkeletonXY = false; - this.drawClipping = true; - this.premultipliedAlpha = false; - this.scale = 1; - this.boneWidth = 2; - this.bounds = new spine.SkeletonBounds(); - this.temp = new Array(); - this.vertices = spine.Utils.newFloatArray(2 * 1024); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - } - SkeletonDebugRenderer.prototype.draw = function (shapes, skeleton, ignoredBones) { - if (ignoredBones === void 0) { ignoredBones = null; } - var skeletonX = skeleton.x; - var skeletonY = skeleton.y; - var gl = this.context.gl; - var srcFunc = this.premultipliedAlpha ? gl.ONE : gl.SRC_ALPHA; - shapes.setBlendMode(srcFunc, gl.ONE_MINUS_SRC_ALPHA); - var bones = skeleton.bones; - if (this.drawBones) { - shapes.setColor(this.boneLineColor); - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) - continue; - if (bone.parent == null) - continue; - var x = skeletonX + bone.data.length * bone.a + bone.worldX; - var y = skeletonY + bone.data.length * bone.c + bone.worldY; - shapes.rectLine(true, skeletonX + bone.worldX, skeletonY + bone.worldY, x, y, this.boneWidth * this.scale); - } - if (this.drawSkeletonXY) - shapes.x(skeletonX, skeletonY, 4 * this.scale); - } - if (this.drawRegionAttachments) { - shapes.setColor(this.attachmentLineColor); - var slots = skeleton.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.RegionAttachment) { - var regionAttachment = attachment; - var vertices = this.vertices; - regionAttachment.computeWorldVertices(slot.bone, vertices, 0, 2); - shapes.line(vertices[0], vertices[1], vertices[2], vertices[3]); - shapes.line(vertices[2], vertices[3], vertices[4], vertices[5]); - shapes.line(vertices[4], vertices[5], vertices[6], vertices[7]); - shapes.line(vertices[6], vertices[7], vertices[0], vertices[1]); - } - } - } - if (this.drawMeshHull || this.drawMeshTriangles) { - var slots = skeleton.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (!(attachment instanceof spine.MeshAttachment)) - continue; - var mesh = attachment; - var vertices = this.vertices; - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, 2); - var triangles = mesh.triangles; - var hullLength = mesh.hullLength; - if (this.drawMeshTriangles) { - shapes.setColor(this.triangleLineColor); - for (var ii = 0, nn = triangles.length; ii < nn; ii += 3) { - var v1 = triangles[ii] * 2, v2 = triangles[ii + 1] * 2, v3 = triangles[ii + 2] * 2; - shapes.triangle(false, vertices[v1], vertices[v1 + 1], vertices[v2], vertices[v2 + 1], vertices[v3], vertices[v3 + 1]); - } - } - if (this.drawMeshHull && hullLength > 0) { - shapes.setColor(this.attachmentLineColor); - hullLength = (hullLength >> 1) * 2; - var lastX = vertices[hullLength - 2], lastY = vertices[hullLength - 1]; - for (var ii = 0, nn = hullLength; ii < nn; ii += 2) { - var x = vertices[ii], y = vertices[ii + 1]; - shapes.line(x, y, lastX, lastY); - lastX = x; - lastY = y; - } - } - } - } - if (this.drawBoundingBoxes) { - var bounds = this.bounds; - bounds.update(skeleton, true); - shapes.setColor(this.aabbColor); - shapes.rect(false, bounds.minX, bounds.minY, bounds.getWidth(), bounds.getHeight()); - var polygons = bounds.polygons; - var boxes = bounds.boundingBoxes; - for (var i = 0, n = polygons.length; i < n; i++) { - var polygon = polygons[i]; - shapes.setColor(boxes[i].color); - shapes.polygon(polygon, 0, polygon.length); - } - } - if (this.drawPaths) { - var slots = skeleton.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (!(attachment instanceof spine.PathAttachment)) - continue; - var path = attachment; - var nn = path.worldVerticesLength; - var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); - path.computeWorldVertices(slot, 0, nn, world, 0, 2); - var color = this.pathColor; - var x1 = world[2], y1 = world[3], x2 = 0, y2 = 0; - if (path.closed) { - shapes.setColor(color); - var cx1 = world[0], cy1 = world[1], cx2 = world[nn - 2], cy2 = world[nn - 1]; - x2 = world[nn - 4]; - y2 = world[nn - 3]; - shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); - shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); - shapes.line(x1, y1, cx1, cy1); - shapes.line(x2, y2, cx2, cy2); - } - nn -= 4; - for (var ii = 4; ii < nn; ii += 6) { - var cx1 = world[ii], cy1 = world[ii + 1], cx2 = world[ii + 2], cy2 = world[ii + 3]; - x2 = world[ii + 4]; - y2 = world[ii + 5]; - shapes.setColor(color); - shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); - shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); - shapes.line(x1, y1, cx1, cy1); - shapes.line(x2, y2, cx2, cy2); - x1 = x2; - y1 = y2; - } - } - } - if (this.drawBones) { - shapes.setColor(this.boneOriginColor); - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) - continue; - shapes.circle(true, skeletonX + bone.worldX, skeletonY + bone.worldY, 3 * this.scale, SkeletonDebugRenderer.GREEN, 8); - } - } - if (this.drawClipping) { - var slots = skeleton.slots; - shapes.setColor(this.clipColor); - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (!(attachment instanceof spine.ClippingAttachment)) - continue; - var clip = attachment; - var nn = clip.worldVerticesLength; - var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); - clip.computeWorldVertices(slot, 0, nn, world, 0, 2); - for (var i_5 = 0, n_3 = world.length; i_5 < n_3; i_5 += 2) { - var x = world[i_5]; - var y = world[i_5 + 1]; - var x2 = world[(i_5 + 2) % world.length]; - var y2 = world[(i_5 + 3) % world.length]; - shapes.line(x, y, x2, y2); - } - } - } - }; - SkeletonDebugRenderer.prototype.dispose = function () { - }; - SkeletonDebugRenderer.LIGHT_GRAY = new spine.Color(192 / 255, 192 / 255, 192 / 255, 1); - SkeletonDebugRenderer.GREEN = new spine.Color(0, 1, 0, 1); - return SkeletonDebugRenderer; - }()); - webgl.SkeletonDebugRenderer = SkeletonDebugRenderer; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var SkeletonDebugRenderer = (function () { + function SkeletonDebugRenderer(context) { + this.boneLineColor = new spine.Color(1, 0, 0, 1); + this.boneOriginColor = new spine.Color(0, 1, 0, 1); + this.attachmentLineColor = new spine.Color(0, 0, 1, 0.5); + this.triangleLineColor = new spine.Color(1, 0.64, 0, 0.5); + this.pathColor = new spine.Color().setFromString("FF7F00"); + this.clipColor = new spine.Color(0.8, 0, 0, 2); + this.aabbColor = new spine.Color(0, 1, 0, 0.5); + this.drawBones = true; + this.drawRegionAttachments = true; + this.drawBoundingBoxes = true; + this.drawMeshHull = true; + this.drawMeshTriangles = true; + this.drawPaths = true; + this.drawSkeletonXY = false; + this.drawClipping = true; + this.premultipliedAlpha = false; + this.scale = 1; + this.boneWidth = 2; + this.bounds = new spine.SkeletonBounds(); + this.temp = new Array(); + this.vertices = spine.Utils.newFloatArray(2 * 1024); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + } + SkeletonDebugRenderer.prototype.draw = function (shapes, skeleton, ignoredBones) { + if (ignoredBones === void 0) { ignoredBones = null; } + var skeletonX = skeleton.x; + var skeletonY = skeleton.y; + var gl = this.context.gl; + var srcFunc = this.premultipliedAlpha ? gl.ONE : gl.SRC_ALPHA; + shapes.setBlendMode(srcFunc, gl.ONE_MINUS_SRC_ALPHA); + var bones = skeleton.bones; + if (this.drawBones) { + shapes.setColor(this.boneLineColor); + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) + continue; + if (bone.parent == null) + continue; + var x = skeletonX + bone.data.length * bone.a + bone.worldX; + var y = skeletonY + bone.data.length * bone.c + bone.worldY; + shapes.rectLine(true, skeletonX + bone.worldX, skeletonY + bone.worldY, x, y, this.boneWidth * this.scale); + } + if (this.drawSkeletonXY) + shapes.x(skeletonX, skeletonY, 4 * this.scale); + } + if (this.drawRegionAttachments) { + shapes.setColor(this.attachmentLineColor); + var slots = skeleton.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.RegionAttachment) { + var regionAttachment = attachment; + var vertices = this.vertices; + regionAttachment.computeWorldVertices(slot.bone, vertices, 0, 2); + shapes.line(vertices[0], vertices[1], vertices[2], vertices[3]); + shapes.line(vertices[2], vertices[3], vertices[4], vertices[5]); + shapes.line(vertices[4], vertices[5], vertices[6], vertices[7]); + shapes.line(vertices[6], vertices[7], vertices[0], vertices[1]); + } + } + } + if (this.drawMeshHull || this.drawMeshTriangles) { + var slots = skeleton.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (!(attachment instanceof spine.MeshAttachment)) + continue; + var mesh = attachment; + var vertices = this.vertices; + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, 2); + var triangles = mesh.triangles; + var hullLength = mesh.hullLength; + if (this.drawMeshTriangles) { + shapes.setColor(this.triangleLineColor); + for (var ii = 0, nn = triangles.length; ii < nn; ii += 3) { + var v1 = triangles[ii] * 2, v2 = triangles[ii + 1] * 2, v3 = triangles[ii + 2] * 2; + shapes.triangle(false, vertices[v1], vertices[v1 + 1], vertices[v2], vertices[v2 + 1], vertices[v3], vertices[v3 + 1]); + } + } + if (this.drawMeshHull && hullLength > 0) { + shapes.setColor(this.attachmentLineColor); + hullLength = (hullLength >> 1) * 2; + var lastX = vertices[hullLength - 2], lastY = vertices[hullLength - 1]; + for (var ii = 0, nn = hullLength; ii < nn; ii += 2) { + var x = vertices[ii], y = vertices[ii + 1]; + shapes.line(x, y, lastX, lastY); + lastX = x; + lastY = y; + } + } + } + } + if (this.drawBoundingBoxes) { + var bounds = this.bounds; + bounds.update(skeleton, true); + shapes.setColor(this.aabbColor); + shapes.rect(false, bounds.minX, bounds.minY, bounds.getWidth(), bounds.getHeight()); + var polygons = bounds.polygons; + var boxes = bounds.boundingBoxes; + for (var i = 0, n = polygons.length; i < n; i++) { + var polygon = polygons[i]; + shapes.setColor(boxes[i].color); + shapes.polygon(polygon, 0, polygon.length); + } + } + if (this.drawPaths) { + var slots = skeleton.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (!(attachment instanceof spine.PathAttachment)) + continue; + var path = attachment; + var nn = path.worldVerticesLength; + var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); + path.computeWorldVertices(slot, 0, nn, world, 0, 2); + var color = this.pathColor; + var x1 = world[2], y1 = world[3], x2 = 0, y2 = 0; + if (path.closed) { + shapes.setColor(color); + var cx1 = world[0], cy1 = world[1], cx2 = world[nn - 2], cy2 = world[nn - 1]; + x2 = world[nn - 4]; + y2 = world[nn - 3]; + shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); + shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); + shapes.line(x1, y1, cx1, cy1); + shapes.line(x2, y2, cx2, cy2); + } + nn -= 4; + for (var ii = 4; ii < nn; ii += 6) { + var cx1 = world[ii], cy1 = world[ii + 1], cx2 = world[ii + 2], cy2 = world[ii + 3]; + x2 = world[ii + 4]; + y2 = world[ii + 5]; + shapes.setColor(color); + shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); + shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); + shapes.line(x1, y1, cx1, cy1); + shapes.line(x2, y2, cx2, cy2); + x1 = x2; + y1 = y2; + } + } + } + if (this.drawBones) { + shapes.setColor(this.boneOriginColor); + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) + continue; + shapes.circle(true, skeletonX + bone.worldX, skeletonY + bone.worldY, 3 * this.scale, SkeletonDebugRenderer.GREEN, 8); + } + } + if (this.drawClipping) { + var slots = skeleton.slots; + shapes.setColor(this.clipColor); + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (!(attachment instanceof spine.ClippingAttachment)) + continue; + var clip = attachment; + var nn = clip.worldVerticesLength; + var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); + clip.computeWorldVertices(slot, 0, nn, world, 0, 2); + for (var i_5 = 0, n_3 = world.length; i_5 < n_3; i_5 += 2) { + var x = world[i_5]; + var y = world[i_5 + 1]; + var x2 = world[(i_5 + 2) % world.length]; + var y2 = world[(i_5 + 3) % world.length]; + shapes.line(x, y, x2, y2); + } + } + } + }; + SkeletonDebugRenderer.prototype.dispose = function () { + }; + SkeletonDebugRenderer.LIGHT_GRAY = new spine.Color(192 / 255, 192 / 255, 192 / 255, 1); + SkeletonDebugRenderer.GREEN = new spine.Color(0, 1, 0, 1); + return SkeletonDebugRenderer; + }()); + webgl.SkeletonDebugRenderer = SkeletonDebugRenderer; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Renderable = (function () { - function Renderable(vertices, numVertices, numFloats) { - this.vertices = vertices; - this.numVertices = numVertices; - this.numFloats = numFloats; - } - return Renderable; - }()); - ; - var SkeletonRenderer = (function () { - function SkeletonRenderer(context, twoColorTint) { - if (twoColorTint === void 0) { twoColorTint = true; } - this.premultipliedAlpha = false; - this.tempColor = new spine.Color(); - this.tempColor2 = new spine.Color(); - this.vertexSize = 2 + 2 + 4; - this.twoColorTint = false; - this.renderable = new Renderable(null, 0, 0); - this.clipper = new spine.SkeletonClipping(); - this.twoColorTint = twoColorTint; - if (twoColorTint) - this.vertexSize += 4; - this.vertices = spine.Utils.newFloatArray(this.vertexSize * 1024); - } - SkeletonRenderer.prototype.draw = function (batcher, skeleton) { - var clipper = this.clipper; - var premultipliedAlpha = this.premultipliedAlpha; - var twoColorTint = this.twoColorTint; - var blendMode = null; - var renderable = this.renderable; - var uvs = null; - var triangles = null; - var drawOrder = skeleton.drawOrder; - var attachmentColor = null; - var skeletonColor = skeleton.color; - var vertexSize = twoColorTint ? 12 : 8; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var clippedVertexSize = clipper.isClipping() ? 2 : vertexSize; - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var texture = null; - if (attachment instanceof spine.RegionAttachment) { - var region = attachment; - renderable.vertices = this.vertices; - renderable.numVertices = 4; - renderable.numFloats = clippedVertexSize << 2; - region.computeWorldVertices(slot.bone, renderable.vertices, 0, clippedVertexSize); - triangles = SkeletonRenderer.QUAD_TRIANGLES; - uvs = region.uvs; - texture = region.region.renderObject.texture; - attachmentColor = region.color; - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - renderable.vertices = this.vertices; - renderable.numVertices = (mesh.worldVerticesLength >> 1); - renderable.numFloats = renderable.numVertices * clippedVertexSize; - if (renderable.numFloats > renderable.vertices.length) { - renderable.vertices = this.vertices = spine.Utils.newFloatArray(renderable.numFloats); - } - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, renderable.vertices, 0, clippedVertexSize); - triangles = mesh.triangles; - texture = mesh.region.renderObject.texture; - uvs = mesh.uvs; - attachmentColor = mesh.color; - } - else if (attachment instanceof spine.ClippingAttachment) { - var clip = (attachment); - clipper.clipStart(slot, clip); - continue; - } - else - continue; - if (texture != null) { - var slotColor = slot.color; - var finalColor = this.tempColor; - finalColor.r = skeletonColor.r * slotColor.r * attachmentColor.r; - finalColor.g = skeletonColor.g * slotColor.g * attachmentColor.g; - finalColor.b = skeletonColor.b * slotColor.b * attachmentColor.b; - finalColor.a = skeletonColor.a * slotColor.a * attachmentColor.a; - if (premultipliedAlpha) { - finalColor.r *= finalColor.a; - finalColor.g *= finalColor.a; - finalColor.b *= finalColor.a; - } - var darkColor = this.tempColor2; - if (slot.darkColor == null) - darkColor.set(0, 0, 0, 1); - else - darkColor.setFromColor(slot.darkColor); - var slotBlendMode = slot.data.blendMode; - if (slotBlendMode != blendMode) { - blendMode = slotBlendMode; - batcher.setBlendMode(webgl.WebGLBlendModeConverter.getSourceGLBlendMode(blendMode, premultipliedAlpha), webgl.WebGLBlendModeConverter.getDestGLBlendMode(blendMode)); - } - if (clipper.isClipping()) { - clipper.clipTriangles(renderable.vertices, renderable.numFloats, triangles, triangles.length, uvs, finalColor, darkColor, twoColorTint); - var clippedVertices = new Float32Array(clipper.clippedVertices); - var clippedTriangles = clipper.clippedTriangles; - batcher.draw(texture, clippedVertices, clippedTriangles); - } - else { - var verts = renderable.vertices; - if (!twoColorTint) { - for (var v = 2, u = 0, n_4 = renderable.numFloats; v < n_4; v += vertexSize, u += 2) { - verts[v] = finalColor.r; - verts[v + 1] = finalColor.g; - verts[v + 2] = finalColor.b; - verts[v + 3] = finalColor.a; - verts[v + 4] = uvs[u]; - verts[v + 5] = uvs[u + 1]; - } - } - else { - for (var v = 2, u = 0, n_5 = renderable.numFloats; v < n_5; v += vertexSize, u += 2) { - verts[v] = finalColor.r; - verts[v + 1] = finalColor.g; - verts[v + 2] = finalColor.b; - verts[v + 3] = finalColor.a; - verts[v + 4] = uvs[u]; - verts[v + 5] = uvs[u + 1]; - verts[v + 6] = darkColor.r; - verts[v + 7] = darkColor.g; - verts[v + 8] = darkColor.b; - verts[v + 9] = darkColor.a; - } - } - var view = renderable.vertices.subarray(0, renderable.numFloats); - batcher.draw(texture, view, triangles); - } - } - clipper.clipEndWithSlot(slot); - } - clipper.clipEnd(); - }; - SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - return SkeletonRenderer; - }()); - webgl.SkeletonRenderer = SkeletonRenderer; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Renderable = (function () { + function Renderable(vertices, numVertices, numFloats) { + this.vertices = vertices; + this.numVertices = numVertices; + this.numFloats = numFloats; + } + return Renderable; + }()); + ; + var SkeletonRenderer = (function () { + function SkeletonRenderer(context, twoColorTint) { + if (twoColorTint === void 0) { twoColorTint = true; } + this.premultipliedAlpha = false; + this.tempColor = new spine.Color(); + this.tempColor2 = new spine.Color(); + this.vertexSize = 2 + 2 + 4; + this.twoColorTint = false; + this.renderable = new Renderable(null, 0, 0); + this.clipper = new spine.SkeletonClipping(); + this.twoColorTint = twoColorTint; + if (twoColorTint) + this.vertexSize += 4; + this.vertices = spine.Utils.newFloatArray(this.vertexSize * 1024); + } + SkeletonRenderer.prototype.draw = function (batcher, skeleton) { + var clipper = this.clipper; + var premultipliedAlpha = this.premultipliedAlpha; + var twoColorTint = this.twoColorTint; + var blendMode = null; + var renderable = this.renderable; + var uvs = null; + var triangles = null; + var drawOrder = skeleton.drawOrder; + var attachmentColor = null; + var skeletonColor = skeleton.color; + var vertexSize = twoColorTint ? 12 : 8; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var clippedVertexSize = clipper.isClipping() ? 2 : vertexSize; + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var texture = null; + if (attachment instanceof spine.RegionAttachment) { + var region = attachment; + renderable.vertices = this.vertices; + renderable.numVertices = 4; + renderable.numFloats = clippedVertexSize << 2; + region.computeWorldVertices(slot.bone, renderable.vertices, 0, clippedVertexSize); + triangles = SkeletonRenderer.QUAD_TRIANGLES; + uvs = region.uvs; + texture = region.region.renderObject.texture; + attachmentColor = region.color; + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + renderable.vertices = this.vertices; + renderable.numVertices = (mesh.worldVerticesLength >> 1); + renderable.numFloats = renderable.numVertices * clippedVertexSize; + if (renderable.numFloats > renderable.vertices.length) { + renderable.vertices = this.vertices = spine.Utils.newFloatArray(renderable.numFloats); + } + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, renderable.vertices, 0, clippedVertexSize); + triangles = mesh.triangles; + texture = mesh.region.renderObject.texture; + uvs = mesh.uvs; + attachmentColor = mesh.color; + } + else if (attachment instanceof spine.ClippingAttachment) { + var clip = (attachment); + clipper.clipStart(slot, clip); + continue; + } + else + continue; + if (texture != null) { + var slotColor = slot.color; + var finalColor = this.tempColor; + finalColor.r = skeletonColor.r * slotColor.r * attachmentColor.r; + finalColor.g = skeletonColor.g * slotColor.g * attachmentColor.g; + finalColor.b = skeletonColor.b * slotColor.b * attachmentColor.b; + finalColor.a = skeletonColor.a * slotColor.a * attachmentColor.a; + if (premultipliedAlpha) { + finalColor.r *= finalColor.a; + finalColor.g *= finalColor.a; + finalColor.b *= finalColor.a; + } + var darkColor = this.tempColor2; + if (slot.darkColor == null) + darkColor.set(0, 0, 0, 1); + else + darkColor.setFromColor(slot.darkColor); + var slotBlendMode = slot.data.blendMode; + if (slotBlendMode != blendMode) { + blendMode = slotBlendMode; + batcher.setBlendMode(webgl.WebGLBlendModeConverter.getSourceGLBlendMode(blendMode, premultipliedAlpha), webgl.WebGLBlendModeConverter.getDestGLBlendMode(blendMode)); + } + if (clipper.isClipping()) { + clipper.clipTriangles(renderable.vertices, renderable.numFloats, triangles, triangles.length, uvs, finalColor, darkColor, twoColorTint); + var clippedVertices = new Float32Array(clipper.clippedVertices); + var clippedTriangles = clipper.clippedTriangles; + batcher.draw(texture, clippedVertices, clippedTriangles); + } + else { + var verts = renderable.vertices; + if (!twoColorTint) { + for (var v = 2, u = 0, n_4 = renderable.numFloats; v < n_4; v += vertexSize, u += 2) { + verts[v] = finalColor.r; + verts[v + 1] = finalColor.g; + verts[v + 2] = finalColor.b; + verts[v + 3] = finalColor.a; + verts[v + 4] = uvs[u]; + verts[v + 5] = uvs[u + 1]; + } + } + else { + for (var v = 2, u = 0, n_5 = renderable.numFloats; v < n_5; v += vertexSize, u += 2) { + verts[v] = finalColor.r; + verts[v + 1] = finalColor.g; + verts[v + 2] = finalColor.b; + verts[v + 3] = finalColor.a; + verts[v + 4] = uvs[u]; + verts[v + 5] = uvs[u + 1]; + verts[v + 6] = darkColor.r; + verts[v + 7] = darkColor.g; + verts[v + 8] = darkColor.b; + verts[v + 9] = darkColor.a; + } + } + var view = renderable.vertices.subarray(0, renderable.numFloats); + batcher.draw(texture, view, triangles); + } + } + clipper.clipEndWithSlot(slot); + } + clipper.clipEnd(); + }; + SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + return SkeletonRenderer; + }()); + webgl.SkeletonRenderer = SkeletonRenderer; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Vector3 = (function () { - function Vector3(x, y, z) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - if (z === void 0) { z = 0; } - this.x = 0; - this.y = 0; - this.z = 0; - this.x = x; - this.y = y; - this.z = z; - } - Vector3.prototype.setFrom = function (v) { - this.x = v.x; - this.y = v.y; - this.z = v.z; - return this; - }; - Vector3.prototype.set = function (x, y, z) { - this.x = x; - this.y = y; - this.z = z; - return this; - }; - Vector3.prototype.add = function (v) { - this.x += v.x; - this.y += v.y; - this.z += v.z; - return this; - }; - Vector3.prototype.sub = function (v) { - this.x -= v.x; - this.y -= v.y; - this.z -= v.z; - return this; - }; - Vector3.prototype.scale = function (s) { - this.x *= s; - this.y *= s; - this.z *= s; - return this; - }; - Vector3.prototype.normalize = function () { - var len = this.length(); - if (len == 0) - return this; - len = 1 / len; - this.x *= len; - this.y *= len; - this.z *= len; - return this; - }; - Vector3.prototype.cross = function (v) { - return this.set(this.y * v.z - this.z * v.y, this.z * v.x - this.x * v.z, this.x * v.y - this.y * v.x); - }; - Vector3.prototype.multiply = function (matrix) { - var l_mat = matrix.values; - return this.set(this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03], this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13], this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]); - }; - Vector3.prototype.project = function (matrix) { - var l_mat = matrix.values; - var l_w = 1 / (this.x * l_mat[webgl.M30] + this.y * l_mat[webgl.M31] + this.z * l_mat[webgl.M32] + l_mat[webgl.M33]); - return this.set((this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03]) * l_w, (this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13]) * l_w, (this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]) * l_w); - }; - Vector3.prototype.dot = function (v) { - return this.x * v.x + this.y * v.y + this.z * v.z; - }; - Vector3.prototype.length = function () { - return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); - }; - Vector3.prototype.distance = function (v) { - var a = v.x - this.x; - var b = v.y - this.y; - var c = v.z - this.z; - return Math.sqrt(a * a + b * b + c * c); - }; - return Vector3; - }()); - webgl.Vector3 = Vector3; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Vector3 = (function () { + function Vector3(x, y, z) { + if (x === void 0) { x = 0; } + if (y === void 0) { y = 0; } + if (z === void 0) { z = 0; } + this.x = 0; + this.y = 0; + this.z = 0; + this.x = x; + this.y = y; + this.z = z; + } + Vector3.prototype.setFrom = function (v) { + this.x = v.x; + this.y = v.y; + this.z = v.z; + return this; + }; + Vector3.prototype.set = function (x, y, z) { + this.x = x; + this.y = y; + this.z = z; + return this; + }; + Vector3.prototype.add = function (v) { + this.x += v.x; + this.y += v.y; + this.z += v.z; + return this; + }; + Vector3.prototype.sub = function (v) { + this.x -= v.x; + this.y -= v.y; + this.z -= v.z; + return this; + }; + Vector3.prototype.scale = function (s) { + this.x *= s; + this.y *= s; + this.z *= s; + return this; + }; + Vector3.prototype.normalize = function () { + var len = this.length(); + if (len == 0) + return this; + len = 1 / len; + this.x *= len; + this.y *= len; + this.z *= len; + return this; + }; + Vector3.prototype.cross = function (v) { + return this.set(this.y * v.z - this.z * v.y, this.z * v.x - this.x * v.z, this.x * v.y - this.y * v.x); + }; + Vector3.prototype.multiply = function (matrix) { + var l_mat = matrix.values; + return this.set(this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03], this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13], this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]); + }; + Vector3.prototype.project = function (matrix) { + var l_mat = matrix.values; + var l_w = 1 / (this.x * l_mat[webgl.M30] + this.y * l_mat[webgl.M31] + this.z * l_mat[webgl.M32] + l_mat[webgl.M33]); + return this.set((this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03]) * l_w, (this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13]) * l_w, (this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]) * l_w); + }; + Vector3.prototype.dot = function (v) { + return this.x * v.x + this.y * v.y + this.z * v.z; + }; + Vector3.prototype.length = function () { + return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); + }; + Vector3.prototype.distance = function (v) { + var a = v.x - this.x; + var b = v.y - this.y; + var c = v.z - this.z; + return Math.sqrt(a * a + b * b + c * c); + }; + return Vector3; + }()); + webgl.Vector3 = Vector3; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var ManagedWebGLRenderingContext = (function () { - function ManagedWebGLRenderingContext(canvasOrContext, contextConfig) { - var _this = this; - if (contextConfig === void 0) { contextConfig = { alpha: "true" }; } - this.restorables = new Array(); - if (canvasOrContext instanceof HTMLCanvasElement) { - var canvas_1 = canvasOrContext; - this.gl = (canvas_1.getContext("webgl", contextConfig) || canvas_1.getContext("experimental-webgl", contextConfig)); - this.canvas = canvas_1; - canvas_1.addEventListener("webglcontextlost", function (e) { - var event = e; - if (e) { - e.preventDefault(); - } - }); - canvas_1.addEventListener("webglcontextrestored", function (e) { - for (var i = 0, n = _this.restorables.length; i < n; i++) { - _this.restorables[i].restore(); - } - }); - } - else { - this.gl = canvasOrContext; - this.canvas = this.gl.canvas; - } - } - ManagedWebGLRenderingContext.prototype.addRestorable = function (restorable) { - this.restorables.push(restorable); - }; - ManagedWebGLRenderingContext.prototype.removeRestorable = function (restorable) { - var index = this.restorables.indexOf(restorable); - if (index > -1) - this.restorables.splice(index, 1); - }; - return ManagedWebGLRenderingContext; - }()); - webgl.ManagedWebGLRenderingContext = ManagedWebGLRenderingContext; - var WebGLBlendModeConverter = (function () { - function WebGLBlendModeConverter() { - } - WebGLBlendModeConverter.getDestGLBlendMode = function (blendMode) { - switch (blendMode) { - case spine.BlendMode.Normal: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; - case spine.BlendMode.Additive: return WebGLBlendModeConverter.ONE; - case spine.BlendMode.Multiply: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; - case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; - default: throw new Error("Unknown blend mode: " + blendMode); - } - }; - WebGLBlendModeConverter.getSourceGLBlendMode = function (blendMode, premultipliedAlpha) { - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - switch (blendMode) { - case spine.BlendMode.Normal: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; - case spine.BlendMode.Additive: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; - case spine.BlendMode.Multiply: return WebGLBlendModeConverter.DST_COLOR; - case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE; - default: throw new Error("Unknown blend mode: " + blendMode); - } - }; - WebGLBlendModeConverter.ZERO = 0; - WebGLBlendModeConverter.ONE = 1; - WebGLBlendModeConverter.SRC_COLOR = 0x0300; - WebGLBlendModeConverter.ONE_MINUS_SRC_COLOR = 0x0301; - WebGLBlendModeConverter.SRC_ALPHA = 0x0302; - WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA = 0x0303; - WebGLBlendModeConverter.DST_ALPHA = 0x0304; - WebGLBlendModeConverter.ONE_MINUS_DST_ALPHA = 0x0305; - WebGLBlendModeConverter.DST_COLOR = 0x0306; - return WebGLBlendModeConverter; - }()); - webgl.WebGLBlendModeConverter = WebGLBlendModeConverter; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var ManagedWebGLRenderingContext = (function () { + function ManagedWebGLRenderingContext(canvasOrContext, contextConfig) { + var _this = this; + if (contextConfig === void 0) { contextConfig = { alpha: "true" }; } + this.restorables = new Array(); + if (canvasOrContext instanceof HTMLCanvasElement) { + var canvas_1 = canvasOrContext; + this.gl = (canvas_1.getContext("webgl", contextConfig) || canvas_1.getContext("experimental-webgl", contextConfig)); + this.canvas = canvas_1; + canvas_1.addEventListener("webglcontextlost", function (e) { + var event = e; + if (e) { + e.preventDefault(); + } + }); + canvas_1.addEventListener("webglcontextrestored", function (e) { + for (var i = 0, n = _this.restorables.length; i < n; i++) { + _this.restorables[i].restore(); + } + }); + } + else { + this.gl = canvasOrContext; + this.canvas = this.gl.canvas; + } + } + ManagedWebGLRenderingContext.prototype.addRestorable = function (restorable) { + this.restorables.push(restorable); + }; + ManagedWebGLRenderingContext.prototype.removeRestorable = function (restorable) { + var index = this.restorables.indexOf(restorable); + if (index > -1) + this.restorables.splice(index, 1); + }; + return ManagedWebGLRenderingContext; + }()); + webgl.ManagedWebGLRenderingContext = ManagedWebGLRenderingContext; + var WebGLBlendModeConverter = (function () { + function WebGLBlendModeConverter() { + } + WebGLBlendModeConverter.getDestGLBlendMode = function (blendMode) { + switch (blendMode) { + case spine.BlendMode.Normal: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; + case spine.BlendMode.Additive: return WebGLBlendModeConverter.ONE; + case spine.BlendMode.Multiply: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; + case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; + default: throw new Error("Unknown blend mode: " + blendMode); + } + }; + WebGLBlendModeConverter.getSourceGLBlendMode = function (blendMode, premultipliedAlpha) { + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + switch (blendMode) { + case spine.BlendMode.Normal: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; + case spine.BlendMode.Additive: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; + case spine.BlendMode.Multiply: return WebGLBlendModeConverter.DST_COLOR; + case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE; + default: throw new Error("Unknown blend mode: " + blendMode); + } + }; + WebGLBlendModeConverter.ZERO = 0; + WebGLBlendModeConverter.ONE = 1; + WebGLBlendModeConverter.SRC_COLOR = 0x0300; + WebGLBlendModeConverter.ONE_MINUS_SRC_COLOR = 0x0301; + WebGLBlendModeConverter.SRC_ALPHA = 0x0302; + WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA = 0x0303; + WebGLBlendModeConverter.DST_ALPHA = 0x0304; + WebGLBlendModeConverter.ONE_MINUS_DST_ALPHA = 0x0305; + WebGLBlendModeConverter.DST_COLOR = 0x0306; + return WebGLBlendModeConverter; + }()); + webgl.WebGLBlendModeConverter = WebGLBlendModeConverter; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var SpineWidget = (function () { - function SpineWidget(element, config) { - var _this = this; - this.mvp = new spine.webgl.Matrix4(); - this.paused = false; - this.lastFrameTime = Date.now() / 1000.0; - this.backgroundColor = new spine.Color(); - this.loaded = false; - this.bounds = { offset: new spine.Vector2(), size: new spine.Vector2() }; - if (!element) - throw new Error("Please provide a DOM element, e.g. document.getElementById('myelement')"); - if (!config) - throw new Error("Please provide a configuration, specifying at least the json file, atlas file and animation name"); - var elementId = element; - if (typeof (element) === "string") - element = document.getElementById(element); - if (element == null) - throw new Error("Element " + elementId + " does not exist"); - this.validateConfig(config); - var existingCanvas = element.children[0]; - var canvas = this.canvas = existingCanvas || document.createElement("canvas"); - canvas.style.width = "100%"; - canvas.style.height = "100%"; - if (!existingCanvas) { - element.appendChild(canvas); - } - canvas.width = element.clientWidth; - canvas.height = element.clientHeight; - var webglConfig = { alpha: config.alpha }; - this.context = new spine.webgl.ManagedWebGLRenderingContext(canvas, webglConfig); - this.shader = spine.webgl.Shader.newTwoColoredTextured(this.context); - this.batcher = new spine.webgl.PolygonBatcher(this.context); - this.mvp.ortho2d(0, 0, canvas.width - 1, canvas.height - 1); - this.skeletonRenderer = new spine.webgl.SkeletonRenderer(this.context); - this.debugShader = spine.webgl.Shader.newColored(this.context); - this.debugRenderer = new spine.webgl.SkeletonDebugRenderer(this.context); - this.shapes = new spine.webgl.ShapeRenderer(this.context); - var assets = this.assetManager = new spine.webgl.AssetManager(this.context, config.imagesPath ? config.imagesPath : ""); - if (!config.atlasContent) { - assets.loadText(config.atlas); - } - if (!config.jsonContent) { - assets.loadText(config.json); - } - if (config.atlasPages == null) { - if (config.atlas) { - var atlasPage = config.atlas.replace(".atlas", ".png"); - if (atlasPage.lastIndexOf(config.imagesPath) == 0) { - atlasPage = atlasPage.substr(config.imagesPath.length); - } - assets.loadTexture(atlasPage); - } - else { - var firstLine = config.atlasContent.trim().split("\n")[0]; - assets.loadTexture(firstLine); - } - } - else { - for (var i = 0; i < config.atlasPages.length; i++) { - if (config.atlasPagesContent && config.atlasPagesContent[i]) { - assets.loadTextureData(config.atlasPages[i], config.atlasPagesContent[0]); - } - else { - assets.loadTexture(config.atlasPages[i]); - } - } - } - requestAnimationFrame(function () { _this.load(); }); - } - SpineWidget.prototype.validateConfig = function (config) { - if (!config.atlas && !config.atlasContent) - throw new Error("Please specify config.atlas or config.atlasContent"); - if (!config.json && !config.jsonContent) - throw new Error("Please specify config.json or config.jsonContent"); - if (!config.animation) - throw new Error("Please specify config.animationName"); - if (!config.scale) - config.scale = 1.0; - if (!config.skin) - config.skin = "default"; - if (config.loop === undefined) - config.loop = true; - if (!config.x) - config.x = 0; - if (!config.y) - config.y = 0; - if (config.fitToCanvas === undefined) - config.fitToCanvas = true; - if (!config.backgroundColor) - config.backgroundColor = "#555555"; - if (!config.imagesPath) { - if (config.atlas) { - var index = config.atlas.lastIndexOf("/"); - if (index != -1) { - config.imagesPath = config.atlas.substr(0, index) + "/"; - } - else { - config.imagesPath = ""; - } - } - else { - config.imagesPath = ""; - } - } - if (config.json && config.json.lastIndexOf(config.imagesPath) == 0) { - config.json = config.json.substr(config.imagesPath.length); - } - if (config.atlas && config.atlas.lastIndexOf(config.imagesPath) == 0) { - config.atlas = config.atlas.substr(config.imagesPath.length); - } - if (!config.premultipliedAlpha === undefined) - config.premultipliedAlpha = false; - if (!config.debug === undefined) - config.debug = false; - if (!config.alpha === undefined) - config.alpha = true; - this.backgroundColor.setFromString(config.backgroundColor); - this.config = config; - }; - SpineWidget.prototype.load = function () { - var _this = this; - var assetManager = this.assetManager; - var imagesPath = this.config.imagesPath; - var config = this.config; - if (assetManager.isLoadingComplete()) { - if (assetManager.hasErrors()) { - if (config.error) - config.error(this, "Failed to load assets: " + JSON.stringify(assetManager.getErrors())); - else - throw new Error("Failed to load assets: " + JSON.stringify(assetManager.getErrors())); - } - var atlasContent = config.atlasContent === undefined ? this.assetManager.get(this.config.atlas) : config.atlasContent; - var atlas = new spine.TextureAtlas(atlasContent, function (path) { - var texture = assetManager.get(path); - return texture; - }); - var atlasLoader = new spine.AtlasAttachmentLoader(atlas); - var skeletonJson = new spine.SkeletonJson(atlasLoader); - skeletonJson.scale = config.scale; - var jsonContent = config.jsonContent === undefined ? assetManager.get(config.json) : config.jsonContent; - var skeletonData = skeletonJson.readSkeletonData(jsonContent); - var skeleton = this.skeleton = new spine.Skeleton(skeletonData); - var bounds = this.bounds; - skeleton.setSkinByName(config.skin); - skeleton.setToSetupPose(); - skeleton.updateWorldTransform(); - skeleton.getBounds(bounds.offset, bounds.size, []); - if (!config.fitToCanvas) { - skeleton.x = config.x; - skeleton.y = config.y; - } - var animationState = this.state = new spine.AnimationState(new spine.AnimationStateData(skeleton.data)); - animationState.setAnimation(0, config.animation, config.loop); - this.loaded = true; - if (config.success) - config.success(this); - requestAnimationFrame(function () { _this.render(); }); - } - else - requestAnimationFrame(function () { _this.load(); }); - }; - SpineWidget.prototype.render = function () { - var _this = this; - var now = Date.now() / 1000; - var delta = now - this.lastFrameTime; - if (delta > 0.1) - delta = 0; - this.lastFrameTime = now; - var gl = this.context.gl; - var color = this.backgroundColor; - this.resize(); - gl.clearColor(color.r, color.g, color.b, color.a); - gl.clear(gl.COLOR_BUFFER_BIT); - var state = this.state; - var skeleton = this.skeleton; - var premultipliedAlpha = this.config.premultipliedAlpha; - state.update(delta); - state.apply(skeleton); - skeleton.updateWorldTransform(); - var shader = this.shader; - var batcher = this.batcher; - var skeletonRenderer = this.skeletonRenderer; - shader.bind(); - shader.setUniformi(spine.webgl.Shader.SAMPLER, 0); - shader.setUniform4x4f(spine.webgl.Shader.MVP_MATRIX, this.mvp.values); - batcher.begin(shader); - skeletonRenderer.premultipliedAlpha = premultipliedAlpha; - skeletonRenderer.draw(batcher, skeleton); - batcher.end(); - shader.unbind(); - if (this.config.debug) { - var shader_1 = this.debugShader; - var shapes = this.shapes; - var renderer = this.debugRenderer; - shader_1.bind(); - shader_1.setUniform4x4f(spine.webgl.Shader.MVP_MATRIX, this.mvp.values); - renderer.premultipliedAlpha = premultipliedAlpha; - shapes.begin(shader_1); - renderer.draw(shapes, skeleton); - shapes.end(); - shader_1.unbind(); - } - if (!this.paused) - requestAnimationFrame(function () { _this.render(); }); - }; - SpineWidget.prototype.resize = function () { - var canvas = this.canvas; - var w = canvas.clientWidth; - var h = canvas.clientHeight; - var bounds = this.bounds; - var devicePixelRatio = window.devicePixelRatio || 1; - if (canvas.width != Math.floor(w * devicePixelRatio) || canvas.height != Math.floor(h * devicePixelRatio)) { - canvas.width = Math.floor(w * devicePixelRatio); - canvas.height = Math.floor(h * devicePixelRatio); - } - if (this.config.fitToCanvas) { - var centerX = bounds.offset.x + bounds.size.x / 2; - var centerY = bounds.offset.y + bounds.size.y / 2; - var scaleX = bounds.size.x / w; - var scaleY = bounds.size.y / h; - var scale = Math.max(scaleX, scaleY) * 1.2; - if (scale < 1) - scale = 1; - var width = w * scale; - var height = h * scale; - this.skeleton.x = this.skeleton.y = 0; - this.mvp.ortho2d(centerX - width / 2, centerY - height / 2, width, height); - } - else { - this.mvp.ortho2d(0, 0, w - 1, h - 1); - } - this.context.gl.viewport(0, 0, canvas.width, canvas.height); - }; - SpineWidget.prototype.pause = function () { - this.paused = true; - }; - SpineWidget.prototype.play = function () { - var _this = this; - this.paused = false; - requestAnimationFrame(function () { _this.render(); }); - }; - SpineWidget.prototype.isPlaying = function () { - return !this.paused; - }; - SpineWidget.prototype.setAnimation = function (animationName, animationStateListener) { - if (animationStateListener === void 0) { animationStateListener = null; } - if (!this.loaded) - throw new Error("Widget isn't loaded yet"); - this.skeleton.setToSetupPose(); - var entry = this.state.setAnimation(0, animationName, this.config.loop); - entry.listener = animationStateListener; - }; - SpineWidget.loadWidgets = function () { - var widgets = document.getElementsByClassName("spine-widget"); - for (var i = 0; i < widgets.length; i++) { - SpineWidget.loadWidget(widgets[i]); - } - }; - SpineWidget.loadWidget = function (widget) { - var config = new SpineWidgetConfig(); - config.atlas = widget.getAttribute("data-atlas"); - config.json = widget.getAttribute("data-json"); - config.animation = widget.getAttribute("data-animation"); - if (widget.getAttribute("data-images-path")) - config.imagesPath = widget.getAttribute("data-images-path"); - if (widget.getAttribute("data-atlas-pages")) - config.atlasPages = widget.getAttribute("data-atlas-pages").split(","); - if (widget.getAttribute("data-skin")) - config.skin = widget.getAttribute("data-skin"); - if (widget.getAttribute("data-loop")) - config.loop = widget.getAttribute("data-loop") === "true"; - if (widget.getAttribute("data-scale")) - config.scale = parseFloat(widget.getAttribute("data-scale")); - if (widget.getAttribute("data-x")) - config.x = parseFloat(widget.getAttribute("data-x")); - if (widget.getAttribute("data-y")) - config.y = parseFloat(widget.getAttribute("data-y")); - if (widget.getAttribute("data-fit-to-canvas")) - config.fitToCanvas = widget.getAttribute("data-fit-to-canvas") === "true"; - if (widget.getAttribute("data-background-color")) - config.backgroundColor = widget.getAttribute("data-background-color"); - if (widget.getAttribute("data-premultiplied-alpha")) - config.premultipliedAlpha = widget.getAttribute("data-premultiplied-alpha") === "true"; - if (widget.getAttribute("data-debug")) - config.debug = widget.getAttribute("data-debug") === "true"; - if (widget.getAttribute("data-alpha")) - config.alpha = widget.getAttribute("data-alpha") === "true"; - new spine.SpineWidget(widget, config); - }; - SpineWidget.ready = function () { - if (SpineWidget.pageLoaded) - return; - SpineWidget.pageLoaded = true; - SpineWidget.loadWidgets(); - }; - SpineWidget.setupDOMListener = function () { - if (document.addEventListener) { - document.addEventListener("DOMContentLoaded", SpineWidget.ready, false); - window.addEventListener("load", SpineWidget.ready, false); - } - else { - document.attachEvent("onreadystatechange", function readyStateChange() { - if (document.readyState === "complete") - SpineWidget.ready(); - }); - window.attachEvent("onload", SpineWidget.ready); - } - }; - SpineWidget.pageLoaded = false; - return SpineWidget; - }()); - spine.SpineWidget = SpineWidget; - var SpineWidgetConfig = (function () { - function SpineWidgetConfig() { - this.skin = "default"; - this.loop = true; - this.scale = 1.0; - this.x = 0; - this.y = 0; - this.alpha = true; - this.fitToCanvas = true; - this.backgroundColor = "#555555"; - this.premultipliedAlpha = false; - this.debug = false; - } - return SpineWidgetConfig; - }()); - spine.SpineWidgetConfig = SpineWidgetConfig; + var SpineWidget = (function () { + function SpineWidget(element, config) { + var _this = this; + this.mvp = new spine.webgl.Matrix4(); + this.paused = false; + this.lastFrameTime = Date.now() / 1000.0; + this.backgroundColor = new spine.Color(); + this.loaded = false; + this.bounds = { offset: new spine.Vector2(), size: new spine.Vector2() }; + if (!element) + throw new Error("Please provide a DOM element, e.g. document.getElementById('myelement')"); + if (!config) + throw new Error("Please provide a configuration, specifying at least the json file, atlas file and animation name"); + var elementId = element; + if (typeof (element) === "string") + element = document.getElementById(element); + if (element == null) + throw new Error("Element " + elementId + " does not exist"); + this.validateConfig(config); + var existingCanvas = element.children[0]; + var canvas = this.canvas = existingCanvas || document.createElement("canvas"); + canvas.style.width = "100%"; + canvas.style.height = "100%"; + if (!existingCanvas) { + element.appendChild(canvas); + } + canvas.width = element.clientWidth; + canvas.height = element.clientHeight; + var webglConfig = { alpha: config.alpha }; + this.context = new spine.webgl.ManagedWebGLRenderingContext(canvas, webglConfig); + this.shader = spine.webgl.Shader.newTwoColoredTextured(this.context); + this.batcher = new spine.webgl.PolygonBatcher(this.context); + this.mvp.ortho2d(0, 0, canvas.width - 1, canvas.height - 1); + this.skeletonRenderer = new spine.webgl.SkeletonRenderer(this.context); + this.debugShader = spine.webgl.Shader.newColored(this.context); + this.debugRenderer = new spine.webgl.SkeletonDebugRenderer(this.context); + this.shapes = new spine.webgl.ShapeRenderer(this.context); + var assets = this.assetManager = new spine.webgl.AssetManager(this.context, config.imagesPath ? config.imagesPath : ""); + if (!config.atlasContent) { + assets.loadText(config.atlas); + } + if (!config.jsonContent) { + assets.loadText(config.json); + } + if (config.atlasPages == null) { + if (config.atlas) { + var atlasPage = config.atlas.replace(".atlas", ".png"); + if (atlasPage.lastIndexOf(config.imagesPath) == 0) { + atlasPage = atlasPage.substr(config.imagesPath.length); + } + assets.loadTexture(atlasPage); + } + else { + var firstLine = config.atlasContent.trim().split("\n")[0]; + assets.loadTexture(firstLine); + } + } + else { + for (var i = 0; i < config.atlasPages.length; i++) { + if (config.atlasPagesContent && config.atlasPagesContent[i]) { + assets.loadTextureData(config.atlasPages[i], config.atlasPagesContent[0]); + } + else { + assets.loadTexture(config.atlasPages[i]); + } + } + } + requestAnimationFrame(function () { _this.load(); }); + } + SpineWidget.prototype.validateConfig = function (config) { + if (!config.atlas && !config.atlasContent) + throw new Error("Please specify config.atlas or config.atlasContent"); + if (!config.json && !config.jsonContent) + throw new Error("Please specify config.json or config.jsonContent"); + if (!config.animation) + throw new Error("Please specify config.animationName"); + if (!config.scale) + config.scale = 1.0; + if (!config.skin) + config.skin = "default"; + if (config.loop === undefined) + config.loop = true; + if (!config.x) + config.x = 0; + if (!config.y) + config.y = 0; + if (config.fitToCanvas === undefined) + config.fitToCanvas = true; + if (!config.backgroundColor) + config.backgroundColor = "#555555"; + if (!config.imagesPath) { + if (config.atlas) { + var index = config.atlas.lastIndexOf("/"); + if (index != -1) { + config.imagesPath = config.atlas.substr(0, index) + "/"; + } + else { + config.imagesPath = ""; + } + } + else { + config.imagesPath = ""; + } + } + if (config.json && config.json.lastIndexOf(config.imagesPath) == 0) { + config.json = config.json.substr(config.imagesPath.length); + } + if (config.atlas && config.atlas.lastIndexOf(config.imagesPath) == 0) { + config.atlas = config.atlas.substr(config.imagesPath.length); + } + if (!config.premultipliedAlpha === undefined) + config.premultipliedAlpha = false; + if (!config.debug === undefined) + config.debug = false; + if (!config.alpha === undefined) + config.alpha = true; + this.backgroundColor.setFromString(config.backgroundColor); + this.config = config; + }; + SpineWidget.prototype.load = function () { + var _this = this; + var assetManager = this.assetManager; + var imagesPath = this.config.imagesPath; + var config = this.config; + if (assetManager.isLoadingComplete()) { + if (assetManager.hasErrors()) { + if (config.error) + config.error(this, "Failed to load assets: " + JSON.stringify(assetManager.getErrors())); + else + throw new Error("Failed to load assets: " + JSON.stringify(assetManager.getErrors())); + } + var atlasContent = config.atlasContent === undefined ? this.assetManager.get(this.config.atlas) : config.atlasContent; + var atlas = new spine.TextureAtlas(atlasContent, function (path) { + var texture = assetManager.get(path); + return texture; + }); + var atlasLoader = new spine.AtlasAttachmentLoader(atlas); + var skeletonJson = new spine.SkeletonJson(atlasLoader); + skeletonJson.scale = config.scale; + var jsonContent = config.jsonContent === undefined ? assetManager.get(config.json) : config.jsonContent; + var skeletonData = skeletonJson.readSkeletonData(jsonContent); + var skeleton = this.skeleton = new spine.Skeleton(skeletonData); + var bounds = this.bounds; + skeleton.setSkinByName(config.skin); + skeleton.setToSetupPose(); + skeleton.updateWorldTransform(); + skeleton.getBounds(bounds.offset, bounds.size, []); + if (!config.fitToCanvas) { + skeleton.x = config.x; + skeleton.y = config.y; + } + var animationState = this.state = new spine.AnimationState(new spine.AnimationStateData(skeleton.data)); + animationState.setAnimation(0, config.animation, config.loop); + this.loaded = true; + if (config.success) + config.success(this); + requestAnimationFrame(function () { _this.render(); }); + } + else + requestAnimationFrame(function () { _this.load(); }); + }; + SpineWidget.prototype.render = function () { + var _this = this; + var now = Date.now() / 1000; + var delta = now - this.lastFrameTime; + if (delta > 0.1) + delta = 0; + this.lastFrameTime = now; + var gl = this.context.gl; + var color = this.backgroundColor; + this.resize(); + gl.clearColor(color.r, color.g, color.b, color.a); + gl.clear(gl.COLOR_BUFFER_BIT); + var state = this.state; + var skeleton = this.skeleton; + var premultipliedAlpha = this.config.premultipliedAlpha; + state.update(delta); + state.apply(skeleton); + skeleton.updateWorldTransform(); + var shader = this.shader; + var batcher = this.batcher; + var skeletonRenderer = this.skeletonRenderer; + shader.bind(); + shader.setUniformi(spine.webgl.Shader.SAMPLER, 0); + shader.setUniform4x4f(spine.webgl.Shader.MVP_MATRIX, this.mvp.values); + batcher.begin(shader); + skeletonRenderer.premultipliedAlpha = premultipliedAlpha; + skeletonRenderer.draw(batcher, skeleton); + batcher.end(); + shader.unbind(); + if (this.config.debug) { + var shader_1 = this.debugShader; + var shapes = this.shapes; + var renderer = this.debugRenderer; + shader_1.bind(); + shader_1.setUniform4x4f(spine.webgl.Shader.MVP_MATRIX, this.mvp.values); + renderer.premultipliedAlpha = premultipliedAlpha; + shapes.begin(shader_1); + renderer.draw(shapes, skeleton); + shapes.end(); + shader_1.unbind(); + } + if (!this.paused) + requestAnimationFrame(function () { _this.render(); }); + }; + SpineWidget.prototype.resize = function () { + var canvas = this.canvas; + var w = canvas.clientWidth; + var h = canvas.clientHeight; + var bounds = this.bounds; + var devicePixelRatio = window.devicePixelRatio || 1; + if (canvas.width != Math.floor(w * devicePixelRatio) || canvas.height != Math.floor(h * devicePixelRatio)) { + canvas.width = Math.floor(w * devicePixelRatio); + canvas.height = Math.floor(h * devicePixelRatio); + } + if (this.config.fitToCanvas) { + var centerX = bounds.offset.x + bounds.size.x / 2; + var centerY = bounds.offset.y + bounds.size.y / 2; + var scaleX = bounds.size.x / w; + var scaleY = bounds.size.y / h; + var scale = Math.max(scaleX, scaleY) * 1.2; + if (scale < 1) + scale = 1; + var width = w * scale; + var height = h * scale; + this.skeleton.x = this.skeleton.y = 0; + this.mvp.ortho2d(centerX - width / 2, centerY - height / 2, width, height); + } + else { + this.mvp.ortho2d(0, 0, w - 1, h - 1); + } + this.context.gl.viewport(0, 0, canvas.width, canvas.height); + }; + SpineWidget.prototype.pause = function () { + this.paused = true; + }; + SpineWidget.prototype.play = function () { + var _this = this; + this.paused = false; + requestAnimationFrame(function () { _this.render(); }); + }; + SpineWidget.prototype.isPlaying = function () { + return !this.paused; + }; + SpineWidget.prototype.setAnimation = function (animationName, animationStateListener) { + if (animationStateListener === void 0) { animationStateListener = null; } + if (!this.loaded) + throw new Error("Widget isn't loaded yet"); + this.skeleton.setToSetupPose(); + var entry = this.state.setAnimation(0, animationName, this.config.loop); + entry.listener = animationStateListener; + }; + SpineWidget.loadWidgets = function () { + var widgets = document.getElementsByClassName("spine-widget"); + for (var i = 0; i < widgets.length; i++) { + SpineWidget.loadWidget(widgets[i]); + } + }; + SpineWidget.loadWidget = function (widget) { + var config = new SpineWidgetConfig(); + config.atlas = widget.getAttribute("data-atlas"); + config.json = widget.getAttribute("data-json"); + config.animation = widget.getAttribute("data-animation"); + if (widget.getAttribute("data-images-path")) + config.imagesPath = widget.getAttribute("data-images-path"); + if (widget.getAttribute("data-atlas-pages")) + config.atlasPages = widget.getAttribute("data-atlas-pages").split(","); + if (widget.getAttribute("data-skin")) + config.skin = widget.getAttribute("data-skin"); + if (widget.getAttribute("data-loop")) + config.loop = widget.getAttribute("data-loop") === "true"; + if (widget.getAttribute("data-scale")) + config.scale = parseFloat(widget.getAttribute("data-scale")); + if (widget.getAttribute("data-x")) + config.x = parseFloat(widget.getAttribute("data-x")); + if (widget.getAttribute("data-y")) + config.y = parseFloat(widget.getAttribute("data-y")); + if (widget.getAttribute("data-fit-to-canvas")) + config.fitToCanvas = widget.getAttribute("data-fit-to-canvas") === "true"; + if (widget.getAttribute("data-background-color")) + config.backgroundColor = widget.getAttribute("data-background-color"); + if (widget.getAttribute("data-premultiplied-alpha")) + config.premultipliedAlpha = widget.getAttribute("data-premultiplied-alpha") === "true"; + if (widget.getAttribute("data-debug")) + config.debug = widget.getAttribute("data-debug") === "true"; + if (widget.getAttribute("data-alpha")) + config.alpha = widget.getAttribute("data-alpha") === "true"; + new spine.SpineWidget(widget, config); + }; + SpineWidget.ready = function () { + if (SpineWidget.pageLoaded) + return; + SpineWidget.pageLoaded = true; + SpineWidget.loadWidgets(); + }; + SpineWidget.setupDOMListener = function () { + if (document.addEventListener) { + document.addEventListener("DOMContentLoaded", SpineWidget.ready, false); + window.addEventListener("load", SpineWidget.ready, false); + } + else { + document.attachEvent("onreadystatechange", function readyStateChange() { + if (document.readyState === "complete") + SpineWidget.ready(); + }); + window.attachEvent("onload", SpineWidget.ready); + } + }; + SpineWidget.pageLoaded = false; + return SpineWidget; + }()); + spine.SpineWidget = SpineWidget; + var SpineWidgetConfig = (function () { + function SpineWidgetConfig() { + this.skin = "default"; + this.loop = true; + this.scale = 1.0; + this.x = 0; + this.y = 0; + this.alpha = true; + this.fitToCanvas = true; + this.backgroundColor = "#555555"; + this.premultipliedAlpha = false; + this.debug = false; + } + return SpineWidgetConfig; + }()); + spine.SpineWidgetConfig = SpineWidgetConfig; })(spine || (spine = {})); spine.SpineWidget.setupDOMListener(); //# sourceMappingURL=spine-all.js.map \ No newline at end of file diff --git a/spine-ts/build/spine-canvas.d.ts b/spine-ts/build/spine-canvas.d.ts index a01d5fd9b..77ec668d4 100644 --- a/spine-ts/build/spine-canvas.d.ts +++ b/spine-ts/build/spine-canvas.d.ts @@ -1,1191 +1,1191 @@ declare module spine { - class AssetManager implements Disposable { - private pathPrefix; - private textureLoader; - private assets; - private errors; - private toLoad; - private loaded; - constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); - loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; - loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - get(path: string): any; - remove(path: string): void; - removeAll(): void; - isLoadingComplete(): boolean; - getToLoad(): number; - getLoaded(): number; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class AssetManager implements Disposable { + private pathPrefix; + private textureLoader; + private assets; + private errors; + private toLoad; + private loaded; + constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); + loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; + loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + get(path: string): any; + remove(path: string): void; + removeAll(): void; + isLoadingComplete(): boolean; + getToLoad(): number; + getLoaded(): number; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine.canvas { - class AssetManager extends spine.AssetManager { - constructor(pathPrefix?: string); - } + class AssetManager extends spine.AssetManager { + constructor(pathPrefix?: string); + } } declare module spine { - abstract class Texture { - protected _image: HTMLImageElement; - constructor(image: HTMLImageElement); - getImage(): HTMLImageElement; - abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - abstract dispose(): void; - static filterFromString(text: string): TextureFilter; - static wrapFromString(text: string): TextureWrap; - } - enum TextureFilter { - Nearest = 9728, - Linear = 9729, - MipMap = 9987, - MipMapNearestNearest = 9984, - MipMapLinearNearest = 9985, - MipMapNearestLinear = 9986, - MipMapLinearLinear = 9987, - } - enum TextureWrap { - MirroredRepeat = 33648, - ClampToEdge = 33071, - Repeat = 10497, - } - class TextureRegion { - renderObject: any; - u: number; - v: number; - u2: number; - v2: number; - width: number; - height: number; - rotate: boolean; - offsetX: number; - offsetY: number; - originalWidth: number; - originalHeight: number; - } + abstract class Texture { + protected _image: HTMLImageElement; + constructor(image: HTMLImageElement); + getImage(): HTMLImageElement; + abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + abstract dispose(): void; + static filterFromString(text: string): TextureFilter; + static wrapFromString(text: string): TextureWrap; + } + enum TextureFilter { + Nearest = 9728, + Linear = 9729, + MipMap = 9987, + MipMapNearestNearest = 9984, + MipMapLinearNearest = 9985, + MipMapNearestLinear = 9986, + MipMapLinearLinear = 9987, + } + enum TextureWrap { + MirroredRepeat = 33648, + ClampToEdge = 33071, + Repeat = 10497, + } + class TextureRegion { + renderObject: any; + u: number; + v: number; + u2: number; + v2: number; + width: number; + height: number; + rotate: boolean; + offsetX: number; + offsetY: number; + originalWidth: number; + originalHeight: number; + } } declare module spine.canvas { - class CanvasTexture extends Texture { - constructor(image: HTMLImageElement); - setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - dispose(): void; - } + class CanvasTexture extends Texture { + constructor(image: HTMLImageElement); + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + dispose(): void; + } } declare module spine.canvas { - class SkeletonRenderer { - static QUAD_TRIANGLES: number[]; - static VERTEX_SIZE: number; - private ctx; - triangleRendering: boolean; - debugRendering: boolean; - private vertices; - private tempColor; - constructor(context: CanvasRenderingContext2D); - draw(skeleton: Skeleton): void; - private drawImages(skeleton); - private drawTriangles(skeleton); - private drawTriangle(img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); - private computeRegionVertices(slot, region, pma); - private computeMeshVertices(slot, mesh, pma); - } + class SkeletonRenderer { + static QUAD_TRIANGLES: number[]; + static VERTEX_SIZE: number; + private ctx; + triangleRendering: boolean; + debugRendering: boolean; + private vertices; + private tempColor; + constructor(context: CanvasRenderingContext2D); + draw(skeleton: Skeleton): void; + private drawImages(skeleton); + private drawTriangles(skeleton); + private drawTriangle(img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); + private computeRegionVertices(slot, region, pma); + private computeMeshVertices(slot, mesh, pma); + } } declare module spine { - class Animation { - name: string; - timelines: Array; - duration: number; - constructor(name: string, timelines: Array, duration: number); - apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - static binarySearch(values: ArrayLike, target: number, step?: number): number; - static linearSearch(values: ArrayLike, target: number, step: number): number; - } - interface Timeline { - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - getPropertyId(): number; - } - enum TimelineType { - rotate = 0, - translate = 1, - scale = 2, - shear = 3, - attachment = 4, - color = 5, - deform = 6, - event = 7, - drawOrder = 8, - ikConstraint = 9, - transformConstraint = 10, - pathConstraintPosition = 11, - pathConstraintSpacing = 12, - pathConstraintMix = 13, - twoColor = 14, - } - abstract class CurveTimeline implements Timeline { - static LINEAR: number; - static STEPPED: number; - static BEZIER: number; - static BEZIER_SIZE: number; - private curves; - abstract getPropertyId(): number; - constructor(frameCount: number); - getFrameCount(): number; - setLinear(frameIndex: number): void; - setStepped(frameIndex: number): void; - getCurveType(frameIndex: number): number; - setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; - getCurvePercent(frameIndex: number, percent: number): number; - abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class RotateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATION: number; - static ROTATION: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, degrees: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TranslateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_X: number; - static PREV_Y: number; - static X: number; - static Y: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, x: number, y: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ScaleTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ShearTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static R: number; - static G: number; - static B: number; - static A: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TwoColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static PREV_R2: number; - static PREV_G2: number; - static PREV_B2: number; - static R: number; - static G: number; - static B: number; - static A: number; - static R2: number; - static G2: number; - static B2: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class AttachmentTimeline implements Timeline { - slotIndex: number; - frames: ArrayLike; - attachmentNames: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, attachmentName: string): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DeformTimeline extends CurveTimeline { - slotIndex: number; - attachment: VertexAttachment; - frames: ArrayLike; - frameVertices: Array>; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class EventTimeline implements Timeline { - frames: ArrayLike; - events: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, event: Event): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DrawOrderTimeline implements Timeline { - frames: ArrayLike; - drawOrders: Array>; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, drawOrder: Array): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class IkConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_MIX: number; - static PREV_BEND_DIRECTION: number; - static MIX: number; - static BEND_DIRECTION: number; - ikConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TransformConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static PREV_SCALE: number; - static PREV_SHEAR: number; - static ROTATE: number; - static TRANSLATE: number; - static SCALE: number; - static SHEAR: number; - transformConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintPositionTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_VALUE: number; - static VALUE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, value: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintMixTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static ROTATE: number; - static TRANSLATE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } + class Animation { + name: string; + timelines: Array; + duration: number; + constructor(name: string, timelines: Array, duration: number); + apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + static binarySearch(values: ArrayLike, target: number, step?: number): number; + static linearSearch(values: ArrayLike, target: number, step: number): number; + } + interface Timeline { + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + getPropertyId(): number; + } + enum TimelineType { + rotate = 0, + translate = 1, + scale = 2, + shear = 3, + attachment = 4, + color = 5, + deform = 6, + event = 7, + drawOrder = 8, + ikConstraint = 9, + transformConstraint = 10, + pathConstraintPosition = 11, + pathConstraintSpacing = 12, + pathConstraintMix = 13, + twoColor = 14, + } + abstract class CurveTimeline implements Timeline { + static LINEAR: number; + static STEPPED: number; + static BEZIER: number; + static BEZIER_SIZE: number; + private curves; + abstract getPropertyId(): number; + constructor(frameCount: number); + getFrameCount(): number; + setLinear(frameIndex: number): void; + setStepped(frameIndex: number): void; + getCurveType(frameIndex: number): number; + setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; + getCurvePercent(frameIndex: number, percent: number): number; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class RotateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATION: number; + static ROTATION: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, degrees: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TranslateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_X: number; + static PREV_Y: number; + static X: number; + static Y: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, x: number, y: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ScaleTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ShearTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static R: number; + static G: number; + static B: number; + static A: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TwoColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static PREV_R2: number; + static PREV_G2: number; + static PREV_B2: number; + static R: number; + static G: number; + static B: number; + static A: number; + static R2: number; + static G2: number; + static B2: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class AttachmentTimeline implements Timeline { + slotIndex: number; + frames: ArrayLike; + attachmentNames: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, attachmentName: string): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DeformTimeline extends CurveTimeline { + slotIndex: number; + attachment: VertexAttachment; + frames: ArrayLike; + frameVertices: Array>; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class EventTimeline implements Timeline { + frames: ArrayLike; + events: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, event: Event): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DrawOrderTimeline implements Timeline { + frames: ArrayLike; + drawOrders: Array>; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, drawOrder: Array): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class IkConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_MIX: number; + static PREV_BEND_DIRECTION: number; + static MIX: number; + static BEND_DIRECTION: number; + ikConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TransformConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static PREV_SCALE: number; + static PREV_SHEAR: number; + static ROTATE: number; + static TRANSLATE: number; + static SCALE: number; + static SHEAR: number; + transformConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintPositionTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_VALUE: number; + static VALUE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, value: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintMixTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static ROTATE: number; + static TRANSLATE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } } declare module spine { - class AnimationState { - static emptyAnimation: Animation; - static SUBSEQUENT: number; - static FIRST: number; - static DIP: number; - static DIP_MIX: number; - data: AnimationStateData; - tracks: TrackEntry[]; - events: Event[]; - listeners: AnimationStateListener2[]; - queue: EventQueue; - propertyIDs: IntSet; - mixingTo: TrackEntry[]; - animationsChanged: boolean; - timeScale: number; - trackEntryPool: Pool; - constructor(data: AnimationStateData); - update(delta: number): void; - updateMixingFrom(to: TrackEntry, delta: number): boolean; - apply(skeleton: Skeleton): boolean; - applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; - applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; - queueEvents(entry: TrackEntry, animationTime: number): void; - clearTracks(): void; - clearTrack(trackIndex: number): void; - setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; - setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; - setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; - addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; - addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; - setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; - addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; - setEmptyAnimations(mixDuration: number): void; - expandToIndex(index: number): TrackEntry; - trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; - disposeNext(entry: TrackEntry): void; - _animationsChanged(): void; - getCurrent(trackIndex: number): TrackEntry; - addListener(listener: AnimationStateListener2): void; - removeListener(listener: AnimationStateListener2): void; - clearListeners(): void; - clearListenerNotifications(): void; - } - class TrackEntry { - animation: Animation; - next: TrackEntry; - mixingFrom: TrackEntry; - listener: AnimationStateListener2; - trackIndex: number; - loop: boolean; - eventThreshold: number; - attachmentThreshold: number; - drawOrderThreshold: number; - animationStart: number; - animationEnd: number; - animationLast: number; - nextAnimationLast: number; - delay: number; - trackTime: number; - trackLast: number; - nextTrackLast: number; - trackEnd: number; - timeScale: number; - alpha: number; - mixTime: number; - mixDuration: number; - interruptAlpha: number; - totalAlpha: number; - timelineData: number[]; - timelineDipMix: TrackEntry[]; - timelinesRotation: number[]; - reset(): void; - setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; - hasTimeline(id: number): boolean; - getAnimationTime(): number; - setAnimationLast(animationLast: number): void; - isComplete(): boolean; - resetRotationDirections(): void; - } - class EventQueue { - objects: Array; - drainDisabled: boolean; - animState: AnimationState; - constructor(animState: AnimationState); - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - drain(): void; - clear(): void; - } - enum EventType { - start = 0, - interrupt = 1, - end = 2, - dispose = 3, - complete = 4, - event = 5, - } - interface AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } - abstract class AnimationStateAdapter2 implements AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } + class AnimationState { + static emptyAnimation: Animation; + static SUBSEQUENT: number; + static FIRST: number; + static DIP: number; + static DIP_MIX: number; + data: AnimationStateData; + tracks: TrackEntry[]; + events: Event[]; + listeners: AnimationStateListener2[]; + queue: EventQueue; + propertyIDs: IntSet; + mixingTo: TrackEntry[]; + animationsChanged: boolean; + timeScale: number; + trackEntryPool: Pool; + constructor(data: AnimationStateData); + update(delta: number): void; + updateMixingFrom(to: TrackEntry, delta: number): boolean; + apply(skeleton: Skeleton): boolean; + applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; + applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; + queueEvents(entry: TrackEntry, animationTime: number): void; + clearTracks(): void; + clearTrack(trackIndex: number): void; + setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; + setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; + setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; + addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; + addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; + setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; + addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; + setEmptyAnimations(mixDuration: number): void; + expandToIndex(index: number): TrackEntry; + trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; + disposeNext(entry: TrackEntry): void; + _animationsChanged(): void; + getCurrent(trackIndex: number): TrackEntry; + addListener(listener: AnimationStateListener2): void; + removeListener(listener: AnimationStateListener2): void; + clearListeners(): void; + clearListenerNotifications(): void; + } + class TrackEntry { + animation: Animation; + next: TrackEntry; + mixingFrom: TrackEntry; + listener: AnimationStateListener2; + trackIndex: number; + loop: boolean; + eventThreshold: number; + attachmentThreshold: number; + drawOrderThreshold: number; + animationStart: number; + animationEnd: number; + animationLast: number; + nextAnimationLast: number; + delay: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; + timeScale: number; + alpha: number; + mixTime: number; + mixDuration: number; + interruptAlpha: number; + totalAlpha: number; + timelineData: number[]; + timelineDipMix: TrackEntry[]; + timelinesRotation: number[]; + reset(): void; + setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; + hasTimeline(id: number): boolean; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; + isComplete(): boolean; + resetRotationDirections(): void; + } + class EventQueue { + objects: Array; + drainDisabled: boolean; + animState: AnimationState; + constructor(animState: AnimationState); + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + drain(): void; + clear(): void; + } + enum EventType { + start = 0, + interrupt = 1, + end = 2, + dispose = 3, + complete = 4, + event = 5, + } + interface AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } + abstract class AnimationStateAdapter2 implements AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } } declare module spine { - class AnimationStateData { - skeletonData: SkeletonData; - animationToMixTime: Map; - defaultMix: number; - constructor(skeletonData: SkeletonData); - setMix(fromName: string, toName: string, duration: number): void; - setMixWith(from: Animation, to: Animation, duration: number): void; - getMix(from: Animation, to: Animation): number; - } + class AnimationStateData { + skeletonData: SkeletonData; + animationToMixTime: Map; + defaultMix: number; + constructor(skeletonData: SkeletonData); + setMix(fromName: string, toName: string, duration: number): void; + setMixWith(from: Animation, to: Animation, duration: number): void; + getMix(from: Animation, to: Animation): number; + } } declare module spine { - class AtlasAttachmentLoader implements AttachmentLoader { - atlas: TextureAtlas; - constructor(atlas: TextureAtlas); - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + class AtlasAttachmentLoader implements AttachmentLoader { + atlas: TextureAtlas; + constructor(atlas: TextureAtlas); + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - abstract class Attachment { - name: string; - constructor(name: string); - } - abstract class VertexAttachment extends Attachment { - bones: Array; - vertices: ArrayLike; - worldVerticesLength: number; - constructor(name: string); - computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - } + abstract class Attachment { + name: string; + constructor(name: string); + } + abstract class VertexAttachment extends Attachment { + bones: Array; + vertices: ArrayLike; + worldVerticesLength: number; + constructor(name: string); + computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + } } declare module spine { - interface AttachmentLoader { - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + interface AttachmentLoader { + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - enum AttachmentType { - Region = 0, - BoundingBox = 1, - Mesh = 2, - LinkedMesh = 3, - Path = 4, - Point = 5, - } + enum AttachmentType { + Region = 0, + BoundingBox = 1, + Mesh = 2, + LinkedMesh = 3, + Path = 4, + Point = 5, + } } declare module spine { - class BoundingBoxAttachment extends VertexAttachment { - color: Color; - constructor(name: string); - } + class BoundingBoxAttachment extends VertexAttachment { + color: Color; + constructor(name: string); + } } declare module spine { - class ClippingAttachment extends VertexAttachment { - endSlot: SlotData; - color: Color; - constructor(name: string); - } + class ClippingAttachment extends VertexAttachment { + endSlot: SlotData; + color: Color; + constructor(name: string); + } } declare module spine { - class MeshAttachment extends VertexAttachment { - region: TextureRegion; - path: string; - regionUVs: ArrayLike; - uvs: ArrayLike; - triangles: Array; - color: Color; - hullLength: number; - private parentMesh; - inheritDeform: boolean; - tempColor: Color; - constructor(name: string); - updateUVs(): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - getParentMesh(): MeshAttachment; - setParentMesh(parentMesh: MeshAttachment): void; - } + class MeshAttachment extends VertexAttachment { + region: TextureRegion; + path: string; + regionUVs: ArrayLike; + uvs: ArrayLike; + triangles: Array; + color: Color; + hullLength: number; + private parentMesh; + inheritDeform: boolean; + tempColor: Color; + constructor(name: string); + updateUVs(): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + getParentMesh(): MeshAttachment; + setParentMesh(parentMesh: MeshAttachment): void; + } } declare module spine { - class PathAttachment extends VertexAttachment { - lengths: Array; - closed: boolean; - constantSpeed: boolean; - color: Color; - constructor(name: string); - } + class PathAttachment extends VertexAttachment { + lengths: Array; + closed: boolean; + constantSpeed: boolean; + color: Color; + constructor(name: string); + } } declare module spine { - class PointAttachment extends VertexAttachment { - x: number; - y: number; - rotation: number; - color: Color; - constructor(name: string); - computeWorldPosition(bone: Bone, point: Vector2): Vector2; - computeWorldRotation(bone: Bone): number; - } + class PointAttachment extends VertexAttachment { + x: number; + y: number; + rotation: number; + color: Color; + constructor(name: string); + computeWorldPosition(bone: Bone, point: Vector2): Vector2; + computeWorldRotation(bone: Bone): number; + } } declare module spine { - class RegionAttachment extends Attachment { - static OX1: number; - static OY1: number; - static OX2: number; - static OY2: number; - static OX3: number; - static OY3: number; - static OX4: number; - static OY4: number; - static X1: number; - static Y1: number; - static C1R: number; - static C1G: number; - static C1B: number; - static C1A: number; - static U1: number; - static V1: number; - static X2: number; - static Y2: number; - static C2R: number; - static C2G: number; - static C2B: number; - static C2A: number; - static U2: number; - static V2: number; - static X3: number; - static Y3: number; - static C3R: number; - static C3G: number; - static C3B: number; - static C3A: number; - static U3: number; - static V3: number; - static X4: number; - static Y4: number; - static C4R: number; - static C4G: number; - static C4B: number; - static C4A: number; - static U4: number; - static V4: number; - x: number; - y: number; - scaleX: number; - scaleY: number; - rotation: number; - width: number; - height: number; - color: Color; - path: string; - rendererObject: any; - region: TextureRegion; - offset: ArrayLike; - uvs: ArrayLike; - tempColor: Color; - constructor(name: string); - updateOffset(): void; - setRegion(region: TextureRegion): void; - computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; - } + class RegionAttachment extends Attachment { + static OX1: number; + static OY1: number; + static OX2: number; + static OY2: number; + static OX3: number; + static OY3: number; + static OX4: number; + static OY4: number; + static X1: number; + static Y1: number; + static C1R: number; + static C1G: number; + static C1B: number; + static C1A: number; + static U1: number; + static V1: number; + static X2: number; + static Y2: number; + static C2R: number; + static C2G: number; + static C2B: number; + static C2A: number; + static U2: number; + static V2: number; + static X3: number; + static Y3: number; + static C3R: number; + static C3G: number; + static C3B: number; + static C3A: number; + static U3: number; + static V3: number; + static X4: number; + static Y4: number; + static C4R: number; + static C4G: number; + static C4B: number; + static C4A: number; + static U4: number; + static V4: number; + x: number; + y: number; + scaleX: number; + scaleY: number; + rotation: number; + width: number; + height: number; + color: Color; + path: string; + rendererObject: any; + region: TextureRegion; + offset: ArrayLike; + uvs: ArrayLike; + tempColor: Color; + constructor(name: string); + updateOffset(): void; + setRegion(region: TextureRegion): void; + computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; + } } declare module spine { - enum BlendMode { - Normal = 0, - Additive = 1, - Multiply = 2, - Screen = 3, - } + enum BlendMode { + Normal = 0, + Additive = 1, + Multiply = 2, + Screen = 3, + } } declare module spine { - class Bone implements Updatable { - data: BoneData; - skeleton: Skeleton; - parent: Bone; - children: Bone[]; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - ax: number; - ay: number; - arotation: number; - ascaleX: number; - ascaleY: number; - ashearX: number; - ashearY: number; - appliedValid: boolean; - a: number; - b: number; - worldX: number; - c: number; - d: number; - worldY: number; - sorted: boolean; - constructor(data: BoneData, skeleton: Skeleton, parent: Bone); - update(): void; - updateWorldTransform(): void; - updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; - setToSetupPose(): void; - getWorldRotationX(): number; - getWorldRotationY(): number; - getWorldScaleX(): number; - getWorldScaleY(): number; - updateAppliedTransform(): void; - worldToLocal(world: Vector2): Vector2; - localToWorld(local: Vector2): Vector2; - worldToLocalRotation(worldRotation: number): number; - localToWorldRotation(localRotation: number): number; - rotateWorld(degrees: number): void; - } + class Bone implements Updatable { + data: BoneData; + skeleton: Skeleton; + parent: Bone; + children: Bone[]; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + ax: number; + ay: number; + arotation: number; + ascaleX: number; + ascaleY: number; + ashearX: number; + ashearY: number; + appliedValid: boolean; + a: number; + b: number; + worldX: number; + c: number; + d: number; + worldY: number; + sorted: boolean; + constructor(data: BoneData, skeleton: Skeleton, parent: Bone); + update(): void; + updateWorldTransform(): void; + updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; + setToSetupPose(): void; + getWorldRotationX(): number; + getWorldRotationY(): number; + getWorldScaleX(): number; + getWorldScaleY(): number; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + worldToLocalRotation(worldRotation: number): number; + localToWorldRotation(localRotation: number): number; + rotateWorld(degrees: number): void; + } } declare module spine { - class BoneData { - index: number; - name: string; - parent: BoneData; - length: number; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - transformMode: TransformMode; - constructor(index: number, name: string, parent: BoneData); - } - enum TransformMode { - Normal = 0, - OnlyTranslation = 1, - NoRotationOrReflection = 2, - NoScale = 3, - NoScaleOrReflection = 4, - } + class BoneData { + index: number; + name: string; + parent: BoneData; + length: number; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + transformMode: TransformMode; + constructor(index: number, name: string, parent: BoneData); + } + enum TransformMode { + Normal = 0, + OnlyTranslation = 1, + NoRotationOrReflection = 2, + NoScale = 3, + NoScaleOrReflection = 4, + } } declare module spine { - interface Constraint extends Updatable { - getOrder(): number; - } + interface Constraint extends Updatable { + getOrder(): number; + } } declare module spine { - class Event { - data: EventData; - intValue: number; - floatValue: number; - stringValue: string; - time: number; - constructor(time: number, data: EventData); - } + class Event { + data: EventData; + intValue: number; + floatValue: number; + stringValue: string; + time: number; + constructor(time: number, data: EventData); + } } declare module spine { - class EventData { - name: string; - intValue: number; - floatValue: number; - stringValue: string; - constructor(name: string); - } + class EventData { + name: string; + intValue: number; + floatValue: number; + stringValue: string; + constructor(name: string); + } } declare module spine { - class IkConstraint implements Constraint { - data: IkConstraintData; - bones: Array; - target: Bone; - mix: number; - bendDirection: number; - constructor(data: IkConstraintData, skeleton: Skeleton); - getOrder(): number; - apply(): void; - update(): void; - apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; - apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; - } + class IkConstraint implements Constraint { + data: IkConstraintData; + bones: Array; + target: Bone; + mix: number; + bendDirection: number; + constructor(data: IkConstraintData, skeleton: Skeleton); + getOrder(): number; + apply(): void; + update(): void; + apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; + apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; + } } declare module spine { - class IkConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - bendDirection: number; - mix: number; - constructor(name: string); - } + class IkConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + bendDirection: number; + mix: number; + constructor(name: string); + } } declare module spine { - class PathConstraint implements Constraint { - static NONE: number; - static BEFORE: number; - static AFTER: number; - data: PathConstraintData; - bones: Array; - target: Slot; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - spaces: number[]; - positions: number[]; - world: number[]; - curves: number[]; - lengths: number[]; - segments: number[]; - constructor(data: PathConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; - addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; - getOrder(): number; - } + class PathConstraint implements Constraint { + static NONE: number; + static BEFORE: number; + static AFTER: number; + data: PathConstraintData; + bones: Array; + target: Slot; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + spaces: number[]; + positions: number[]; + world: number[]; + curves: number[]; + lengths: number[]; + segments: number[]; + constructor(data: PathConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; + addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; + getOrder(): number; + } } declare module spine { - class PathConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: SlotData; - positionMode: PositionMode; - spacingMode: SpacingMode; - rotateMode: RotateMode; - offsetRotation: number; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - constructor(name: string); - } - enum PositionMode { - Fixed = 0, - Percent = 1, - } - enum SpacingMode { - Length = 0, - Fixed = 1, - Percent = 2, - } - enum RotateMode { - Tangent = 0, - Chain = 1, - ChainScale = 2, - } + class PathConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: SlotData; + positionMode: PositionMode; + spacingMode: SpacingMode; + rotateMode: RotateMode; + offsetRotation: number; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + constructor(name: string); + } + enum PositionMode { + Fixed = 0, + Percent = 1, + } + enum SpacingMode { + Length = 0, + Fixed = 1, + Percent = 2, + } + enum RotateMode { + Tangent = 0, + Chain = 1, + ChainScale = 2, + } } declare module spine { - class SharedAssetManager implements Disposable { - private pathPrefix; - private clientAssets; - private queuedAssets; - private rawAssets; - private errors; - constructor(pathPrefix?: string); - private queueAsset(clientId, textureLoader, path); - loadText(clientId: string, path: string): void; - loadJson(clientId: string, path: string): void; - loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; - get(clientId: string, path: string): any; - private updateClientAssets(clientAssets); - isLoadingComplete(clientId: string): boolean; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class SharedAssetManager implements Disposable { + private pathPrefix; + private clientAssets; + private queuedAssets; + private rawAssets; + private errors; + constructor(pathPrefix?: string); + private queueAsset(clientId, textureLoader, path); + loadText(clientId: string, path: string): void; + loadJson(clientId: string, path: string): void; + loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; + get(clientId: string, path: string): any; + private updateClientAssets(clientAssets); + isLoadingComplete(clientId: string): boolean; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class Skeleton { - data: SkeletonData; - bones: Array; - slots: Array; - drawOrder: Array; - ikConstraints: Array; - transformConstraints: Array; - pathConstraints: Array; - _updateCache: Updatable[]; - updateCacheReset: Updatable[]; - skin: Skin; - color: Color; - time: number; - flipX: boolean; - flipY: boolean; - x: number; - y: number; - constructor(data: SkeletonData); - updateCache(): void; - sortIkConstraint(constraint: IkConstraint): void; - sortPathConstraint(constraint: PathConstraint): void; - sortTransformConstraint(constraint: TransformConstraint): void; - sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; - sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; - sortBone(bone: Bone): void; - sortReset(bones: Array): void; - updateWorldTransform(): void; - setToSetupPose(): void; - setBonesToSetupPose(): void; - setSlotsToSetupPose(): void; - getRootBone(): Bone; - findBone(boneName: string): Bone; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): Slot; - findSlotIndex(slotName: string): number; - setSkinByName(skinName: string): void; - setSkin(newSkin: Skin): void; - getAttachmentByName(slotName: string, attachmentName: string): Attachment; - getAttachment(slotIndex: number, attachmentName: string): Attachment; - setAttachment(slotName: string, attachmentName: string): void; - findIkConstraint(constraintName: string): IkConstraint; - findTransformConstraint(constraintName: string): TransformConstraint; - findPathConstraint(constraintName: string): PathConstraint; - getBounds(offset: Vector2, size: Vector2, temp: Array): void; - update(delta: number): void; - } + class Skeleton { + data: SkeletonData; + bones: Array; + slots: Array; + drawOrder: Array; + ikConstraints: Array; + transformConstraints: Array; + pathConstraints: Array; + _updateCache: Updatable[]; + updateCacheReset: Updatable[]; + skin: Skin; + color: Color; + time: number; + flipX: boolean; + flipY: boolean; + x: number; + y: number; + constructor(data: SkeletonData); + updateCache(): void; + sortIkConstraint(constraint: IkConstraint): void; + sortPathConstraint(constraint: PathConstraint): void; + sortTransformConstraint(constraint: TransformConstraint): void; + sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; + sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; + sortBone(bone: Bone): void; + sortReset(bones: Array): void; + updateWorldTransform(): void; + setToSetupPose(): void; + setBonesToSetupPose(): void; + setSlotsToSetupPose(): void; + getRootBone(): Bone; + findBone(boneName: string): Bone; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): Slot; + findSlotIndex(slotName: string): number; + setSkinByName(skinName: string): void; + setSkin(newSkin: Skin): void; + getAttachmentByName(slotName: string, attachmentName: string): Attachment; + getAttachment(slotIndex: number, attachmentName: string): Attachment; + setAttachment(slotName: string, attachmentName: string): void; + findIkConstraint(constraintName: string): IkConstraint; + findTransformConstraint(constraintName: string): TransformConstraint; + findPathConstraint(constraintName: string): PathConstraint; + getBounds(offset: Vector2, size: Vector2, temp: Array): void; + update(delta: number): void; + } } declare module spine { - class SkeletonBounds { - minX: number; - minY: number; - maxX: number; - maxY: number; - boundingBoxes: BoundingBoxAttachment[]; - polygons: ArrayLike[]; - private polygonPool; - update(skeleton: Skeleton, updateAabb: boolean): void; - aabbCompute(): void; - aabbContainsPoint(x: number, y: number): boolean; - aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; - aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; - containsPoint(x: number, y: number): BoundingBoxAttachment; - containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; - intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; - intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; - getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; - getWidth(): number; - getHeight(): number; - } + class SkeletonBounds { + minX: number; + minY: number; + maxX: number; + maxY: number; + boundingBoxes: BoundingBoxAttachment[]; + polygons: ArrayLike[]; + private polygonPool; + update(skeleton: Skeleton, updateAabb: boolean): void; + aabbCompute(): void; + aabbContainsPoint(x: number, y: number): boolean; + aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; + aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; + containsPoint(x: number, y: number): BoundingBoxAttachment; + containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; + intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; + intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; + getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; + getWidth(): number; + getHeight(): number; + } } declare module spine { - class SkeletonClipping { - private triangulator; - private clippingPolygon; - private clipOutput; - clippedVertices: number[]; - clippedTriangles: number[]; - private scratch; - private clipAttachment; - private clippingPolygons; - clipStart(slot: Slot, clip: ClippingAttachment): number; - clipEndWithSlot(slot: Slot): void; - clipEnd(): void; - isClipping(): boolean; - clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; - clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; - static makeClockwise(polygon: ArrayLike): void; - } + class SkeletonClipping { + private triangulator; + private clippingPolygon; + private clipOutput; + clippedVertices: number[]; + clippedTriangles: number[]; + private scratch; + private clipAttachment; + private clippingPolygons; + clipStart(slot: Slot, clip: ClippingAttachment): number; + clipEndWithSlot(slot: Slot): void; + clipEnd(): void; + isClipping(): boolean; + clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; + clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; + static makeClockwise(polygon: ArrayLike): void; + } } declare module spine { - class SkeletonData { - name: string; - bones: BoneData[]; - slots: SlotData[]; - skins: Skin[]; - defaultSkin: Skin; - events: EventData[]; - animations: Animation[]; - ikConstraints: IkConstraintData[]; - transformConstraints: TransformConstraintData[]; - pathConstraints: PathConstraintData[]; - width: number; - height: number; - version: string; - hash: string; - fps: number; - imagesPath: string; - findBone(boneName: string): BoneData; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): SlotData; - findSlotIndex(slotName: string): number; - findSkin(skinName: string): Skin; - findEvent(eventDataName: string): EventData; - findAnimation(animationName: string): Animation; - findIkConstraint(constraintName: string): IkConstraintData; - findTransformConstraint(constraintName: string): TransformConstraintData; - findPathConstraint(constraintName: string): PathConstraintData; - findPathConstraintIndex(pathConstraintName: string): number; - } + class SkeletonData { + name: string; + bones: BoneData[]; + slots: SlotData[]; + skins: Skin[]; + defaultSkin: Skin; + events: EventData[]; + animations: Animation[]; + ikConstraints: IkConstraintData[]; + transformConstraints: TransformConstraintData[]; + pathConstraints: PathConstraintData[]; + width: number; + height: number; + version: string; + hash: string; + fps: number; + imagesPath: string; + findBone(boneName: string): BoneData; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): SlotData; + findSlotIndex(slotName: string): number; + findSkin(skinName: string): Skin; + findEvent(eventDataName: string): EventData; + findAnimation(animationName: string): Animation; + findIkConstraint(constraintName: string): IkConstraintData; + findTransformConstraint(constraintName: string): TransformConstraintData; + findPathConstraint(constraintName: string): PathConstraintData; + findPathConstraintIndex(pathConstraintName: string): number; + } } declare module spine { - class SkeletonJson { - attachmentLoader: AttachmentLoader; - scale: number; - private linkedMeshes; - constructor(attachmentLoader: AttachmentLoader); - readSkeletonData(json: string | any): SkeletonData; - readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; - readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; - readAnimation(map: any, name: string, skeletonData: SkeletonData): void; - readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; - getValue(map: any, prop: string, defaultValue: any): any; - static blendModeFromString(str: string): BlendMode; - static positionModeFromString(str: string): PositionMode; - static spacingModeFromString(str: string): SpacingMode; - static rotateModeFromString(str: string): RotateMode; - static transformModeFromString(str: string): TransformMode; - } + class SkeletonJson { + attachmentLoader: AttachmentLoader; + scale: number; + private linkedMeshes; + constructor(attachmentLoader: AttachmentLoader); + readSkeletonData(json: string | any): SkeletonData; + readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; + readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; + readAnimation(map: any, name: string, skeletonData: SkeletonData): void; + readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; + getValue(map: any, prop: string, defaultValue: any): any; + static blendModeFromString(str: string): BlendMode; + static positionModeFromString(str: string): PositionMode; + static spacingModeFromString(str: string): SpacingMode; + static rotateModeFromString(str: string): RotateMode; + static transformModeFromString(str: string): TransformMode; + } } declare module spine { - class Skin { - name: string; - attachments: Map[]; - constructor(name: string); - addAttachment(slotIndex: number, name: string, attachment: Attachment): void; - getAttachment(slotIndex: number, name: string): Attachment; - attachAll(skeleton: Skeleton, oldSkin: Skin): void; - } + class Skin { + name: string; + attachments: Map[]; + constructor(name: string); + addAttachment(slotIndex: number, name: string, attachment: Attachment): void; + getAttachment(slotIndex: number, name: string): Attachment; + attachAll(skeleton: Skeleton, oldSkin: Skin): void; + } } declare module spine { - class Slot { - data: SlotData; - bone: Bone; - color: Color; - darkColor: Color; - private attachment; - private attachmentTime; - attachmentVertices: number[]; - constructor(data: SlotData, bone: Bone); - getAttachment(): Attachment; - setAttachment(attachment: Attachment): void; - setAttachmentTime(time: number): void; - getAttachmentTime(): number; - setToSetupPose(): void; - } + class Slot { + data: SlotData; + bone: Bone; + color: Color; + darkColor: Color; + private attachment; + private attachmentTime; + attachmentVertices: number[]; + constructor(data: SlotData, bone: Bone); + getAttachment(): Attachment; + setAttachment(attachment: Attachment): void; + setAttachmentTime(time: number): void; + getAttachmentTime(): number; + setToSetupPose(): void; + } } declare module spine { - class SlotData { - index: number; - name: string; - boneData: BoneData; - color: Color; - darkColor: Color; - attachmentName: string; - blendMode: BlendMode; - constructor(index: number, name: string, boneData: BoneData); - } + class SlotData { + index: number; + name: string; + boneData: BoneData; + color: Color; + darkColor: Color; + attachmentName: string; + blendMode: BlendMode; + constructor(index: number, name: string, boneData: BoneData); + } } declare module spine { - class TextureAtlas implements Disposable { - pages: TextureAtlasPage[]; - regions: TextureAtlasRegion[]; - constructor(atlasText: string, textureLoader: (path: string) => any); - private load(atlasText, textureLoader); - findRegion(name: string): TextureAtlasRegion; - dispose(): void; - } - class TextureAtlasPage { - name: string; - minFilter: TextureFilter; - magFilter: TextureFilter; - uWrap: TextureWrap; - vWrap: TextureWrap; - texture: Texture; - width: number; - height: number; - } - class TextureAtlasRegion extends TextureRegion { - page: TextureAtlasPage; - name: string; - x: number; - y: number; - index: number; - rotate: boolean; - texture: Texture; - } + class TextureAtlas implements Disposable { + pages: TextureAtlasPage[]; + regions: TextureAtlasRegion[]; + constructor(atlasText: string, textureLoader: (path: string) => any); + private load(atlasText, textureLoader); + findRegion(name: string): TextureAtlasRegion; + dispose(): void; + } + class TextureAtlasPage { + name: string; + minFilter: TextureFilter; + magFilter: TextureFilter; + uWrap: TextureWrap; + vWrap: TextureWrap; + texture: Texture; + width: number; + height: number; + } + class TextureAtlasRegion extends TextureRegion { + page: TextureAtlasPage; + name: string; + x: number; + y: number; + index: number; + rotate: boolean; + texture: Texture; + } } declare module spine { - class TransformConstraint implements Constraint { - data: TransformConstraintData; - bones: Array; - target: Bone; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - temp: Vector2; - constructor(data: TransformConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - applyAbsoluteWorld(): void; - applyRelativeWorld(): void; - applyAbsoluteLocal(): void; - applyRelativeLocal(): void; - getOrder(): number; - } + class TransformConstraint implements Constraint { + data: TransformConstraintData; + bones: Array; + target: Bone; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + temp: Vector2; + constructor(data: TransformConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + applyAbsoluteWorld(): void; + applyRelativeWorld(): void; + applyAbsoluteLocal(): void; + applyRelativeLocal(): void; + getOrder(): number; + } } declare module spine { - class TransformConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - offsetRotation: number; - offsetX: number; - offsetY: number; - offsetScaleX: number; - offsetScaleY: number; - offsetShearY: number; - relative: boolean; - local: boolean; - constructor(name: string); - } + class TransformConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + offsetRotation: number; + offsetX: number; + offsetY: number; + offsetScaleX: number; + offsetScaleY: number; + offsetShearY: number; + relative: boolean; + local: boolean; + constructor(name: string); + } } declare module spine { - class Triangulator { - private convexPolygons; - private convexPolygonsIndices; - private indicesArray; - private isConcaveArray; - private triangles; - private polygonPool; - private polygonIndicesPool; - triangulate(verticesArray: ArrayLike): Array; - decompose(verticesArray: Array, triangles: Array): Array>; - private static isConcave(index, vertexCount, vertices, indices); - private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); - private static winding(p1x, p1y, p2x, p2y, p3x, p3y); - } + class Triangulator { + private convexPolygons; + private convexPolygonsIndices; + private indicesArray; + private isConcaveArray; + private triangles; + private polygonPool; + private polygonIndicesPool; + triangulate(verticesArray: ArrayLike): Array; + decompose(verticesArray: Array, triangles: Array): Array>; + private static isConcave(index, vertexCount, vertices, indices); + private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); + private static winding(p1x, p1y, p2x, p2y, p3x, p3y); + } } declare module spine { - interface Updatable { - update(): void; - } + interface Updatable { + update(): void; + } } declare module spine { - interface Map { - [key: string]: T; - } - class IntSet { - array: number[]; - add(value: number): boolean; - contains(value: number): boolean; - remove(value: number): void; - clear(): void; - } - interface Disposable { - dispose(): void; - } - interface Restorable { - restore(): void; - } - class Color { - r: number; - g: number; - b: number; - a: number; - static WHITE: Color; - static RED: Color; - static GREEN: Color; - static BLUE: Color; - static MAGENTA: Color; - constructor(r?: number, g?: number, b?: number, a?: number); - set(r: number, g: number, b: number, a: number): this; - setFromColor(c: Color): this; - setFromString(hex: string): this; - add(r: number, g: number, b: number, a: number): this; - clamp(): this; - } - class MathUtils { - static PI: number; - static PI2: number; - static radiansToDegrees: number; - static radDeg: number; - static degreesToRadians: number; - static degRad: number; - static clamp(value: number, min: number, max: number): number; - static cosDeg(degrees: number): number; - static sinDeg(degrees: number): number; - static signum(value: number): number; - static toInt(x: number): number; - static cbrt(x: number): number; - } - class Utils { - static SUPPORTS_TYPED_ARRAYS: boolean; - static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; - static setArraySize(array: Array, size: number, value?: any): Array; - static ensureArrayCapacity(array: Array, size: number, value?: any): Array; - static newArray(size: number, defaultValue: T): Array; - static newFloatArray(size: number): ArrayLike; - static newShortArray(size: number): ArrayLike; - static toFloatArray(array: Array): number[] | Float32Array; - } - class DebugUtils { - static logBones(skeleton: Skeleton): void; - } - class Pool { - private items; - private instantiator; - constructor(instantiator: () => T); - obtain(): T; - free(item: T): void; - freeAll(items: ArrayLike): void; - clear(): void; - } - class Vector2 { - x: number; - y: number; - constructor(x?: number, y?: number); - set(x: number, y: number): Vector2; - length(): number; - normalize(): this; - } - class TimeKeeper { - maxDelta: number; - framesPerSecond: number; - delta: number; - totalTime: number; - private lastTime; - private frameCount; - private frameTime; - update(): void; - } - interface ArrayLike { - length: number; - [n: number]: T; - } - class WindowedMean { - values: Array; - addedValues: number; - lastValue: number; - mean: number; - dirty: boolean; - constructor(windowSize?: number); - hasEnoughData(): boolean; - addValue(value: number): void; - getMean(): number; - } + interface Map { + [key: string]: T; + } + class IntSet { + array: number[]; + add(value: number): boolean; + contains(value: number): boolean; + remove(value: number): void; + clear(): void; + } + interface Disposable { + dispose(): void; + } + interface Restorable { + restore(): void; + } + class Color { + r: number; + g: number; + b: number; + a: number; + static WHITE: Color; + static RED: Color; + static GREEN: Color; + static BLUE: Color; + static MAGENTA: Color; + constructor(r?: number, g?: number, b?: number, a?: number); + set(r: number, g: number, b: number, a: number): this; + setFromColor(c: Color): this; + setFromString(hex: string): this; + add(r: number, g: number, b: number, a: number): this; + clamp(): this; + } + class MathUtils { + static PI: number; + static PI2: number; + static radiansToDegrees: number; + static radDeg: number; + static degreesToRadians: number; + static degRad: number; + static clamp(value: number, min: number, max: number): number; + static cosDeg(degrees: number): number; + static sinDeg(degrees: number): number; + static signum(value: number): number; + static toInt(x: number): number; + static cbrt(x: number): number; + } + class Utils { + static SUPPORTS_TYPED_ARRAYS: boolean; + static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; + static setArraySize(array: Array, size: number, value?: any): Array; + static ensureArrayCapacity(array: Array, size: number, value?: any): Array; + static newArray(size: number, defaultValue: T): Array; + static newFloatArray(size: number): ArrayLike; + static newShortArray(size: number): ArrayLike; + static toFloatArray(array: Array): number[] | Float32Array; + } + class DebugUtils { + static logBones(skeleton: Skeleton): void; + } + class Pool { + private items; + private instantiator; + constructor(instantiator: () => T); + obtain(): T; + free(item: T): void; + freeAll(items: ArrayLike): void; + clear(): void; + } + class Vector2 { + x: number; + y: number; + constructor(x?: number, y?: number); + set(x: number, y: number): Vector2; + length(): number; + normalize(): this; + } + class TimeKeeper { + maxDelta: number; + framesPerSecond: number; + delta: number; + totalTime: number; + private lastTime; + private frameCount; + private frameTime; + update(): void; + } + interface ArrayLike { + length: number; + [n: number]: T; + } + class WindowedMean { + values: Array; + addedValues: number; + lastValue: number; + mean: number; + dirty: boolean; + constructor(windowSize?: number); + hasEnoughData(): boolean; + addValue(value: number): void; + getMean(): number; + } } diff --git a/spine-ts/build/spine-canvas.js b/spine-ts/build/spine-canvas.js index e9d502438..de611176a 100644 --- a/spine-ts/build/spine-canvas.js +++ b/spine-ts/build/spine-canvas.js @@ -1,6472 +1,6472 @@ var spine; (function (spine) { - var AssetManager = (function () { - function AssetManager(textureLoader, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.assets = {}; - this.errors = {}; - this.toLoad = 0; - this.loaded = 0; - this.textureLoader = textureLoader; - this.pathPrefix = pathPrefix; - } - AssetManager.prototype.loadText = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.assets[path] = request.responseText; - if (success) - success(path, request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - if (error) - error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); - } - _this.toLoad--; - _this.loaded++; - } - }; - request.open("GET", path, true); - request.send(); - }; - AssetManager.prototype.loadTexture = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = path; - }; - AssetManager.prototype.loadTextureData = function (path, data, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = data; - }; - AssetManager.prototype.get = function (path) { - path = this.pathPrefix + path; - return this.assets[path]; - }; - AssetManager.prototype.remove = function (path) { - path = this.pathPrefix + path; - var asset = this.assets[path]; - if (asset.dispose) - asset.dispose(); - this.assets[path] = null; - }; - AssetManager.prototype.removeAll = function () { - for (var key in this.assets) { - var asset = this.assets[key]; - if (asset.dispose) - asset.dispose(); - } - this.assets = {}; - }; - AssetManager.prototype.isLoadingComplete = function () { - return this.toLoad == 0; - }; - AssetManager.prototype.getToLoad = function () { - return this.toLoad; - }; - AssetManager.prototype.getLoaded = function () { - return this.loaded; - }; - AssetManager.prototype.dispose = function () { - this.removeAll(); - }; - AssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - AssetManager.prototype.getErrors = function () { - return this.errors; - }; - return AssetManager; - }()); - spine.AssetManager = AssetManager; + var AssetManager = (function () { + function AssetManager(textureLoader, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.assets = {}; + this.errors = {}; + this.toLoad = 0; + this.loaded = 0; + this.textureLoader = textureLoader; + this.pathPrefix = pathPrefix; + } + AssetManager.prototype.loadText = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.assets[path] = request.responseText; + if (success) + success(path, request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + if (error) + error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); + } + _this.toLoad--; + _this.loaded++; + } + }; + request.open("GET", path, true); + request.send(); + }; + AssetManager.prototype.loadTexture = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = path; + }; + AssetManager.prototype.loadTextureData = function (path, data, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = data; + }; + AssetManager.prototype.get = function (path) { + path = this.pathPrefix + path; + return this.assets[path]; + }; + AssetManager.prototype.remove = function (path) { + path = this.pathPrefix + path; + var asset = this.assets[path]; + if (asset.dispose) + asset.dispose(); + this.assets[path] = null; + }; + AssetManager.prototype.removeAll = function () { + for (var key in this.assets) { + var asset = this.assets[key]; + if (asset.dispose) + asset.dispose(); + } + this.assets = {}; + }; + AssetManager.prototype.isLoadingComplete = function () { + return this.toLoad == 0; + }; + AssetManager.prototype.getToLoad = function () { + return this.toLoad; + }; + AssetManager.prototype.getLoaded = function () { + return this.loaded; + }; + AssetManager.prototype.dispose = function () { + this.removeAll(); + }; + AssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + AssetManager.prototype.getErrors = function () { + return this.errors; + }; + return AssetManager; + }()); + spine.AssetManager = AssetManager; })(spine || (spine = {})); var __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var spine; (function (spine) { - var canvas; - (function (canvas) { - var AssetManager = (function (_super) { - __extends(AssetManager, _super); - function AssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - _super.call(this, function (image) { return new spine.canvas.CanvasTexture(image); }, pathPrefix); - } - return AssetManager; - }(spine.AssetManager)); - canvas.AssetManager = AssetManager; - })(canvas = spine.canvas || (spine.canvas = {})); + var canvas; + (function (canvas) { + var AssetManager = (function (_super) { + __extends(AssetManager, _super); + function AssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + _super.call(this, function (image) { return new spine.canvas.CanvasTexture(image); }, pathPrefix); + } + return AssetManager; + }(spine.AssetManager)); + canvas.AssetManager = AssetManager; + })(canvas = spine.canvas || (spine.canvas = {})); })(spine || (spine = {})); var spine; (function (spine) { - var Texture = (function () { - function Texture(image) { - this._image = image; - } - Texture.prototype.getImage = function () { - return this._image; - }; - Texture.filterFromString = function (text) { - switch (text.toLowerCase()) { - case "nearest": return TextureFilter.Nearest; - case "linear": return TextureFilter.Linear; - case "mipmap": return TextureFilter.MipMap; - case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; - case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; - case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; - case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; - default: throw new Error("Unknown texture filter " + text); - } - }; - Texture.wrapFromString = function (text) { - switch (text.toLowerCase()) { - case "mirroredtepeat": return TextureWrap.MirroredRepeat; - case "clamptoedge": return TextureWrap.ClampToEdge; - case "repeat": return TextureWrap.Repeat; - default: throw new Error("Unknown texture wrap " + text); - } - }; - return Texture; - }()); - spine.Texture = Texture; - (function (TextureFilter) { - TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; - TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; - TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; - TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; - TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; - TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; - TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; - })(spine.TextureFilter || (spine.TextureFilter = {})); - var TextureFilter = spine.TextureFilter; - (function (TextureWrap) { - TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; - TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; - TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; - })(spine.TextureWrap || (spine.TextureWrap = {})); - var TextureWrap = spine.TextureWrap; - var TextureRegion = (function () { - function TextureRegion() { - this.u = 0; - this.v = 0; - this.u2 = 0; - this.v2 = 0; - this.width = 0; - this.height = 0; - this.rotate = false; - this.offsetX = 0; - this.offsetY = 0; - this.originalWidth = 0; - this.originalHeight = 0; - } - return TextureRegion; - }()); - spine.TextureRegion = TextureRegion; + var Texture = (function () { + function Texture(image) { + this._image = image; + } + Texture.prototype.getImage = function () { + return this._image; + }; + Texture.filterFromString = function (text) { + switch (text.toLowerCase()) { + case "nearest": return TextureFilter.Nearest; + case "linear": return TextureFilter.Linear; + case "mipmap": return TextureFilter.MipMap; + case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; + case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; + case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; + case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; + default: throw new Error("Unknown texture filter " + text); + } + }; + Texture.wrapFromString = function (text) { + switch (text.toLowerCase()) { + case "mirroredtepeat": return TextureWrap.MirroredRepeat; + case "clamptoedge": return TextureWrap.ClampToEdge; + case "repeat": return TextureWrap.Repeat; + default: throw new Error("Unknown texture wrap " + text); + } + }; + return Texture; + }()); + spine.Texture = Texture; + (function (TextureFilter) { + TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; + TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; + TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; + TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; + TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; + TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; + TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; + })(spine.TextureFilter || (spine.TextureFilter = {})); + var TextureFilter = spine.TextureFilter; + (function (TextureWrap) { + TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; + TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; + TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; + })(spine.TextureWrap || (spine.TextureWrap = {})); + var TextureWrap = spine.TextureWrap; + var TextureRegion = (function () { + function TextureRegion() { + this.u = 0; + this.v = 0; + this.u2 = 0; + this.v2 = 0; + this.width = 0; + this.height = 0; + this.rotate = false; + this.offsetX = 0; + this.offsetY = 0; + this.originalWidth = 0; + this.originalHeight = 0; + } + return TextureRegion; + }()); + spine.TextureRegion = TextureRegion; })(spine || (spine = {})); var spine; (function (spine) { - var canvas; - (function (canvas) { - var CanvasTexture = (function (_super) { - __extends(CanvasTexture, _super); - function CanvasTexture(image) { - _super.call(this, image); - } - CanvasTexture.prototype.setFilters = function (minFilter, magFilter) { }; - CanvasTexture.prototype.setWraps = function (uWrap, vWrap) { }; - CanvasTexture.prototype.dispose = function () { }; - return CanvasTexture; - }(spine.Texture)); - canvas.CanvasTexture = CanvasTexture; - })(canvas = spine.canvas || (spine.canvas = {})); + var canvas; + (function (canvas) { + var CanvasTexture = (function (_super) { + __extends(CanvasTexture, _super); + function CanvasTexture(image) { + _super.call(this, image); + } + CanvasTexture.prototype.setFilters = function (minFilter, magFilter) { }; + CanvasTexture.prototype.setWraps = function (uWrap, vWrap) { }; + CanvasTexture.prototype.dispose = function () { }; + return CanvasTexture; + }(spine.Texture)); + canvas.CanvasTexture = CanvasTexture; + })(canvas = spine.canvas || (spine.canvas = {})); })(spine || (spine = {})); var spine; (function (spine) { - var canvas; - (function (canvas) { - var SkeletonRenderer = (function () { - function SkeletonRenderer(context) { - this.triangleRendering = false; - this.debugRendering = false; - this.vertices = spine.Utils.newFloatArray(8 * 1024); - this.tempColor = new spine.Color(); - this.ctx = context; - } - SkeletonRenderer.prototype.draw = function (skeleton) { - if (this.triangleRendering) - this.drawTriangles(skeleton); - else - this.drawImages(skeleton); - }; - SkeletonRenderer.prototype.drawImages = function (skeleton) { - var ctx = this.ctx; - var drawOrder = skeleton.drawOrder; - if (this.debugRendering) - ctx.strokeStyle = "green"; - ctx.save(); - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var regionAttachment = null; - var region = null; - var image = null; - if (attachment instanceof spine.RegionAttachment) { - regionAttachment = attachment; - region = regionAttachment.region; - image = region.texture.getImage(); - } - else - continue; - var skeleton_1 = slot.bone.skeleton; - var skeletonColor = skeleton_1.color; - var slotColor = slot.color; - var regionColor = regionAttachment.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * regionColor.r, skeletonColor.g * slotColor.g * regionColor.g, skeletonColor.b * slotColor.b * regionColor.b, alpha); - var att = attachment; - var bone = slot.bone; - var w = region.width; - var h = region.height; - ctx.save(); - ctx.transform(bone.a, bone.c, bone.b, bone.d, bone.worldX, bone.worldY); - ctx.translate(attachment.offset[0], attachment.offset[1]); - ctx.rotate(attachment.rotation * Math.PI / 180); - ctx.scale(attachment.scaleX, attachment.scaleY); - ctx.translate(w / 2, h / 2); - if (attachment.region.rotate) { - var t = w; - w = h; - h = t; - ctx.rotate(-Math.PI / 2); - } - ctx.scale(1, -1); - ctx.translate(-w / 2, -h / 2); - if (color.r != 1 || color.g != 1 || color.b != 1 || color.a != 1) { - ctx.globalAlpha = color.a; - } - ctx.drawImage(image, region.x, region.y, w, h, 0, 0, w, h); - if (this.debugRendering) - ctx.strokeRect(0, 0, w, h); - ctx.restore(); - } - ctx.restore(); - }; - SkeletonRenderer.prototype.drawTriangles = function (skeleton) { - var blendMode = null; - var vertices = this.vertices; - var triangles = null; - var drawOrder = skeleton.drawOrder; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var texture = null; - var region = null; - if (attachment instanceof spine.RegionAttachment) { - var regionAttachment = attachment; - vertices = this.computeRegionVertices(slot, regionAttachment, false); - triangles = SkeletonRenderer.QUAD_TRIANGLES; - region = regionAttachment.region; - texture = region.texture.getImage(); - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - vertices = this.computeMeshVertices(slot, mesh, false); - triangles = mesh.triangles; - texture = mesh.region.renderObject.texture.getImage(); - } - else - continue; - if (texture != null) { - var slotBlendMode = slot.data.blendMode; - if (slotBlendMode != blendMode) { - blendMode = slotBlendMode; - } - var ctx = this.ctx; - for (var j = 0; j < triangles.length; j += 3) { - var t1 = triangles[j] * 8, t2 = triangles[j + 1] * 8, t3 = triangles[j + 2] * 8; - var x0 = vertices[t1], y0 = vertices[t1 + 1], u0 = vertices[t1 + 6], v0 = vertices[t1 + 7]; - var x1 = vertices[t2], y1 = vertices[t2 + 1], u1 = vertices[t2 + 6], v1 = vertices[t2 + 7]; - var x2 = vertices[t3], y2 = vertices[t3 + 1], u2 = vertices[t3 + 6], v2 = vertices[t3 + 7]; - this.drawTriangle(texture, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); - if (this.debugRendering) { - ctx.strokeStyle = "green"; - ctx.beginPath(); - ctx.moveTo(x0, y0); - ctx.lineTo(x1, y1); - ctx.lineTo(x2, y2); - ctx.lineTo(x0, y0); - ctx.stroke(); - } - } - } - } - }; - SkeletonRenderer.prototype.drawTriangle = function (img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2) { - var ctx = this.ctx; - u0 *= img.width; - v0 *= img.height; - u1 *= img.width; - v1 *= img.height; - u2 *= img.width; - v2 *= img.height; - ctx.beginPath(); - ctx.moveTo(x0, y0); - ctx.lineTo(x1, y1); - ctx.lineTo(x2, y2); - ctx.closePath(); - x1 -= x0; - y1 -= y0; - x2 -= x0; - y2 -= y0; - u1 -= u0; - v1 -= v0; - u2 -= u0; - v2 -= v0; - var det = 1 / (u1 * v2 - u2 * v1), a = (v2 * x1 - v1 * x2) * det, b = (v2 * y1 - v1 * y2) * det, c = (u1 * x2 - u2 * x1) * det, d = (u1 * y2 - u2 * y1) * det, e = x0 - a * u0 - c * v0, f = y0 - b * u0 - d * v0; - ctx.save(); - ctx.transform(a, b, c, d, e, f); - ctx.clip(); - ctx.drawImage(img, 0, 0); - ctx.restore(); - }; - SkeletonRenderer.prototype.computeRegionVertices = function (slot, region, pma) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var regionColor = region.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var multiplier = pma ? alpha : 1; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); - region.computeWorldVertices(slot.bone, this.vertices, 0, SkeletonRenderer.VERTEX_SIZE); - var vertices = this.vertices; - var uvs = region.uvs; - vertices[spine.RegionAttachment.C1R] = color.r; - vertices[spine.RegionAttachment.C1G] = color.g; - vertices[spine.RegionAttachment.C1B] = color.b; - vertices[spine.RegionAttachment.C1A] = color.a; - vertices[spine.RegionAttachment.U1] = uvs[0]; - vertices[spine.RegionAttachment.V1] = uvs[1]; - vertices[spine.RegionAttachment.C2R] = color.r; - vertices[spine.RegionAttachment.C2G] = color.g; - vertices[spine.RegionAttachment.C2B] = color.b; - vertices[spine.RegionAttachment.C2A] = color.a; - vertices[spine.RegionAttachment.U2] = uvs[2]; - vertices[spine.RegionAttachment.V2] = uvs[3]; - vertices[spine.RegionAttachment.C3R] = color.r; - vertices[spine.RegionAttachment.C3G] = color.g; - vertices[spine.RegionAttachment.C3B] = color.b; - vertices[spine.RegionAttachment.C3A] = color.a; - vertices[spine.RegionAttachment.U3] = uvs[4]; - vertices[spine.RegionAttachment.V3] = uvs[5]; - vertices[spine.RegionAttachment.C4R] = color.r; - vertices[spine.RegionAttachment.C4G] = color.g; - vertices[spine.RegionAttachment.C4B] = color.b; - vertices[spine.RegionAttachment.C4A] = color.a; - vertices[spine.RegionAttachment.U4] = uvs[6]; - vertices[spine.RegionAttachment.V4] = uvs[7]; - return vertices; - }; - SkeletonRenderer.prototype.computeMeshVertices = function (slot, mesh, pma) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var regionColor = mesh.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var multiplier = pma ? alpha : 1; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); - var numVertices = mesh.worldVerticesLength / 2; - if (this.vertices.length < mesh.worldVerticesLength) { - this.vertices = spine.Utils.newFloatArray(mesh.worldVerticesLength); - } - var vertices = this.vertices; - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, SkeletonRenderer.VERTEX_SIZE); - var uvs = mesh.uvs; - for (var i = 0, n = numVertices, u = 0, v = 2; i < n; i++) { - vertices[v++] = color.r; - vertices[v++] = color.g; - vertices[v++] = color.b; - vertices[v++] = color.a; - vertices[v++] = uvs[u++]; - vertices[v++] = uvs[u++]; - v += 2; - } - return vertices; - }; - SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - SkeletonRenderer.VERTEX_SIZE = 2 + 2 + 4; - return SkeletonRenderer; - }()); - canvas.SkeletonRenderer = SkeletonRenderer; - })(canvas = spine.canvas || (spine.canvas = {})); + var canvas; + (function (canvas) { + var SkeletonRenderer = (function () { + function SkeletonRenderer(context) { + this.triangleRendering = false; + this.debugRendering = false; + this.vertices = spine.Utils.newFloatArray(8 * 1024); + this.tempColor = new spine.Color(); + this.ctx = context; + } + SkeletonRenderer.prototype.draw = function (skeleton) { + if (this.triangleRendering) + this.drawTriangles(skeleton); + else + this.drawImages(skeleton); + }; + SkeletonRenderer.prototype.drawImages = function (skeleton) { + var ctx = this.ctx; + var drawOrder = skeleton.drawOrder; + if (this.debugRendering) + ctx.strokeStyle = "green"; + ctx.save(); + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var regionAttachment = null; + var region = null; + var image = null; + if (attachment instanceof spine.RegionAttachment) { + regionAttachment = attachment; + region = regionAttachment.region; + image = region.texture.getImage(); + } + else + continue; + var skeleton_1 = slot.bone.skeleton; + var skeletonColor = skeleton_1.color; + var slotColor = slot.color; + var regionColor = regionAttachment.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * regionColor.r, skeletonColor.g * slotColor.g * regionColor.g, skeletonColor.b * slotColor.b * regionColor.b, alpha); + var att = attachment; + var bone = slot.bone; + var w = region.width; + var h = region.height; + ctx.save(); + ctx.transform(bone.a, bone.c, bone.b, bone.d, bone.worldX, bone.worldY); + ctx.translate(attachment.offset[0], attachment.offset[1]); + ctx.rotate(attachment.rotation * Math.PI / 180); + ctx.scale(attachment.scaleX, attachment.scaleY); + ctx.translate(w / 2, h / 2); + if (attachment.region.rotate) { + var t = w; + w = h; + h = t; + ctx.rotate(-Math.PI / 2); + } + ctx.scale(1, -1); + ctx.translate(-w / 2, -h / 2); + if (color.r != 1 || color.g != 1 || color.b != 1 || color.a != 1) { + ctx.globalAlpha = color.a; + } + ctx.drawImage(image, region.x, region.y, w, h, 0, 0, w, h); + if (this.debugRendering) + ctx.strokeRect(0, 0, w, h); + ctx.restore(); + } + ctx.restore(); + }; + SkeletonRenderer.prototype.drawTriangles = function (skeleton) { + var blendMode = null; + var vertices = this.vertices; + var triangles = null; + var drawOrder = skeleton.drawOrder; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var texture = null; + var region = null; + if (attachment instanceof spine.RegionAttachment) { + var regionAttachment = attachment; + vertices = this.computeRegionVertices(slot, regionAttachment, false); + triangles = SkeletonRenderer.QUAD_TRIANGLES; + region = regionAttachment.region; + texture = region.texture.getImage(); + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + vertices = this.computeMeshVertices(slot, mesh, false); + triangles = mesh.triangles; + texture = mesh.region.renderObject.texture.getImage(); + } + else + continue; + if (texture != null) { + var slotBlendMode = slot.data.blendMode; + if (slotBlendMode != blendMode) { + blendMode = slotBlendMode; + } + var ctx = this.ctx; + for (var j = 0; j < triangles.length; j += 3) { + var t1 = triangles[j] * 8, t2 = triangles[j + 1] * 8, t3 = triangles[j + 2] * 8; + var x0 = vertices[t1], y0 = vertices[t1 + 1], u0 = vertices[t1 + 6], v0 = vertices[t1 + 7]; + var x1 = vertices[t2], y1 = vertices[t2 + 1], u1 = vertices[t2 + 6], v1 = vertices[t2 + 7]; + var x2 = vertices[t3], y2 = vertices[t3 + 1], u2 = vertices[t3 + 6], v2 = vertices[t3 + 7]; + this.drawTriangle(texture, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2); + if (this.debugRendering) { + ctx.strokeStyle = "green"; + ctx.beginPath(); + ctx.moveTo(x0, y0); + ctx.lineTo(x1, y1); + ctx.lineTo(x2, y2); + ctx.lineTo(x0, y0); + ctx.stroke(); + } + } + } + } + }; + SkeletonRenderer.prototype.drawTriangle = function (img, x0, y0, u0, v0, x1, y1, u1, v1, x2, y2, u2, v2) { + var ctx = this.ctx; + u0 *= img.width; + v0 *= img.height; + u1 *= img.width; + v1 *= img.height; + u2 *= img.width; + v2 *= img.height; + ctx.beginPath(); + ctx.moveTo(x0, y0); + ctx.lineTo(x1, y1); + ctx.lineTo(x2, y2); + ctx.closePath(); + x1 -= x0; + y1 -= y0; + x2 -= x0; + y2 -= y0; + u1 -= u0; + v1 -= v0; + u2 -= u0; + v2 -= v0; + var det = 1 / (u1 * v2 - u2 * v1), a = (v2 * x1 - v1 * x2) * det, b = (v2 * y1 - v1 * y2) * det, c = (u1 * x2 - u2 * x1) * det, d = (u1 * y2 - u2 * y1) * det, e = x0 - a * u0 - c * v0, f = y0 - b * u0 - d * v0; + ctx.save(); + ctx.transform(a, b, c, d, e, f); + ctx.clip(); + ctx.drawImage(img, 0, 0); + ctx.restore(); + }; + SkeletonRenderer.prototype.computeRegionVertices = function (slot, region, pma) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var regionColor = region.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var multiplier = pma ? alpha : 1; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); + region.computeWorldVertices(slot.bone, this.vertices, 0, SkeletonRenderer.VERTEX_SIZE); + var vertices = this.vertices; + var uvs = region.uvs; + vertices[spine.RegionAttachment.C1R] = color.r; + vertices[spine.RegionAttachment.C1G] = color.g; + vertices[spine.RegionAttachment.C1B] = color.b; + vertices[spine.RegionAttachment.C1A] = color.a; + vertices[spine.RegionAttachment.U1] = uvs[0]; + vertices[spine.RegionAttachment.V1] = uvs[1]; + vertices[spine.RegionAttachment.C2R] = color.r; + vertices[spine.RegionAttachment.C2G] = color.g; + vertices[spine.RegionAttachment.C2B] = color.b; + vertices[spine.RegionAttachment.C2A] = color.a; + vertices[spine.RegionAttachment.U2] = uvs[2]; + vertices[spine.RegionAttachment.V2] = uvs[3]; + vertices[spine.RegionAttachment.C3R] = color.r; + vertices[spine.RegionAttachment.C3G] = color.g; + vertices[spine.RegionAttachment.C3B] = color.b; + vertices[spine.RegionAttachment.C3A] = color.a; + vertices[spine.RegionAttachment.U3] = uvs[4]; + vertices[spine.RegionAttachment.V3] = uvs[5]; + vertices[spine.RegionAttachment.C4R] = color.r; + vertices[spine.RegionAttachment.C4G] = color.g; + vertices[spine.RegionAttachment.C4B] = color.b; + vertices[spine.RegionAttachment.C4A] = color.a; + vertices[spine.RegionAttachment.U4] = uvs[6]; + vertices[spine.RegionAttachment.V4] = uvs[7]; + return vertices; + }; + SkeletonRenderer.prototype.computeMeshVertices = function (slot, mesh, pma) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var regionColor = mesh.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var multiplier = pma ? alpha : 1; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * regionColor.r * multiplier, skeletonColor.g * slotColor.g * regionColor.g * multiplier, skeletonColor.b * slotColor.b * regionColor.b * multiplier, alpha); + var numVertices = mesh.worldVerticesLength / 2; + if (this.vertices.length < mesh.worldVerticesLength) { + this.vertices = spine.Utils.newFloatArray(mesh.worldVerticesLength); + } + var vertices = this.vertices; + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, SkeletonRenderer.VERTEX_SIZE); + var uvs = mesh.uvs; + for (var i = 0, n = numVertices, u = 0, v = 2; i < n; i++) { + vertices[v++] = color.r; + vertices[v++] = color.g; + vertices[v++] = color.b; + vertices[v++] = color.a; + vertices[v++] = uvs[u++]; + vertices[v++] = uvs[u++]; + v += 2; + } + return vertices; + }; + SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + SkeletonRenderer.VERTEX_SIZE = 2 + 2 + 4; + return SkeletonRenderer; + }()); + canvas.SkeletonRenderer = SkeletonRenderer; + })(canvas = spine.canvas || (spine.canvas = {})); })(spine || (spine = {})); var spine; (function (spine) { - var Animation = (function () { - function Animation(name, timelines, duration) { - if (name == null) - throw new Error("name cannot be null."); - if (timelines == null) - throw new Error("timelines cannot be null."); - this.name = name; - this.timelines = timelines; - this.duration = duration; - } - Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (loop && this.duration != 0) { - time %= this.duration; - if (lastTime > 0) - lastTime %= this.duration; - } - var timelines = this.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); - }; - Animation.binarySearch = function (values, target, step) { - if (step === void 0) { step = 1; } - var low = 0; - var high = values.length / step - 2; - if (high == 0) - return step; - var current = high >>> 1; - while (true) { - if (values[(current + 1) * step] <= target) - low = current + 1; - else - high = current; - if (low == high) - return (low + 1) * step; - current = (low + high) >>> 1; - } - }; - Animation.linearSearch = function (values, target, step) { - for (var i = 0, last = values.length - step; i <= last; i += step) - if (values[i] > target) - return i; - return -1; - }; - return Animation; - }()); - spine.Animation = Animation; - (function (TimelineType) { - TimelineType[TimelineType["rotate"] = 0] = "rotate"; - TimelineType[TimelineType["translate"] = 1] = "translate"; - TimelineType[TimelineType["scale"] = 2] = "scale"; - TimelineType[TimelineType["shear"] = 3] = "shear"; - TimelineType[TimelineType["attachment"] = 4] = "attachment"; - TimelineType[TimelineType["color"] = 5] = "color"; - TimelineType[TimelineType["deform"] = 6] = "deform"; - TimelineType[TimelineType["event"] = 7] = "event"; - TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; - TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; - TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; - TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; - TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; - TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; - TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; - })(spine.TimelineType || (spine.TimelineType = {})); - var TimelineType = spine.TimelineType; - var CurveTimeline = (function () { - function CurveTimeline(frameCount) { - if (frameCount <= 0) - throw new Error("frameCount must be > 0: " + frameCount); - this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); - } - CurveTimeline.prototype.getFrameCount = function () { - return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; - }; - CurveTimeline.prototype.setLinear = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; - }; - CurveTimeline.prototype.setStepped = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; - }; - CurveTimeline.prototype.getCurveType = function (frameIndex) { - var index = frameIndex * CurveTimeline.BEZIER_SIZE; - if (index == this.curves.length) - return CurveTimeline.LINEAR; - var type = this.curves[index]; - if (type == CurveTimeline.LINEAR) - return CurveTimeline.LINEAR; - if (type == CurveTimeline.STEPPED) - return CurveTimeline.STEPPED; - return CurveTimeline.BEZIER; - }; - CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { - var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; - var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; - var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; - var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var curves = this.curves; - curves[i++] = CurveTimeline.BEZIER; - var x = dfx, y = dfy; - for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - curves[i] = x; - curves[i + 1] = y; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - x += dfx; - y += dfy; - } - }; - CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { - percent = spine.MathUtils.clamp(percent, 0, 1); - var curves = this.curves; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var type = curves[i]; - if (type == CurveTimeline.LINEAR) - return percent; - if (type == CurveTimeline.STEPPED) - return 0; - i++; - var x = 0; - for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - x = curves[i]; - if (x >= percent) { - var prevX = void 0, prevY = void 0; - if (i == start) { - prevX = 0; - prevY = 0; - } - else { - prevX = curves[i - 2]; - prevY = curves[i - 1]; - } - return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); - } - } - var y = curves[i - 1]; - return y + (1 - y) * (percent - x) / (1 - x); - }; - CurveTimeline.LINEAR = 0; - CurveTimeline.STEPPED = 1; - CurveTimeline.BEZIER = 2; - CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; - return CurveTimeline; - }()); - spine.CurveTimeline = CurveTimeline; - var RotateTimeline = (function (_super) { - __extends(RotateTimeline, _super); - function RotateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount << 1); - } - RotateTimeline.prototype.getPropertyId = function () { - return (TimelineType.rotate << 24) + this.boneIndex; - }; - RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { - frameIndex <<= 1; - this.frames[frameIndex] = time; - this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; - }; - RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { - if (setupPose) - bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; - else { - var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; - r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; - bone.rotation += r_1 * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); - var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); - var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - r = prevRotation + r * percent; - if (setupPose) { - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation = bone.data.rotation + r * alpha; - } - else { - r = bone.data.rotation + r - bone.rotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation += r * alpha; - } - }; - RotateTimeline.ENTRIES = 2; - RotateTimeline.PREV_TIME = -2; - RotateTimeline.PREV_ROTATION = -1; - RotateTimeline.ROTATION = 1; - return RotateTimeline; - }(CurveTimeline)); - spine.RotateTimeline = RotateTimeline; - var TranslateTimeline = (function (_super) { - __extends(TranslateTimeline, _super); - function TranslateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); - } - TranslateTimeline.prototype.getPropertyId = function () { - return (TimelineType.translate << 24) + this.boneIndex; - }; - TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { - frameIndex *= TranslateTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TranslateTimeline.X] = x; - this.frames[frameIndex + TranslateTimeline.Y] = y; - }; - TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.x = bone.data.x; - bone.y = bone.data.y; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { - x = frames[frames.length + TranslateTimeline.PREV_X]; - y = frames[frames.length + TranslateTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - x = frames[frame + TranslateTimeline.PREV_X]; - y = frames[frame + TranslateTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); - x += (frames[frame + TranslateTimeline.X] - x) * percent; - y += (frames[frame + TranslateTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.x = bone.data.x + x * alpha; - bone.y = bone.data.y + y * alpha; - } - else { - bone.x += (bone.data.x + x - bone.x) * alpha; - bone.y += (bone.data.y + y - bone.y) * alpha; - } - }; - TranslateTimeline.ENTRIES = 3; - TranslateTimeline.PREV_TIME = -3; - TranslateTimeline.PREV_X = -2; - TranslateTimeline.PREV_Y = -1; - TranslateTimeline.X = 1; - TranslateTimeline.Y = 2; - return TranslateTimeline; - }(CurveTimeline)); - spine.TranslateTimeline = TranslateTimeline; - var ScaleTimeline = (function (_super) { - __extends(ScaleTimeline, _super); - function ScaleTimeline(frameCount) { - _super.call(this, frameCount); - } - ScaleTimeline.prototype.getPropertyId = function () { - return (TimelineType.scale << 24) + this.boneIndex; - }; - ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.scaleX = bone.data.scaleX; - bone.scaleY = bone.data.scaleY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { - x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; - y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; - } - else { - var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - x = frames[frame + ScaleTimeline.PREV_X]; - y = frames[frame + ScaleTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); - x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; - y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; - } - if (alpha == 1) { - bone.scaleX = x; - bone.scaleY = y; - } - else { - var bx = 0, by = 0; - if (setupPose) { - bx = bone.data.scaleX; - by = bone.data.scaleY; - } - else { - bx = bone.scaleX; - by = bone.scaleY; - } - if (mixingOut) { - x = Math.abs(x) * spine.MathUtils.signum(bx); - y = Math.abs(y) * spine.MathUtils.signum(by); - } - else { - bx = Math.abs(bx) * spine.MathUtils.signum(x); - by = Math.abs(by) * spine.MathUtils.signum(y); - } - bone.scaleX = bx + (x - bx) * alpha; - bone.scaleY = by + (y - by) * alpha; - } - }; - return ScaleTimeline; - }(TranslateTimeline)); - spine.ScaleTimeline = ScaleTimeline; - var ShearTimeline = (function (_super) { - __extends(ShearTimeline, _super); - function ShearTimeline(frameCount) { - _super.call(this, frameCount); - } - ShearTimeline.prototype.getPropertyId = function () { - return (TimelineType.shear << 24) + this.boneIndex; - }; - ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.shearX = bone.data.shearX; - bone.shearY = bone.data.shearY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { - x = frames[frames.length + ShearTimeline.PREV_X]; - y = frames[frames.length + ShearTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - x = frames[frame + ShearTimeline.PREV_X]; - y = frames[frame + ShearTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); - x = x + (frames[frame + ShearTimeline.X] - x) * percent; - y = y + (frames[frame + ShearTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.shearX = bone.data.shearX + x * alpha; - bone.shearY = bone.data.shearY + y * alpha; - } - else { - bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; - } - }; - return ShearTimeline; - }(TranslateTimeline)); - spine.ShearTimeline = ShearTimeline; - var ColorTimeline = (function (_super) { - __extends(ColorTimeline, _super); - function ColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); - } - ColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.color << 24) + this.slotIndex; - }; - ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { - frameIndex *= ColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + ColorTimeline.R] = r; - this.frames[frameIndex + ColorTimeline.G] = g; - this.frames[frameIndex + ColorTimeline.B] = b; - this.frames[frameIndex + ColorTimeline.A] = a; - }; - ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - slot.color.setFromColor(slot.data.color); - return; - } - var r = 0, g = 0, b = 0, a = 0; - if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + ColorTimeline.PREV_R]; - g = frames[i + ColorTimeline.PREV_G]; - b = frames[i + ColorTimeline.PREV_B]; - a = frames[i + ColorTimeline.PREV_A]; - } - else { - var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); - r = frames[frame + ColorTimeline.PREV_R]; - g = frames[frame + ColorTimeline.PREV_G]; - b = frames[frame + ColorTimeline.PREV_B]; - a = frames[frame + ColorTimeline.PREV_A]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + ColorTimeline.R] - r) * percent; - g += (frames[frame + ColorTimeline.G] - g) * percent; - b += (frames[frame + ColorTimeline.B] - b) * percent; - a += (frames[frame + ColorTimeline.A] - a) * percent; - } - if (alpha == 1) - slot.color.set(r, g, b, a); - else { - var color = slot.color; - if (setupPose) - color.setFromColor(slot.data.color); - color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); - } - }; - ColorTimeline.ENTRIES = 5; - ColorTimeline.PREV_TIME = -5; - ColorTimeline.PREV_R = -4; - ColorTimeline.PREV_G = -3; - ColorTimeline.PREV_B = -2; - ColorTimeline.PREV_A = -1; - ColorTimeline.R = 1; - ColorTimeline.G = 2; - ColorTimeline.B = 3; - ColorTimeline.A = 4; - return ColorTimeline; - }(CurveTimeline)); - spine.ColorTimeline = ColorTimeline; - var TwoColorTimeline = (function (_super) { - __extends(TwoColorTimeline, _super); - function TwoColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); - } - TwoColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.twoColor << 24) + this.slotIndex; - }; - TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { - frameIndex *= TwoColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TwoColorTimeline.R] = r; - this.frames[frameIndex + TwoColorTimeline.G] = g; - this.frames[frameIndex + TwoColorTimeline.B] = b; - this.frames[frameIndex + TwoColorTimeline.A] = a; - this.frames[frameIndex + TwoColorTimeline.R2] = r2; - this.frames[frameIndex + TwoColorTimeline.G2] = g2; - this.frames[frameIndex + TwoColorTimeline.B2] = b2; - }; - TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - slot.color.setFromColor(slot.data.color); - slot.darkColor.setFromColor(slot.data.darkColor); - } - return; - } - var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; - if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + TwoColorTimeline.PREV_R]; - g = frames[i + TwoColorTimeline.PREV_G]; - b = frames[i + TwoColorTimeline.PREV_B]; - a = frames[i + TwoColorTimeline.PREV_A]; - r2 = frames[i + TwoColorTimeline.PREV_R2]; - g2 = frames[i + TwoColorTimeline.PREV_G2]; - b2 = frames[i + TwoColorTimeline.PREV_B2]; - } - else { - var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); - r = frames[frame + TwoColorTimeline.PREV_R]; - g = frames[frame + TwoColorTimeline.PREV_G]; - b = frames[frame + TwoColorTimeline.PREV_B]; - a = frames[frame + TwoColorTimeline.PREV_A]; - r2 = frames[frame + TwoColorTimeline.PREV_R2]; - g2 = frames[frame + TwoColorTimeline.PREV_G2]; - b2 = frames[frame + TwoColorTimeline.PREV_B2]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + TwoColorTimeline.R] - r) * percent; - g += (frames[frame + TwoColorTimeline.G] - g) * percent; - b += (frames[frame + TwoColorTimeline.B] - b) * percent; - a += (frames[frame + TwoColorTimeline.A] - a) * percent; - r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; - g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; - b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; - } - if (alpha == 1) { - slot.color.set(r, g, b, a); - slot.darkColor.set(r2, g2, b2, 1); - } - else { - var light = slot.color; - var dark = slot.darkColor; - if (setupPose) { - light.setFromColor(slot.data.color); - dark.setFromColor(slot.data.darkColor); - } - light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); - dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); - } - }; - TwoColorTimeline.ENTRIES = 8; - TwoColorTimeline.PREV_TIME = -8; - TwoColorTimeline.PREV_R = -7; - TwoColorTimeline.PREV_G = -6; - TwoColorTimeline.PREV_B = -5; - TwoColorTimeline.PREV_A = -4; - TwoColorTimeline.PREV_R2 = -3; - TwoColorTimeline.PREV_G2 = -2; - TwoColorTimeline.PREV_B2 = -1; - TwoColorTimeline.R = 1; - TwoColorTimeline.G = 2; - TwoColorTimeline.B = 3; - TwoColorTimeline.A = 4; - TwoColorTimeline.R2 = 5; - TwoColorTimeline.G2 = 6; - TwoColorTimeline.B2 = 7; - return TwoColorTimeline; - }(CurveTimeline)); - spine.TwoColorTimeline = TwoColorTimeline; - var AttachmentTimeline = (function () { - function AttachmentTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.attachmentNames = new Array(frameCount); - } - AttachmentTimeline.prototype.getPropertyId = function () { - return (TimelineType.attachment << 24) + this.slotIndex; - }; - AttachmentTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { - this.frames[frameIndex] = time; - this.attachmentNames[frameIndex] = attachmentName; - }; - AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - if (mixingOut && setupPose) { - var attachmentName_1 = slot.data.attachmentName; - slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - var attachmentName_2 = slot.data.attachmentName; - slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); - } - return; - } - var frameIndex = 0; - if (time >= frames[frames.length - 1]) - frameIndex = frames.length - 1; - else - frameIndex = Animation.binarySearch(frames, time, 1) - 1; - var attachmentName = this.attachmentNames[frameIndex]; - skeleton.slots[this.slotIndex] - .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); - }; - return AttachmentTimeline; - }()); - spine.AttachmentTimeline = AttachmentTimeline; - var DeformTimeline = (function (_super) { - __extends(DeformTimeline, _super); - function DeformTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount); - this.frameVertices = new Array(frameCount); - } - DeformTimeline.prototype.getPropertyId = function () { - return (TimelineType.deform << 24) + this.slotIndex; - }; - DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { - this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; - }; - DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var slotAttachment = slot.getAttachment(); - if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) - return; - var frames = this.frames; - var verticesArray = slot.attachmentVertices; - if (time < frames[0]) { - if (setupPose) - spine.Utils.setArraySize(verticesArray, 0); - return; - } - var frameVertices = this.frameVertices; - var vertexCount = frameVertices[0].length; - if (verticesArray.length != vertexCount && !setupPose) - alpha = 1; - var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); - if (time >= frames[frames.length - 1]) { - var lastVertices = frameVertices[frames.length - 1]; - if (alpha == 1) { - spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var setup = setupVertices[i]; - vertices[i] = setup + (lastVertices[i] - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] = lastVertices[i] * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time); - var prevVertices = frameVertices[frame - 1]; - var nextVertices = frameVertices[frame]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); - if (alpha == 1) { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i], setup = setupVertices[i]; - vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; - } - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; - } - } - }; - return DeformTimeline; - }(CurveTimeline)); - spine.DeformTimeline = DeformTimeline; - var EventTimeline = (function () { - function EventTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.events = new Array(frameCount); - } - EventTimeline.prototype.getPropertyId = function () { - return TimelineType.event << 24; - }; - EventTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - EventTimeline.prototype.setFrame = function (frameIndex, event) { - this.frames[frameIndex] = event.time; - this.events[frameIndex] = event; - }; - EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - if (firedEvents == null) - return; - var frames = this.frames; - var frameCount = this.frames.length; - if (lastTime > time) { - this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); - lastTime = -1; - } - else if (lastTime >= frames[frameCount - 1]) - return; - if (time < frames[0]) - return; - var frame = 0; - if (lastTime < frames[0]) - frame = 0; - else { - frame = Animation.binarySearch(frames, lastTime); - var frameTime = frames[frame]; - while (frame > 0) { - if (frames[frame - 1] != frameTime) - break; - frame--; - } - } - for (; frame < frameCount && time >= frames[frame]; frame++) - firedEvents.push(this.events[frame]); - }; - return EventTimeline; - }()); - spine.EventTimeline = EventTimeline; - var DrawOrderTimeline = (function () { - function DrawOrderTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.drawOrders = new Array(frameCount); - } - DrawOrderTimeline.prototype.getPropertyId = function () { - return TimelineType.drawOrder << 24; - }; - DrawOrderTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { - this.frames[frameIndex] = time; - this.drawOrders[frameIndex] = drawOrder; - }; - DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var drawOrder = skeleton.drawOrder; - var slots = skeleton.slots; - if (mixingOut && setupPose) { - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frame = 0; - if (time >= frames[frames.length - 1]) - frame = frames.length - 1; - else - frame = Animation.binarySearch(frames, time) - 1; - var drawOrderToSetupIndex = this.drawOrders[frame]; - if (drawOrderToSetupIndex == null) - spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); - else { - for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) - drawOrder[i] = slots[drawOrderToSetupIndex[i]]; - } - }; - return DrawOrderTimeline; - }()); - spine.DrawOrderTimeline = DrawOrderTimeline; - var IkConstraintTimeline = (function (_super) { - __extends(IkConstraintTimeline, _super); - function IkConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); - } - IkConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; - }; - IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { - frameIndex *= IkConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; - this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; - }; - IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.mix = constraint.data.mix; - constraint.bendDirection = constraint.data.bendDirection; - } - return; - } - if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { - if (setupPose) { - constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection - : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - return; - } - var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); - var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); - if (setupPose) { - constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - }; - IkConstraintTimeline.ENTRIES = 3; - IkConstraintTimeline.PREV_TIME = -3; - IkConstraintTimeline.PREV_MIX = -2; - IkConstraintTimeline.PREV_BEND_DIRECTION = -1; - IkConstraintTimeline.MIX = 1; - IkConstraintTimeline.BEND_DIRECTION = 2; - return IkConstraintTimeline; - }(CurveTimeline)); - spine.IkConstraintTimeline = IkConstraintTimeline; - var TransformConstraintTimeline = (function (_super) { - __extends(TransformConstraintTimeline, _super); - function TransformConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); - } - TransformConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; - }; - TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { - frameIndex *= TransformConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; - this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; - this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; - }; - TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.rotateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - return; - } - var rotate = 0, translate = 0, scale = 0, shear = 0; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { - var i = frames.length; - rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; - } - else { - var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; - scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; - shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; - } - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; - constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; - constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; - constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - constraint.scaleMix += (scale - constraint.scaleMix) * alpha; - constraint.shearMix += (shear - constraint.shearMix) * alpha; - } - }; - TransformConstraintTimeline.ENTRIES = 5; - TransformConstraintTimeline.PREV_TIME = -5; - TransformConstraintTimeline.PREV_ROTATE = -4; - TransformConstraintTimeline.PREV_TRANSLATE = -3; - TransformConstraintTimeline.PREV_SCALE = -2; - TransformConstraintTimeline.PREV_SHEAR = -1; - TransformConstraintTimeline.ROTATE = 1; - TransformConstraintTimeline.TRANSLATE = 2; - TransformConstraintTimeline.SCALE = 3; - TransformConstraintTimeline.SHEAR = 4; - return TransformConstraintTimeline; - }(CurveTimeline)); - spine.TransformConstraintTimeline = TransformConstraintTimeline; - var PathConstraintPositionTimeline = (function (_super) { - __extends(PathConstraintPositionTimeline, _super); - function PathConstraintPositionTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); - } - PathConstraintPositionTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; - }; - PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { - frameIndex *= PathConstraintPositionTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; - }; - PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.position = constraint.data.position; - return; - } - var position = 0; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) - position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); - position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; - } - if (setupPose) - constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; - else - constraint.position += (position - constraint.position) * alpha; - }; - PathConstraintPositionTimeline.ENTRIES = 2; - PathConstraintPositionTimeline.PREV_TIME = -2; - PathConstraintPositionTimeline.PREV_VALUE = -1; - PathConstraintPositionTimeline.VALUE = 1; - return PathConstraintPositionTimeline; - }(CurveTimeline)); - spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; - var PathConstraintSpacingTimeline = (function (_super) { - __extends(PathConstraintSpacingTimeline, _super); - function PathConstraintSpacingTimeline(frameCount) { - _super.call(this, frameCount); - } - PathConstraintSpacingTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; - }; - PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.spacing = constraint.data.spacing; - return; - } - var spacing = 0; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) - spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); - spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; - } - if (setupPose) - constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; - else - constraint.spacing += (spacing - constraint.spacing) * alpha; - }; - return PathConstraintSpacingTimeline; - }(PathConstraintPositionTimeline)); - spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; - var PathConstraintMixTimeline = (function (_super) { - __extends(PathConstraintMixTimeline, _super); - function PathConstraintMixTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); - } - PathConstraintMixTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; - }; - PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { - frameIndex *= PathConstraintMixTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; - }; - PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix; - constraint.translateMix = constraint.data.translateMix; - } - return; - } - var rotate = 0, translate = 0; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { - rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; - } - else { - var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; - } - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; - constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - } - }; - PathConstraintMixTimeline.ENTRIES = 3; - PathConstraintMixTimeline.PREV_TIME = -3; - PathConstraintMixTimeline.PREV_ROTATE = -2; - PathConstraintMixTimeline.PREV_TRANSLATE = -1; - PathConstraintMixTimeline.ROTATE = 1; - PathConstraintMixTimeline.TRANSLATE = 2; - return PathConstraintMixTimeline; - }(CurveTimeline)); - spine.PathConstraintMixTimeline = PathConstraintMixTimeline; + var Animation = (function () { + function Animation(name, timelines, duration) { + if (name == null) + throw new Error("name cannot be null."); + if (timelines == null) + throw new Error("timelines cannot be null."); + this.name = name; + this.timelines = timelines; + this.duration = duration; + } + Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (loop && this.duration != 0) { + time %= this.duration; + if (lastTime > 0) + lastTime %= this.duration; + } + var timelines = this.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); + }; + Animation.binarySearch = function (values, target, step) { + if (step === void 0) { step = 1; } + var low = 0; + var high = values.length / step - 2; + if (high == 0) + return step; + var current = high >>> 1; + while (true) { + if (values[(current + 1) * step] <= target) + low = current + 1; + else + high = current; + if (low == high) + return (low + 1) * step; + current = (low + high) >>> 1; + } + }; + Animation.linearSearch = function (values, target, step) { + for (var i = 0, last = values.length - step; i <= last; i += step) + if (values[i] > target) + return i; + return -1; + }; + return Animation; + }()); + spine.Animation = Animation; + (function (TimelineType) { + TimelineType[TimelineType["rotate"] = 0] = "rotate"; + TimelineType[TimelineType["translate"] = 1] = "translate"; + TimelineType[TimelineType["scale"] = 2] = "scale"; + TimelineType[TimelineType["shear"] = 3] = "shear"; + TimelineType[TimelineType["attachment"] = 4] = "attachment"; + TimelineType[TimelineType["color"] = 5] = "color"; + TimelineType[TimelineType["deform"] = 6] = "deform"; + TimelineType[TimelineType["event"] = 7] = "event"; + TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; + TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; + TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; + TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; + TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; + TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; + TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; + var CurveTimeline = (function () { + function CurveTimeline(frameCount) { + if (frameCount <= 0) + throw new Error("frameCount must be > 0: " + frameCount); + this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); + } + CurveTimeline.prototype.getFrameCount = function () { + return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; + }; + CurveTimeline.prototype.setLinear = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; + }; + CurveTimeline.prototype.setStepped = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; + }; + CurveTimeline.prototype.getCurveType = function (frameIndex) { + var index = frameIndex * CurveTimeline.BEZIER_SIZE; + if (index == this.curves.length) + return CurveTimeline.LINEAR; + var type = this.curves[index]; + if (type == CurveTimeline.LINEAR) + return CurveTimeline.LINEAR; + if (type == CurveTimeline.STEPPED) + return CurveTimeline.STEPPED; + return CurveTimeline.BEZIER; + }; + CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { + var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; + var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; + var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; + var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var curves = this.curves; + curves[i++] = CurveTimeline.BEZIER; + var x = dfx, y = dfy; + for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + curves[i] = x; + curves[i + 1] = y; + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + x += dfx; + y += dfy; + } + }; + CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { + percent = spine.MathUtils.clamp(percent, 0, 1); + var curves = this.curves; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var type = curves[i]; + if (type == CurveTimeline.LINEAR) + return percent; + if (type == CurveTimeline.STEPPED) + return 0; + i++; + var x = 0; + for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + x = curves[i]; + if (x >= percent) { + var prevX = void 0, prevY = void 0; + if (i == start) { + prevX = 0; + prevY = 0; + } + else { + prevX = curves[i - 2]; + prevY = curves[i - 1]; + } + return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); + } + } + var y = curves[i - 1]; + return y + (1 - y) * (percent - x) / (1 - x); + }; + CurveTimeline.LINEAR = 0; + CurveTimeline.STEPPED = 1; + CurveTimeline.BEZIER = 2; + CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; + return CurveTimeline; + }()); + spine.CurveTimeline = CurveTimeline; + var RotateTimeline = (function (_super) { + __extends(RotateTimeline, _super); + function RotateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount << 1); + } + RotateTimeline.prototype.getPropertyId = function () { + return (TimelineType.rotate << 24) + this.boneIndex; + }; + RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { + frameIndex <<= 1; + this.frames[frameIndex] = time; + this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; + }; + RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { + if (setupPose) + bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; + else { + var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; + r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; + bone.rotation += r_1 * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); + var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); + var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + r = prevRotation + r * percent; + if (setupPose) { + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation = bone.data.rotation + r * alpha; + } + else { + r = bone.data.rotation + r - bone.rotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation += r * alpha; + } + }; + RotateTimeline.ENTRIES = 2; + RotateTimeline.PREV_TIME = -2; + RotateTimeline.PREV_ROTATION = -1; + RotateTimeline.ROTATION = 1; + return RotateTimeline; + }(CurveTimeline)); + spine.RotateTimeline = RotateTimeline; + var TranslateTimeline = (function (_super) { + __extends(TranslateTimeline, _super); + function TranslateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); + } + TranslateTimeline.prototype.getPropertyId = function () { + return (TimelineType.translate << 24) + this.boneIndex; + }; + TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { + frameIndex *= TranslateTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TranslateTimeline.X] = x; + this.frames[frameIndex + TranslateTimeline.Y] = y; + }; + TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { + x = frames[frames.length + TranslateTimeline.PREV_X]; + y = frames[frames.length + TranslateTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); + x = frames[frame + TranslateTimeline.PREV_X]; + y = frames[frame + TranslateTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); + x += (frames[frame + TranslateTimeline.X] - x) * percent; + y += (frames[frame + TranslateTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.x = bone.data.x + x * alpha; + bone.y = bone.data.y + y * alpha; + } + else { + bone.x += (bone.data.x + x - bone.x) * alpha; + bone.y += (bone.data.y + y - bone.y) * alpha; + } + }; + TranslateTimeline.ENTRIES = 3; + TranslateTimeline.PREV_TIME = -3; + TranslateTimeline.PREV_X = -2; + TranslateTimeline.PREV_Y = -1; + TranslateTimeline.X = 1; + TranslateTimeline.Y = 2; + return TranslateTimeline; + }(CurveTimeline)); + spine.TranslateTimeline = TranslateTimeline; + var ScaleTimeline = (function (_super) { + __extends(ScaleTimeline, _super); + function ScaleTimeline(frameCount) { + _super.call(this, frameCount); + } + ScaleTimeline.prototype.getPropertyId = function () { + return (TimelineType.scale << 24) + this.boneIndex; + }; + ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { + x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; + y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; + } + else { + var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); + x = frames[frame + ScaleTimeline.PREV_X]; + y = frames[frame + ScaleTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); + x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; + y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; + } + if (alpha == 1) { + bone.scaleX = x; + bone.scaleY = y; + } + else { + var bx = 0, by = 0; + if (setupPose) { + bx = bone.data.scaleX; + by = bone.data.scaleY; + } + else { + bx = bone.scaleX; + by = bone.scaleY; + } + if (mixingOut) { + x = Math.abs(x) * spine.MathUtils.signum(bx); + y = Math.abs(y) * spine.MathUtils.signum(by); + } + else { + bx = Math.abs(bx) * spine.MathUtils.signum(x); + by = Math.abs(by) * spine.MathUtils.signum(y); + } + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + } + }; + return ScaleTimeline; + }(TranslateTimeline)); + spine.ScaleTimeline = ScaleTimeline; + var ShearTimeline = (function (_super) { + __extends(ShearTimeline, _super); + function ShearTimeline(frameCount) { + _super.call(this, frameCount); + } + ShearTimeline.prototype.getPropertyId = function () { + return (TimelineType.shear << 24) + this.boneIndex; + }; + ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { + x = frames[frames.length + ShearTimeline.PREV_X]; + y = frames[frames.length + ShearTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); + x = frames[frame + ShearTimeline.PREV_X]; + y = frames[frame + ShearTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); + x = x + (frames[frame + ShearTimeline.X] - x) * percent; + y = y + (frames[frame + ShearTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.shearX = bone.data.shearX + x * alpha; + bone.shearY = bone.data.shearY + y * alpha; + } + else { + bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; + bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; + } + }; + return ShearTimeline; + }(TranslateTimeline)); + spine.ShearTimeline = ShearTimeline; + var ColorTimeline = (function (_super) { + __extends(ColorTimeline, _super); + function ColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); + } + ColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.color << 24) + this.slotIndex; + }; + ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { + frameIndex *= ColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + ColorTimeline.R] = r; + this.frames[frameIndex + ColorTimeline.G] = g; + this.frames[frameIndex + ColorTimeline.B] = b; + this.frames[frameIndex + ColorTimeline.A] = a; + }; + ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + slot.color.setFromColor(slot.data.color); + return; + } + var r = 0, g = 0, b = 0, a = 0; + if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + ColorTimeline.PREV_R]; + g = frames[i + ColorTimeline.PREV_G]; + b = frames[i + ColorTimeline.PREV_B]; + a = frames[i + ColorTimeline.PREV_A]; + } + else { + var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); + r = frames[frame + ColorTimeline.PREV_R]; + g = frames[frame + ColorTimeline.PREV_G]; + b = frames[frame + ColorTimeline.PREV_B]; + a = frames[frame + ColorTimeline.PREV_A]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + ColorTimeline.R] - r) * percent; + g += (frames[frame + ColorTimeline.G] - g) * percent; + b += (frames[frame + ColorTimeline.B] - b) * percent; + a += (frames[frame + ColorTimeline.A] - a) * percent; + } + if (alpha == 1) + slot.color.set(r, g, b, a); + else { + var color = slot.color; + if (setupPose) + color.setFromColor(slot.data.color); + color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); + } + }; + ColorTimeline.ENTRIES = 5; + ColorTimeline.PREV_TIME = -5; + ColorTimeline.PREV_R = -4; + ColorTimeline.PREV_G = -3; + ColorTimeline.PREV_B = -2; + ColorTimeline.PREV_A = -1; + ColorTimeline.R = 1; + ColorTimeline.G = 2; + ColorTimeline.B = 3; + ColorTimeline.A = 4; + return ColorTimeline; + }(CurveTimeline)); + spine.ColorTimeline = ColorTimeline; + var TwoColorTimeline = (function (_super) { + __extends(TwoColorTimeline, _super); + function TwoColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); + } + TwoColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.twoColor << 24) + this.slotIndex; + }; + TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { + frameIndex *= TwoColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TwoColorTimeline.R] = r; + this.frames[frameIndex + TwoColorTimeline.G] = g; + this.frames[frameIndex + TwoColorTimeline.B] = b; + this.frames[frameIndex + TwoColorTimeline.A] = a; + this.frames[frameIndex + TwoColorTimeline.R2] = r2; + this.frames[frameIndex + TwoColorTimeline.G2] = g2; + this.frames[frameIndex + TwoColorTimeline.B2] = b2; + }; + TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + slot.color.setFromColor(slot.data.color); + slot.darkColor.setFromColor(slot.data.darkColor); + } + return; + } + var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; + if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + TwoColorTimeline.PREV_R]; + g = frames[i + TwoColorTimeline.PREV_G]; + b = frames[i + TwoColorTimeline.PREV_B]; + a = frames[i + TwoColorTimeline.PREV_A]; + r2 = frames[i + TwoColorTimeline.PREV_R2]; + g2 = frames[i + TwoColorTimeline.PREV_G2]; + b2 = frames[i + TwoColorTimeline.PREV_B2]; + } + else { + var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); + r = frames[frame + TwoColorTimeline.PREV_R]; + g = frames[frame + TwoColorTimeline.PREV_G]; + b = frames[frame + TwoColorTimeline.PREV_B]; + a = frames[frame + TwoColorTimeline.PREV_A]; + r2 = frames[frame + TwoColorTimeline.PREV_R2]; + g2 = frames[frame + TwoColorTimeline.PREV_G2]; + b2 = frames[frame + TwoColorTimeline.PREV_B2]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + TwoColorTimeline.R] - r) * percent; + g += (frames[frame + TwoColorTimeline.G] - g) * percent; + b += (frames[frame + TwoColorTimeline.B] - b) * percent; + a += (frames[frame + TwoColorTimeline.A] - a) * percent; + r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; + g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; + b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; + } + if (alpha == 1) { + slot.color.set(r, g, b, a); + slot.darkColor.set(r2, g2, b2, 1); + } + else { + var light = slot.color; + var dark = slot.darkColor; + if (setupPose) { + light.setFromColor(slot.data.color); + dark.setFromColor(slot.data.darkColor); + } + light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); + dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); + } + }; + TwoColorTimeline.ENTRIES = 8; + TwoColorTimeline.PREV_TIME = -8; + TwoColorTimeline.PREV_R = -7; + TwoColorTimeline.PREV_G = -6; + TwoColorTimeline.PREV_B = -5; + TwoColorTimeline.PREV_A = -4; + TwoColorTimeline.PREV_R2 = -3; + TwoColorTimeline.PREV_G2 = -2; + TwoColorTimeline.PREV_B2 = -1; + TwoColorTimeline.R = 1; + TwoColorTimeline.G = 2; + TwoColorTimeline.B = 3; + TwoColorTimeline.A = 4; + TwoColorTimeline.R2 = 5; + TwoColorTimeline.G2 = 6; + TwoColorTimeline.B2 = 7; + return TwoColorTimeline; + }(CurveTimeline)); + spine.TwoColorTimeline = TwoColorTimeline; + var AttachmentTimeline = (function () { + function AttachmentTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.attachmentNames = new Array(frameCount); + } + AttachmentTimeline.prototype.getPropertyId = function () { + return (TimelineType.attachment << 24) + this.slotIndex; + }; + AttachmentTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { + this.frames[frameIndex] = time; + this.attachmentNames[frameIndex] = attachmentName; + }; + AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + if (mixingOut && setupPose) { + var attachmentName_1 = slot.data.attachmentName; + slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + var attachmentName_2 = slot.data.attachmentName; + slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); + } + return; + } + var frameIndex = 0; + if (time >= frames[frames.length - 1]) + frameIndex = frames.length - 1; + else + frameIndex = Animation.binarySearch(frames, time, 1) - 1; + var attachmentName = this.attachmentNames[frameIndex]; + skeleton.slots[this.slotIndex] + .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); + }; + return AttachmentTimeline; + }()); + spine.AttachmentTimeline = AttachmentTimeline; + var DeformTimeline = (function (_super) { + __extends(DeformTimeline, _super); + function DeformTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount); + this.frameVertices = new Array(frameCount); + } + DeformTimeline.prototype.getPropertyId = function () { + return (TimelineType.deform << 24) + this.slotIndex; + }; + DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { + this.frames[frameIndex] = time; + this.frameVertices[frameIndex] = vertices; + }; + DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var slotAttachment = slot.getAttachment(); + if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) + return; + var frames = this.frames; + var verticesArray = slot.attachmentVertices; + if (time < frames[0]) { + if (setupPose) + spine.Utils.setArraySize(verticesArray, 0); + return; + } + var frameVertices = this.frameVertices; + var vertexCount = frameVertices[0].length; + if (verticesArray.length != vertexCount && !setupPose) + alpha = 1; + var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); + if (time >= frames[frames.length - 1]) { + var lastVertices = frameVertices[frames.length - 1]; + if (alpha == 1) { + spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var setup = setupVertices[i]; + vertices[i] = setup + (lastVertices[i] - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] = lastVertices[i] * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] += (lastVertices[i] - vertices[i]) * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time); + var prevVertices = frameVertices[frame - 1]; + var nextVertices = frameVertices[frame]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); + if (alpha == 1) { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = prev + (nextVertices[i] - prev) * percent; + } + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i], setup = setupVertices[i]; + vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; + } + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; + } + } + }; + return DeformTimeline; + }(CurveTimeline)); + spine.DeformTimeline = DeformTimeline; + var EventTimeline = (function () { + function EventTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.events = new Array(frameCount); + } + EventTimeline.prototype.getPropertyId = function () { + return TimelineType.event << 24; + }; + EventTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + EventTimeline.prototype.setFrame = function (frameIndex, event) { + this.frames[frameIndex] = event.time; + this.events[frameIndex] = event; + }; + EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + if (firedEvents == null) + return; + var frames = this.frames; + var frameCount = this.frames.length; + if (lastTime > time) { + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); + lastTime = -1; + } + else if (lastTime >= frames[frameCount - 1]) + return; + if (time < frames[0]) + return; + var frame = 0; + if (lastTime < frames[0]) + frame = 0; + else { + frame = Animation.binarySearch(frames, lastTime); + var frameTime = frames[frame]; + while (frame > 0) { + if (frames[frame - 1] != frameTime) + break; + frame--; + } + } + for (; frame < frameCount && time >= frames[frame]; frame++) + firedEvents.push(this.events[frame]); + }; + return EventTimeline; + }()); + spine.EventTimeline = EventTimeline; + var DrawOrderTimeline = (function () { + function DrawOrderTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.drawOrders = new Array(frameCount); + } + DrawOrderTimeline.prototype.getPropertyId = function () { + return TimelineType.drawOrder << 24; + }; + DrawOrderTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { + this.frames[frameIndex] = time; + this.drawOrders[frameIndex] = drawOrder; + }; + DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var drawOrder = skeleton.drawOrder; + var slots = skeleton.slots; + if (mixingOut && setupPose) { + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frame = 0; + if (time >= frames[frames.length - 1]) + frame = frames.length - 1; + else + frame = Animation.binarySearch(frames, time) - 1; + var drawOrderToSetupIndex = this.drawOrders[frame]; + if (drawOrderToSetupIndex == null) + spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); + else { + for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) + drawOrder[i] = slots[drawOrderToSetupIndex[i]]; + } + }; + return DrawOrderTimeline; + }()); + spine.DrawOrderTimeline = DrawOrderTimeline; + var IkConstraintTimeline = (function (_super) { + __extends(IkConstraintTimeline, _super); + function IkConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); + } + IkConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; + }; + IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { + frameIndex *= IkConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; + this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; + }; + IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.mix = constraint.data.mix; + constraint.bendDirection = constraint.data.bendDirection; + } + return; + } + if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { + if (setupPose) { + constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection + : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + return; + } + var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); + var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); + if (setupPose) { + constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + }; + IkConstraintTimeline.ENTRIES = 3; + IkConstraintTimeline.PREV_TIME = -3; + IkConstraintTimeline.PREV_MIX = -2; + IkConstraintTimeline.PREV_BEND_DIRECTION = -1; + IkConstraintTimeline.MIX = 1; + IkConstraintTimeline.BEND_DIRECTION = 2; + return IkConstraintTimeline; + }(CurveTimeline)); + spine.IkConstraintTimeline = IkConstraintTimeline; + var TransformConstraintTimeline = (function (_super) { + __extends(TransformConstraintTimeline, _super); + function TransformConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); + } + TransformConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; + }; + TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { + frameIndex *= TransformConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; + this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; + this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; + }; + TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.rotateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + return; + } + var rotate = 0, translate = 0, scale = 0, shear = 0; + if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { + var i = frames.length; + rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; + } + else { + var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); + rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; + scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; + shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; + } + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; + constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; + constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; + constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + constraint.scaleMix += (scale - constraint.scaleMix) * alpha; + constraint.shearMix += (shear - constraint.shearMix) * alpha; + } + }; + TransformConstraintTimeline.ENTRIES = 5; + TransformConstraintTimeline.PREV_TIME = -5; + TransformConstraintTimeline.PREV_ROTATE = -4; + TransformConstraintTimeline.PREV_TRANSLATE = -3; + TransformConstraintTimeline.PREV_SCALE = -2; + TransformConstraintTimeline.PREV_SHEAR = -1; + TransformConstraintTimeline.ROTATE = 1; + TransformConstraintTimeline.TRANSLATE = 2; + TransformConstraintTimeline.SCALE = 3; + TransformConstraintTimeline.SHEAR = 4; + return TransformConstraintTimeline; + }(CurveTimeline)); + spine.TransformConstraintTimeline = TransformConstraintTimeline; + var PathConstraintPositionTimeline = (function (_super) { + __extends(PathConstraintPositionTimeline, _super); + function PathConstraintPositionTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); + } + PathConstraintPositionTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; + }; + PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { + frameIndex *= PathConstraintPositionTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; + }; + PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.position = constraint.data.position; + return; + } + var position = 0; + if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) + position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); + position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); + position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; + } + if (setupPose) + constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; + else + constraint.position += (position - constraint.position) * alpha; + }; + PathConstraintPositionTimeline.ENTRIES = 2; + PathConstraintPositionTimeline.PREV_TIME = -2; + PathConstraintPositionTimeline.PREV_VALUE = -1; + PathConstraintPositionTimeline.VALUE = 1; + return PathConstraintPositionTimeline; + }(CurveTimeline)); + spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; + var PathConstraintSpacingTimeline = (function (_super) { + __extends(PathConstraintSpacingTimeline, _super); + function PathConstraintSpacingTimeline(frameCount) { + _super.call(this, frameCount); + } + PathConstraintSpacingTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; + }; + PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.spacing = constraint.data.spacing; + return; + } + var spacing = 0; + if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) + spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); + spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); + spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; + } + if (setupPose) + constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; + else + constraint.spacing += (spacing - constraint.spacing) * alpha; + }; + return PathConstraintSpacingTimeline; + }(PathConstraintPositionTimeline)); + spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; + var PathConstraintMixTimeline = (function (_super) { + __extends(PathConstraintMixTimeline, _super); + function PathConstraintMixTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); + } + PathConstraintMixTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; + }; + PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { + frameIndex *= PathConstraintMixTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; + }; + PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } + return; + } + var rotate = 0, translate = 0; + if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { + rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; + } + else { + var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); + rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; + } + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; + constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + } + }; + PathConstraintMixTimeline.ENTRIES = 3; + PathConstraintMixTimeline.PREV_TIME = -3; + PathConstraintMixTimeline.PREV_ROTATE = -2; + PathConstraintMixTimeline.PREV_TRANSLATE = -1; + PathConstraintMixTimeline.ROTATE = 1; + PathConstraintMixTimeline.TRANSLATE = 2; + return PathConstraintMixTimeline; + }(CurveTimeline)); + spine.PathConstraintMixTimeline = PathConstraintMixTimeline; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationState = (function () { - function AnimationState(data) { - this.tracks = new Array(); - this.events = new Array(); - this.listeners = new Array(); - this.queue = new EventQueue(this); - this.propertyIDs = new spine.IntSet(); - this.mixingTo = new Array(); - this.animationsChanged = false; - this.timeScale = 1; - this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); - this.data = data; - } - AnimationState.prototype.update = function (delta) { - delta *= this.timeScale; - var tracks = this.tracks; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null) - continue; - current.animationLast = current.nextAnimationLast; - current.trackLast = current.nextTrackLast; - var currentDelta = delta * current.timeScale; - if (current.delay > 0) { - current.delay -= currentDelta; - if (current.delay > 0) - continue; - currentDelta = -current.delay; - current.delay = 0; - } - var next = current.next; - if (next != null) { - var nextTime = current.trackLast - next.delay; - if (nextTime >= 0) { - next.delay = 0; - next.trackTime = nextTime + delta * next.timeScale; - current.trackTime += currentDelta; - this.setCurrent(i, next, true); - while (next.mixingFrom != null) { - next.mixTime += currentDelta; - next = next.mixingFrom; - } - continue; - } - } - else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { - tracks[i] = null; - this.queue.end(current); - this.disposeNext(current); - continue; - } - if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { - var from = current.mixingFrom; - current.mixingFrom = null; - while (from != null) { - this.queue.end(from); - from = from.mixingFrom; - } - } - current.trackTime += currentDelta; - } - this.queue.drain(); - }; - AnimationState.prototype.updateMixingFrom = function (to, delta) { - var from = to.mixingFrom; - if (from == null) - return true; - var finished = this.updateMixingFrom(from, delta); - if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { - if (from.totalAlpha == 0) { - to.mixingFrom = from.mixingFrom; - to.interruptAlpha = from.interruptAlpha; - this.queue.end(from); - } - return finished; - } - from.animationLast = from.nextAnimationLast; - from.trackLast = from.nextTrackLast; - from.trackTime += delta * from.timeScale; - to.mixTime += delta * to.timeScale; - return false; - }; - AnimationState.prototype.apply = function (skeleton) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (this.animationsChanged) - this._animationsChanged(); - var events = this.events; - var tracks = this.tracks; - var applied = false; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null || current.delay > 0) - continue; - applied = true; - var mix = current.alpha; - if (current.mixingFrom != null) - mix *= this.applyMixingFrom(current, skeleton); - else if (current.trackTime >= current.trackEnd && current.next == null) - mix = 0; - var animationLast = current.animationLast, animationTime = current.getAnimationTime(); - var timelineCount = current.animation.timelines.length; - var timelines = current.animation.timelines; - if (mix == 1) { - for (var ii = 0; ii < timelineCount; ii++) - timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); - } - else { - var timelineData = current.timelineData; - var firstFrame = current.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = current.timelinesRotation; - for (var ii = 0; ii < timelineCount; ii++) { - var timeline = timelines[ii]; - if (timeline instanceof spine.RotateTimeline) { - this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); - } - else - timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); - } - } - this.queueEvents(current, animationTime); - events.length = 0; - current.nextAnimationLast = animationTime; - current.nextTrackLast = current.trackTime; - } - this.queue.drain(); - return applied; - }; - AnimationState.prototype.applyMixingFrom = function (to, skeleton) { - var from = to.mixingFrom; - if (from.mixingFrom != null) - this.applyMixingFrom(from, skeleton); - var mix = 0; - if (to.mixDuration == 0) - mix = 1; - else { - mix = to.mixTime / to.mixDuration; - if (mix > 1) - mix = 1; - } - var events = mix < from.eventThreshold ? this.events : null; - var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; - var animationLast = from.animationLast, animationTime = from.getAnimationTime(); - var timelineCount = from.animation.timelines.length; - var timelines = from.animation.timelines; - var timelineData = from.timelineData; - var timelineDipMix = from.timelineDipMix; - var firstFrame = from.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = from.timelinesRotation; - var first = false; - var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; - from.totalAlpha = 0; - for (var i = 0; i < timelineCount; i++) { - var timeline = timelines[i]; - switch (timelineData[i]) { - case AnimationState.SUBSEQUENT: - first = false; - alpha = alphaMix; - break; - case AnimationState.FIRST: - first = true; - alpha = alphaMix; - break; - case AnimationState.DIP: - first = true; - alpha = alphaDip; - break; - default: - first = true; - alpha = alphaDip; - var dipMix = timelineDipMix[i]; - alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); - break; - } - from.totalAlpha += alpha; - if (timeline instanceof spine.RotateTimeline) - this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); - else { - if (!first) { - if (!attachments && timeline instanceof spine.AttachmentTimeline) - continue; - if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) - continue; - } - timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); - } - } - if (to.mixDuration > 0) - this.queueEvents(from, animationTime); - this.events.length = 0; - from.nextAnimationLast = animationTime; - from.nextTrackLast = from.trackTime; - return mix; - }; - AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { - if (firstFrame) - timelinesRotation[i] = 0; - if (alpha == 1) { - timeline.apply(skeleton, 0, time, null, 1, setupPose, false); - return; - } - var rotateTimeline = timeline; - var frames = rotateTimeline.frames; - var bone = skeleton.bones[rotateTimeline.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - var r2 = 0; - if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) - r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; - else { - var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); - var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); - r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - r2 = prevRotation + r2 * percent + bone.data.rotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - } - var r1 = setupPose ? bone.data.rotation : bone.rotation; - var total = 0, diff = r2 - r1; - if (diff == 0) { - total = timelinesRotation[i]; - } - else { - diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; - var lastTotal = 0, lastDiff = 0; - if (firstFrame) { - lastTotal = 0; - lastDiff = diff; - } - else { - lastTotal = timelinesRotation[i]; - lastDiff = timelinesRotation[i + 1]; - } - var current = diff > 0, dir = lastTotal >= 0; - if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { - if (Math.abs(lastTotal) > 180) - lastTotal += 360 * spine.MathUtils.signum(lastTotal); - dir = current; - } - total = diff + lastTotal - lastTotal % 360; - if (dir != current) - total += 360 * spine.MathUtils.signum(lastTotal); - timelinesRotation[i] = total; - } - timelinesRotation[i + 1] = diff; - r1 += total * alpha; - bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; - }; - AnimationState.prototype.queueEvents = function (entry, animationTime) { - var animationStart = entry.animationStart, animationEnd = entry.animationEnd; - var duration = animationEnd - animationStart; - var trackLastWrapped = entry.trackLast % duration; - var events = this.events; - var i = 0, n = events.length; - for (; i < n; i++) { - var event_1 = events[i]; - if (event_1.time < trackLastWrapped) - break; - if (event_1.time > animationEnd) - continue; - this.queue.event(entry, event_1); - } - if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) - : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { - this.queue.complete(entry); - } - for (; i < n; i++) { - var event_2 = events[i]; - if (event_2.time < animationStart) - continue; - this.queue.event(entry, events[i]); - } - }; - AnimationState.prototype.clearTracks = function () { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) - this.clearTrack(i); - this.tracks.length = 0; - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.clearTrack = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return; - var current = this.tracks[trackIndex]; - if (current == null) - return; - this.queue.end(current); - this.disposeNext(current); - var entry = current; - while (true) { - var from = entry.mixingFrom; - if (from == null) - break; - this.queue.end(from); - entry.mixingFrom = null; - entry = from; - } - this.tracks[current.trackIndex] = null; - this.queue.drain(); - }; - AnimationState.prototype.setCurrent = function (index, current, interrupt) { - var from = this.expandToIndex(index); - this.tracks[index] = current; - if (from != null) { - if (interrupt) - this.queue.interrupt(from); - current.mixingFrom = from; - current.mixTime = 0; - if (from.mixingFrom != null && from.mixDuration > 0) - current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); - from.timelinesRotation.length = 0; - } - this.queue.start(current); - }; - AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.setAnimationWith(trackIndex, animation, loop); - }; - AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { - if (animation == null) - throw new Error("animation cannot be null."); - var interrupt = true; - var current = this.expandToIndex(trackIndex); - if (current != null) { - if (current.nextTrackLast == -1) { - this.tracks[trackIndex] = current.mixingFrom; - this.queue.interrupt(current); - this.queue.end(current); - this.disposeNext(current); - current = current.mixingFrom; - interrupt = false; - } - else - this.disposeNext(current); - } - var entry = this.trackEntry(trackIndex, animation, loop, current); - this.setCurrent(trackIndex, entry, interrupt); - this.queue.drain(); - return entry; - }; - AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.addAnimationWith(trackIndex, animation, loop, delay); - }; - AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { - if (animation == null) - throw new Error("animation cannot be null."); - var last = this.expandToIndex(trackIndex); - if (last != null) { - while (last.next != null) - last = last.next; - } - var entry = this.trackEntry(trackIndex, animation, loop, last); - if (last == null) { - this.setCurrent(trackIndex, entry, true); - this.queue.drain(); - } - else { - last.next = entry; - if (delay <= 0) { - var duration = last.animationEnd - last.animationStart; - if (duration != 0) - delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); - else - delay = 0; - } - } - entry.delay = delay; - return entry; - }; - AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { - var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { - if (delay <= 0) - delay -= mixDuration; - var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.setEmptyAnimations = function (mixDuration) { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var current = this.tracks[i]; - if (current != null) - this.setEmptyAnimation(current.trackIndex, mixDuration); - } - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.expandToIndex = function (index) { - if (index < this.tracks.length) - return this.tracks[index]; - spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); - this.tracks.length = index + 1; - return null; - }; - AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { - var entry = this.trackEntryPool.obtain(); - entry.trackIndex = trackIndex; - entry.animation = animation; - entry.loop = loop; - entry.eventThreshold = 0; - entry.attachmentThreshold = 0; - entry.drawOrderThreshold = 0; - entry.animationStart = 0; - entry.animationEnd = animation.duration; - entry.animationLast = -1; - entry.nextAnimationLast = -1; - entry.delay = 0; - entry.trackTime = 0; - entry.trackLast = -1; - entry.nextTrackLast = -1; - entry.trackEnd = Number.MAX_VALUE; - entry.timeScale = 1; - entry.alpha = 1; - entry.interruptAlpha = 1; - entry.mixTime = 0; - entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); - return entry; - }; - AnimationState.prototype.disposeNext = function (entry) { - var next = entry.next; - while (next != null) { - this.queue.dispose(next); - next = next.next; - } - entry.next = null; - }; - AnimationState.prototype._animationsChanged = function () { - this.animationsChanged = false; - var propertyIDs = this.propertyIDs; - propertyIDs.clear(); - var mixingTo = this.mixingTo; - var lastEntry = null; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var entry = this.tracks[i]; - if (entry != null) { - entry.setTimelineData(lastEntry, mixingTo, propertyIDs); - lastEntry = entry; - } - } - }; - AnimationState.prototype.getCurrent = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return null; - return this.tracks[trackIndex]; - }; - AnimationState.prototype.addListener = function (listener) { - if (listener == null) - throw new Error("listener cannot be null."); - this.listeners.push(listener); - }; - AnimationState.prototype.removeListener = function (listener) { - var index = this.listeners.indexOf(listener); - if (index >= 0) - this.listeners.splice(index, 1); - }; - AnimationState.prototype.clearListeners = function () { - this.listeners.length = 0; - }; - AnimationState.prototype.clearListenerNotifications = function () { - this.queue.clear(); - }; - AnimationState.emptyAnimation = new spine.Animation("", [], 0); - AnimationState.SUBSEQUENT = 0; - AnimationState.FIRST = 1; - AnimationState.DIP = 2; - AnimationState.DIP_MIX = 3; - return AnimationState; - }()); - spine.AnimationState = AnimationState; - var TrackEntry = (function () { - function TrackEntry() { - this.timelineData = new Array(); - this.timelineDipMix = new Array(); - this.timelinesRotation = new Array(); - } - TrackEntry.prototype.reset = function () { - this.next = null; - this.mixingFrom = null; - this.animation = null; - this.listener = null; - this.timelineData.length = 0; - this.timelineDipMix.length = 0; - this.timelinesRotation.length = 0; - }; - TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { - if (to != null) - mixingToArray.push(to); - var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; - if (to != null) - mixingToArray.pop(); - var mixingTo = mixingToArray; - var mixingToLast = mixingToArray.length - 1; - var timelines = this.animation.timelines; - var timelinesCount = this.animation.timelines.length; - var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); - this.timelineDipMix.length = 0; - var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); - outer: for (var i = 0; i < timelinesCount; i++) { - var id = timelines[i].getPropertyId(); - if (!propertyIDs.add(id)) - timelineData[i] = AnimationState.SUBSEQUENT; - else if (to == null || !to.hasTimeline(id)) - timelineData[i] = AnimationState.FIRST; - else { - for (var ii = mixingToLast; ii >= 0; ii--) { - var entry = mixingTo[ii]; - if (!entry.hasTimeline(id)) { - if (entry.mixDuration > 0) { - timelineData[i] = AnimationState.DIP_MIX; - timelineDipMix[i] = entry; - continue outer; - } - } - } - timelineData[i] = AnimationState.DIP; - } - } - return lastEntry; - }; - TrackEntry.prototype.hasTimeline = function (id) { - var timelines = this.animation.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - if (timelines[i].getPropertyId() == id) - return true; - return false; - }; - TrackEntry.prototype.getAnimationTime = function () { - if (this.loop) { - var duration = this.animationEnd - this.animationStart; - if (duration == 0) - return this.animationStart; - return (this.trackTime % duration) + this.animationStart; - } - return Math.min(this.trackTime + this.animationStart, this.animationEnd); - }; - TrackEntry.prototype.setAnimationLast = function (animationLast) { - this.animationLast = animationLast; - this.nextAnimationLast = animationLast; - }; - TrackEntry.prototype.isComplete = function () { - return this.trackTime >= this.animationEnd - this.animationStart; - }; - TrackEntry.prototype.resetRotationDirections = function () { - this.timelinesRotation.length = 0; - }; - return TrackEntry; - }()); - spine.TrackEntry = TrackEntry; - var EventQueue = (function () { - function EventQueue(animState) { - this.objects = []; - this.drainDisabled = false; - this.animState = animState; - } - EventQueue.prototype.start = function (entry) { - this.objects.push(EventType.start); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.interrupt = function (entry) { - this.objects.push(EventType.interrupt); - this.objects.push(entry); - }; - EventQueue.prototype.end = function (entry) { - this.objects.push(EventType.end); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.dispose = function (entry) { - this.objects.push(EventType.dispose); - this.objects.push(entry); - }; - EventQueue.prototype.complete = function (entry) { - this.objects.push(EventType.complete); - this.objects.push(entry); - }; - EventQueue.prototype.event = function (entry, event) { - this.objects.push(EventType.event); - this.objects.push(entry); - this.objects.push(event); - }; - EventQueue.prototype.drain = function () { - if (this.drainDisabled) - return; - this.drainDisabled = true; - var objects = this.objects; - var listeners = this.animState.listeners; - for (var i = 0; i < objects.length; i += 2) { - var type = objects[i]; - var entry = objects[i + 1]; - switch (type) { - case EventType.start: - if (entry.listener != null && entry.listener.start) - entry.listener.start(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].start) - listeners[ii].start(entry); - break; - case EventType.interrupt: - if (entry.listener != null && entry.listener.interrupt) - entry.listener.interrupt(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].interrupt) - listeners[ii].interrupt(entry); - break; - case EventType.end: - if (entry.listener != null && entry.listener.end) - entry.listener.end(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].end) - listeners[ii].end(entry); - case EventType.dispose: - if (entry.listener != null && entry.listener.dispose) - entry.listener.dispose(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].dispose) - listeners[ii].dispose(entry); - this.animState.trackEntryPool.free(entry); - break; - case EventType.complete: - if (entry.listener != null && entry.listener.complete) - entry.listener.complete(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].complete) - listeners[ii].complete(entry); - break; - case EventType.event: - var event_3 = objects[i++ + 2]; - if (entry.listener != null && entry.listener.event) - entry.listener.event(entry, event_3); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].event) - listeners[ii].event(entry, event_3); - break; - } - } - this.clear(); - this.drainDisabled = false; - }; - EventQueue.prototype.clear = function () { - this.objects.length = 0; - }; - return EventQueue; - }()); - spine.EventQueue = EventQueue; - (function (EventType) { - EventType[EventType["start"] = 0] = "start"; - EventType[EventType["interrupt"] = 1] = "interrupt"; - EventType[EventType["end"] = 2] = "end"; - EventType[EventType["dispose"] = 3] = "dispose"; - EventType[EventType["complete"] = 4] = "complete"; - EventType[EventType["event"] = 5] = "event"; - })(spine.EventType || (spine.EventType = {})); - var EventType = spine.EventType; - var AnimationStateAdapter2 = (function () { - function AnimationStateAdapter2() { - } - AnimationStateAdapter2.prototype.start = function (entry) { - }; - AnimationStateAdapter2.prototype.interrupt = function (entry) { - }; - AnimationStateAdapter2.prototype.end = function (entry) { - }; - AnimationStateAdapter2.prototype.dispose = function (entry) { - }; - AnimationStateAdapter2.prototype.complete = function (entry) { - }; - AnimationStateAdapter2.prototype.event = function (entry, event) { - }; - return AnimationStateAdapter2; - }()); - spine.AnimationStateAdapter2 = AnimationStateAdapter2; + var AnimationState = (function () { + function AnimationState(data) { + this.tracks = new Array(); + this.events = new Array(); + this.listeners = new Array(); + this.queue = new EventQueue(this); + this.propertyIDs = new spine.IntSet(); + this.mixingTo = new Array(); + this.animationsChanged = false; + this.timeScale = 1; + this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); + this.data = data; + } + AnimationState.prototype.update = function (delta) { + delta *= this.timeScale; + var tracks = this.tracks; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null) + continue; + current.animationLast = current.nextAnimationLast; + current.trackLast = current.nextTrackLast; + var currentDelta = delta * current.timeScale; + if (current.delay > 0) { + current.delay -= currentDelta; + if (current.delay > 0) + continue; + currentDelta = -current.delay; + current.delay = 0; + } + var next = current.next; + if (next != null) { + var nextTime = current.trackLast - next.delay; + if (nextTime >= 0) { + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; + this.setCurrent(i, next, true); + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + } + else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; + } + if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { + var from = current.mixingFrom; + current.mixingFrom = null; + while (from != null) { + this.queue.end(from); + from = from.mixingFrom; + } + } + current.trackTime += currentDelta; + } + this.queue.drain(); + }; + AnimationState.prototype.updateMixingFrom = function (to, delta) { + var from = to.mixingFrom; + if (from == null) + return true; + var finished = this.updateMixingFrom(from, delta); + if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { + if (from.totalAlpha == 0) { + to.mixingFrom = from.mixingFrom; + to.interruptAlpha = from.interruptAlpha; + this.queue.end(from); + } + return finished; + } + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + from.trackTime += delta * from.timeScale; + to.mixTime += delta * to.timeScale; + return false; + }; + AnimationState.prototype.apply = function (skeleton) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (this.animationsChanged) + this._animationsChanged(); + var events = this.events; + var tracks = this.tracks; + var applied = false; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null || current.delay > 0) + continue; + applied = true; + var mix = current.alpha; + if (current.mixingFrom != null) + mix *= this.applyMixingFrom(current, skeleton); + else if (current.trackTime >= current.trackEnd && current.next == null) + mix = 0; + var animationLast = current.animationLast, animationTime = current.getAnimationTime(); + var timelineCount = current.animation.timelines.length; + var timelines = current.animation.timelines; + if (mix == 1) { + for (var ii = 0; ii < timelineCount; ii++) + timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); + } + else { + var timelineData = current.timelineData; + var firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = current.timelinesRotation; + for (var ii = 0; ii < timelineCount; ii++) { + var timeline = timelines[ii]; + if (timeline instanceof spine.RotateTimeline) { + this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); + } + else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); + } + } + this.queueEvents(current, animationTime); + events.length = 0; + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; + } + this.queue.drain(); + return applied; + }; + AnimationState.prototype.applyMixingFrom = function (to, skeleton) { + var from = to.mixingFrom; + if (from.mixingFrom != null) + this.applyMixingFrom(from, skeleton); + var mix = 0; + if (to.mixDuration == 0) + mix = 1; + else { + mix = to.mixTime / to.mixDuration; + if (mix > 1) + mix = 1; + } + var events = mix < from.eventThreshold ? this.events : null; + var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; + var animationLast = from.animationLast, animationTime = from.getAnimationTime(); + var timelineCount = from.animation.timelines.length; + var timelines = from.animation.timelines; + var timelineData = from.timelineData; + var timelineDipMix = from.timelineDipMix; + var firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = from.timelinesRotation; + var first = false; + var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; + from.totalAlpha = 0; + for (var i = 0; i < timelineCount; i++) { + var timeline = timelines[i]; + switch (timelineData[i]) { + case AnimationState.SUBSEQUENT: + first = false; + alpha = alphaMix; + break; + case AnimationState.FIRST: + first = true; + alpha = alphaMix; + break; + case AnimationState.DIP: + first = true; + alpha = alphaDip; + break; + default: + first = true; + alpha = alphaDip; + var dipMix = timelineDipMix[i]; + alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); + break; + } + from.totalAlpha += alpha; + if (timeline instanceof spine.RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); + else { + if (!first) { + if (!attachments && timeline instanceof spine.AttachmentTimeline) + continue; + if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) + continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); + } + } + if (to.mixDuration > 0) + this.queueEvents(from, animationTime); + this.events.length = 0; + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + }; + AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { + if (firstFrame) + timelinesRotation[i] = 0; + if (alpha == 1) { + timeline.apply(skeleton, 0, time, null, 1, setupPose, false); + return; + } + var rotateTimeline = timeline; + var frames = rotateTimeline.frames; + var bone = skeleton.bones[rotateTimeline.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + var r2 = 0; + if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) + r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; + else { + var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); + var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); + r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + r2 = prevRotation + r2 * percent + bone.data.rotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + } + var r1 = setupPose ? bone.data.rotation : bone.rotation; + var total = 0, diff = r2 - r1; + if (diff == 0) { + total = timelinesRotation[i]; + } + else { + diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; + var lastTotal = 0, lastDiff = 0; + if (firstFrame) { + lastTotal = 0; + lastDiff = diff; + } + else { + lastTotal = timelinesRotation[i]; + lastDiff = timelinesRotation[i + 1]; + } + var current = diff > 0, dir = lastTotal >= 0; + if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { + if (Math.abs(lastTotal) > 180) + lastTotal += 360 * spine.MathUtils.signum(lastTotal); + dir = current; + } + total = diff + lastTotal - lastTotal % 360; + if (dir != current) + total += 360 * spine.MathUtils.signum(lastTotal); + timelinesRotation[i] = total; + } + timelinesRotation[i + 1] = diff; + r1 += total * alpha; + bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; + }; + AnimationState.prototype.queueEvents = function (entry, animationTime) { + var animationStart = entry.animationStart, animationEnd = entry.animationEnd; + var duration = animationEnd - animationStart; + var trackLastWrapped = entry.trackLast % duration; + var events = this.events; + var i = 0, n = events.length; + for (; i < n; i++) { + var event_1 = events[i]; + if (event_1.time < trackLastWrapped) + break; + if (event_1.time > animationEnd) + continue; + this.queue.event(entry, event_1); + } + if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) + : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { + this.queue.complete(entry); + } + for (; i < n; i++) { + var event_2 = events[i]; + if (event_2.time < animationStart) + continue; + this.queue.event(entry, events[i]); + } + }; + AnimationState.prototype.clearTracks = function () { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) + this.clearTrack(i); + this.tracks.length = 0; + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.clearTrack = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return; + var current = this.tracks[trackIndex]; + if (current == null) + return; + this.queue.end(current); + this.disposeNext(current); + var entry = current; + while (true) { + var from = entry.mixingFrom; + if (from == null) + break; + this.queue.end(from); + entry.mixingFrom = null; + entry = from; + } + this.tracks[current.trackIndex] = null; + this.queue.drain(); + }; + AnimationState.prototype.setCurrent = function (index, current, interrupt) { + var from = this.expandToIndex(index); + this.tracks[index] = current; + if (from != null) { + if (interrupt) + this.queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + if (from.mixingFrom != null && from.mixDuration > 0) + current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); + from.timelinesRotation.length = 0; + } + this.queue.start(current); + }; + AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.setAnimationWith(trackIndex, animation, loop); + }; + AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { + if (animation == null) + throw new Error("animation cannot be null."); + var interrupt = true; + var current = this.expandToIndex(trackIndex); + if (current != null) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = current.mixingFrom; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = current.mixingFrom; + interrupt = false; + } + else + this.disposeNext(current); + } + var entry = this.trackEntry(trackIndex, animation, loop, current); + this.setCurrent(trackIndex, entry, interrupt); + this.queue.drain(); + return entry; + }; + AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.addAnimationWith(trackIndex, animation, loop, delay); + }; + AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { + if (animation == null) + throw new Error("animation cannot be null."); + var last = this.expandToIndex(trackIndex); + if (last != null) { + while (last.next != null) + last = last.next; + } + var entry = this.trackEntry(trackIndex, animation, loop, last); + if (last == null) { + this.setCurrent(trackIndex, entry, true); + this.queue.drain(); + } + else { + last.next = entry; + if (delay <= 0) { + var duration = last.animationEnd - last.animationStart; + if (duration != 0) + delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); + else + delay = 0; + } + } + entry.delay = delay; + return entry; + }; + AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { + var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { + if (delay <= 0) + delay -= mixDuration; + var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.setEmptyAnimations = function (mixDuration) { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var current = this.tracks[i]; + if (current != null) + this.setEmptyAnimation(current.trackIndex, mixDuration); + } + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.expandToIndex = function (index) { + if (index < this.tracks.length) + return this.tracks[index]; + spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); + this.tracks.length = index + 1; + return null; + }; + AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { + var entry = this.trackEntryPool.obtain(); + entry.trackIndex = trackIndex; + entry.animation = animation; + entry.loop = loop; + entry.eventThreshold = 0; + entry.attachmentThreshold = 0; + entry.drawOrderThreshold = 0; + entry.animationStart = 0; + entry.animationEnd = animation.duration; + entry.animationLast = -1; + entry.nextAnimationLast = -1; + entry.delay = 0; + entry.trackTime = 0; + entry.trackLast = -1; + entry.nextTrackLast = -1; + entry.trackEnd = Number.MAX_VALUE; + entry.timeScale = 1; + entry.alpha = 1; + entry.interruptAlpha = 1; + entry.mixTime = 0; + entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); + return entry; + }; + AnimationState.prototype.disposeNext = function (entry) { + var next = entry.next; + while (next != null) { + this.queue.dispose(next); + next = next.next; + } + entry.next = null; + }; + AnimationState.prototype._animationsChanged = function () { + this.animationsChanged = false; + var propertyIDs = this.propertyIDs; + propertyIDs.clear(); + var mixingTo = this.mixingTo; + var lastEntry = null; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var entry = this.tracks[i]; + if (entry != null) { + entry.setTimelineData(lastEntry, mixingTo, propertyIDs); + lastEntry = entry; + } + } + }; + AnimationState.prototype.getCurrent = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return null; + return this.tracks[trackIndex]; + }; + AnimationState.prototype.addListener = function (listener) { + if (listener == null) + throw new Error("listener cannot be null."); + this.listeners.push(listener); + }; + AnimationState.prototype.removeListener = function (listener) { + var index = this.listeners.indexOf(listener); + if (index >= 0) + this.listeners.splice(index, 1); + }; + AnimationState.prototype.clearListeners = function () { + this.listeners.length = 0; + }; + AnimationState.prototype.clearListenerNotifications = function () { + this.queue.clear(); + }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); + AnimationState.SUBSEQUENT = 0; + AnimationState.FIRST = 1; + AnimationState.DIP = 2; + AnimationState.DIP_MIX = 3; + return AnimationState; + }()); + spine.AnimationState = AnimationState; + var TrackEntry = (function () { + function TrackEntry() { + this.timelineData = new Array(); + this.timelineDipMix = new Array(); + this.timelinesRotation = new Array(); + } + TrackEntry.prototype.reset = function () { + this.next = null; + this.mixingFrom = null; + this.animation = null; + this.listener = null; + this.timelineData.length = 0; + this.timelineDipMix.length = 0; + this.timelinesRotation.length = 0; + }; + TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { + if (to != null) + mixingToArray.push(to); + var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; + if (to != null) + mixingToArray.pop(); + var mixingTo = mixingToArray; + var mixingToLast = mixingToArray.length - 1; + var timelines = this.animation.timelines; + var timelinesCount = this.animation.timelines.length; + var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); + this.timelineDipMix.length = 0; + var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); + outer: for (var i = 0; i < timelinesCount; i++) { + var id = timelines[i].getPropertyId(); + if (!propertyIDs.add(id)) + timelineData[i] = AnimationState.SUBSEQUENT; + else if (to == null || !to.hasTimeline(id)) + timelineData[i] = AnimationState.FIRST; + else { + for (var ii = mixingToLast; ii >= 0; ii--) { + var entry = mixingTo[ii]; + if (!entry.hasTimeline(id)) { + if (entry.mixDuration > 0) { + timelineData[i] = AnimationState.DIP_MIX; + timelineDipMix[i] = entry; + continue outer; + } + } + } + timelineData[i] = AnimationState.DIP; + } + } + return lastEntry; + }; + TrackEntry.prototype.hasTimeline = function (id) { + var timelines = this.animation.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + if (timelines[i].getPropertyId() == id) + return true; + return false; + }; + TrackEntry.prototype.getAnimationTime = function () { + if (this.loop) { + var duration = this.animationEnd - this.animationStart; + if (duration == 0) + return this.animationStart; + return (this.trackTime % duration) + this.animationStart; + } + return Math.min(this.trackTime + this.animationStart, this.animationEnd); + }; + TrackEntry.prototype.setAnimationLast = function (animationLast) { + this.animationLast = animationLast; + this.nextAnimationLast = animationLast; + }; + TrackEntry.prototype.isComplete = function () { + return this.trackTime >= this.animationEnd - this.animationStart; + }; + TrackEntry.prototype.resetRotationDirections = function () { + this.timelinesRotation.length = 0; + }; + return TrackEntry; + }()); + spine.TrackEntry = TrackEntry; + var EventQueue = (function () { + function EventQueue(animState) { + this.objects = []; + this.drainDisabled = false; + this.animState = animState; + } + EventQueue.prototype.start = function (entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.interrupt = function (entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); + }; + EventQueue.prototype.end = function (entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.dispose = function (entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); + }; + EventQueue.prototype.complete = function (entry) { + this.objects.push(EventType.complete); + this.objects.push(entry); + }; + EventQueue.prototype.event = function (entry, event) { + this.objects.push(EventType.event); + this.objects.push(entry); + this.objects.push(event); + }; + EventQueue.prototype.drain = function () { + if (this.drainDisabled) + return; + this.drainDisabled = true; + var objects = this.objects; + var listeners = this.animState.listeners; + for (var i = 0; i < objects.length; i += 2) { + var type = objects[i]; + var entry = objects[i + 1]; + switch (type) { + case EventType.start: + if (entry.listener != null && entry.listener.start) + entry.listener.start(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].start) + listeners[ii].start(entry); + break; + case EventType.interrupt: + if (entry.listener != null && entry.listener.interrupt) + entry.listener.interrupt(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].interrupt) + listeners[ii].interrupt(entry); + break; + case EventType.end: + if (entry.listener != null && entry.listener.end) + entry.listener.end(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].end) + listeners[ii].end(entry); + case EventType.dispose: + if (entry.listener != null && entry.listener.dispose) + entry.listener.dispose(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].dispose) + listeners[ii].dispose(entry); + this.animState.trackEntryPool.free(entry); + break; + case EventType.complete: + if (entry.listener != null && entry.listener.complete) + entry.listener.complete(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].complete) + listeners[ii].complete(entry); + break; + case EventType.event: + var event_3 = objects[i++ + 2]; + if (entry.listener != null && entry.listener.event) + entry.listener.event(entry, event_3); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].event) + listeners[ii].event(entry, event_3); + break; + } + } + this.clear(); + this.drainDisabled = false; + }; + EventQueue.prototype.clear = function () { + this.objects.length = 0; + }; + return EventQueue; + }()); + spine.EventQueue = EventQueue; + (function (EventType) { + EventType[EventType["start"] = 0] = "start"; + EventType[EventType["interrupt"] = 1] = "interrupt"; + EventType[EventType["end"] = 2] = "end"; + EventType[EventType["dispose"] = 3] = "dispose"; + EventType[EventType["complete"] = 4] = "complete"; + EventType[EventType["event"] = 5] = "event"; + })(spine.EventType || (spine.EventType = {})); + var EventType = spine.EventType; + var AnimationStateAdapter2 = (function () { + function AnimationStateAdapter2() { + } + AnimationStateAdapter2.prototype.start = function (entry) { + }; + AnimationStateAdapter2.prototype.interrupt = function (entry) { + }; + AnimationStateAdapter2.prototype.end = function (entry) { + }; + AnimationStateAdapter2.prototype.dispose = function (entry) { + }; + AnimationStateAdapter2.prototype.complete = function (entry) { + }; + AnimationStateAdapter2.prototype.event = function (entry, event) { + }; + return AnimationStateAdapter2; + }()); + spine.AnimationStateAdapter2 = AnimationStateAdapter2; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationStateData = (function () { - function AnimationStateData(skeletonData) { - this.animationToMixTime = {}; - this.defaultMix = 0; - if (skeletonData == null) - throw new Error("skeletonData cannot be null."); - this.skeletonData = skeletonData; - } - AnimationStateData.prototype.setMix = function (fromName, toName, duration) { - var from = this.skeletonData.findAnimation(fromName); - if (from == null) - throw new Error("Animation not found: " + fromName); - var to = this.skeletonData.findAnimation(toName); - if (to == null) - throw new Error("Animation not found: " + toName); - this.setMixWith(from, to, duration); - }; - AnimationStateData.prototype.setMixWith = function (from, to, duration) { - if (from == null) - throw new Error("from cannot be null."); - if (to == null) - throw new Error("to cannot be null."); - var key = from.name + to.name; - this.animationToMixTime[key] = duration; - }; - AnimationStateData.prototype.getMix = function (from, to) { - var key = from.name + to.name; - var value = this.animationToMixTime[key]; - return value === undefined ? this.defaultMix : value; - }; - return AnimationStateData; - }()); - spine.AnimationStateData = AnimationStateData; + var AnimationStateData = (function () { + function AnimationStateData(skeletonData) { + this.animationToMixTime = {}; + this.defaultMix = 0; + if (skeletonData == null) + throw new Error("skeletonData cannot be null."); + this.skeletonData = skeletonData; + } + AnimationStateData.prototype.setMix = function (fromName, toName, duration) { + var from = this.skeletonData.findAnimation(fromName); + if (from == null) + throw new Error("Animation not found: " + fromName); + var to = this.skeletonData.findAnimation(toName); + if (to == null) + throw new Error("Animation not found: " + toName); + this.setMixWith(from, to, duration); + }; + AnimationStateData.prototype.setMixWith = function (from, to, duration) { + if (from == null) + throw new Error("from cannot be null."); + if (to == null) + throw new Error("to cannot be null."); + var key = from.name + to.name; + this.animationToMixTime[key] = duration; + }; + AnimationStateData.prototype.getMix = function (from, to) { + var key = from.name + to.name; + var value = this.animationToMixTime[key]; + return value === undefined ? this.defaultMix : value; + }; + return AnimationStateData; + }()); + spine.AnimationStateData = AnimationStateData; })(spine || (spine = {})); var spine; (function (spine) { - var AtlasAttachmentLoader = (function () { - function AtlasAttachmentLoader(atlas) { - this.atlas = atlas; - } - AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.RegionAttachment(name); - attachment.setRegion(region); - return attachment; - }; - AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.MeshAttachment(name); - attachment.region = region; - return attachment; - }; - AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { - return new spine.BoundingBoxAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { - return new spine.PathAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { - return new spine.PointAttachment(name); - }; - AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { - return new spine.ClippingAttachment(name); - }; - return AtlasAttachmentLoader; - }()); - spine.AtlasAttachmentLoader = AtlasAttachmentLoader; + var AtlasAttachmentLoader = (function () { + function AtlasAttachmentLoader(atlas) { + this.atlas = atlas; + } + AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.RegionAttachment(name); + attachment.setRegion(region); + return attachment; + }; + AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.MeshAttachment(name); + attachment.region = region; + return attachment; + }; + AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { + return new spine.BoundingBoxAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { + return new spine.PathAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { + return new spine.PointAttachment(name); + }; + AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { + return new spine.ClippingAttachment(name); + }; + return AtlasAttachmentLoader; + }()); + spine.AtlasAttachmentLoader = AtlasAttachmentLoader; })(spine || (spine = {})); var spine; (function (spine) { - var Attachment = (function () { - function Attachment(name) { - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return Attachment; - }()); - spine.Attachment = Attachment; - var VertexAttachment = (function (_super) { - __extends(VertexAttachment, _super); - function VertexAttachment(name) { - _super.call(this, name); - this.worldVerticesLength = 0; - } - VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { - count = offset + (count >> 1) * stride; - var skeleton = slot.bone.skeleton; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices; - var bones = this.bones; - if (bones == null) { - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - var x = bone.worldX; - var y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { - var vx = vertices[v_1], vy = vertices[v_1 + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - } - return; - } - var v = 0, skip = 0; - for (var i = 0; i < start; i += 2) { - var n = bones[v]; - v += n + 1; - skip += n; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = offset, b = skip * 3; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - else { - var deform = deformArray; - for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3, f += 2) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - }; - VertexAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment; - }; - return VertexAttachment; - }(Attachment)); - spine.VertexAttachment = VertexAttachment; + var Attachment = (function () { + function Attachment(name) { + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return Attachment; + }()); + spine.Attachment = Attachment; + var VertexAttachment = (function (_super) { + __extends(VertexAttachment, _super); + function VertexAttachment(name) { + _super.call(this, name); + this.worldVerticesLength = 0; + } + VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { + count = offset + (count >> 1) * stride; + var skeleton = slot.bone.skeleton; + var deformArray = slot.attachmentVertices; + var vertices = this.vertices; + var bones = this.bones; + if (bones == null) { + if (deformArray.length > 0) + vertices = deformArray; + var bone = slot.bone; + var x = bone.worldX; + var y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { + var vx = vertices[v_1], vy = vertices[v_1 + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + } + return; + } + var v = 0, skip = 0; + for (var i = 0; i < start; i += 2) { + var n = bones[v]; + v += n + 1; + skip += n; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = offset, b = skip * 3; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + else { + var deform = deformArray; + for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3, f += 2) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + }; + VertexAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment; + }; + return VertexAttachment; + }(Attachment)); + spine.VertexAttachment = VertexAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (AttachmentType) { - AttachmentType[AttachmentType["Region"] = 0] = "Region"; - AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; - AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; - AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; - AttachmentType[AttachmentType["Path"] = 4] = "Path"; - AttachmentType[AttachmentType["Point"] = 5] = "Point"; - })(spine.AttachmentType || (spine.AttachmentType = {})); - var AttachmentType = spine.AttachmentType; + (function (AttachmentType) { + AttachmentType[AttachmentType["Region"] = 0] = "Region"; + AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; + AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; + AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; + AttachmentType[AttachmentType["Path"] = 4] = "Path"; + AttachmentType[AttachmentType["Point"] = 5] = "Point"; + })(spine.AttachmentType || (spine.AttachmentType = {})); + var AttachmentType = spine.AttachmentType; })(spine || (spine = {})); var spine; (function (spine) { - var BoundingBoxAttachment = (function (_super) { - __extends(BoundingBoxAttachment, _super); - function BoundingBoxAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - } - return BoundingBoxAttachment; - }(spine.VertexAttachment)); - spine.BoundingBoxAttachment = BoundingBoxAttachment; + var BoundingBoxAttachment = (function (_super) { + __extends(BoundingBoxAttachment, _super); + function BoundingBoxAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + } + return BoundingBoxAttachment; + }(spine.VertexAttachment)); + spine.BoundingBoxAttachment = BoundingBoxAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var ClippingAttachment = (function (_super) { - __extends(ClippingAttachment, _super); - function ClippingAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); - } - return ClippingAttachment; - }(spine.VertexAttachment)); - spine.ClippingAttachment = ClippingAttachment; + var ClippingAttachment = (function (_super) { + __extends(ClippingAttachment, _super); + function ClippingAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); + } + return ClippingAttachment; + }(spine.VertexAttachment)); + spine.ClippingAttachment = ClippingAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var MeshAttachment = (function (_super) { - __extends(MeshAttachment, _super); - function MeshAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - this.inheritDeform = false; - this.tempColor = new spine.Color(0, 0, 0, 0); - } - MeshAttachment.prototype.updateUVs = function () { - var u = 0, v = 0, width = 0, height = 0; - if (this.region == null) { - u = v = 0; - width = height = 1; - } - else { - u = this.region.u; - v = this.region.v; - width = this.region.u2 - u; - height = this.region.v2 - v; - } - var regionUVs = this.regionUVs; - if (this.uvs == null || this.uvs.length != regionUVs.length) - this.uvs = spine.Utils.newFloatArray(regionUVs.length); - var uvs = this.uvs; - if (this.region.rotate) { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i + 1] * width; - uvs[i + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i] * width; - uvs[i + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); - }; - MeshAttachment.prototype.getParentMesh = function () { - return this.parentMesh; - }; - MeshAttachment.prototype.setParentMesh = function (parentMesh) { - this.parentMesh = parentMesh; - if (parentMesh != null) { - this.bones = parentMesh.bones; - this.vertices = parentMesh.vertices; - this.worldVerticesLength = parentMesh.worldVerticesLength; - this.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - this.worldVerticesLength = parentMesh.worldVerticesLength; - } - }; - return MeshAttachment; - }(spine.VertexAttachment)); - spine.MeshAttachment = MeshAttachment; + var MeshAttachment = (function (_super) { + __extends(MeshAttachment, _super); + function MeshAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + this.inheritDeform = false; + this.tempColor = new spine.Color(0, 0, 0, 0); + } + MeshAttachment.prototype.updateUVs = function () { + var u = 0, v = 0, width = 0, height = 0; + if (this.region == null) { + u = v = 0; + width = height = 1; + } + else { + u = this.region.u; + v = this.region.v; + width = this.region.u2 - u; + height = this.region.v2 - v; + } + var regionUVs = this.regionUVs; + if (this.uvs == null || this.uvs.length != regionUVs.length) + this.uvs = spine.Utils.newFloatArray(regionUVs.length); + var uvs = this.uvs; + if (this.region.rotate) { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); + }; + MeshAttachment.prototype.getParentMesh = function () { + return this.parentMesh; + }; + MeshAttachment.prototype.setParentMesh = function (parentMesh) { + this.parentMesh = parentMesh; + if (parentMesh != null) { + this.bones = parentMesh.bones; + this.vertices = parentMesh.vertices; + this.worldVerticesLength = parentMesh.worldVerticesLength; + this.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + this.worldVerticesLength = parentMesh.worldVerticesLength; + } + }; + return MeshAttachment; + }(spine.VertexAttachment)); + spine.MeshAttachment = MeshAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PathAttachment = (function (_super) { - __extends(PathAttachment, _super); - function PathAttachment(name) { - _super.call(this, name); - this.closed = false; - this.constantSpeed = false; - this.color = new spine.Color(1, 1, 1, 1); - } - return PathAttachment; - }(spine.VertexAttachment)); - spine.PathAttachment = PathAttachment; + var PathAttachment = (function (_super) { + __extends(PathAttachment, _super); + function PathAttachment(name) { + _super.call(this, name); + this.closed = false; + this.constantSpeed = false; + this.color = new spine.Color(1, 1, 1, 1); + } + return PathAttachment; + }(spine.VertexAttachment)); + spine.PathAttachment = PathAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PointAttachment = (function (_super) { - __extends(PointAttachment, _super); - function PointAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.38, 0.94, 0, 1); - } - PointAttachment.prototype.computeWorldPosition = function (bone, point) { - point.x = this.x * bone.a + this.y * bone.b + bone.worldX; - point.y = this.x * bone.c + this.y * bone.d + bone.worldY; - return point; - }; - PointAttachment.prototype.computeWorldRotation = function (bone) { - var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); - var x = cos * bone.a + sin * bone.b; - var y = cos * bone.c + sin * bone.d; - return Math.atan2(y, x) * spine.MathUtils.radDeg; - }; - return PointAttachment; - }(spine.VertexAttachment)); - spine.PointAttachment = PointAttachment; + var PointAttachment = (function (_super) { + __extends(PointAttachment, _super); + function PointAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.38, 0.94, 0, 1); + } + PointAttachment.prototype.computeWorldPosition = function (bone, point) { + point.x = this.x * bone.a + this.y * bone.b + bone.worldX; + point.y = this.x * bone.c + this.y * bone.d + bone.worldY; + return point; + }; + PointAttachment.prototype.computeWorldRotation = function (bone) { + var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); + var x = cos * bone.a + sin * bone.b; + var y = cos * bone.c + sin * bone.d; + return Math.atan2(y, x) * spine.MathUtils.radDeg; + }; + return PointAttachment; + }(spine.VertexAttachment)); + spine.PointAttachment = PointAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var RegionAttachment = (function (_super) { - __extends(RegionAttachment, _super); - function RegionAttachment(name) { - _super.call(this, name); - this.x = 0; - this.y = 0; - this.scaleX = 1; - this.scaleY = 1; - this.rotation = 0; - this.width = 0; - this.height = 0; - this.color = new spine.Color(1, 1, 1, 1); - this.offset = spine.Utils.newFloatArray(8); - this.uvs = spine.Utils.newFloatArray(8); - this.tempColor = new spine.Color(1, 1, 1, 1); - } - RegionAttachment.prototype.updateOffset = function () { - var regionScaleX = this.width / this.region.originalWidth * this.scaleX; - var regionScaleY = this.height / this.region.originalHeight * this.scaleY; - var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; - var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; - var localX2 = localX + this.region.width * regionScaleX; - var localY2 = localY + this.region.height * regionScaleY; - var radians = this.rotation * Math.PI / 180; - var cos = Math.cos(radians); - var sin = Math.sin(radians); - var localXCos = localX * cos + this.x; - var localXSin = localX * sin; - var localYCos = localY * cos + this.y; - var localYSin = localY * sin; - var localX2Cos = localX2 * cos + this.x; - var localX2Sin = localX2 * sin; - var localY2Cos = localY2 * cos + this.y; - var localY2Sin = localY2 * sin; - var offset = this.offset; - offset[RegionAttachment.OX1] = localXCos - localYSin; - offset[RegionAttachment.OY1] = localYCos + localXSin; - offset[RegionAttachment.OX2] = localXCos - localY2Sin; - offset[RegionAttachment.OY2] = localY2Cos + localXSin; - offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; - offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; - offset[RegionAttachment.OX4] = localX2Cos - localYSin; - offset[RegionAttachment.OY4] = localYCos + localX2Sin; - }; - RegionAttachment.prototype.setRegion = function (region) { - this.region = region; - var uvs = this.uvs; - if (region.rotate) { - uvs[2] = region.u; - uvs[3] = region.v2; - uvs[4] = region.u; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v; - uvs[0] = region.u2; - uvs[1] = region.v2; - } - else { - uvs[0] = region.u; - uvs[1] = region.v2; - uvs[2] = region.u; - uvs[3] = region.v; - uvs[4] = region.u2; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v2; - } - }; - RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { - var vertexOffset = this.offset; - var x = bone.worldX, y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = vertexOffset[RegionAttachment.OX1]; - offsetY = vertexOffset[RegionAttachment.OY1]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX2]; - offsetY = vertexOffset[RegionAttachment.OY2]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX3]; - offsetY = vertexOffset[RegionAttachment.OY3]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX4]; - offsetY = vertexOffset[RegionAttachment.OY4]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - }; - RegionAttachment.OX1 = 0; - RegionAttachment.OY1 = 1; - RegionAttachment.OX2 = 2; - RegionAttachment.OY2 = 3; - RegionAttachment.OX3 = 4; - RegionAttachment.OY3 = 5; - RegionAttachment.OX4 = 6; - RegionAttachment.OY4 = 7; - RegionAttachment.X1 = 0; - RegionAttachment.Y1 = 1; - RegionAttachment.C1R = 2; - RegionAttachment.C1G = 3; - RegionAttachment.C1B = 4; - RegionAttachment.C1A = 5; - RegionAttachment.U1 = 6; - RegionAttachment.V1 = 7; - RegionAttachment.X2 = 8; - RegionAttachment.Y2 = 9; - RegionAttachment.C2R = 10; - RegionAttachment.C2G = 11; - RegionAttachment.C2B = 12; - RegionAttachment.C2A = 13; - RegionAttachment.U2 = 14; - RegionAttachment.V2 = 15; - RegionAttachment.X3 = 16; - RegionAttachment.Y3 = 17; - RegionAttachment.C3R = 18; - RegionAttachment.C3G = 19; - RegionAttachment.C3B = 20; - RegionAttachment.C3A = 21; - RegionAttachment.U3 = 22; - RegionAttachment.V3 = 23; - RegionAttachment.X4 = 24; - RegionAttachment.Y4 = 25; - RegionAttachment.C4R = 26; - RegionAttachment.C4G = 27; - RegionAttachment.C4B = 28; - RegionAttachment.C4A = 29; - RegionAttachment.U4 = 30; - RegionAttachment.V4 = 31; - return RegionAttachment; - }(spine.Attachment)); - spine.RegionAttachment = RegionAttachment; + var RegionAttachment = (function (_super) { + __extends(RegionAttachment, _super); + function RegionAttachment(name) { + _super.call(this, name); + this.x = 0; + this.y = 0; + this.scaleX = 1; + this.scaleY = 1; + this.rotation = 0; + this.width = 0; + this.height = 0; + this.color = new spine.Color(1, 1, 1, 1); + this.offset = spine.Utils.newFloatArray(8); + this.uvs = spine.Utils.newFloatArray(8); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.updateOffset = function () { + var regionScaleX = this.width / this.region.originalWidth * this.scaleX; + var regionScaleY = this.height / this.region.originalHeight * this.scaleY; + var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; + var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; + var localX2 = localX + this.region.width * regionScaleX; + var localY2 = localY + this.region.height * regionScaleY; + var radians = this.rotation * Math.PI / 180; + var cos = Math.cos(radians); + var sin = Math.sin(radians); + var localXCos = localX * cos + this.x; + var localXSin = localX * sin; + var localYCos = localY * cos + this.y; + var localYSin = localY * sin; + var localX2Cos = localX2 * cos + this.x; + var localX2Sin = localX2 * sin; + var localY2Cos = localY2 * cos + this.y; + var localY2Sin = localY2 * sin; + var offset = this.offset; + offset[RegionAttachment.OX1] = localXCos - localYSin; + offset[RegionAttachment.OY1] = localYCos + localXSin; + offset[RegionAttachment.OX2] = localXCos - localY2Sin; + offset[RegionAttachment.OY2] = localY2Cos + localXSin; + offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; + offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; + offset[RegionAttachment.OX4] = localX2Cos - localYSin; + offset[RegionAttachment.OY4] = localYCos + localX2Sin; + }; + RegionAttachment.prototype.setRegion = function (region) { + this.region = region; + var uvs = this.uvs; + if (region.rotate) { + uvs[2] = region.u; + uvs[3] = region.v2; + uvs[4] = region.u; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v; + uvs[0] = region.u2; + uvs[1] = region.v2; + } + else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; + } + }; + RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { + var vertexOffset = this.offset; + var x = bone.worldX, y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var offsetX = 0, offsetY = 0; + offsetX = vertexOffset[RegionAttachment.OX1]; + offsetY = vertexOffset[RegionAttachment.OY1]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX2]; + offsetY = vertexOffset[RegionAttachment.OY2]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX3]; + offsetY = vertexOffset[RegionAttachment.OY3]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX4]; + offsetY = vertexOffset[RegionAttachment.OY4]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + }; + RegionAttachment.OX1 = 0; + RegionAttachment.OY1 = 1; + RegionAttachment.OX2 = 2; + RegionAttachment.OY2 = 3; + RegionAttachment.OX3 = 4; + RegionAttachment.OY3 = 5; + RegionAttachment.OX4 = 6; + RegionAttachment.OY4 = 7; + RegionAttachment.X1 = 0; + RegionAttachment.Y1 = 1; + RegionAttachment.C1R = 2; + RegionAttachment.C1G = 3; + RegionAttachment.C1B = 4; + RegionAttachment.C1A = 5; + RegionAttachment.U1 = 6; + RegionAttachment.V1 = 7; + RegionAttachment.X2 = 8; + RegionAttachment.Y2 = 9; + RegionAttachment.C2R = 10; + RegionAttachment.C2G = 11; + RegionAttachment.C2B = 12; + RegionAttachment.C2A = 13; + RegionAttachment.U2 = 14; + RegionAttachment.V2 = 15; + RegionAttachment.X3 = 16; + RegionAttachment.Y3 = 17; + RegionAttachment.C3R = 18; + RegionAttachment.C3G = 19; + RegionAttachment.C3B = 20; + RegionAttachment.C3A = 21; + RegionAttachment.U3 = 22; + RegionAttachment.V3 = 23; + RegionAttachment.X4 = 24; + RegionAttachment.Y4 = 25; + RegionAttachment.C4R = 26; + RegionAttachment.C4G = 27; + RegionAttachment.C4B = 28; + RegionAttachment.C4A = 29; + RegionAttachment.U4 = 30; + RegionAttachment.V4 = 31; + return RegionAttachment; + }(spine.Attachment)); + spine.RegionAttachment = RegionAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (BlendMode) { - BlendMode[BlendMode["Normal"] = 0] = "Normal"; - BlendMode[BlendMode["Additive"] = 1] = "Additive"; - BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; - BlendMode[BlendMode["Screen"] = 3] = "Screen"; - })(spine.BlendMode || (spine.BlendMode = {})); - var BlendMode = spine.BlendMode; + (function (BlendMode) { + BlendMode[BlendMode["Normal"] = 0] = "Normal"; + BlendMode[BlendMode["Additive"] = 1] = "Additive"; + BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; + BlendMode[BlendMode["Screen"] = 3] = "Screen"; + })(spine.BlendMode || (spine.BlendMode = {})); + var BlendMode = spine.BlendMode; })(spine || (spine = {})); var spine; (function (spine) { - var Bone = (function () { - function Bone(data, skeleton, parent) { - this.children = new Array(); - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 0; - this.scaleY = 0; - this.shearX = 0; - this.shearY = 0; - this.ax = 0; - this.ay = 0; - this.arotation = 0; - this.ascaleX = 0; - this.ascaleY = 0; - this.ashearX = 0; - this.ashearY = 0; - this.appliedValid = false; - this.a = 0; - this.b = 0; - this.worldX = 0; - this.c = 0; - this.d = 0; - this.worldY = 0; - this.sorted = false; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.skeleton = skeleton; - this.parent = parent; - this.setToSetupPose(); - } - Bone.prototype.update = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransform = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { - this.ax = x; - this.ay = y; - this.arotation = rotation; - this.ascaleX = scaleX; - this.ascaleY = scaleY; - this.ashearX = shearX; - this.ashearY = shearY; - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - var skeleton = this.skeleton; - if (skeleton.flipX) { - x = -x; - la = -la; - lb = -lb; - } - if (skeleton.flipY) { - y = -y; - lc = -lc; - ld = -ld; - } - this.a = la; - this.b = lb; - this.c = lc; - this.d = ld; - this.worldX = x + skeleton.x; - this.worldY = y + skeleton.y; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - this.worldX = pa * x + pb * y + parent.worldX; - this.worldY = pc * x + pd * y + parent.worldY; - switch (this.data.transformMode) { - case spine.TransformMode.Normal: { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - return; - } - case spine.TransformMode.OnlyTranslation: { - var rotationY = rotation + 90 + shearY; - this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; - this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; - break; - } - case spine.TransformMode.NoRotationOrReflection: { - var s = pa * pa + pc * pc; - var prx = 0; - if (s > 0.0001) { - s = Math.abs(pa * pd - pb * pc) / s; - pb = pc * s; - pd = pa * s; - prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; - } - else { - pa = 0; - pc = 0; - prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; - } - var rx = rotation + shearX - prx; - var ry = rotation + shearY - prx + 90; - var la = spine.MathUtils.cosDeg(rx) * scaleX; - var lb = spine.MathUtils.cosDeg(ry) * scaleY; - var lc = spine.MathUtils.sinDeg(rx) * scaleX; - var ld = spine.MathUtils.sinDeg(ry) * scaleY; - this.a = pa * la - pb * lc; - this.b = pa * lb - pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - break; - } - case spine.TransformMode.NoScale: - case spine.TransformMode.NoScaleOrReflection: { - var cos = spine.MathUtils.cosDeg(rotation); - var sin = spine.MathUtils.sinDeg(rotation); - var za = pa * cos + pb * sin; - var zc = pc * cos + pd * sin; - var s = Math.sqrt(za * za + zc * zc); - if (s > 0.00001) - s = 1 / s; - za *= s; - zc *= s; - s = Math.sqrt(za * za + zc * zc); - var r = Math.PI / 2 + Math.atan2(zc, za); - var zb = Math.cos(r) * s; - var zd = Math.sin(r) * s; - var la = spine.MathUtils.cosDeg(shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; - var lc = spine.MathUtils.sinDeg(shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; - this.a = za * la + zb * lc; - this.b = za * lb + zb * ld; - this.c = zc * la + zd * lc; - this.d = zc * lb + zd * ld; - if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { - this.b = -this.b; - this.d = -this.d; - } - return; - } - } - if (this.skeleton.flipX) { - this.a = -this.a; - this.b = -this.b; - } - if (this.skeleton.flipY) { - this.c = -this.c; - this.d = -this.d; - } - }; - Bone.prototype.setToSetupPose = function () { - var data = this.data; - this.x = data.x; - this.y = data.y; - this.rotation = data.rotation; - this.scaleX = data.scaleX; - this.scaleY = data.scaleY; - this.shearX = data.shearX; - this.shearY = data.shearY; - }; - Bone.prototype.getWorldRotationX = function () { - return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldRotationY = function () { - return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldScaleX = function () { - return Math.sqrt(this.a * this.a + this.c * this.c); - }; - Bone.prototype.getWorldScaleY = function () { - return Math.sqrt(this.b * this.b + this.d * this.d); - }; - Bone.prototype.updateAppliedTransform = function () { - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - this.ax = this.worldX; - this.ay = this.worldY; - this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); - this.ashearX = 0; - this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - var pid = 1 / (pa * pd - pb * pc); - var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; - this.ax = (dx * pd * pid - dy * pb * pid); - this.ay = (dy * pa * pid - dx * pc * pid); - var ia = pid * pd; - var id = pid * pa; - var ib = pid * pb; - var ic = pid * pc; - var ra = ia * this.a - ib * this.c; - var rb = ia * this.b - ib * this.d; - var rc = id * this.c - ic * this.a; - var rd = id * this.d - ic * this.b; - this.ashearX = 0; - this.ascaleX = Math.sqrt(ra * ra + rc * rc); - if (this.ascaleX > 0.0001) { - var det = ra * rd - rb * rc; - this.ascaleY = det / this.ascaleX; - this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; - this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; - } - else { - this.ascaleX = 0; - this.ascaleY = Math.sqrt(rb * rb + rd * rd); - this.ashearY = 0; - this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; - } - }; - Bone.prototype.worldToLocal = function (world) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var invDet = 1 / (a * d - b * c); - var x = world.x - this.worldX, y = world.y - this.worldY; - world.x = (x * d * invDet - y * b * invDet); - world.y = (y * a * invDet - x * c * invDet); - return world; - }; - Bone.prototype.localToWorld = function (local) { - var x = local.x, y = local.y; - local.x = x * this.a + y * this.b + this.worldX; - local.y = x * this.c + y * this.d + this.worldY; - return local; - }; - Bone.prototype.worldToLocalRotation = function (worldRotation) { - var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); - return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; - }; - Bone.prototype.localToWorldRotation = function (localRotation) { - var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); - return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.rotateWorld = function (degrees) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); - this.a = cos * a - sin * c; - this.b = cos * b - sin * d; - this.c = sin * a + cos * c; - this.d = sin * b + cos * d; - this.appliedValid = false; - }; - return Bone; - }()); - spine.Bone = Bone; + var Bone = (function () { + function Bone(data, skeleton, parent) { + this.children = new Array(); + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 0; + this.scaleY = 0; + this.shearX = 0; + this.shearY = 0; + this.ax = 0; + this.ay = 0; + this.arotation = 0; + this.ascaleX = 0; + this.ascaleY = 0; + this.ashearX = 0; + this.ashearY = 0; + this.appliedValid = false; + this.a = 0; + this.b = 0; + this.worldX = 0; + this.c = 0; + this.d = 0; + this.worldY = 0; + this.sorted = false; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.skeleton = skeleton; + this.parent = parent; + this.setToSetupPose(); + } + Bone.prototype.update = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransform = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { + this.ax = x; + this.ay = y; + this.arotation = rotation; + this.ascaleX = scaleX; + this.ascaleY = scaleY; + this.ashearX = shearX; + this.ashearY = shearY; + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + var skeleton = this.skeleton; + if (skeleton.flipX) { + x = -x; + la = -la; + lb = -lb; + } + if (skeleton.flipY) { + y = -y; + lc = -lc; + ld = -ld; + } + this.a = la; + this.b = lb; + this.c = lc; + this.d = ld; + this.worldX = x + skeleton.x; + this.worldY = y + skeleton.y; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + this.worldX = pa * x + pb * y + parent.worldX; + this.worldY = pc * x + pd * y + parent.worldY; + switch (this.data.transformMode) { + case spine.TransformMode.Normal: { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + this.a = pa * la + pb * lc; + this.b = pa * lb + pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + return; + } + case spine.TransformMode.OnlyTranslation: { + var rotationY = rotation + 90 + shearY; + this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; + this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; + break; + } + case spine.TransformMode.NoRotationOrReflection: { + var s = pa * pa + pc * pc; + var prx = 0; + if (s > 0.0001) { + s = Math.abs(pa * pd - pb * pc) / s; + pb = pc * s; + pd = pa * s; + prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; + } + else { + pa = 0; + pc = 0; + prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; + } + var rx = rotation + shearX - prx; + var ry = rotation + shearY - prx + 90; + var la = spine.MathUtils.cosDeg(rx) * scaleX; + var lb = spine.MathUtils.cosDeg(ry) * scaleY; + var lc = spine.MathUtils.sinDeg(rx) * scaleX; + var ld = spine.MathUtils.sinDeg(ry) * scaleY; + this.a = pa * la - pb * lc; + this.b = pa * lb - pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + break; + } + case spine.TransformMode.NoScale: + case spine.TransformMode.NoScaleOrReflection: { + var cos = spine.MathUtils.cosDeg(rotation); + var sin = spine.MathUtils.sinDeg(rotation); + var za = pa * cos + pb * sin; + var zc = pc * cos + pd * sin; + var s = Math.sqrt(za * za + zc * zc); + if (s > 0.00001) + s = 1 / s; + za *= s; + zc *= s; + s = Math.sqrt(za * za + zc * zc); + var r = Math.PI / 2 + Math.atan2(zc, za); + var zb = Math.cos(r) * s; + var zd = Math.sin(r) * s; + var la = spine.MathUtils.cosDeg(shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; + var lc = spine.MathUtils.sinDeg(shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; + this.a = za * la + zb * lc; + this.b = za * lb + zb * ld; + this.c = zc * la + zd * lc; + this.d = zc * lb + zd * ld; + if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { + this.b = -this.b; + this.d = -this.d; + } + return; + } + } + if (this.skeleton.flipX) { + this.a = -this.a; + this.b = -this.b; + } + if (this.skeleton.flipY) { + this.c = -this.c; + this.d = -this.d; + } + }; + Bone.prototype.setToSetupPose = function () { + var data = this.data; + this.x = data.x; + this.y = data.y; + this.rotation = data.rotation; + this.scaleX = data.scaleX; + this.scaleY = data.scaleY; + this.shearX = data.shearX; + this.shearY = data.shearY; + }; + Bone.prototype.getWorldRotationX = function () { + return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldRotationY = function () { + return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldScaleX = function () { + return Math.sqrt(this.a * this.a + this.c * this.c); + }; + Bone.prototype.getWorldScaleY = function () { + return Math.sqrt(this.b * this.b + this.d * this.d); + }; + Bone.prototype.updateAppliedTransform = function () { + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + this.ax = this.worldX; + this.ay = this.worldY; + this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); + this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); + this.ashearX = 0; + this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + var pid = 1 / (pa * pd - pb * pc); + var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; + this.ax = (dx * pd * pid - dy * pb * pid); + this.ay = (dy * pa * pid - dx * pc * pid); + var ia = pid * pd; + var id = pid * pa; + var ib = pid * pb; + var ic = pid * pc; + var ra = ia * this.a - ib * this.c; + var rb = ia * this.b - ib * this.d; + var rc = id * this.c - ic * this.a; + var rd = id * this.d - ic * this.b; + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { + var det = ra * rd - rb * rc; + this.ascaleY = det / this.ascaleX; + this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; + this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; + } + else { + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; + } + }; + Bone.prototype.worldToLocal = function (world) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var invDet = 1 / (a * d - b * c); + var x = world.x - this.worldX, y = world.y - this.worldY; + world.x = (x * d * invDet - y * b * invDet); + world.y = (y * a * invDet - x * c * invDet); + return world; + }; + Bone.prototype.localToWorld = function (local) { + var x = local.x, y = local.y; + local.x = x * this.a + y * this.b + this.worldX; + local.y = x * this.c + y * this.d + this.worldY; + return local; + }; + Bone.prototype.worldToLocalRotation = function (worldRotation) { + var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); + return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; + }; + Bone.prototype.localToWorldRotation = function (localRotation) { + var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); + return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.rotateWorld = function (degrees) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); + this.a = cos * a - sin * c; + this.b = cos * b - sin * d; + this.c = sin * a + cos * c; + this.d = sin * b + cos * d; + this.appliedValid = false; + }; + return Bone; + }()); + spine.Bone = Bone; })(spine || (spine = {})); var spine; (function (spine) { - var BoneData = (function () { - function BoneData(index, name, parent) { - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 1; - this.scaleY = 1; - this.shearX = 0; - this.shearY = 0; - this.transformMode = TransformMode.Normal; - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - this.index = index; - this.name = name; - this.parent = parent; - } - return BoneData; - }()); - spine.BoneData = BoneData; - (function (TransformMode) { - TransformMode[TransformMode["Normal"] = 0] = "Normal"; - TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; - TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; - TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; - TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; - })(spine.TransformMode || (spine.TransformMode = {})); - var TransformMode = spine.TransformMode; + var BoneData = (function () { + function BoneData(index, name, parent) { + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 1; + this.scaleY = 1; + this.shearX = 0; + this.shearY = 0; + this.transformMode = TransformMode.Normal; + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + this.index = index; + this.name = name; + this.parent = parent; + } + return BoneData; + }()); + spine.BoneData = BoneData; + (function (TransformMode) { + TransformMode[TransformMode["Normal"] = 0] = "Normal"; + TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; + TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; + TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; + TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; + })(spine.TransformMode || (spine.TransformMode = {})); + var TransformMode = spine.TransformMode; })(spine || (spine = {})); var spine; (function (spine) { - var Event = (function () { - function Event(time, data) { - if (data == null) - throw new Error("data cannot be null."); - this.time = time; - this.data = data; - } - return Event; - }()); - spine.Event = Event; + var Event = (function () { + function Event(time, data) { + if (data == null) + throw new Error("data cannot be null."); + this.time = time; + this.data = data; + } + return Event; + }()); + spine.Event = Event; })(spine || (spine = {})); var spine; (function (spine) { - var EventData = (function () { - function EventData(name) { - this.name = name; - } - return EventData; - }()); - spine.EventData = EventData; + var EventData = (function () { + function EventData(name) { + this.name = name; + } + return EventData; + }()); + spine.EventData = EventData; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraint = (function () { - function IkConstraint(data, skeleton) { - this.mix = 1; - this.bendDirection = 0; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.mix = data.mix; - this.bendDirection = data.bendDirection; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - IkConstraint.prototype.getOrder = function () { - return this.data.order; - }; - IkConstraint.prototype.apply = function () { - this.update(); - }; - IkConstraint.prototype.update = function () { - var target = this.target; - var bones = this.bones; - switch (bones.length) { - case 1: - this.apply1(bones[0], target.worldX, target.worldY, this.mix); - break; - case 2: - this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); - break; - } - }; - IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var p = bone.parent; - var id = 1 / (p.a * p.d - p.b * p.c); - var x = targetX - p.worldX, y = targetY - p.worldY; - var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; - var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; - if (bone.ascaleX < 0) - rotationIK += 180; - if (rotationIK > 180) - rotationIK -= 360; - else if (rotationIK < -180) - rotationIK += 360; - bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); - }; - IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { - if (alpha == 0) { - child.updateWorldTransform(); - return; - } - if (!parent.appliedValid) - parent.updateAppliedTransform(); - if (!child.appliedValid) - child.updateAppliedTransform(); - var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; - var os1 = 0, os2 = 0, s2 = 0; - if (psx < 0) { - psx = -psx; - os1 = 180; - s2 = -1; - } - else { - os1 = 0; - s2 = 1; - } - if (psy < 0) { - psy = -psy; - s2 = -s2; - } - if (csx < 0) { - csx = -csx; - os2 = 180; - } - else - os2 = 0; - var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; - var u = Math.abs(psx - psy) <= 0.0001; - if (!u) { - cy = 0; - cwx = a * cx + parent.worldX; - cwy = c * cx + parent.worldY; - } - else { - cy = child.ay; - cwx = a * cx + b * cy + parent.worldX; - cwy = c * cx + d * cy + parent.worldY; - } - var pp = parent.parent; - a = pp.a; - b = pp.b; - c = pp.c; - d = pp.d; - var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; - var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; - x = cwx - pp.worldX; - y = cwy - pp.worldY; - var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; - var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; - outer: if (u) { - l2 *= psx; - var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); - if (cos < -1) - cos = -1; - else if (cos > 1) - cos = 1; - a2 = Math.acos(cos) * bendDir; - a = l1 + l2 * cos; - b = l2 * Math.sin(a2); - a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); - } - else { - a = psx * l2; - b = psy * l2; - var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); - c = bb * l1 * l1 + aa * dd - aa * bb; - var c1 = -2 * bb * l1, c2 = bb - aa; - d = c1 * c1 - 4 * c2 * c; - if (d >= 0) { - var q = Math.sqrt(d); - if (c1 < 0) - q = -q; - q = -(c1 + q) / 2; - var r0 = q / c2, r1 = c / q; - var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; - if (r * r <= dd) { - y = Math.sqrt(dd - r * r) * bendDir; - a1 = ta - Math.atan2(y, r); - a2 = Math.atan2(y / psy, (r - l1) / psx); - break outer; - } - } - var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; - var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; - c = -a * l1 / (aa - bb); - if (c >= -1 && c <= 1) { - c = Math.acos(c); - x = a * Math.cos(c) + l1; - y = b * Math.sin(c); - d = x * x + y * y; - if (d < minDist) { - minAngle = c; - minDist = d; - minX = x; - minY = y; - } - if (d > maxDist) { - maxAngle = c; - maxDist = d; - maxX = x; - maxY = y; - } - } - if (dd <= (minDist + maxDist) / 2) { - a1 = ta - Math.atan2(minY * bendDir, minX); - a2 = minAngle * bendDir; - } - else { - a1 = ta - Math.atan2(maxY * bendDir, maxX); - a2 = maxAngle * bendDir; - } - } - var os = Math.atan2(cy, cx) * s2; - var rotation = parent.arotation; - a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; - if (a1 > 180) - a1 -= 360; - else if (a1 < -180) - a1 += 360; - parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); - rotation = child.arotation; - a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; - if (a2 > 180) - a2 -= 360; - else if (a2 < -180) - a2 += 360; - child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); - }; - return IkConstraint; - }()); - spine.IkConstraint = IkConstraint; + var IkConstraint = (function () { + function IkConstraint(data, skeleton) { + this.mix = 1; + this.bendDirection = 0; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.mix = data.mix; + this.bendDirection = data.bendDirection; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + IkConstraint.prototype.getOrder = function () { + return this.data.order; + }; + IkConstraint.prototype.apply = function () { + this.update(); + }; + IkConstraint.prototype.update = function () { + var target = this.target; + var bones = this.bones; + switch (bones.length) { + case 1: + this.apply1(bones[0], target.worldX, target.worldY, this.mix); + break; + case 2: + this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); + break; + } + }; + IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var p = bone.parent; + var id = 1 / (p.a * p.d - p.b * p.c); + var x = targetX - p.worldX, y = targetY - p.worldY; + var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; + var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; + if (bone.ascaleX < 0) + rotationIK += 180; + if (rotationIK > 180) + rotationIK -= 360; + else if (rotationIK < -180) + rotationIK += 360; + bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); + }; + IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { + if (alpha == 0) { + child.updateWorldTransform(); + return; + } + if (!parent.appliedValid) + parent.updateAppliedTransform(); + if (!child.appliedValid) + child.updateAppliedTransform(); + var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; + var os1 = 0, os2 = 0, s2 = 0; + if (psx < 0) { + psx = -psx; + os1 = 180; + s2 = -1; + } + else { + os1 = 0; + s2 = 1; + } + if (psy < 0) { + psy = -psy; + s2 = -s2; + } + if (csx < 0) { + csx = -csx; + os2 = 180; + } + else + os2 = 0; + var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + var u = Math.abs(psx - psy) <= 0.0001; + if (!u) { + cy = 0; + cwx = a * cx + parent.worldX; + cwy = c * cx + parent.worldY; + } + else { + cy = child.ay; + cwx = a * cx + b * cy + parent.worldX; + cwy = c * cx + d * cy + parent.worldY; + } + var pp = parent.parent; + a = pp.a; + b = pp.b; + c = pp.c; + d = pp.d; + var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; + var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; + x = cwx - pp.worldX; + y = cwy - pp.worldY; + var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; + var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; + outer: if (u) { + l2 *= psx; + var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); + if (cos < -1) + cos = -1; + else if (cos > 1) + cos = 1; + a2 = Math.acos(cos) * bendDir; + a = l1 + l2 * cos; + b = l2 * Math.sin(a2); + a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); + } + else { + a = psx * l2; + b = psy * l2; + var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); + c = bb * l1 * l1 + aa * dd - aa * bb; + var c1 = -2 * bb * l1, c2 = bb - aa; + d = c1 * c1 - 4 * c2 * c; + if (d >= 0) { + var q = Math.sqrt(d); + if (c1 < 0) + q = -q; + q = -(c1 + q) / 2; + var r0 = q / c2, r1 = c / q; + var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; + if (r * r <= dd) { + y = Math.sqrt(dd - r * r) * bendDir; + a1 = ta - Math.atan2(y, r); + a2 = Math.atan2(y / psy, (r - l1) / psx); + break outer; + } + } + var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; + var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } + } + if (dd <= (minDist + maxDist) / 2) { + a1 = ta - Math.atan2(minY * bendDir, minX); + a2 = minAngle * bendDir; + } + else { + a1 = ta - Math.atan2(maxY * bendDir, maxX); + a2 = maxAngle * bendDir; + } + } + var os = Math.atan2(cy, cx) * s2; + var rotation = parent.arotation; + a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; + if (a1 > 180) + a1 -= 360; + else if (a1 < -180) + a1 += 360; + parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); + rotation = child.arotation; + a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; + if (a2 > 180) + a2 -= 360; + else if (a2 < -180) + a2 += 360; + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); + }; + return IkConstraint; + }()); + spine.IkConstraint = IkConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraintData = (function () { - function IkConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.bendDirection = 1; - this.mix = 1; - this.name = name; - } - return IkConstraintData; - }()); - spine.IkConstraintData = IkConstraintData; + var IkConstraintData = (function () { + function IkConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.bendDirection = 1; + this.mix = 1; + this.name = name; + } + return IkConstraintData; + }()); + spine.IkConstraintData = IkConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraint = (function () { - function PathConstraint(data, skeleton) { - this.position = 0; - this.spacing = 0; - this.rotateMix = 0; - this.translateMix = 0; - this.spaces = new Array(); - this.positions = new Array(); - this.world = new Array(); - this.curves = new Array(); - this.lengths = new Array(); - this.segments = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0, n = data.bones.length; i < n; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findSlot(data.target.name); - this.position = data.position; - this.spacing = data.spacing; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - } - PathConstraint.prototype.apply = function () { - this.update(); - }; - PathConstraint.prototype.update = function () { - var attachment = this.target.getAttachment(); - if (!(attachment instanceof spine.PathAttachment)) - return; - var rotateMix = this.rotateMix, translateMix = this.translateMix; - var translate = translateMix > 0, rotate = rotateMix > 0; - if (!translate && !rotate) - return; - var data = this.data; - var spacingMode = data.spacingMode; - var lengthSpacing = spacingMode == spine.SpacingMode.Length; - var rotateMode = data.rotateMode; - var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; - var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; - var bones = this.bones; - var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; - var spacing = this.spacing; - if (scale || lengthSpacing) { - if (scale) - lengths = spine.Utils.setArraySize(this.lengths, boneCount); - for (var i = 0, n = spacesCount - 1; i < n;) { - var bone = bones[i]; - var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; - var length_1 = Math.sqrt(x * x + y * y); - if (scale) - lengths[i] = length_1; - spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; - } - } - else { - for (var i = 1; i < spacesCount; i++) - spaces[i] = spacing; - } - var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); - var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - var tip = false; - if (offsetRotation == 0) - tip = rotateMode == spine.RotateMode.Chain; - else { - tip = false; - var p = this.target.bone; - offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - } - for (var i = 0, p = 3; i < boneCount; i++, p += 3) { - var bone = bones[i]; - bone.worldX += (boneX - bone.worldX) * translateMix; - bone.worldY += (boneY - bone.worldY) * translateMix; - var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; - if (scale) { - var length_2 = lengths[i]; - if (length_2 != 0) { - var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; - bone.a *= s; - bone.c *= s; - } - } - boneX = x; - boneY = y; - if (rotate) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; - if (tangents) - r = positions[p - 1]; - else if (spaces[i + 1] == 0) - r = positions[p + 2]; - else - r = Math.atan2(dy, dx); - r -= Math.atan2(c, a); - if (tip) { - cos = Math.cos(r); - sin = Math.sin(r); - var length_3 = bone.data.length; - boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; - boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; - } - else { - r += offsetRotation; - } - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - cos = Math.cos(r); - sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - } - bone.appliedValid = false; - } - }; - PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { - var target = this.target; - var position = this.position; - var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; - var closed = path.closed; - var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; - if (!path.constantSpeed) { - var lengths = path.lengths; - curveCount -= closed ? 1 : 2; - var pathLength_1 = lengths[curveCount]; - if (percentPosition) - position *= pathLength_1; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength_1; - } - world = spine.Utils.setArraySize(this.world, 8); - for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength_1; - if (p < 0) - p += pathLength_1; - curve = 0; - } - else if (p < 0) { - if (prevCurve != PathConstraint.BEFORE) { - prevCurve = PathConstraint.BEFORE; - path.computeWorldVertices(target, 2, 4, world, 0, 2); - } - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength_1) { - if (prevCurve != PathConstraint.AFTER) { - prevCurve = PathConstraint.AFTER; - path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); - } - this.addAfterPosition(p - pathLength_1, world, 0, out, o); - continue; - } - for (;; curve++) { - var length_4 = lengths[curve]; - if (p > length_4) - continue; - if (curve == 0) - p /= length_4; - else { - var prev = lengths[curve - 1]; - p = (p - prev) / (length_4 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - if (closed && curve == curveCount) { - path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); - path.computeWorldVertices(target, 0, 4, world, 4, 2); - } - else - path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); - } - this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); - } - return out; - } - if (closed) { - verticesLength += 2; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); - path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); - world[verticesLength - 2] = world[0]; - world[verticesLength - 1] = world[1]; - } - else { - curveCount--; - verticesLength -= 4; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); - } - var curves = spine.Utils.setArraySize(this.curves, curveCount); - var pathLength = 0; - var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; - var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; - for (var i = 0, w = 2; i < curveCount; i++, w += 6) { - cx1 = world[w]; - cy1 = world[w + 1]; - cx2 = world[w + 2]; - cy2 = world[w + 3]; - x2 = world[w + 4]; - y2 = world[w + 5]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; - tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - curves[i] = pathLength; - x1 = x2; - y1 = y2; - } - if (percentPosition) - position *= pathLength; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength; - } - var segments = this.segments; - var curveLength = 0; - for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength; - if (p < 0) - p += pathLength; - curve = 0; - } - else if (p < 0) { - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength) { - this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); - continue; - } - for (;; curve++) { - var length_5 = curves[curve]; - if (p > length_5) - continue; - if (curve == 0) - p /= length_5; - else { - var prev = curves[curve - 1]; - p = (p - prev) / (length_5 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - var ii = curve * 6; - x1 = world[ii]; - y1 = world[ii + 1]; - cx1 = world[ii + 2]; - cy1 = world[ii + 3]; - cx2 = world[ii + 4]; - cy2 = world[ii + 5]; - x2 = world[ii + 6]; - y2 = world[ii + 7]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.03; - tmpy = (y1 - cy1 * 2 + cy2) * 0.03; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; - curveLength = Math.sqrt(dfx * dfx + dfy * dfy); - segments[0] = curveLength; - for (ii = 1; ii < 8; ii++) { - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[ii] = curveLength; - } - dfx += ddfx; - dfy += ddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[8] = curveLength; - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[9] = curveLength; - segment = 0; - } - p *= curveLength; - for (;; segment++) { - var length_6 = segments[segment]; - if (p > length_6) - continue; - if (segment == 0) - p /= length_6; - else { - var prev = segments[segment - 1]; - p = segment + (p - prev) / (length_6 - prev); - } - break; - } - this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); - } - return out; - }; - PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { - var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { - var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { - if (p == 0 || isNaN(p)) - p = 0.0001; - var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; - var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; - var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; - out[o] = x; - out[o + 1] = y; - if (tangents) - out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); - }; - PathConstraint.prototype.getOrder = function () { - return this.data.order; - }; - PathConstraint.NONE = -1; - PathConstraint.BEFORE = -2; - PathConstraint.AFTER = -3; - return PathConstraint; - }()); - spine.PathConstraint = PathConstraint; + var PathConstraint = (function () { + function PathConstraint(data, skeleton) { + this.position = 0; + this.spacing = 0; + this.rotateMix = 0; + this.translateMix = 0; + this.spaces = new Array(); + this.positions = new Array(); + this.world = new Array(); + this.curves = new Array(); + this.lengths = new Array(); + this.segments = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0, n = data.bones.length; i < n; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findSlot(data.target.name); + this.position = data.position; + this.spacing = data.spacing; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + } + PathConstraint.prototype.apply = function () { + this.update(); + }; + PathConstraint.prototype.update = function () { + var attachment = this.target.getAttachment(); + if (!(attachment instanceof spine.PathAttachment)) + return; + var rotateMix = this.rotateMix, translateMix = this.translateMix; + var translate = translateMix > 0, rotate = rotateMix > 0; + if (!translate && !rotate) + return; + var data = this.data; + var spacingMode = data.spacingMode; + var lengthSpacing = spacingMode == spine.SpacingMode.Length; + var rotateMode = data.rotateMode; + var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; + var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; + var bones = this.bones; + var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; + var spacing = this.spacing; + if (scale || lengthSpacing) { + if (scale) + lengths = spine.Utils.setArraySize(this.lengths, boneCount); + for (var i = 0, n = spacesCount - 1; i < n;) { + var bone = bones[i]; + var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; + var length_1 = Math.sqrt(x * x + y * y); + if (scale) + lengths[i] = length_1; + spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; + } + } + else { + for (var i = 1; i < spacesCount; i++) + spaces[i] = spacing; + } + var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); + var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; + var tip = false; + if (offsetRotation == 0) + tip = rotateMode == spine.RotateMode.Chain; + else { + tip = false; + var p = this.target.bone; + offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + } + for (var i = 0, p = 3; i < boneCount; i++, p += 3) { + var bone = bones[i]; + bone.worldX += (boneX - bone.worldX) * translateMix; + bone.worldY += (boneY - bone.worldY) * translateMix; + var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; + if (scale) { + var length_2 = lengths[i]; + if (length_2 != 0) { + var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; + bone.a *= s; + bone.c *= s; + } + } + boneX = x; + boneY = y; + if (rotate) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; + if (tangents) + r = positions[p - 1]; + else if (spaces[i + 1] == 0) + r = positions[p + 2]; + else + r = Math.atan2(dy, dx); + r -= Math.atan2(c, a); + if (tip) { + cos = Math.cos(r); + sin = Math.sin(r); + var length_3 = bone.data.length; + boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; + boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; + } + else { + r += offsetRotation; + } + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + cos = Math.cos(r); + sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + bone.appliedValid = false; + } + }; + PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { + var target = this.target; + var position = this.position; + var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; + var closed = path.closed; + var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; + if (!path.constantSpeed) { + var lengths = path.lengths; + curveCount -= closed ? 1 : 2; + var pathLength_1 = lengths[curveCount]; + if (percentPosition) + position *= pathLength_1; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength_1; + } + world = spine.Utils.setArraySize(this.world, 8); + for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength_1; + if (p < 0) + p += pathLength_1; + curve = 0; + } + else if (p < 0) { + if (prevCurve != PathConstraint.BEFORE) { + prevCurve = PathConstraint.BEFORE; + path.computeWorldVertices(target, 2, 4, world, 0, 2); + } + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength_1) { + if (prevCurve != PathConstraint.AFTER) { + prevCurve = PathConstraint.AFTER; + path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); + } + this.addAfterPosition(p - pathLength_1, world, 0, out, o); + continue; + } + for (;; curve++) { + var length_4 = lengths[curve]; + if (p > length_4) + continue; + if (curve == 0) + p /= length_4; + else { + var prev = lengths[curve - 1]; + p = (p - prev) / (length_4 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + if (closed && curve == curveCount) { + path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); + path.computeWorldVertices(target, 0, 4, world, 4, 2); + } + else + path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); + } + this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); + } + return out; + } + if (closed) { + verticesLength += 2; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); + path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); + world[verticesLength - 2] = world[0]; + world[verticesLength - 1] = world[1]; + } + else { + curveCount--; + verticesLength -= 4; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); + } + var curves = spine.Utils.setArraySize(this.curves, curveCount); + var pathLength = 0; + var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; + var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; + for (var i = 0, w = 2; i < curveCount; i++, w += 6) { + cx1 = world[w]; + cy1 = world[w + 1]; + cx2 = world[w + 2]; + cy2 = world[w + 3]; + x2 = world[w + 4]; + y2 = world[w + 5]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; + tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + curves[i] = pathLength; + x1 = x2; + y1 = y2; + } + if (percentPosition) + position *= pathLength; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength; + } + var segments = this.segments; + var curveLength = 0; + for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength; + if (p < 0) + p += pathLength; + curve = 0; + } + else if (p < 0) { + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength) { + this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); + continue; + } + for (;; curve++) { + var length_5 = curves[curve]; + if (p > length_5) + continue; + if (curve == 0) + p /= length_5; + else { + var prev = curves[curve - 1]; + p = (p - prev) / (length_5 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + var ii = curve * 6; + x1 = world[ii]; + y1 = world[ii + 1]; + cx1 = world[ii + 2]; + cy1 = world[ii + 3]; + cx2 = world[ii + 4]; + cy2 = world[ii + 5]; + x2 = world[ii + 6]; + y2 = world[ii + 7]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.03; + tmpy = (y1 - cy1 * 2 + cy2) * 0.03; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; + curveLength = Math.sqrt(dfx * dfx + dfy * dfy); + segments[0] = curveLength; + for (ii = 1; ii < 8; ii++) { + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[ii] = curveLength; + } + dfx += ddfx; + dfy += ddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[8] = curveLength; + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[9] = curveLength; + segment = 0; + } + p *= curveLength; + for (;; segment++) { + var length_6 = segments[segment]; + if (p > length_6) + continue; + if (segment == 0) + p /= length_6; + else { + var prev = segments[segment - 1]; + p = segment + (p - prev) / (length_6 - prev); + } + break; + } + this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); + } + return out; + }; + PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { + var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { + var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { + if (p == 0 || isNaN(p)) + p = 0.0001; + var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; + var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; + var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; + out[o] = x; + out[o + 1] = y; + if (tangents) + out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); + }; + PathConstraint.prototype.getOrder = function () { + return this.data.order; + }; + PathConstraint.NONE = -1; + PathConstraint.BEFORE = -2; + PathConstraint.AFTER = -3; + return PathConstraint; + }()); + spine.PathConstraint = PathConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraintData = (function () { - function PathConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.name = name; - } - return PathConstraintData; - }()); - spine.PathConstraintData = PathConstraintData; - (function (PositionMode) { - PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; - PositionMode[PositionMode["Percent"] = 1] = "Percent"; - })(spine.PositionMode || (spine.PositionMode = {})); - var PositionMode = spine.PositionMode; - (function (SpacingMode) { - SpacingMode[SpacingMode["Length"] = 0] = "Length"; - SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; - SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; - })(spine.SpacingMode || (spine.SpacingMode = {})); - var SpacingMode = spine.SpacingMode; - (function (RotateMode) { - RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; - RotateMode[RotateMode["Chain"] = 1] = "Chain"; - RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; - })(spine.RotateMode || (spine.RotateMode = {})); - var RotateMode = spine.RotateMode; + var PathConstraintData = (function () { + function PathConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.name = name; + } + return PathConstraintData; + }()); + spine.PathConstraintData = PathConstraintData; + (function (PositionMode) { + PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; + PositionMode[PositionMode["Percent"] = 1] = "Percent"; + })(spine.PositionMode || (spine.PositionMode = {})); + var PositionMode = spine.PositionMode; + (function (SpacingMode) { + SpacingMode[SpacingMode["Length"] = 0] = "Length"; + SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; + SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; + })(spine.SpacingMode || (spine.SpacingMode = {})); + var SpacingMode = spine.SpacingMode; + (function (RotateMode) { + RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; + RotateMode[RotateMode["Chain"] = 1] = "Chain"; + RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; + })(spine.RotateMode || (spine.RotateMode = {})); + var RotateMode = spine.RotateMode; })(spine || (spine = {})); var spine; (function (spine) { - var Assets = (function () { - function Assets(clientId) { - this.toLoad = new Array(); - this.assets = {}; - this.clientId = clientId; - } - Assets.prototype.loaded = function () { - var i = 0; - for (var v in this.assets) - i++; - return i; - }; - return Assets; - }()); - var SharedAssetManager = (function () { - function SharedAssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.clientAssets = {}; - this.queuedAssets = {}; - this.rawAssets = {}; - this.errors = {}; - this.pathPrefix = pathPrefix; - } - SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) { - clientAssets = new Assets(clientId); - this.clientAssets[clientId] = clientAssets; - } - if (textureLoader !== null) - clientAssets.textureLoader = textureLoader; - clientAssets.toLoad.push(path); - if (this.queuedAssets[path] === path) { - return false; - } - else { - this.queuedAssets[path] = path; - return true; - } - }; - SharedAssetManager.prototype.loadText = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = request.responseText; - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadJson = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = JSON.parse(request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, textureLoader, path)) - return; - var img = new Image(); - img.src = path; - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - _this.rawAssets[path] = img; - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - }; - }; - SharedAssetManager.prototype.get = function (clientId, path) { - path = this.pathPrefix + path; - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - return clientAssets.assets[path]; - }; - SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { - for (var i = 0; i < clientAssets.toLoad.length; i++) { - var path = clientAssets.toLoad[i]; - var asset = clientAssets.assets[path]; - if (asset === null || asset === undefined) { - var rawAsset = this.rawAssets[path]; - if (rawAsset === null || rawAsset === undefined) - continue; - if (rawAsset instanceof HTMLImageElement) { - clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); - } - else { - clientAssets.assets[path] = rawAsset; - } - } - } - }; - SharedAssetManager.prototype.isLoadingComplete = function (clientId) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - this.updateClientAssets(clientAssets); - return clientAssets.toLoad.length == clientAssets.loaded(); - }; - SharedAssetManager.prototype.dispose = function () { - }; - SharedAssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - SharedAssetManager.prototype.getErrors = function () { - return this.errors; - }; - return SharedAssetManager; - }()); - spine.SharedAssetManager = SharedAssetManager; + var Assets = (function () { + function Assets(clientId) { + this.toLoad = new Array(); + this.assets = {}; + this.clientId = clientId; + } + Assets.prototype.loaded = function () { + var i = 0; + for (var v in this.assets) + i++; + return i; + }; + return Assets; + }()); + var SharedAssetManager = (function () { + function SharedAssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.clientAssets = {}; + this.queuedAssets = {}; + this.rawAssets = {}; + this.errors = {}; + this.pathPrefix = pathPrefix; + } + SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) { + clientAssets = new Assets(clientId); + this.clientAssets[clientId] = clientAssets; + } + if (textureLoader !== null) + clientAssets.textureLoader = textureLoader; + clientAssets.toLoad.push(path); + if (this.queuedAssets[path] === path) { + return false; + } + else { + this.queuedAssets[path] = path; + return true; + } + }; + SharedAssetManager.prototype.loadText = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = request.responseText; + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadJson = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = JSON.parse(request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, textureLoader, path)) + return; + var img = new Image(); + img.src = path; + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + _this.rawAssets[path] = img; + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + }; + }; + SharedAssetManager.prototype.get = function (clientId, path) { + path = this.pathPrefix + path; + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + return clientAssets.assets[path]; + }; + SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { + for (var i = 0; i < clientAssets.toLoad.length; i++) { + var path = clientAssets.toLoad[i]; + var asset = clientAssets.assets[path]; + if (asset === null || asset === undefined) { + var rawAsset = this.rawAssets[path]; + if (rawAsset === null || rawAsset === undefined) + continue; + if (rawAsset instanceof HTMLImageElement) { + clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); + } + else { + clientAssets.assets[path] = rawAsset; + } + } + } + }; + SharedAssetManager.prototype.isLoadingComplete = function (clientId) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + this.updateClientAssets(clientAssets); + return clientAssets.toLoad.length == clientAssets.loaded(); + }; + SharedAssetManager.prototype.dispose = function () { + }; + SharedAssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + SharedAssetManager.prototype.getErrors = function () { + return this.errors; + }; + return SharedAssetManager; + }()); + spine.SharedAssetManager = SharedAssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var Skeleton = (function () { - function Skeleton(data) { - this._updateCache = new Array(); - this.updateCacheReset = new Array(); - this.time = 0; - this.flipX = false; - this.flipY = false; - this.x = 0; - this.y = 0; - if (data == null) - throw new Error("data cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) { - var boneData = data.bones[i]; - var bone = void 0; - if (boneData.parent == null) - bone = new spine.Bone(boneData, this, null); - else { - var parent_1 = this.bones[boneData.parent.index]; - bone = new spine.Bone(boneData, this, parent_1); - parent_1.children.push(bone); - } - this.bones.push(bone); - } - this.slots = new Array(); - this.drawOrder = new Array(); - for (var i = 0; i < data.slots.length; i++) { - var slotData = data.slots[i]; - var bone = this.bones[slotData.boneData.index]; - var slot = new spine.Slot(slotData, bone); - this.slots.push(slot); - this.drawOrder.push(slot); - } - this.ikConstraints = new Array(); - for (var i = 0; i < data.ikConstraints.length; i++) { - var ikConstraintData = data.ikConstraints[i]; - this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); - } - this.transformConstraints = new Array(); - for (var i = 0; i < data.transformConstraints.length; i++) { - var transformConstraintData = data.transformConstraints[i]; - this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); - } - this.pathConstraints = new Array(); - for (var i = 0; i < data.pathConstraints.length; i++) { - var pathConstraintData = data.pathConstraints[i]; - this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); - } - this.color = new spine.Color(1, 1, 1, 1); - this.updateCache(); - } - Skeleton.prototype.updateCache = function () { - var updateCache = this._updateCache; - updateCache.length = 0; - this.updateCacheReset.length = 0; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].sorted = false; - var ikConstraints = this.ikConstraints; - var transformConstraints = this.transformConstraints; - var pathConstraints = this.pathConstraints; - var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; - var constraintCount = ikCount + transformCount + pathCount; - outer: for (var i = 0; i < constraintCount; i++) { - for (var ii = 0; ii < ikCount; ii++) { - var constraint = ikConstraints[ii]; - if (constraint.data.order == i) { - this.sortIkConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < transformCount; ii++) { - var constraint = transformConstraints[ii]; - if (constraint.data.order == i) { - this.sortTransformConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < pathCount; ii++) { - var constraint = pathConstraints[ii]; - if (constraint.data.order == i) { - this.sortPathConstraint(constraint); - continue outer; - } - } - } - for (var i = 0, n = bones.length; i < n; i++) - this.sortBone(bones[i]); - }; - Skeleton.prototype.sortIkConstraint = function (constraint) { - var target = constraint.target; - this.sortBone(target); - var constrained = constraint.bones; - var parent = constrained[0]; - this.sortBone(parent); - if (constrained.length > 1) { - var child = constrained[constrained.length - 1]; - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - this._updateCache.push(constraint); - this.sortReset(parent.children); - constrained[constrained.length - 1].sorted = true; - }; - Skeleton.prototype.sortPathConstraint = function (constraint) { - var slot = constraint.target; - var slotIndex = slot.data.index; - var slotBone = slot.bone; - if (this.skin != null) - this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); - if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) - this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); - for (var i = 0, n = this.data.skins.length; i < n; i++) - this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); - var attachment = slot.getAttachment(); - if (attachment instanceof spine.PathAttachment) - this.sortPathConstraintAttachmentWith(attachment, slotBone); - var constrained = constraint.bones; - var boneCount = constrained.length; - for (var i = 0; i < boneCount; i++) - this.sortBone(constrained[i]); - this._updateCache.push(constraint); - for (var i = 0; i < boneCount; i++) - this.sortReset(constrained[i].children); - for (var i = 0; i < boneCount; i++) - constrained[i].sorted = true; - }; - Skeleton.prototype.sortTransformConstraint = function (constraint) { - this.sortBone(constraint.target); - var constrained = constraint.bones; - var boneCount = constrained.length; - if (constraint.data.local) { - for (var i = 0; i < boneCount; i++) { - var child = constrained[i]; - this.sortBone(child.parent); - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - } - else { - for (var i = 0; i < boneCount; i++) { - this.sortBone(constrained[i]); - } - } - this._updateCache.push(constraint); - for (var ii = 0; ii < boneCount; ii++) - this.sortReset(constrained[ii].children); - for (var ii = 0; ii < boneCount; ii++) - constrained[ii].sorted = true; - }; - Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { - var attachments = skin.attachments[slotIndex]; - if (!attachments) - return; - for (var key in attachments) { - this.sortPathConstraintAttachmentWith(attachments[key], slotBone); - } - }; - Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { - if (!(attachment instanceof spine.PathAttachment)) - return; - var pathBones = attachment.bones; - if (pathBones == null) - this.sortBone(slotBone); - else { - var bones = this.bones; - var i = 0; - while (i < pathBones.length) { - var boneCount = pathBones[i++]; - for (var n = i + boneCount; i < n; i++) { - var boneIndex = pathBones[i]; - this.sortBone(bones[boneIndex]); - } - } - } - }; - Skeleton.prototype.sortBone = function (bone) { - if (bone.sorted) - return; - var parent = bone.parent; - if (parent != null) - this.sortBone(parent); - bone.sorted = true; - this._updateCache.push(bone); - }; - Skeleton.prototype.sortReset = function (bones) { - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.sorted) - this.sortReset(bone.children); - bone.sorted = false; - } - }; - Skeleton.prototype.updateWorldTransform = function () { - var updateCacheReset = this.updateCacheReset; - for (var i = 0, n = updateCacheReset.length; i < n; i++) { - var bone = updateCacheReset[i]; - bone.ax = bone.x; - bone.ay = bone.y; - bone.arotation = bone.rotation; - bone.ascaleX = bone.scaleX; - bone.ascaleY = bone.scaleY; - bone.ashearX = bone.shearX; - bone.ashearY = bone.shearY; - bone.appliedValid = true; - } - var updateCache = this._updateCache; - for (var i = 0, n = updateCache.length; i < n; i++) - updateCache[i].update(); - }; - Skeleton.prototype.setToSetupPose = function () { - this.setBonesToSetupPose(); - this.setSlotsToSetupPose(); - }; - Skeleton.prototype.setBonesToSetupPose = function () { - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].setToSetupPose(); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - constraint.bendDirection = constraint.data.bendDirection; - constraint.mix = constraint.data.mix; - } - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - var data = constraint.data; - constraint.position = data.position; - constraint.spacing = data.spacing; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - } - }; - Skeleton.prototype.setSlotsToSetupPose = function () { - var slots = this.slots; - spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); - for (var i = 0, n = slots.length; i < n; i++) - slots[i].setToSetupPose(); - }; - Skeleton.prototype.getRootBone = function () { - if (this.bones.length == 0) - return null; - return this.bones[0]; - }; - Skeleton.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.data.name == boneName) - return bone; - } - return null; - }; - Skeleton.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].data.name == boneName) - return i; - return -1; - }; - Skeleton.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) - return slot; - } - return null; - }; - Skeleton.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].data.name == slotName) - return i; - return -1; - }; - Skeleton.prototype.setSkinByName = function (skinName) { - var skin = this.data.findSkin(skinName); - if (skin == null) - throw new Error("Skin not found: " + skinName); - this.setSkin(skin); - }; - Skeleton.prototype.setSkin = function (newSkin) { - if (newSkin != null) { - if (this.skin != null) - newSkin.attachAll(this, this.skin); - else { - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var name_1 = slot.data.attachmentName; - if (name_1 != null) { - var attachment = newSkin.getAttachment(i, name_1); - if (attachment != null) - slot.setAttachment(attachment); - } - } - } - } - this.skin = newSkin; - }; - Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { - return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); - }; - Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { - if (attachmentName == null) - throw new Error("attachmentName cannot be null."); - if (this.skin != null) { - var attachment = this.skin.getAttachment(slotIndex, attachmentName); - if (attachment != null) - return attachment; - } - if (this.data.defaultSkin != null) - return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); - return null; - }; - Skeleton.prototype.setAttachment = function (slotName, attachmentName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) { - var attachment = null; - if (attachmentName != null) { - attachment = this.getAttachment(i, attachmentName); - if (attachment == null) - throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); - } - slot.setAttachment(attachment); - return; - } - } - throw new Error("Slot not found: " + slotName); - }; - Skeleton.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var ikConstraint = ikConstraints[i]; - if (ikConstraint.data.name == constraintName) - return ikConstraint; - } - return null; - }; - Skeleton.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.getBounds = function (offset, size, temp) { - if (offset == null) - throw new Error("offset cannot be null."); - if (size == null) - throw new Error("size cannot be null."); - var drawOrder = this.drawOrder; - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var verticesLength = 0; - var vertices = null; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.RegionAttachment) { - verticesLength = 8; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - attachment.computeWorldVertices(slot.bone, vertices, 0, 2); - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - verticesLength = mesh.worldVerticesLength; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); - } - if (vertices != null) { - for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { - var x = vertices[ii], y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - } - offset.set(minX, minY); - size.set(maxX - minX, maxY - minY); - }; - Skeleton.prototype.update = function (delta) { - this.time += delta; - }; - return Skeleton; - }()); - spine.Skeleton = Skeleton; + var Skeleton = (function () { + function Skeleton(data) { + this._updateCache = new Array(); + this.updateCacheReset = new Array(); + this.time = 0; + this.flipX = false; + this.flipY = false; + this.x = 0; + this.y = 0; + if (data == null) + throw new Error("data cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) { + var boneData = data.bones[i]; + var bone = void 0; + if (boneData.parent == null) + bone = new spine.Bone(boneData, this, null); + else { + var parent_1 = this.bones[boneData.parent.index]; + bone = new spine.Bone(boneData, this, parent_1); + parent_1.children.push(bone); + } + this.bones.push(bone); + } + this.slots = new Array(); + this.drawOrder = new Array(); + for (var i = 0; i < data.slots.length; i++) { + var slotData = data.slots[i]; + var bone = this.bones[slotData.boneData.index]; + var slot = new spine.Slot(slotData, bone); + this.slots.push(slot); + this.drawOrder.push(slot); + } + this.ikConstraints = new Array(); + for (var i = 0; i < data.ikConstraints.length; i++) { + var ikConstraintData = data.ikConstraints[i]; + this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); + } + this.transformConstraints = new Array(); + for (var i = 0; i < data.transformConstraints.length; i++) { + var transformConstraintData = data.transformConstraints[i]; + this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); + } + this.pathConstraints = new Array(); + for (var i = 0; i < data.pathConstraints.length; i++) { + var pathConstraintData = data.pathConstraints[i]; + this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); + } + this.color = new spine.Color(1, 1, 1, 1); + this.updateCache(); + } + Skeleton.prototype.updateCache = function () { + var updateCache = this._updateCache; + updateCache.length = 0; + this.updateCacheReset.length = 0; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].sorted = false; + var ikConstraints = this.ikConstraints; + var transformConstraints = this.transformConstraints; + var pathConstraints = this.pathConstraints; + var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; + var constraintCount = ikCount + transformCount + pathCount; + outer: for (var i = 0; i < constraintCount; i++) { + for (var ii = 0; ii < ikCount; ii++) { + var constraint = ikConstraints[ii]; + if (constraint.data.order == i) { + this.sortIkConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < transformCount; ii++) { + var constraint = transformConstraints[ii]; + if (constraint.data.order == i) { + this.sortTransformConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < pathCount; ii++) { + var constraint = pathConstraints[ii]; + if (constraint.data.order == i) { + this.sortPathConstraint(constraint); + continue outer; + } + } + } + for (var i = 0, n = bones.length; i < n; i++) + this.sortBone(bones[i]); + }; + Skeleton.prototype.sortIkConstraint = function (constraint) { + var target = constraint.target; + this.sortBone(target); + var constrained = constraint.bones; + var parent = constrained[0]; + this.sortBone(parent); + if (constrained.length > 1) { + var child = constrained[constrained.length - 1]; + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + this._updateCache.push(constraint); + this.sortReset(parent.children); + constrained[constrained.length - 1].sorted = true; + }; + Skeleton.prototype.sortPathConstraint = function (constraint) { + var slot = constraint.target; + var slotIndex = slot.data.index; + var slotBone = slot.bone; + if (this.skin != null) + this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); + if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) + this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); + for (var i = 0, n = this.data.skins.length; i < n; i++) + this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); + var attachment = slot.getAttachment(); + if (attachment instanceof spine.PathAttachment) + this.sortPathConstraintAttachmentWith(attachment, slotBone); + var constrained = constraint.bones; + var boneCount = constrained.length; + for (var i = 0; i < boneCount; i++) + this.sortBone(constrained[i]); + this._updateCache.push(constraint); + for (var i = 0; i < boneCount; i++) + this.sortReset(constrained[i].children); + for (var i = 0; i < boneCount; i++) + constrained[i].sorted = true; + }; + Skeleton.prototype.sortTransformConstraint = function (constraint) { + this.sortBone(constraint.target); + var constrained = constraint.bones; + var boneCount = constrained.length; + if (constraint.data.local) { + for (var i = 0; i < boneCount; i++) { + var child = constrained[i]; + this.sortBone(child.parent); + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + } + else { + for (var i = 0; i < boneCount; i++) { + this.sortBone(constrained[i]); + } + } + this._updateCache.push(constraint); + for (var ii = 0; ii < boneCount; ii++) + this.sortReset(constrained[ii].children); + for (var ii = 0; ii < boneCount; ii++) + constrained[ii].sorted = true; + }; + Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { + var attachments = skin.attachments[slotIndex]; + if (!attachments) + return; + for (var key in attachments) { + this.sortPathConstraintAttachmentWith(attachments[key], slotBone); + } + }; + Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { + if (!(attachment instanceof spine.PathAttachment)) + return; + var pathBones = attachment.bones; + if (pathBones == null) + this.sortBone(slotBone); + else { + var bones = this.bones; + var i = 0; + while (i < pathBones.length) { + var boneCount = pathBones[i++]; + for (var n = i + boneCount; i < n; i++) { + var boneIndex = pathBones[i]; + this.sortBone(bones[boneIndex]); + } + } + } + }; + Skeleton.prototype.sortBone = function (bone) { + if (bone.sorted) + return; + var parent = bone.parent; + if (parent != null) + this.sortBone(parent); + bone.sorted = true; + this._updateCache.push(bone); + }; + Skeleton.prototype.sortReset = function (bones) { + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.sorted) + this.sortReset(bone.children); + bone.sorted = false; + } + }; + Skeleton.prototype.updateWorldTransform = function () { + var updateCacheReset = this.updateCacheReset; + for (var i = 0, n = updateCacheReset.length; i < n; i++) { + var bone = updateCacheReset[i]; + bone.ax = bone.x; + bone.ay = bone.y; + bone.arotation = bone.rotation; + bone.ascaleX = bone.scaleX; + bone.ascaleY = bone.scaleY; + bone.ashearX = bone.shearX; + bone.ashearY = bone.shearY; + bone.appliedValid = true; + } + var updateCache = this._updateCache; + for (var i = 0, n = updateCache.length; i < n; i++) + updateCache[i].update(); + }; + Skeleton.prototype.setToSetupPose = function () { + this.setBonesToSetupPose(); + this.setSlotsToSetupPose(); + }; + Skeleton.prototype.setBonesToSetupPose = function () { + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].setToSetupPose(); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + constraint.bendDirection = constraint.data.bendDirection; + constraint.mix = constraint.data.mix; + } + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + var data = constraint.data; + constraint.position = data.position; + constraint.spacing = data.spacing; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + } + }; + Skeleton.prototype.setSlotsToSetupPose = function () { + var slots = this.slots; + spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); + for (var i = 0, n = slots.length; i < n; i++) + slots[i].setToSetupPose(); + }; + Skeleton.prototype.getRootBone = function () { + if (this.bones.length == 0) + return null; + return this.bones[0]; + }; + Skeleton.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.data.name == boneName) + return bone; + } + return null; + }; + Skeleton.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].data.name == boneName) + return i; + return -1; + }; + Skeleton.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) + return slot; + } + return null; + }; + Skeleton.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].data.name == slotName) + return i; + return -1; + }; + Skeleton.prototype.setSkinByName = function (skinName) { + var skin = this.data.findSkin(skinName); + if (skin == null) + throw new Error("Skin not found: " + skinName); + this.setSkin(skin); + }; + Skeleton.prototype.setSkin = function (newSkin) { + if (newSkin != null) { + if (this.skin != null) + newSkin.attachAll(this, this.skin); + else { + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var name_1 = slot.data.attachmentName; + if (name_1 != null) { + var attachment = newSkin.getAttachment(i, name_1); + if (attachment != null) + slot.setAttachment(attachment); + } + } + } + } + this.skin = newSkin; + }; + Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { + return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); + }; + Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { + if (attachmentName == null) + throw new Error("attachmentName cannot be null."); + if (this.skin != null) { + var attachment = this.skin.getAttachment(slotIndex, attachmentName); + if (attachment != null) + return attachment; + } + if (this.data.defaultSkin != null) + return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); + return null; + }; + Skeleton.prototype.setAttachment = function (slotName, attachmentName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) { + var attachment = null; + if (attachmentName != null) { + attachment = this.getAttachment(i, attachmentName); + if (attachment == null) + throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); + } + slot.setAttachment(attachment); + return; + } + } + throw new Error("Slot not found: " + slotName); + }; + Skeleton.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var ikConstraint = ikConstraints[i]; + if (ikConstraint.data.name == constraintName) + return ikConstraint; + } + return null; + }; + Skeleton.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.getBounds = function (offset, size, temp) { + if (offset == null) + throw new Error("offset cannot be null."); + if (size == null) + throw new Error("size cannot be null."); + var drawOrder = this.drawOrder; + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var verticesLength = 0; + var vertices = null; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.RegionAttachment) { + verticesLength = 8; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + attachment.computeWorldVertices(slot.bone, vertices, 0, 2); + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + verticesLength = mesh.worldVerticesLength; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); + } + if (vertices != null) { + for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { + var x = vertices[ii], y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + } + offset.set(minX, minY); + size.set(maxX - minX, maxY - minY); + }; + Skeleton.prototype.update = function (delta) { + this.time += delta; + }; + return Skeleton; + }()); + spine.Skeleton = Skeleton; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonBounds = (function () { - function SkeletonBounds() { - this.minX = 0; - this.minY = 0; - this.maxX = 0; - this.maxY = 0; - this.boundingBoxes = new Array(); - this.polygons = new Array(); - this.polygonPool = new spine.Pool(function () { - return spine.Utils.newFloatArray(16); - }); - } - SkeletonBounds.prototype.update = function (skeleton, updateAabb) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - var boundingBoxes = this.boundingBoxes; - var polygons = this.polygons; - var polygonPool = this.polygonPool; - var slots = skeleton.slots; - var slotCount = slots.length; - boundingBoxes.length = 0; - polygonPool.freeAll(polygons); - polygons.length = 0; - for (var i = 0; i < slotCount; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.BoundingBoxAttachment) { - var boundingBox = attachment; - boundingBoxes.push(boundingBox); - var polygon = polygonPool.obtain(); - if (polygon.length != boundingBox.worldVerticesLength) { - polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); - } - polygons.push(polygon); - boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); - } - } - if (updateAabb) { - this.aabbCompute(); - } - else { - this.minX = Number.POSITIVE_INFINITY; - this.minY = Number.POSITIVE_INFINITY; - this.maxX = Number.NEGATIVE_INFINITY; - this.maxY = Number.NEGATIVE_INFINITY; - } - }; - SkeletonBounds.prototype.aabbCompute = function () { - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) { - var polygon = polygons[i]; - var vertices = polygon; - for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { - var x = vertices[ii]; - var y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - this.minX = minX; - this.minY = minY; - this.maxX = maxX; - this.maxY = maxY; - }; - SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { - return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; - }; - SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { - var minX = this.minX; - var minY = this.minY; - var maxX = this.maxX; - var maxY = this.maxY; - if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) - return false; - var m = (y2 - y1) / (x2 - x1); - var y = m * (minX - x1) + y1; - if (y > minY && y < maxY) - return true; - y = m * (maxX - x1) + y1; - if (y > minY && y < maxY) - return true; - var x = (minY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - x = (maxY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - return false; - }; - SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { - return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; - }; - SkeletonBounds.prototype.containsPoint = function (x, y) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.containsPointPolygon(polygons[i], x, y)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { - var vertices = polygon; - var nn = polygon.length; - var prevIndex = nn - 2; - var inside = false; - for (var ii = 0; ii < nn; ii += 2) { - var vertexY = vertices[ii + 1]; - var prevY = vertices[prevIndex + 1]; - if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { - var vertexX = vertices[ii]; - if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) - inside = !inside; - } - prevIndex = ii; - } - return inside; - }; - SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { - var vertices = polygon; - var nn = polygon.length; - var width12 = x1 - x2, height12 = y1 - y2; - var det1 = x1 * y2 - y1 * x2; - var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; - for (var ii = 0; ii < nn; ii += 2) { - var x4 = vertices[ii], y4 = vertices[ii + 1]; - var det2 = x3 * y4 - y3 * x4; - var width34 = x3 - x4, height34 = y3 - y4; - var det3 = width12 * height34 - height12 * width34; - var x = (det1 * width34 - width12 * det2) / det3; - if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { - var y = (det1 * height34 - height12 * det2) / det3; - if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) - return true; - } - x3 = x4; - y3 = y4; - } - return false; - }; - SkeletonBounds.prototype.getPolygon = function (boundingBox) { - if (boundingBox == null) - throw new Error("boundingBox cannot be null."); - var index = this.boundingBoxes.indexOf(boundingBox); - return index == -1 ? null : this.polygons[index]; - }; - SkeletonBounds.prototype.getWidth = function () { - return this.maxX - this.minX; - }; - SkeletonBounds.prototype.getHeight = function () { - return this.maxY - this.minY; - }; - return SkeletonBounds; - }()); - spine.SkeletonBounds = SkeletonBounds; + var SkeletonBounds = (function () { + function SkeletonBounds() { + this.minX = 0; + this.minY = 0; + this.maxX = 0; + this.maxY = 0; + this.boundingBoxes = new Array(); + this.polygons = new Array(); + this.polygonPool = new spine.Pool(function () { + return spine.Utils.newFloatArray(16); + }); + } + SkeletonBounds.prototype.update = function (skeleton, updateAabb) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + var boundingBoxes = this.boundingBoxes; + var polygons = this.polygons; + var polygonPool = this.polygonPool; + var slots = skeleton.slots; + var slotCount = slots.length; + boundingBoxes.length = 0; + polygonPool.freeAll(polygons); + polygons.length = 0; + for (var i = 0; i < slotCount; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.BoundingBoxAttachment) { + var boundingBox = attachment; + boundingBoxes.push(boundingBox); + var polygon = polygonPool.obtain(); + if (polygon.length != boundingBox.worldVerticesLength) { + polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); + } + polygons.push(polygon); + boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); + } + } + if (updateAabb) { + this.aabbCompute(); + } + else { + this.minX = Number.POSITIVE_INFINITY; + this.minY = Number.POSITIVE_INFINITY; + this.maxX = Number.NEGATIVE_INFINITY; + this.maxY = Number.NEGATIVE_INFINITY; + } + }; + SkeletonBounds.prototype.aabbCompute = function () { + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) { + var polygon = polygons[i]; + var vertices = polygon; + for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { + var x = vertices[ii]; + var y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + this.minX = minX; + this.minY = minY; + this.maxX = maxX; + this.maxY = maxY; + }; + SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { + return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; + }; + SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { + var minX = this.minX; + var minY = this.minY; + var maxX = this.maxX; + var maxY = this.maxY; + if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) + return false; + var m = (y2 - y1) / (x2 - x1); + var y = m * (minX - x1) + y1; + if (y > minY && y < maxY) + return true; + y = m * (maxX - x1) + y1; + if (y > minY && y < maxY) + return true; + var x = (minY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + x = (maxY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + return false; + }; + SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { + return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; + }; + SkeletonBounds.prototype.containsPoint = function (x, y) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.containsPointPolygon(polygons[i], x, y)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { + var vertices = polygon; + var nn = polygon.length; + var prevIndex = nn - 2; + var inside = false; + for (var ii = 0; ii < nn; ii += 2) { + var vertexY = vertices[ii + 1]; + var prevY = vertices[prevIndex + 1]; + if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { + var vertexX = vertices[ii]; + if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) + inside = !inside; + } + prevIndex = ii; + } + return inside; + }; + SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { + var vertices = polygon; + var nn = polygon.length; + var width12 = x1 - x2, height12 = y1 - y2; + var det1 = x1 * y2 - y1 * x2; + var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; + for (var ii = 0; ii < nn; ii += 2) { + var x4 = vertices[ii], y4 = vertices[ii + 1]; + var det2 = x3 * y4 - y3 * x4; + var width34 = x3 - x4, height34 = y3 - y4; + var det3 = width12 * height34 - height12 * width34; + var x = (det1 * width34 - width12 * det2) / det3; + if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { + var y = (det1 * height34 - height12 * det2) / det3; + if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) + return true; + } + x3 = x4; + y3 = y4; + } + return false; + }; + SkeletonBounds.prototype.getPolygon = function (boundingBox) { + if (boundingBox == null) + throw new Error("boundingBox cannot be null."); + var index = this.boundingBoxes.indexOf(boundingBox); + return index == -1 ? null : this.polygons[index]; + }; + SkeletonBounds.prototype.getWidth = function () { + return this.maxX - this.minX; + }; + SkeletonBounds.prototype.getHeight = function () { + return this.maxY - this.minY; + }; + return SkeletonBounds; + }()); + spine.SkeletonBounds = SkeletonBounds; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonClipping = (function () { - function SkeletonClipping() { - this.triangulator = new spine.Triangulator(); - this.clippingPolygon = new Array(); - this.clipOutput = new Array(); - this.clippedVertices = new Array(); - this.clippedTriangles = new Array(); - this.scratch = new Array(); - } - SkeletonClipping.prototype.clipStart = function (slot, clip) { - if (this.clipAttachment != null) - return 0; - this.clipAttachment = clip; - var n = clip.worldVerticesLength; - var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); - clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); - var clippingPolygon = this.clippingPolygon; - SkeletonClipping.makeClockwise(clippingPolygon); - var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); - for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { - var polygon = clippingPolygons[i]; - SkeletonClipping.makeClockwise(polygon); - polygon.push(polygon[0]); - polygon.push(polygon[1]); - } - return clippingPolygons.length; - }; - SkeletonClipping.prototype.clipEndWithSlot = function (slot) { - if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) - this.clipEnd(); - }; - SkeletonClipping.prototype.clipEnd = function () { - if (this.clipAttachment == null) - return; - this.clipAttachment = null; - this.clippingPolygons = null; - this.clippedVertices.length = 0; - this.clippedTriangles.length = 0; - this.clippingPolygon.length = 0; - }; - SkeletonClipping.prototype.isClipping = function () { - return this.clipAttachment != null; - }; - SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { - var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; - var clippedTriangles = this.clippedTriangles; - var polygons = this.clippingPolygons; - var polygonsCount = this.clippingPolygons.length; - var vertexSize = twoColor ? 12 : 8; - var index = 0; - clippedVertices.length = 0; - clippedTriangles.length = 0; - outer: for (var i = 0; i < trianglesLength; i += 3) { - var vertexOffset = triangles[i] << 1; - var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; - var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 1] << 1; - var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; - var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 2] << 1; - var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; - var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; - for (var p = 0; p < polygonsCount; p++) { - var s = clippedVertices.length; - if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { - var clipOutputLength = clipOutput.length; - if (clipOutputLength == 0) - continue; - var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; - var d = 1 / (d0 * d2 + d1 * (y1 - y3)); - var clipOutputCount = clipOutputLength >> 1; - var clipOutputItems = this.clipOutput; - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); - for (var ii = 0; ii < clipOutputLength; ii += 2) { - var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; - clippedVerticesItems[s] = x; - clippedVerticesItems[s + 1] = y; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - var c0 = x - x3, c1 = y - y3; - var a = (d0 * c0 + d1 * c1) * d; - var b = (d4 * c0 + d2 * c1) * d; - var c = 1 - a - b; - clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; - clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; - if (twoColor) { - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 8] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - } - s += vertexSize; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); - clipOutputCount--; - for (var ii = 1; ii < clipOutputCount; ii++) { - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + ii); - clippedTrianglesItems[s + 2] = (index + ii + 1); - s += 3; - } - index += clipOutputCount + 1; - } - else { - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); - clippedVerticesItems[s] = x1; - clippedVerticesItems[s + 1] = y1; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - if (!twoColor) { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = x2; - clippedVerticesItems[s + 9] = y2; - clippedVerticesItems[s + 10] = light.r; - clippedVerticesItems[s + 11] = light.g; - clippedVerticesItems[s + 12] = light.b; - clippedVerticesItems[s + 13] = light.a; - clippedVerticesItems[s + 14] = u2; - clippedVerticesItems[s + 15] = v2; - clippedVerticesItems[s + 16] = x3; - clippedVerticesItems[s + 17] = y3; - clippedVerticesItems[s + 18] = light.r; - clippedVerticesItems[s + 19] = light.g; - clippedVerticesItems[s + 20] = light.b; - clippedVerticesItems[s + 21] = light.a; - clippedVerticesItems[s + 22] = u3; - clippedVerticesItems[s + 23] = v3; - } - else { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 9] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - clippedVerticesItems[s + 12] = x2; - clippedVerticesItems[s + 13] = y2; - clippedVerticesItems[s + 14] = light.r; - clippedVerticesItems[s + 15] = light.g; - clippedVerticesItems[s + 16] = light.b; - clippedVerticesItems[s + 17] = light.a; - clippedVerticesItems[s + 18] = u2; - clippedVerticesItems[s + 19] = v2; - clippedVerticesItems[s + 20] = dark.r; - clippedVerticesItems[s + 21] = dark.g; - clippedVerticesItems[s + 22] = dark.b; - clippedVerticesItems[s + 23] = dark.a; - clippedVerticesItems[s + 24] = x3; - clippedVerticesItems[s + 25] = y3; - clippedVerticesItems[s + 26] = light.r; - clippedVerticesItems[s + 27] = light.g; - clippedVerticesItems[s + 28] = light.b; - clippedVerticesItems[s + 29] = light.a; - clippedVerticesItems[s + 30] = u3; - clippedVerticesItems[s + 31] = v3; - clippedVerticesItems[s + 32] = dark.r; - clippedVerticesItems[s + 33] = dark.g; - clippedVerticesItems[s + 34] = dark.b; - clippedVerticesItems[s + 35] = dark.a; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + 1); - clippedTrianglesItems[s + 2] = (index + 2); - index += 3; - continue outer; - } - } - } - }; - SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { - var originalOutput = output; - var clipped = false; - var input = null; - if (clippingArea.length % 4 >= 2) { - input = output; - output = this.scratch; - } - else - input = this.scratch; - input.length = 0; - input.push(x1); - input.push(y1); - input.push(x2); - input.push(y2); - input.push(x3); - input.push(y3); - input.push(x1); - input.push(y1); - output.length = 0; - var clippingVertices = clippingArea; - var clippingVerticesLast = clippingArea.length - 4; - for (var i = 0;; i += 2) { - var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; - var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; - var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; - var inputVertices = input; - var inputVerticesLength = input.length - 2, outputStart = output.length; - for (var ii = 0; ii < inputVerticesLength; ii += 2) { - var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; - var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; - var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; - if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { - if (side2) { - output.push(inputX2); - output.push(inputY2); - continue; - } - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - } - else if (side2) { - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - output.push(inputX2); - output.push(inputY2); - } - clipped = true; - } - if (outputStart == output.length) { - originalOutput.length = 0; - return true; - } - output.push(output[0]); - output.push(output[1]); - if (i == clippingVerticesLast) - break; - var temp = output; - output = input; - output.length = 0; - input = temp; - } - if (originalOutput != output) { - originalOutput.length = 0; - for (var i = 0, n = output.length - 2; i < n; i++) - originalOutput[i] = output[i]; - } - else - originalOutput.length = originalOutput.length - 2; - return clipped; - }; - SkeletonClipping.makeClockwise = function (polygon) { - var vertices = polygon; - var verticeslength = polygon.length; - var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; - for (var i = 0, n = verticeslength - 3; i < n; i += 2) { - p1x = vertices[i]; - p1y = vertices[i + 1]; - p2x = vertices[i + 2]; - p2y = vertices[i + 3]; - area += p1x * p2y - p2x * p1y; - } - if (area < 0) - return; - for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { - var x = vertices[i], y = vertices[i + 1]; - var other = lastX - i; - vertices[i] = vertices[other]; - vertices[i + 1] = vertices[other + 1]; - vertices[other] = x; - vertices[other + 1] = y; - } - }; - return SkeletonClipping; - }()); - spine.SkeletonClipping = SkeletonClipping; + var SkeletonClipping = (function () { + function SkeletonClipping() { + this.triangulator = new spine.Triangulator(); + this.clippingPolygon = new Array(); + this.clipOutput = new Array(); + this.clippedVertices = new Array(); + this.clippedTriangles = new Array(); + this.scratch = new Array(); + } + SkeletonClipping.prototype.clipStart = function (slot, clip) { + if (this.clipAttachment != null) + return 0; + this.clipAttachment = clip; + var n = clip.worldVerticesLength; + var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); + clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); + var clippingPolygon = this.clippingPolygon; + SkeletonClipping.makeClockwise(clippingPolygon); + var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); + for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { + var polygon = clippingPolygons[i]; + SkeletonClipping.makeClockwise(polygon); + polygon.push(polygon[0]); + polygon.push(polygon[1]); + } + return clippingPolygons.length; + }; + SkeletonClipping.prototype.clipEndWithSlot = function (slot) { + if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) + this.clipEnd(); + }; + SkeletonClipping.prototype.clipEnd = function () { + if (this.clipAttachment == null) + return; + this.clipAttachment = null; + this.clippingPolygons = null; + this.clippedVertices.length = 0; + this.clippedTriangles.length = 0; + this.clippingPolygon.length = 0; + }; + SkeletonClipping.prototype.isClipping = function () { + return this.clipAttachment != null; + }; + SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { + var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; + var clippedTriangles = this.clippedTriangles; + var polygons = this.clippingPolygons; + var polygonsCount = this.clippingPolygons.length; + var vertexSize = twoColor ? 12 : 8; + var index = 0; + clippedVertices.length = 0; + clippedTriangles.length = 0; + outer: for (var i = 0; i < trianglesLength; i += 3) { + var vertexOffset = triangles[i] << 1; + var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; + var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 1] << 1; + var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; + var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 2] << 1; + var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; + var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; + for (var p = 0; p < polygonsCount; p++) { + var s = clippedVertices.length; + if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { + var clipOutputLength = clipOutput.length; + if (clipOutputLength == 0) + continue; + var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; + var d = 1 / (d0 * d2 + d1 * (y1 - y3)); + var clipOutputCount = clipOutputLength >> 1; + var clipOutputItems = this.clipOutput; + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); + for (var ii = 0; ii < clipOutputLength; ii += 2) { + var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; + clippedVerticesItems[s] = x; + clippedVerticesItems[s + 1] = y; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + var c0 = x - x3, c1 = y - y3; + var a = (d0 * c0 + d1 * c1) * d; + var b = (d4 * c0 + d2 * c1) * d; + var c = 1 - a - b; + clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; + clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; + if (twoColor) { + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 8] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + } + s += vertexSize; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); + clipOutputCount--; + for (var ii = 1; ii < clipOutputCount; ii++) { + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + ii); + clippedTrianglesItems[s + 2] = (index + ii + 1); + s += 3; + } + index += clipOutputCount + 1; + } + else { + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); + clippedVerticesItems[s] = x1; + clippedVerticesItems[s + 1] = y1; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + if (!twoColor) { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = x2; + clippedVerticesItems[s + 9] = y2; + clippedVerticesItems[s + 10] = light.r; + clippedVerticesItems[s + 11] = light.g; + clippedVerticesItems[s + 12] = light.b; + clippedVerticesItems[s + 13] = light.a; + clippedVerticesItems[s + 14] = u2; + clippedVerticesItems[s + 15] = v2; + clippedVerticesItems[s + 16] = x3; + clippedVerticesItems[s + 17] = y3; + clippedVerticesItems[s + 18] = light.r; + clippedVerticesItems[s + 19] = light.g; + clippedVerticesItems[s + 20] = light.b; + clippedVerticesItems[s + 21] = light.a; + clippedVerticesItems[s + 22] = u3; + clippedVerticesItems[s + 23] = v3; + } + else { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 9] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + clippedVerticesItems[s + 12] = x2; + clippedVerticesItems[s + 13] = y2; + clippedVerticesItems[s + 14] = light.r; + clippedVerticesItems[s + 15] = light.g; + clippedVerticesItems[s + 16] = light.b; + clippedVerticesItems[s + 17] = light.a; + clippedVerticesItems[s + 18] = u2; + clippedVerticesItems[s + 19] = v2; + clippedVerticesItems[s + 20] = dark.r; + clippedVerticesItems[s + 21] = dark.g; + clippedVerticesItems[s + 22] = dark.b; + clippedVerticesItems[s + 23] = dark.a; + clippedVerticesItems[s + 24] = x3; + clippedVerticesItems[s + 25] = y3; + clippedVerticesItems[s + 26] = light.r; + clippedVerticesItems[s + 27] = light.g; + clippedVerticesItems[s + 28] = light.b; + clippedVerticesItems[s + 29] = light.a; + clippedVerticesItems[s + 30] = u3; + clippedVerticesItems[s + 31] = v3; + clippedVerticesItems[s + 32] = dark.r; + clippedVerticesItems[s + 33] = dark.g; + clippedVerticesItems[s + 34] = dark.b; + clippedVerticesItems[s + 35] = dark.a; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + 1); + clippedTrianglesItems[s + 2] = (index + 2); + index += 3; + continue outer; + } + } + } + }; + SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { + var originalOutput = output; + var clipped = false; + var input = null; + if (clippingArea.length % 4 >= 2) { + input = output; + output = this.scratch; + } + else + input = this.scratch; + input.length = 0; + input.push(x1); + input.push(y1); + input.push(x2); + input.push(y2); + input.push(x3); + input.push(y3); + input.push(x1); + input.push(y1); + output.length = 0; + var clippingVertices = clippingArea; + var clippingVerticesLast = clippingArea.length - 4; + for (var i = 0;; i += 2) { + var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; + var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; + var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; + var inputVertices = input; + var inputVerticesLength = input.length - 2, outputStart = output.length; + for (var ii = 0; ii < inputVerticesLength; ii += 2) { + var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; + var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; + var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; + if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { + if (side2) { + output.push(inputX2); + output.push(inputY2); + continue; + } + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + } + else if (side2) { + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + output.push(inputX2); + output.push(inputY2); + } + clipped = true; + } + if (outputStart == output.length) { + originalOutput.length = 0; + return true; + } + output.push(output[0]); + output.push(output[1]); + if (i == clippingVerticesLast) + break; + var temp = output; + output = input; + output.length = 0; + input = temp; + } + if (originalOutput != output) { + originalOutput.length = 0; + for (var i = 0, n = output.length - 2; i < n; i++) + originalOutput[i] = output[i]; + } + else + originalOutput.length = originalOutput.length - 2; + return clipped; + }; + SkeletonClipping.makeClockwise = function (polygon) { + var vertices = polygon; + var verticeslength = polygon.length; + var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; + for (var i = 0, n = verticeslength - 3; i < n; i += 2) { + p1x = vertices[i]; + p1y = vertices[i + 1]; + p2x = vertices[i + 2]; + p2y = vertices[i + 3]; + area += p1x * p2y - p2x * p1y; + } + if (area < 0) + return; + for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { + var x = vertices[i], y = vertices[i + 1]; + var other = lastX - i; + vertices[i] = vertices[other]; + vertices[i + 1] = vertices[other + 1]; + vertices[other] = x; + vertices[other + 1] = y; + } + }; + return SkeletonClipping; + }()); + spine.SkeletonClipping = SkeletonClipping; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonData = (function () { - function SkeletonData() { - this.bones = new Array(); - this.slots = new Array(); - this.skins = new Array(); - this.events = new Array(); - this.animations = new Array(); - this.ikConstraints = new Array(); - this.transformConstraints = new Array(); - this.pathConstraints = new Array(); - this.fps = 0; - } - SkeletonData.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.name == boneName) - return bone; - } - return null; - }; - SkeletonData.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].name == boneName) - return i; - return -1; - }; - SkeletonData.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.name == slotName) - return slot; - } - return null; - }; - SkeletonData.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].name == slotName) - return i; - return -1; - }; - SkeletonData.prototype.findSkin = function (skinName) { - if (skinName == null) - throw new Error("skinName cannot be null."); - var skins = this.skins; - for (var i = 0, n = skins.length; i < n; i++) { - var skin = skins[i]; - if (skin.name == skinName) - return skin; - } - return null; - }; - SkeletonData.prototype.findEvent = function (eventDataName) { - if (eventDataName == null) - throw new Error("eventDataName cannot be null."); - var events = this.events; - for (var i = 0, n = events.length; i < n; i++) { - var event_4 = events[i]; - if (event_4.name == eventDataName) - return event_4; - } - return null; - }; - SkeletonData.prototype.findAnimation = function (animationName) { - if (animationName == null) - throw new Error("animationName cannot be null."); - var animations = this.animations; - for (var i = 0, n = animations.length; i < n; i++) { - var animation = animations[i]; - if (animation.name == animationName) - return animation; - } - return null; - }; - SkeletonData.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { - if (pathConstraintName == null) - throw new Error("pathConstraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) - if (pathConstraints[i].name == pathConstraintName) - return i; - return -1; - }; - return SkeletonData; - }()); - spine.SkeletonData = SkeletonData; + var SkeletonData = (function () { + function SkeletonData() { + this.bones = new Array(); + this.slots = new Array(); + this.skins = new Array(); + this.events = new Array(); + this.animations = new Array(); + this.ikConstraints = new Array(); + this.transformConstraints = new Array(); + this.pathConstraints = new Array(); + this.fps = 0; + } + SkeletonData.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.name == boneName) + return bone; + } + return null; + }; + SkeletonData.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].name == boneName) + return i; + return -1; + }; + SkeletonData.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.name == slotName) + return slot; + } + return null; + }; + SkeletonData.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].name == slotName) + return i; + return -1; + }; + SkeletonData.prototype.findSkin = function (skinName) { + if (skinName == null) + throw new Error("skinName cannot be null."); + var skins = this.skins; + for (var i = 0, n = skins.length; i < n; i++) { + var skin = skins[i]; + if (skin.name == skinName) + return skin; + } + return null; + }; + SkeletonData.prototype.findEvent = function (eventDataName) { + if (eventDataName == null) + throw new Error("eventDataName cannot be null."); + var events = this.events; + for (var i = 0, n = events.length; i < n; i++) { + var event_4 = events[i]; + if (event_4.name == eventDataName) + return event_4; + } + return null; + }; + SkeletonData.prototype.findAnimation = function (animationName) { + if (animationName == null) + throw new Error("animationName cannot be null."); + var animations = this.animations; + for (var i = 0, n = animations.length; i < n; i++) { + var animation = animations[i]; + if (animation.name == animationName) + return animation; + } + return null; + }; + SkeletonData.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { + if (pathConstraintName == null) + throw new Error("pathConstraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) + if (pathConstraints[i].name == pathConstraintName) + return i; + return -1; + }; + return SkeletonData; + }()); + spine.SkeletonData = SkeletonData; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonJson = (function () { - function SkeletonJson(attachmentLoader) { - this.scale = 1; - this.linkedMeshes = new Array(); - this.attachmentLoader = attachmentLoader; - } - SkeletonJson.prototype.readSkeletonData = function (json) { - var scale = this.scale; - var skeletonData = new spine.SkeletonData(); - var root = typeof (json) === "string" ? JSON.parse(json) : json; - var skeletonMap = root.skeleton; - if (skeletonMap != null) { - skeletonData.hash = skeletonMap.hash; - skeletonData.version = skeletonMap.spine; - skeletonData.width = skeletonMap.width; - skeletonData.height = skeletonMap.height; - skeletonData.fps = skeletonMap.fps; - skeletonData.imagesPath = skeletonMap.images; - } - if (root.bones) { - for (var i = 0; i < root.bones.length; i++) { - var boneMap = root.bones[i]; - var parent_2 = null; - var parentName = this.getValue(boneMap, "parent", null); - if (parentName != null) { - parent_2 = skeletonData.findBone(parentName); - if (parent_2 == null) - throw new Error("Parent bone not found: " + parentName); - } - var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); - data.length = this.getValue(boneMap, "length", 0) * scale; - data.x = this.getValue(boneMap, "x", 0) * scale; - data.y = this.getValue(boneMap, "y", 0) * scale; - data.rotation = this.getValue(boneMap, "rotation", 0); - data.scaleX = this.getValue(boneMap, "scaleX", 1); - data.scaleY = this.getValue(boneMap, "scaleY", 1); - data.shearX = this.getValue(boneMap, "shearX", 0); - data.shearY = this.getValue(boneMap, "shearY", 0); - data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); - skeletonData.bones.push(data); - } - } - if (root.slots) { - for (var i = 0; i < root.slots.length; i++) { - var slotMap = root.slots[i]; - var slotName = slotMap.name; - var boneName = slotMap.bone; - var boneData = skeletonData.findBone(boneName); - if (boneData == null) - throw new Error("Slot bone not found: " + boneName); - var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); - var color = this.getValue(slotMap, "color", null); - if (color != null) - data.color.setFromString(color); - var dark = this.getValue(slotMap, "dark", null); - if (dark != null) { - data.darkColor = new spine.Color(1, 1, 1, 1); - data.darkColor.setFromString(dark); - } - data.attachmentName = this.getValue(slotMap, "attachment", null); - data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); - skeletonData.slots.push(data); - } - } - if (root.ik) { - for (var i = 0; i < root.ik.length; i++) { - var constraintMap = root.ik[i]; - var data = new spine.IkConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("IK bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("IK target bone not found: " + targetName); - data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; - data.mix = this.getValue(constraintMap, "mix", 1); - skeletonData.ikConstraints.push(data); - } - } - if (root.transform) { - for (var i = 0; i < root.transform.length; i++) { - var constraintMap = root.transform[i]; - var data = new spine.TransformConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("Transform constraint target bone not found: " + targetName); - data.local = this.getValue(constraintMap, "local", false); - data.relative = this.getValue(constraintMap, "relative", false); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.offsetX = this.getValue(constraintMap, "x", 0) * scale; - data.offsetY = this.getValue(constraintMap, "y", 0) * scale; - data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); - data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); - data.offsetShearY = this.getValue(constraintMap, "shearY", 0); - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); - data.shearMix = this.getValue(constraintMap, "shearMix", 1); - skeletonData.transformConstraints.push(data); - } - } - if (root.path) { - for (var i = 0; i < root.path.length; i++) { - var constraintMap = root.path[i]; - var data = new spine.PathConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findSlot(targetName); - if (data.target == null) - throw new Error("Path target slot not found: " + targetName); - data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); - data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); - data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.position = this.getValue(constraintMap, "position", 0); - if (data.positionMode == spine.PositionMode.Fixed) - data.position *= scale; - data.spacing = this.getValue(constraintMap, "spacing", 0); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - data.spacing *= scale; - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - skeletonData.pathConstraints.push(data); - } - } - if (root.skins) { - for (var skinName in root.skins) { - var skinMap = root.skins[skinName]; - var skin = new spine.Skin(skinName); - for (var slotName in skinMap) { - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - var slotMap = skinMap[slotName]; - for (var entryName in slotMap) { - var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); - if (attachment != null) - skin.addAttachment(slotIndex, entryName, attachment); - } - } - skeletonData.skins.push(skin); - if (skin.name == "default") - skeletonData.defaultSkin = skin; - } - } - for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { - var linkedMesh = this.linkedMeshes[i]; - var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); - if (skin == null) - throw new Error("Skin not found: " + linkedMesh.skin); - var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_3 == null) - throw new Error("Parent mesh not found: " + linkedMesh.parent); - linkedMesh.mesh.setParentMesh(parent_3); - linkedMesh.mesh.updateUVs(); - } - this.linkedMeshes.length = 0; - if (root.events) { - for (var eventName in root.events) { - var eventMap = root.events[eventName]; - var data = new spine.EventData(eventName); - data.intValue = this.getValue(eventMap, "int", 0); - data.floatValue = this.getValue(eventMap, "float", 0); - data.stringValue = this.getValue(eventMap, "string", ""); - skeletonData.events.push(data); - } - } - if (root.animations) { - for (var animationName in root.animations) { - var animationMap = root.animations[animationName]; - this.readAnimation(animationMap, animationName, skeletonData); - } - } - return skeletonData; - }; - SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { - var scale = this.scale; - name = this.getValue(map, "name", name); - var type = this.getValue(map, "type", "region"); - switch (type) { - case "region": { - var path = this.getValue(map, "path", name); - var region = this.attachmentLoader.newRegionAttachment(skin, name, path); - if (region == null) - return null; - region.path = path; - region.x = this.getValue(map, "x", 0) * scale; - region.y = this.getValue(map, "y", 0) * scale; - region.scaleX = this.getValue(map, "scaleX", 1); - region.scaleY = this.getValue(map, "scaleY", 1); - region.rotation = this.getValue(map, "rotation", 0); - region.width = map.width * scale; - region.height = map.height * scale; - var color = this.getValue(map, "color", null); - if (color != null) - region.color.setFromString(color); - region.updateOffset(); - return region; - } - case "boundingbox": { - var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); - if (box == null) - return null; - this.readVertices(map, box, map.vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - box.color.setFromString(color); - return box; - } - case "mesh": - case "linkedmesh": { - var path = this.getValue(map, "path", name); - var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); - if (mesh == null) - return null; - mesh.path = path; - var color = this.getValue(map, "color", null); - if (color != null) - mesh.color.setFromString(color); - var parent_4 = this.getValue(map, "parent", null); - if (parent_4 != null) { - mesh.inheritDeform = this.getValue(map, "deform", true); - this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); - return mesh; - } - var uvs = map.uvs; - this.readVertices(map, mesh, uvs.length); - mesh.triangles = map.triangles; - mesh.regionUVs = uvs; - mesh.updateUVs(); - mesh.hullLength = this.getValue(map, "hull", 0) * 2; - return mesh; - } - case "path": { - var path = this.attachmentLoader.newPathAttachment(skin, name); - if (path == null) - return null; - path.closed = this.getValue(map, "closed", false); - path.constantSpeed = this.getValue(map, "constantSpeed", true); - var vertexCount = map.vertexCount; - this.readVertices(map, path, vertexCount << 1); - var lengths = spine.Utils.newArray(vertexCount / 3, 0); - for (var i = 0; i < map.lengths.length; i++) - lengths[i++] = map.lengths[i] * scale; - path.lengths = lengths; - var color = this.getValue(map, "color", null); - if (color != null) - path.color.setFromString(color); - return path; - } - case "point": { - var point = this.attachmentLoader.newPointAttachment(skin, name); - if (point == null) - return null; - point.x = this.getValue(map, "x", 0) * scale; - point.y = this.getValue(map, "y", 0) * scale; - point.rotation = this.getValue(map, "rotation", 0); - var color = this.getValue(map, "color", null); - if (color != null) - point.color.setFromString(color); - return point; - } - case "clipping": { - var clip = this.attachmentLoader.newClippingAttachment(skin, name); - if (clip == null) - return null; - var end = this.getValue(map, "end", null); - if (end != null) { - var slot = skeletonData.findSlot(end); - if (slot == null) - throw new Error("Clipping end slot not found: " + end); - clip.endSlot = slot; - } - var vertexCount = map.vertexCount; - this.readVertices(map, clip, vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - clip.color.setFromString(color); - return clip; - } - } - return null; - }; - SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { - var scale = this.scale; - attachment.worldVerticesLength = verticesLength; - var vertices = map.vertices; - if (verticesLength == vertices.length) { - var scaledVertices = spine.Utils.toFloatArray(vertices); - if (scale != 1) { - for (var i = 0, n = vertices.length; i < n; i++) - scaledVertices[i] *= scale; - } - attachment.vertices = scaledVertices; - return; - } - var weights = new Array(); - var bones = new Array(); - for (var i = 0, n = vertices.length; i < n;) { - var boneCount = vertices[i++]; - bones.push(boneCount); - for (var nn = i + boneCount * 4; i < nn; i += 4) { - bones.push(vertices[i]); - weights.push(vertices[i + 1] * scale); - weights.push(vertices[i + 2] * scale); - weights.push(vertices[i + 3]); - } - } - attachment.bones = bones; - attachment.vertices = spine.Utils.toFloatArray(weights); - }; - SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { - var scale = this.scale; - var timelines = new Array(); - var duration = 0; - if (map.slots) { - for (var slotName in map.slots) { - var slotMap = map.slots[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - if (timelineName == "attachment") { - var timeline = new spine.AttachmentTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - else if (timelineName == "color") { - var timeline = new spine.ColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var color = new spine.Color(); - color.setFromString(valueMap.color); - timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); - } - else if (timelineName == "twoColor") { - var timeline = new spine.TwoColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var light = new spine.Color(); - var dark = new spine.Color(); - light.setFromString(valueMap.light); - dark.setFromString(valueMap.dark); - timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); - } - } - } - if (map.bones) { - for (var boneName in map.bones) { - var boneMap = map.bones[boneName]; - var boneIndex = skeletonData.findBoneIndex(boneName); - if (boneIndex == -1) - throw new Error("Bone not found: " + boneName); - for (var timelineName in boneMap) { - var timelineMap = boneMap[timelineName]; - if (timelineName === "rotate") { - var timeline = new spine.RotateTimeline(timelineMap.length); - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); - } - else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "scale") - timeline = new spine.ScaleTimeline(timelineMap.length); - else if (timelineName === "shear") - timeline = new spine.ShearTimeline(timelineMap.length); - else { - timeline = new spine.TranslateTimeline(timelineMap.length); - timelineScale = scale; - } - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); - timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); - } - } - } - if (map.ik) { - for (var constraintName in map.ik) { - var constraintMap = map.ik[constraintName]; - var constraint = skeletonData.findIkConstraint(constraintName); - var timeline = new spine.IkConstraintTimeline(constraintMap.length); - timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); - } - } - if (map.transform) { - for (var constraintName in map.transform) { - var constraintMap = map.transform[constraintName]; - var constraint = skeletonData.findTransformConstraint(constraintName); - var timeline = new spine.TransformConstraintTimeline(constraintMap.length); - timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); - } - } - if (map.paths) { - for (var constraintName in map.paths) { - var constraintMap = map.paths[constraintName]; - var index = skeletonData.findPathConstraintIndex(constraintName); - if (index == -1) - throw new Error("Path constraint not found: " + constraintName); - var data = skeletonData.pathConstraints[index]; - for (var timelineName in constraintMap) { - var timelineMap = constraintMap[timelineName]; - if (timelineName === "position" || timelineName === "spacing") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "spacing") { - timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - timelineScale = scale; - } - else { - timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); - if (data.positionMode == spine.PositionMode.Fixed) - timelineScale = scale; - } - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); - } - else if (timelineName === "mix") { - var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); - } - } - } - } - if (map.deform) { - for (var deformName in map.deform) { - var deformMap = map.deform[deformName]; - var skin = skeletonData.findSkin(deformName); - if (skin == null) - throw new Error("Skin not found: " + deformName); - for (var slotName in deformMap) { - var slotMap = deformMap[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotMap.name); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - var attachment = skin.getAttachment(slotIndex, timelineName); - if (attachment == null) - throw new Error("Deform attachment not found: " + timelineMap.name); - var weighted = attachment.bones != null; - var vertices = attachment.vertices; - var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; - var timeline = new spine.DeformTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - timeline.attachment = attachment; - var frameIndex = 0; - for (var j = 0; j < timelineMap.length; j++) { - var valueMap = timelineMap[j]; - var deform = void 0; - var verticesValue = this.getValue(valueMap, "vertices", null); - if (verticesValue == null) - deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; - else { - deform = spine.Utils.newFloatArray(deformLength); - var start = this.getValue(valueMap, "offset", 0); - spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); - if (scale != 1) { - for (var i = start, n = i + verticesValue.length; i < n; i++) - deform[i] *= scale; - } - if (!weighted) { - for (var i = 0; i < deformLength; i++) - deform[i] += vertices[i]; - } - } - timeline.setFrame(frameIndex, valueMap.time, deform); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - } - } - } - var drawOrderNode = map.drawOrder; - if (drawOrderNode == null) - drawOrderNode = map.draworder; - if (drawOrderNode != null) { - var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); - var slotCount = skeletonData.slots.length; - var frameIndex = 0; - for (var j = 0; j < drawOrderNode.length; j++) { - var drawOrderMap = drawOrderNode[j]; - var drawOrder = null; - var offsets = this.getValue(drawOrderMap, "offsets", null); - if (offsets != null) { - drawOrder = spine.Utils.newArray(slotCount, -1); - var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); - var originalIndex = 0, unchangedIndex = 0; - for (var i = 0; i < offsets.length; i++) { - var offsetMap = offsets[i]; - var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); - if (slotIndex == -1) - throw new Error("Slot not found: " + offsetMap.slot); - while (originalIndex != slotIndex) - unchanged[unchangedIndex++] = originalIndex++; - drawOrder[originalIndex + offsetMap.offset] = originalIndex++; - } - while (originalIndex < slotCount) - unchanged[unchangedIndex++] = originalIndex++; - for (var i = slotCount - 1; i >= 0; i--) - if (drawOrder[i] == -1) - drawOrder[i] = unchanged[--unchangedIndex]; - } - timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (map.events) { - var timeline = new spine.EventTimeline(map.events.length); - var frameIndex = 0; - for (var i = 0; i < map.events.length; i++) { - var eventMap = map.events[i]; - var eventData = skeletonData.findEvent(eventMap.name); - if (eventData == null) - throw new Error("Event not found: " + eventMap.name); - var event_5 = new spine.Event(eventMap.time, eventData); - event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); - event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); - event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); - timeline.setFrame(frameIndex++, event_5); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (isNaN(duration)) { - throw new Error("Error while parsing animation, duration is NaN"); - } - skeletonData.animations.push(new spine.Animation(name, timelines, duration)); - }; - SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { - if (!map.curve) - return; - if (map.curve === "stepped") - timeline.setStepped(frameIndex); - else if (Object.prototype.toString.call(map.curve) === '[object Array]') { - var curve = map.curve; - timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); - } - }; - SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { - return map[prop] !== undefined ? map[prop] : defaultValue; - }; - SkeletonJson.blendModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.BlendMode.Normal; - if (str == "additive") - return spine.BlendMode.Additive; - if (str == "multiply") - return spine.BlendMode.Multiply; - if (str == "screen") - return spine.BlendMode.Screen; - throw new Error("Unknown blend mode: " + str); - }; - SkeletonJson.positionModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "fixed") - return spine.PositionMode.Fixed; - if (str == "percent") - return spine.PositionMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.spacingModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "length") - return spine.SpacingMode.Length; - if (str == "fixed") - return spine.SpacingMode.Fixed; - if (str == "percent") - return spine.SpacingMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.rotateModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "tangent") - return spine.RotateMode.Tangent; - if (str == "chain") - return spine.RotateMode.Chain; - if (str == "chainscale") - return spine.RotateMode.ChainScale; - throw new Error("Unknown rotate mode: " + str); - }; - SkeletonJson.transformModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.TransformMode.Normal; - if (str == "onlytranslation") - return spine.TransformMode.OnlyTranslation; - if (str == "norotationorreflection") - return spine.TransformMode.NoRotationOrReflection; - if (str == "noscale") - return spine.TransformMode.NoScale; - if (str == "noscaleorreflection") - return spine.TransformMode.NoScaleOrReflection; - throw new Error("Unknown transform mode: " + str); - }; - return SkeletonJson; - }()); - spine.SkeletonJson = SkeletonJson; - var LinkedMesh = (function () { - function LinkedMesh(mesh, skin, slotIndex, parent) { - this.mesh = mesh; - this.skin = skin; - this.slotIndex = slotIndex; - this.parent = parent; - } - return LinkedMesh; - }()); + var SkeletonJson = (function () { + function SkeletonJson(attachmentLoader) { + this.scale = 1; + this.linkedMeshes = new Array(); + this.attachmentLoader = attachmentLoader; + } + SkeletonJson.prototype.readSkeletonData = function (json) { + var scale = this.scale; + var skeletonData = new spine.SkeletonData(); + var root = typeof (json) === "string" ? JSON.parse(json) : json; + var skeletonMap = root.skeleton; + if (skeletonMap != null) { + skeletonData.hash = skeletonMap.hash; + skeletonData.version = skeletonMap.spine; + skeletonData.width = skeletonMap.width; + skeletonData.height = skeletonMap.height; + skeletonData.fps = skeletonMap.fps; + skeletonData.imagesPath = skeletonMap.images; + } + if (root.bones) { + for (var i = 0; i < root.bones.length; i++) { + var boneMap = root.bones[i]; + var parent_2 = null; + var parentName = this.getValue(boneMap, "parent", null); + if (parentName != null) { + parent_2 = skeletonData.findBone(parentName); + if (parent_2 == null) + throw new Error("Parent bone not found: " + parentName); + } + var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); + data.length = this.getValue(boneMap, "length", 0) * scale; + data.x = this.getValue(boneMap, "x", 0) * scale; + data.y = this.getValue(boneMap, "y", 0) * scale; + data.rotation = this.getValue(boneMap, "rotation", 0); + data.scaleX = this.getValue(boneMap, "scaleX", 1); + data.scaleY = this.getValue(boneMap, "scaleY", 1); + data.shearX = this.getValue(boneMap, "shearX", 0); + data.shearY = this.getValue(boneMap, "shearY", 0); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); + skeletonData.bones.push(data); + } + } + if (root.slots) { + for (var i = 0; i < root.slots.length; i++) { + var slotMap = root.slots[i]; + var slotName = slotMap.name; + var boneName = slotMap.bone; + var boneData = skeletonData.findBone(boneName); + if (boneData == null) + throw new Error("Slot bone not found: " + boneName); + var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); + var color = this.getValue(slotMap, "color", null); + if (color != null) + data.color.setFromString(color); + var dark = this.getValue(slotMap, "dark", null); + if (dark != null) { + data.darkColor = new spine.Color(1, 1, 1, 1); + data.darkColor.setFromString(dark); + } + data.attachmentName = this.getValue(slotMap, "attachment", null); + data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); + skeletonData.slots.push(data); + } + } + if (root.ik) { + for (var i = 0; i < root.ik.length; i++) { + var constraintMap = root.ik[i]; + var data = new spine.IkConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("IK bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("IK target bone not found: " + targetName); + data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; + data.mix = this.getValue(constraintMap, "mix", 1); + skeletonData.ikConstraints.push(data); + } + } + if (root.transform) { + for (var i = 0; i < root.transform.length; i++) { + var constraintMap = root.transform[i]; + var data = new spine.TransformConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("Transform constraint target bone not found: " + targetName); + data.local = this.getValue(constraintMap, "local", false); + data.relative = this.getValue(constraintMap, "relative", false); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.offsetX = this.getValue(constraintMap, "x", 0) * scale; + data.offsetY = this.getValue(constraintMap, "y", 0) * scale; + data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); + data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); + data.offsetShearY = this.getValue(constraintMap, "shearY", 0); + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); + data.shearMix = this.getValue(constraintMap, "shearMix", 1); + skeletonData.transformConstraints.push(data); + } + } + if (root.path) { + for (var i = 0; i < root.path.length; i++) { + var constraintMap = root.path[i]; + var data = new spine.PathConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findSlot(targetName); + if (data.target == null) + throw new Error("Path target slot not found: " + targetName); + data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); + data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); + data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.position = this.getValue(constraintMap, "position", 0); + if (data.positionMode == spine.PositionMode.Fixed) + data.position *= scale; + data.spacing = this.getValue(constraintMap, "spacing", 0); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + data.spacing *= scale; + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + skeletonData.pathConstraints.push(data); + } + } + if (root.skins) { + for (var skinName in root.skins) { + var skinMap = root.skins[skinName]; + var skin = new spine.Skin(skinName); + for (var slotName in skinMap) { + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + var slotMap = skinMap[slotName]; + for (var entryName in slotMap) { + var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); + if (attachment != null) + skin.addAttachment(slotIndex, entryName, attachment); + } + } + skeletonData.skins.push(skin); + if (skin.name == "default") + skeletonData.defaultSkin = skin; + } + } + for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { + var linkedMesh = this.linkedMeshes[i]; + var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); + if (skin == null) + throw new Error("Skin not found: " + linkedMesh.skin); + var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); + if (parent_3 == null) + throw new Error("Parent mesh not found: " + linkedMesh.parent); + linkedMesh.mesh.setParentMesh(parent_3); + linkedMesh.mesh.updateUVs(); + } + this.linkedMeshes.length = 0; + if (root.events) { + for (var eventName in root.events) { + var eventMap = root.events[eventName]; + var data = new spine.EventData(eventName); + data.intValue = this.getValue(eventMap, "int", 0); + data.floatValue = this.getValue(eventMap, "float", 0); + data.stringValue = this.getValue(eventMap, "string", ""); + skeletonData.events.push(data); + } + } + if (root.animations) { + for (var animationName in root.animations) { + var animationMap = root.animations[animationName]; + this.readAnimation(animationMap, animationName, skeletonData); + } + } + return skeletonData; + }; + SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { + var scale = this.scale; + name = this.getValue(map, "name", name); + var type = this.getValue(map, "type", "region"); + switch (type) { + case "region": { + var path = this.getValue(map, "path", name); + var region = this.attachmentLoader.newRegionAttachment(skin, name, path); + if (region == null) + return null; + region.path = path; + region.x = this.getValue(map, "x", 0) * scale; + region.y = this.getValue(map, "y", 0) * scale; + region.scaleX = this.getValue(map, "scaleX", 1); + region.scaleY = this.getValue(map, "scaleY", 1); + region.rotation = this.getValue(map, "rotation", 0); + region.width = map.width * scale; + region.height = map.height * scale; + var color = this.getValue(map, "color", null); + if (color != null) + region.color.setFromString(color); + region.updateOffset(); + return region; + } + case "boundingbox": { + var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); + if (box == null) + return null; + this.readVertices(map, box, map.vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + box.color.setFromString(color); + return box; + } + case "mesh": + case "linkedmesh": { + var path = this.getValue(map, "path", name); + var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); + if (mesh == null) + return null; + mesh.path = path; + var color = this.getValue(map, "color", null); + if (color != null) + mesh.color.setFromString(color); + var parent_4 = this.getValue(map, "parent", null); + if (parent_4 != null) { + mesh.inheritDeform = this.getValue(map, "deform", true); + this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); + return mesh; + } + var uvs = map.uvs; + this.readVertices(map, mesh, uvs.length); + mesh.triangles = map.triangles; + mesh.regionUVs = uvs; + mesh.updateUVs(); + mesh.hullLength = this.getValue(map, "hull", 0) * 2; + return mesh; + } + case "path": { + var path = this.attachmentLoader.newPathAttachment(skin, name); + if (path == null) + return null; + path.closed = this.getValue(map, "closed", false); + path.constantSpeed = this.getValue(map, "constantSpeed", true); + var vertexCount = map.vertexCount; + this.readVertices(map, path, vertexCount << 1); + var lengths = spine.Utils.newArray(vertexCount / 3, 0); + for (var i = 0; i < map.lengths.length; i++) + lengths[i++] = map.lengths[i] * scale; + path.lengths = lengths; + var color = this.getValue(map, "color", null); + if (color != null) + path.color.setFromString(color); + return path; + } + case "point": { + var point = this.attachmentLoader.newPointAttachment(skin, name); + if (point == null) + return null; + point.x = this.getValue(map, "x", 0) * scale; + point.y = this.getValue(map, "y", 0) * scale; + point.rotation = this.getValue(map, "rotation", 0); + var color = this.getValue(map, "color", null); + if (color != null) + point.color.setFromString(color); + return point; + } + case "clipping": { + var clip = this.attachmentLoader.newClippingAttachment(skin, name); + if (clip == null) + return null; + var end = this.getValue(map, "end", null); + if (end != null) { + var slot = skeletonData.findSlot(end); + if (slot == null) + throw new Error("Clipping end slot not found: " + end); + clip.endSlot = slot; + } + var vertexCount = map.vertexCount; + this.readVertices(map, clip, vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + clip.color.setFromString(color); + return clip; + } + } + return null; + }; + SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { + var scale = this.scale; + attachment.worldVerticesLength = verticesLength; + var vertices = map.vertices; + if (verticesLength == vertices.length) { + var scaledVertices = spine.Utils.toFloatArray(vertices); + if (scale != 1) { + for (var i = 0, n = vertices.length; i < n; i++) + scaledVertices[i] *= scale; + } + attachment.vertices = scaledVertices; + return; + } + var weights = new Array(); + var bones = new Array(); + for (var i = 0, n = vertices.length; i < n;) { + var boneCount = vertices[i++]; + bones.push(boneCount); + for (var nn = i + boneCount * 4; i < nn; i += 4) { + bones.push(vertices[i]); + weights.push(vertices[i + 1] * scale); + weights.push(vertices[i + 2] * scale); + weights.push(vertices[i + 3]); + } + } + attachment.bones = bones; + attachment.vertices = spine.Utils.toFloatArray(weights); + }; + SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { + var scale = this.scale; + var timelines = new Array(); + var duration = 0; + if (map.slots) { + for (var slotName in map.slots) { + var slotMap = map.slots[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + if (timelineName == "attachment") { + var timeline = new spine.AttachmentTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + else if (timelineName == "color") { + var timeline = new spine.ColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var color = new spine.Color(); + color.setFromString(valueMap.color); + timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); + } + else if (timelineName == "twoColor") { + var timeline = new spine.TwoColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var light = new spine.Color(); + var dark = new spine.Color(); + light.setFromString(valueMap.light); + dark.setFromString(valueMap.dark); + timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); + } + } + } + if (map.bones) { + for (var boneName in map.bones) { + var boneMap = map.bones[boneName]; + var boneIndex = skeletonData.findBoneIndex(boneName); + if (boneIndex == -1) + throw new Error("Bone not found: " + boneName); + for (var timelineName in boneMap) { + var timelineMap = boneMap[timelineName]; + if (timelineName === "rotate") { + var timeline = new spine.RotateTimeline(timelineMap.length); + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); + } + else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "scale") + timeline = new spine.ScaleTimeline(timelineMap.length); + else if (timelineName === "shear") + timeline = new spine.ShearTimeline(timelineMap.length); + else { + timeline = new spine.TranslateTimeline(timelineMap.length); + timelineScale = scale; + } + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); + timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); + } + } + } + if (map.ik) { + for (var constraintName in map.ik) { + var constraintMap = map.ik[constraintName]; + var constraint = skeletonData.findIkConstraint(constraintName); + var timeline = new spine.IkConstraintTimeline(constraintMap.length); + timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); + } + } + if (map.transform) { + for (var constraintName in map.transform) { + var constraintMap = map.transform[constraintName]; + var constraint = skeletonData.findTransformConstraint(constraintName); + var timeline = new spine.TransformConstraintTimeline(constraintMap.length); + timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); + } + } + if (map.paths) { + for (var constraintName in map.paths) { + var constraintMap = map.paths[constraintName]; + var index = skeletonData.findPathConstraintIndex(constraintName); + if (index == -1) + throw new Error("Path constraint not found: " + constraintName); + var data = skeletonData.pathConstraints[index]; + for (var timelineName in constraintMap) { + var timelineMap = constraintMap[timelineName]; + if (timelineName === "position" || timelineName === "spacing") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "spacing") { + timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + timelineScale = scale; + } + else { + timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); + if (data.positionMode == spine.PositionMode.Fixed) + timelineScale = scale; + } + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); + } + else if (timelineName === "mix") { + var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); + } + } + } + } + if (map.deform) { + for (var deformName in map.deform) { + var deformMap = map.deform[deformName]; + var skin = skeletonData.findSkin(deformName); + if (skin == null) + throw new Error("Skin not found: " + deformName); + for (var slotName in deformMap) { + var slotMap = deformMap[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotMap.name); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + var attachment = skin.getAttachment(slotIndex, timelineName); + if (attachment == null) + throw new Error("Deform attachment not found: " + timelineMap.name); + var weighted = attachment.bones != null; + var vertices = attachment.vertices; + var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; + var timeline = new spine.DeformTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + timeline.attachment = attachment; + var frameIndex = 0; + for (var j = 0; j < timelineMap.length; j++) { + var valueMap = timelineMap[j]; + var deform = void 0; + var verticesValue = this.getValue(valueMap, "vertices", null); + if (verticesValue == null) + deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; + else { + deform = spine.Utils.newFloatArray(deformLength); + var start = this.getValue(valueMap, "offset", 0); + spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); + if (scale != 1) { + for (var i = start, n = i + verticesValue.length; i < n; i++) + deform[i] *= scale; + } + if (!weighted) { + for (var i = 0; i < deformLength; i++) + deform[i] += vertices[i]; + } + } + timeline.setFrame(frameIndex, valueMap.time, deform); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + } + } + } + var drawOrderNode = map.drawOrder; + if (drawOrderNode == null) + drawOrderNode = map.draworder; + if (drawOrderNode != null) { + var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); + var slotCount = skeletonData.slots.length; + var frameIndex = 0; + for (var j = 0; j < drawOrderNode.length; j++) { + var drawOrderMap = drawOrderNode[j]; + var drawOrder = null; + var offsets = this.getValue(drawOrderMap, "offsets", null); + if (offsets != null) { + drawOrder = spine.Utils.newArray(slotCount, -1); + var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); + var originalIndex = 0, unchangedIndex = 0; + for (var i = 0; i < offsets.length; i++) { + var offsetMap = offsets[i]; + var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); + if (slotIndex == -1) + throw new Error("Slot not found: " + offsetMap.slot); + while (originalIndex != slotIndex) + unchanged[unchangedIndex++] = originalIndex++; + drawOrder[originalIndex + offsetMap.offset] = originalIndex++; + } + while (originalIndex < slotCount) + unchanged[unchangedIndex++] = originalIndex++; + for (var i = slotCount - 1; i >= 0; i--) + if (drawOrder[i] == -1) + drawOrder[i] = unchanged[--unchangedIndex]; + } + timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (map.events) { + var timeline = new spine.EventTimeline(map.events.length); + var frameIndex = 0; + for (var i = 0; i < map.events.length; i++) { + var eventMap = map.events[i]; + var eventData = skeletonData.findEvent(eventMap.name); + if (eventData == null) + throw new Error("Event not found: " + eventMap.name); + var event_5 = new spine.Event(eventMap.time, eventData); + event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); + event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); + event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); + timeline.setFrame(frameIndex++, event_5); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (isNaN(duration)) { + throw new Error("Error while parsing animation, duration is NaN"); + } + skeletonData.animations.push(new spine.Animation(name, timelines, duration)); + }; + SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { + if (!map.curve) + return; + if (map.curve === "stepped") + timeline.setStepped(frameIndex); + else if (Object.prototype.toString.call(map.curve) === '[object Array]') { + var curve = map.curve; + timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); + } + }; + SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { + return map[prop] !== undefined ? map[prop] : defaultValue; + }; + SkeletonJson.blendModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.BlendMode.Normal; + if (str == "additive") + return spine.BlendMode.Additive; + if (str == "multiply") + return spine.BlendMode.Multiply; + if (str == "screen") + return spine.BlendMode.Screen; + throw new Error("Unknown blend mode: " + str); + }; + SkeletonJson.positionModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "fixed") + return spine.PositionMode.Fixed; + if (str == "percent") + return spine.PositionMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.spacingModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "length") + return spine.SpacingMode.Length; + if (str == "fixed") + return spine.SpacingMode.Fixed; + if (str == "percent") + return spine.SpacingMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.rotateModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "tangent") + return spine.RotateMode.Tangent; + if (str == "chain") + return spine.RotateMode.Chain; + if (str == "chainscale") + return spine.RotateMode.ChainScale; + throw new Error("Unknown rotate mode: " + str); + }; + SkeletonJson.transformModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.TransformMode.Normal; + if (str == "onlytranslation") + return spine.TransformMode.OnlyTranslation; + if (str == "norotationorreflection") + return spine.TransformMode.NoRotationOrReflection; + if (str == "noscale") + return spine.TransformMode.NoScale; + if (str == "noscaleorreflection") + return spine.TransformMode.NoScaleOrReflection; + throw new Error("Unknown transform mode: " + str); + }; + return SkeletonJson; + }()); + spine.SkeletonJson = SkeletonJson; + var LinkedMesh = (function () { + function LinkedMesh(mesh, skin, slotIndex, parent) { + this.mesh = mesh; + this.skin = skin; + this.slotIndex = slotIndex; + this.parent = parent; + } + return LinkedMesh; + }()); })(spine || (spine = {})); var spine; (function (spine) { - var Skin = (function () { - function Skin(name) { - this.attachments = new Array(); - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - Skin.prototype.addAttachment = function (slotIndex, name, attachment) { - if (attachment == null) - throw new Error("attachment cannot be null."); - var attachments = this.attachments; - if (slotIndex >= attachments.length) - attachments.length = slotIndex + 1; - if (!attachments[slotIndex]) - attachments[slotIndex] = {}; - attachments[slotIndex][name] = attachment; - }; - Skin.prototype.getAttachment = function (slotIndex, name) { - var dictionary = this.attachments[slotIndex]; - return dictionary ? dictionary[name] : null; - }; - Skin.prototype.attachAll = function (skeleton, oldSkin) { - var slotIndex = 0; - for (var i = 0; i < skeleton.slots.length; i++) { - var slot = skeleton.slots[i]; - var slotAttachment = slot.getAttachment(); - if (slotAttachment && slotIndex < oldSkin.attachments.length) { - var dictionary = oldSkin.attachments[slotIndex]; - for (var key in dictionary) { - var skinAttachment = dictionary[key]; - if (slotAttachment == skinAttachment) { - var attachment = this.getAttachment(slotIndex, key); - if (attachment != null) - slot.setAttachment(attachment); - break; - } - } - } - slotIndex++; - } - }; - return Skin; - }()); - spine.Skin = Skin; + var Skin = (function () { + function Skin(name) { + this.attachments = new Array(); + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + Skin.prototype.addAttachment = function (slotIndex, name, attachment) { + if (attachment == null) + throw new Error("attachment cannot be null."); + var attachments = this.attachments; + if (slotIndex >= attachments.length) + attachments.length = slotIndex + 1; + if (!attachments[slotIndex]) + attachments[slotIndex] = {}; + attachments[slotIndex][name] = attachment; + }; + Skin.prototype.getAttachment = function (slotIndex, name) { + var dictionary = this.attachments[slotIndex]; + return dictionary ? dictionary[name] : null; + }; + Skin.prototype.attachAll = function (skeleton, oldSkin) { + var slotIndex = 0; + for (var i = 0; i < skeleton.slots.length; i++) { + var slot = skeleton.slots[i]; + var slotAttachment = slot.getAttachment(); + if (slotAttachment && slotIndex < oldSkin.attachments.length) { + var dictionary = oldSkin.attachments[slotIndex]; + for (var key in dictionary) { + var skinAttachment = dictionary[key]; + if (slotAttachment == skinAttachment) { + var attachment = this.getAttachment(slotIndex, key); + if (attachment != null) + slot.setAttachment(attachment); + break; + } + } + } + slotIndex++; + } + }; + return Skin; + }()); + spine.Skin = Skin; })(spine || (spine = {})); var spine; (function (spine) { - var Slot = (function () { - function Slot(data, bone) { - this.attachmentVertices = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (bone == null) - throw new Error("bone cannot be null."); - this.data = data; - this.bone = bone; - this.color = new spine.Color(); - this.darkColor = data.darkColor == null ? null : new spine.Color(); - this.setToSetupPose(); - } - Slot.prototype.getAttachment = function () { - return this.attachment; - }; - Slot.prototype.setAttachment = function (attachment) { - if (this.attachment == attachment) - return; - this.attachment = attachment; - this.attachmentTime = this.bone.skeleton.time; - this.attachmentVertices.length = 0; - }; - Slot.prototype.setAttachmentTime = function (time) { - this.attachmentTime = this.bone.skeleton.time - time; - }; - Slot.prototype.getAttachmentTime = function () { - return this.bone.skeleton.time - this.attachmentTime; - }; - Slot.prototype.setToSetupPose = function () { - this.color.setFromColor(this.data.color); - if (this.darkColor != null) - this.darkColor.setFromColor(this.data.darkColor); - if (this.data.attachmentName == null) - this.attachment = null; - else { - this.attachment = null; - this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); - } - }; - return Slot; - }()); - spine.Slot = Slot; + var Slot = (function () { + function Slot(data, bone) { + this.attachmentVertices = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (bone == null) + throw new Error("bone cannot be null."); + this.data = data; + this.bone = bone; + this.color = new spine.Color(); + this.darkColor = data.darkColor == null ? null : new spine.Color(); + this.setToSetupPose(); + } + Slot.prototype.getAttachment = function () { + return this.attachment; + }; + Slot.prototype.setAttachment = function (attachment) { + if (this.attachment == attachment) + return; + this.attachment = attachment; + this.attachmentTime = this.bone.skeleton.time; + this.attachmentVertices.length = 0; + }; + Slot.prototype.setAttachmentTime = function (time) { + this.attachmentTime = this.bone.skeleton.time - time; + }; + Slot.prototype.getAttachmentTime = function () { + return this.bone.skeleton.time - this.attachmentTime; + }; + Slot.prototype.setToSetupPose = function () { + this.color.setFromColor(this.data.color); + if (this.darkColor != null) + this.darkColor.setFromColor(this.data.darkColor); + if (this.data.attachmentName == null) + this.attachment = null; + else { + this.attachment = null; + this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); + } + }; + return Slot; + }()); + spine.Slot = Slot; })(spine || (spine = {})); var spine; (function (spine) { - var SlotData = (function () { - function SlotData(index, name, boneData) { - this.color = new spine.Color(1, 1, 1, 1); - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - if (boneData == null) - throw new Error("boneData cannot be null."); - this.index = index; - this.name = name; - this.boneData = boneData; - } - return SlotData; - }()); - spine.SlotData = SlotData; + var SlotData = (function () { + function SlotData(index, name, boneData) { + this.color = new spine.Color(1, 1, 1, 1); + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + if (boneData == null) + throw new Error("boneData cannot be null."); + this.index = index; + this.name = name; + this.boneData = boneData; + } + return SlotData; + }()); + spine.SlotData = SlotData; })(spine || (spine = {})); var spine; (function (spine) { - var TextureAtlas = (function () { - function TextureAtlas(atlasText, textureLoader) { - this.pages = new Array(); - this.regions = new Array(); - this.load(atlasText, textureLoader); - } - TextureAtlas.prototype.load = function (atlasText, textureLoader) { - if (textureLoader == null) - throw new Error("textureLoader cannot be null."); - var reader = new TextureAtlasReader(atlasText); - var tuple = new Array(4); - var page = null; - while (true) { - var line = reader.readLine(); - if (line == null) - break; - line = line.trim(); - if (line.length == 0) - page = null; - else if (!page) { - page = new TextureAtlasPage(); - page.name = line; - if (reader.readTuple(tuple) == 2) { - page.width = parseInt(tuple[0]); - page.height = parseInt(tuple[1]); - reader.readTuple(tuple); - } - reader.readTuple(tuple); - page.minFilter = spine.Texture.filterFromString(tuple[0]); - page.magFilter = spine.Texture.filterFromString(tuple[1]); - var direction = reader.readValue(); - page.uWrap = spine.TextureWrap.ClampToEdge; - page.vWrap = spine.TextureWrap.ClampToEdge; - if (direction == "x") - page.uWrap = spine.TextureWrap.Repeat; - else if (direction == "y") - page.vWrap = spine.TextureWrap.Repeat; - else if (direction == "xy") - page.uWrap = page.vWrap = spine.TextureWrap.Repeat; - page.texture = textureLoader(line); - page.texture.setFilters(page.minFilter, page.magFilter); - page.texture.setWraps(page.uWrap, page.vWrap); - page.width = page.texture.getImage().width; - page.height = page.texture.getImage().height; - this.pages.push(page); - } - else { - var region = new TextureAtlasRegion(); - region.name = line; - region.page = page; - region.rotate = reader.readValue() == "true"; - reader.readTuple(tuple); - var x = parseInt(tuple[0]); - var y = parseInt(tuple[1]); - reader.readTuple(tuple); - var width = parseInt(tuple[0]); - var height = parseInt(tuple[1]); - region.u = x / page.width; - region.v = y / page.height; - if (region.rotate) { - region.u2 = (x + height) / page.width; - region.v2 = (y + width) / page.height; - } - else { - region.u2 = (x + width) / page.width; - region.v2 = (y + height) / page.height; - } - region.x = x; - region.y = y; - region.width = Math.abs(width); - region.height = Math.abs(height); - if (reader.readTuple(tuple) == 4) { - if (reader.readTuple(tuple) == 4) { - reader.readTuple(tuple); - } - } - region.originalWidth = parseInt(tuple[0]); - region.originalHeight = parseInt(tuple[1]); - reader.readTuple(tuple); - region.offsetX = parseInt(tuple[0]); - region.offsetY = parseInt(tuple[1]); - region.index = parseInt(reader.readValue()); - region.texture = page.texture; - this.regions.push(region); - } - } - }; - TextureAtlas.prototype.findRegion = function (name) { - for (var i = 0; i < this.regions.length; i++) { - if (this.regions[i].name == name) { - return this.regions[i]; - } - } - return null; - }; - TextureAtlas.prototype.dispose = function () { - for (var i = 0; i < this.pages.length; i++) { - this.pages[i].texture.dispose(); - } - }; - return TextureAtlas; - }()); - spine.TextureAtlas = TextureAtlas; - var TextureAtlasReader = (function () { - function TextureAtlasReader(text) { - this.index = 0; - this.lines = text.split(/\r\n|\r|\n/); - } - TextureAtlasReader.prototype.readLine = function () { - if (this.index >= this.lines.length) - return null; - return this.lines[this.index++]; - }; - TextureAtlasReader.prototype.readValue = function () { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - return line.substring(colon + 1).trim(); - }; - TextureAtlasReader.prototype.readTuple = function (tuple) { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - var i = 0, lastMatch = colon + 1; - for (; i < 3; i++) { - var comma = line.indexOf(",", lastMatch); - if (comma == -1) - break; - tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); - lastMatch = comma + 1; - } - tuple[i] = line.substring(lastMatch).trim(); - return i + 1; - }; - return TextureAtlasReader; - }()); - var TextureAtlasPage = (function () { - function TextureAtlasPage() { - } - return TextureAtlasPage; - }()); - spine.TextureAtlasPage = TextureAtlasPage; - var TextureAtlasRegion = (function (_super) { - __extends(TextureAtlasRegion, _super); - function TextureAtlasRegion() { - _super.apply(this, arguments); - } - return TextureAtlasRegion; - }(spine.TextureRegion)); - spine.TextureAtlasRegion = TextureAtlasRegion; + var TextureAtlas = (function () { + function TextureAtlas(atlasText, textureLoader) { + this.pages = new Array(); + this.regions = new Array(); + this.load(atlasText, textureLoader); + } + TextureAtlas.prototype.load = function (atlasText, textureLoader) { + if (textureLoader == null) + throw new Error("textureLoader cannot be null."); + var reader = new TextureAtlasReader(atlasText); + var tuple = new Array(4); + var page = null; + while (true) { + var line = reader.readLine(); + if (line == null) + break; + line = line.trim(); + if (line.length == 0) + page = null; + else if (!page) { + page = new TextureAtlasPage(); + page.name = line; + if (reader.readTuple(tuple) == 2) { + page.width = parseInt(tuple[0]); + page.height = parseInt(tuple[1]); + reader.readTuple(tuple); + } + reader.readTuple(tuple); + page.minFilter = spine.Texture.filterFromString(tuple[0]); + page.magFilter = spine.Texture.filterFromString(tuple[1]); + var direction = reader.readValue(); + page.uWrap = spine.TextureWrap.ClampToEdge; + page.vWrap = spine.TextureWrap.ClampToEdge; + if (direction == "x") + page.uWrap = spine.TextureWrap.Repeat; + else if (direction == "y") + page.vWrap = spine.TextureWrap.Repeat; + else if (direction == "xy") + page.uWrap = page.vWrap = spine.TextureWrap.Repeat; + page.texture = textureLoader(line); + page.texture.setFilters(page.minFilter, page.magFilter); + page.texture.setWraps(page.uWrap, page.vWrap); + page.width = page.texture.getImage().width; + page.height = page.texture.getImage().height; + this.pages.push(page); + } + else { + var region = new TextureAtlasRegion(); + region.name = line; + region.page = page; + region.rotate = reader.readValue() == "true"; + reader.readTuple(tuple); + var x = parseInt(tuple[0]); + var y = parseInt(tuple[1]); + reader.readTuple(tuple); + var width = parseInt(tuple[0]); + var height = parseInt(tuple[1]); + region.u = x / page.width; + region.v = y / page.height; + if (region.rotate) { + region.u2 = (x + height) / page.width; + region.v2 = (y + width) / page.height; + } + else { + region.u2 = (x + width) / page.width; + region.v2 = (y + height) / page.height; + } + region.x = x; + region.y = y; + region.width = Math.abs(width); + region.height = Math.abs(height); + if (reader.readTuple(tuple) == 4) { + if (reader.readTuple(tuple) == 4) { + reader.readTuple(tuple); + } + } + region.originalWidth = parseInt(tuple[0]); + region.originalHeight = parseInt(tuple[1]); + reader.readTuple(tuple); + region.offsetX = parseInt(tuple[0]); + region.offsetY = parseInt(tuple[1]); + region.index = parseInt(reader.readValue()); + region.texture = page.texture; + this.regions.push(region); + } + } + }; + TextureAtlas.prototype.findRegion = function (name) { + for (var i = 0; i < this.regions.length; i++) { + if (this.regions[i].name == name) { + return this.regions[i]; + } + } + return null; + }; + TextureAtlas.prototype.dispose = function () { + for (var i = 0; i < this.pages.length; i++) { + this.pages[i].texture.dispose(); + } + }; + return TextureAtlas; + }()); + spine.TextureAtlas = TextureAtlas; + var TextureAtlasReader = (function () { + function TextureAtlasReader(text) { + this.index = 0; + this.lines = text.split(/\r\n|\r|\n/); + } + TextureAtlasReader.prototype.readLine = function () { + if (this.index >= this.lines.length) + return null; + return this.lines[this.index++]; + }; + TextureAtlasReader.prototype.readValue = function () { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + return line.substring(colon + 1).trim(); + }; + TextureAtlasReader.prototype.readTuple = function (tuple) { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + var i = 0, lastMatch = colon + 1; + for (; i < 3; i++) { + var comma = line.indexOf(",", lastMatch); + if (comma == -1) + break; + tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); + lastMatch = comma + 1; + } + tuple[i] = line.substring(lastMatch).trim(); + return i + 1; + }; + return TextureAtlasReader; + }()); + var TextureAtlasPage = (function () { + function TextureAtlasPage() { + } + return TextureAtlasPage; + }()); + spine.TextureAtlasPage = TextureAtlasPage; + var TextureAtlasRegion = (function (_super) { + __extends(TextureAtlasRegion, _super); + function TextureAtlasRegion() { + _super.apply(this, arguments); + } + return TextureAtlasRegion; + }(spine.TextureRegion)); + spine.TextureAtlasRegion = TextureAtlasRegion; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraint = (function () { - function TransformConstraint(data, skeleton) { - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.temp = new spine.Vector2(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - this.scaleMix = data.scaleMix; - this.shearMix = data.shearMix; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - TransformConstraint.prototype.apply = function () { - this.update(); - }; - TransformConstraint.prototype.update = function () { - if (this.data.local) { - if (this.data.relative) - this.applyRelativeLocal(); - else - this.applyAbsoluteLocal(); - } - else { - if (this.data.relative) - this.applyRelativeWorld(); - else - this.applyAbsoluteWorld(); - } - }; - TransformConstraint.prototype.applyAbsoluteWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect; - var offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += (temp.x - bone.worldX) * translateMix; - bone.worldY += (temp.y - bone.worldY) * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); - var ts = Math.sqrt(ta * ta + tc * tc); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; - bone.a *= s; - bone.c *= s; - s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); - ts = Math.sqrt(tb * tb + td * td); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var b = bone.b, d = bone.d; - var by = Math.atan2(d, b); - var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r = by + (r + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyRelativeWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += temp.x * translateMix; - bone.worldY += temp.y * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; - bone.a *= s; - bone.c *= s; - s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var r = Math.atan2(td, tb) - Math.atan2(tc, ta); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - var b = bone.b, d = bone.d; - r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyAbsoluteLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) { - var r = target.arotation - rotation + this.data.offsetRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - rotation += r * rotateMix; - } - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax - x + this.data.offsetX) * translateMix; - y += (target.ay - y + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; - if (scaleY > 0.00001) - scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; - } - var shearY = bone.ashearY; - if (shearMix > 0) { - var r = target.ashearY - shearY + this.data.offsetShearY; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.shearY += r * shearMix; - } - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.applyRelativeLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) - rotation += (target.arotation + this.data.offsetRotation) * rotateMix; - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax + this.data.offsetX) * translateMix; - y += (target.ay + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; - if (scaleY > 0.00001) - scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; - } - var shearY = bone.ashearY; - if (shearMix > 0) - shearY += (target.ashearY + this.data.offsetShearY) * shearMix; - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.getOrder = function () { - return this.data.order; - }; - return TransformConstraint; - }()); - spine.TransformConstraint = TransformConstraint; + var TransformConstraint = (function () { + function TransformConstraint(data, skeleton) { + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.temp = new spine.Vector2(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + this.scaleMix = data.scaleMix; + this.shearMix = data.shearMix; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + TransformConstraint.prototype.apply = function () { + this.update(); + }; + TransformConstraint.prototype.update = function () { + if (this.data.local) { + if (this.data.relative) + this.applyRelativeLocal(); + else + this.applyAbsoluteLocal(); + } + else { + if (this.data.relative) + this.applyRelativeWorld(); + else + this.applyAbsoluteWorld(); + } + }; + TransformConstraint.prototype.applyAbsoluteWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect; + var offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += (temp.x - bone.worldX) * translateMix; + bone.worldY += (temp.y - bone.worldY) * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var ts = Math.sqrt(ta * ta + tc * tc); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; + bone.a *= s; + bone.c *= s; + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + ts = Math.sqrt(tb * tb + td * td); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var b = bone.b, d = bone.d; + var by = Math.atan2(d, b); + var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r = by + (r + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyRelativeWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += temp.x * translateMix; + bone.worldY += temp.y * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; + bone.a *= s; + bone.c *= s; + s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var r = Math.atan2(td, tb) - Math.atan2(tc, ta); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + var b = bone.b, d = bone.d; + r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyAbsoluteLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) { + var r = target.arotation - rotation + this.data.offsetRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + rotation += r * rotateMix; + } + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax - x + this.data.offsetX) * translateMix; + y += (target.ay - y + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; + if (scaleY > 0.00001) + scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; + } + var shearY = bone.ashearY; + if (shearMix > 0) { + var r = target.ashearY - shearY + this.data.offsetShearY; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.shearY += r * shearMix; + } + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.applyRelativeLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) + rotation += (target.arotation + this.data.offsetRotation) * rotateMix; + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax + this.data.offsetX) * translateMix; + y += (target.ay + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; + if (scaleY > 0.00001) + scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; + } + var shearY = bone.ashearY; + if (shearMix > 0) + shearY += (target.ashearY + this.data.offsetShearY) * shearMix; + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.getOrder = function () { + return this.data.order; + }; + return TransformConstraint; + }()); + spine.TransformConstraint = TransformConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraintData = (function () { - function TransformConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.offsetRotation = 0; - this.offsetX = 0; - this.offsetY = 0; - this.offsetScaleX = 0; - this.offsetScaleY = 0; - this.offsetShearY = 0; - this.relative = false; - this.local = false; - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return TransformConstraintData; - }()); - spine.TransformConstraintData = TransformConstraintData; + var TransformConstraintData = (function () { + function TransformConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.offsetRotation = 0; + this.offsetX = 0; + this.offsetY = 0; + this.offsetScaleX = 0; + this.offsetScaleY = 0; + this.offsetShearY = 0; + this.relative = false; + this.local = false; + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return TransformConstraintData; + }()); + spine.TransformConstraintData = TransformConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var Triangulator = (function () { - function Triangulator() { - this.convexPolygons = new Array(); - this.convexPolygonsIndices = new Array(); - this.indicesArray = new Array(); - this.isConcaveArray = new Array(); - this.triangles = new Array(); - this.polygonPool = new spine.Pool(function () { - return new Array(); - }); - this.polygonIndicesPool = new spine.Pool(function () { - return new Array(); - }); - } - Triangulator.prototype.triangulate = function (verticesArray) { - var vertices = verticesArray; - var vertexCount = verticesArray.length >> 1; - var indices = this.indicesArray; - indices.length = 0; - for (var i = 0; i < vertexCount; i++) - indices[i] = i; - var isConcave = this.isConcaveArray; - isConcave.length = 0; - for (var i = 0, n = vertexCount; i < n; ++i) - isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); - var triangles = this.triangles; - triangles.length = 0; - while (vertexCount > 3) { - var previous = vertexCount - 1, i = 0, next = 1; - while (true) { - outer: if (!isConcave[i]) { - var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; - var p1x = vertices[p1], p1y = vertices[p1 + 1]; - var p2x = vertices[p2], p2y = vertices[p2 + 1]; - var p3x = vertices[p3], p3y = vertices[p3 + 1]; - for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { - if (!isConcave[ii]) - continue; - var v = indices[ii] << 1; - var vx = vertices[v], vy = vertices[v + 1]; - if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { - if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { - if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) - break outer; - } - } - } - break; - } - if (next == 0) { - do { - if (!isConcave[i]) - break; - i--; - } while (i > 0); - break; - } - previous = i; - i = next; - next = (next + 1) % vertexCount; - } - triangles.push(indices[(vertexCount + i - 1) % vertexCount]); - triangles.push(indices[i]); - triangles.push(indices[(i + 1) % vertexCount]); - indices.splice(i, 1); - isConcave.splice(i, 1); - vertexCount--; - var previousIndex = (vertexCount + i - 1) % vertexCount; - var nextIndex = i == vertexCount ? 0 : i; - isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); - isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); - } - if (vertexCount == 3) { - triangles.push(indices[2]); - triangles.push(indices[0]); - triangles.push(indices[1]); - } - return triangles; - }; - Triangulator.prototype.decompose = function (verticesArray, triangles) { - var vertices = verticesArray; - var convexPolygons = this.convexPolygons; - this.polygonPool.freeAll(convexPolygons); - convexPolygons.length = 0; - var convexPolygonsIndices = this.convexPolygonsIndices; - this.polygonIndicesPool.freeAll(convexPolygonsIndices); - convexPolygonsIndices.length = 0; - var polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - var polygon = this.polygonPool.obtain(); - polygon.length = 0; - var fanBaseIndex = -1, lastWinding = 0; - for (var i = 0, n = triangles.length; i < n; i += 3) { - var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; - var x1 = vertices[t1], y1 = vertices[t1 + 1]; - var x2 = vertices[t2], y2 = vertices[t2 + 1]; - var x3 = vertices[t3], y3 = vertices[t3 + 1]; - var merged = false; - if (fanBaseIndex == t1) { - var o = polygon.length - 4; - var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); - var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); - if (winding1 == lastWinding && winding2 == lastWinding) { - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(t3); - merged = true; - } - } - if (!merged) { - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - else { - this.polygonPool.free(polygon); - this.polygonIndicesPool.free(polygonIndices); - } - polygon = this.polygonPool.obtain(); - polygon.length = 0; - polygon.push(x1); - polygon.push(y1); - polygon.push(x2); - polygon.push(y2); - polygon.push(x3); - polygon.push(y3); - polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - polygonIndices.push(t1); - polygonIndices.push(t2); - polygonIndices.push(t3); - lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); - fanBaseIndex = t1; - } - } - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - for (var i = 0, n = convexPolygons.length; i < n; i++) { - polygonIndices = convexPolygonsIndices[i]; - if (polygonIndices.length == 0) - continue; - var firstIndex = polygonIndices[0]; - var lastIndex = polygonIndices[polygonIndices.length - 1]; - polygon = convexPolygons[i]; - var o = polygon.length - 4; - var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; - var prevX = polygon[o + 2], prevY = polygon[o + 3]; - var firstX = polygon[0], firstY = polygon[1]; - var secondX = polygon[2], secondY = polygon[3]; - var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); - for (var ii = 0; ii < n; ii++) { - if (ii == i) - continue; - var otherIndices = convexPolygonsIndices[ii]; - if (otherIndices.length != 3) - continue; - var otherFirstIndex = otherIndices[0]; - var otherSecondIndex = otherIndices[1]; - var otherLastIndex = otherIndices[2]; - var otherPoly = convexPolygons[ii]; - var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; - if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) - continue; - var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); - var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); - if (winding1 == winding && winding2 == winding) { - otherPoly.length = 0; - otherIndices.length = 0; - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(otherLastIndex); - prevPrevX = prevX; - prevPrevY = prevY; - prevX = x3; - prevY = y3; - ii = 0; - } - } - } - for (var i = convexPolygons.length - 1; i >= 0; i--) { - polygon = convexPolygons[i]; - if (polygon.length == 0) { - convexPolygons.splice(i, 1); - this.polygonPool.free(polygon); - polygonIndices = convexPolygonsIndices[i]; - convexPolygonsIndices.splice(i, 1); - this.polygonIndicesPool.free(polygonIndices); - } - } - return convexPolygons; - }; - Triangulator.isConcave = function (index, vertexCount, vertices, indices) { - var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; - var current = indices[index] << 1; - var next = indices[(index + 1) % vertexCount] << 1; - return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); - }; - Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { - return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; - }; - Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { - var px = p2x - p1x, py = p2y - p1y; - return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; - }; - return Triangulator; - }()); - spine.Triangulator = Triangulator; + var Triangulator = (function () { + function Triangulator() { + this.convexPolygons = new Array(); + this.convexPolygonsIndices = new Array(); + this.indicesArray = new Array(); + this.isConcaveArray = new Array(); + this.triangles = new Array(); + this.polygonPool = new spine.Pool(function () { + return new Array(); + }); + this.polygonIndicesPool = new spine.Pool(function () { + return new Array(); + }); + } + Triangulator.prototype.triangulate = function (verticesArray) { + var vertices = verticesArray; + var vertexCount = verticesArray.length >> 1; + var indices = this.indicesArray; + indices.length = 0; + for (var i = 0; i < vertexCount; i++) + indices[i] = i; + var isConcave = this.isConcaveArray; + isConcave.length = 0; + for (var i = 0, n = vertexCount; i < n; ++i) + isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); + var triangles = this.triangles; + triangles.length = 0; + while (vertexCount > 3) { + var previous = vertexCount - 1, i = 0, next = 1; + while (true) { + outer: if (!isConcave[i]) { + var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; + var p1x = vertices[p1], p1y = vertices[p1 + 1]; + var p2x = vertices[p2], p2y = vertices[p2 + 1]; + var p3x = vertices[p3], p3y = vertices[p3 + 1]; + for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { + if (!isConcave[ii]) + continue; + var v = indices[ii] << 1; + var vx = vertices[v], vy = vertices[v + 1]; + if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { + if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { + if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) + break outer; + } + } + } + break; + } + if (next == 0) { + do { + if (!isConcave[i]) + break; + i--; + } while (i > 0); + break; + } + previous = i; + i = next; + next = (next + 1) % vertexCount; + } + triangles.push(indices[(vertexCount + i - 1) % vertexCount]); + triangles.push(indices[i]); + triangles.push(indices[(i + 1) % vertexCount]); + indices.splice(i, 1); + isConcave.splice(i, 1); + vertexCount--; + var previousIndex = (vertexCount + i - 1) % vertexCount; + var nextIndex = i == vertexCount ? 0 : i; + isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); + isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); + } + if (vertexCount == 3) { + triangles.push(indices[2]); + triangles.push(indices[0]); + triangles.push(indices[1]); + } + return triangles; + }; + Triangulator.prototype.decompose = function (verticesArray, triangles) { + var vertices = verticesArray; + var convexPolygons = this.convexPolygons; + this.polygonPool.freeAll(convexPolygons); + convexPolygons.length = 0; + var convexPolygonsIndices = this.convexPolygonsIndices; + this.polygonIndicesPool.freeAll(convexPolygonsIndices); + convexPolygonsIndices.length = 0; + var polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + var polygon = this.polygonPool.obtain(); + polygon.length = 0; + var fanBaseIndex = -1, lastWinding = 0; + for (var i = 0, n = triangles.length; i < n; i += 3) { + var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; + var x1 = vertices[t1], y1 = vertices[t1 + 1]; + var x2 = vertices[t2], y2 = vertices[t2 + 1]; + var x3 = vertices[t3], y3 = vertices[t3 + 1]; + var merged = false; + if (fanBaseIndex == t1) { + var o = polygon.length - 4; + var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); + var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); + if (winding1 == lastWinding && winding2 == lastWinding) { + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(t3); + merged = true; + } + } + if (!merged) { + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + else { + this.polygonPool.free(polygon); + this.polygonIndicesPool.free(polygonIndices); + } + polygon = this.polygonPool.obtain(); + polygon.length = 0; + polygon.push(x1); + polygon.push(y1); + polygon.push(x2); + polygon.push(y2); + polygon.push(x3); + polygon.push(y3); + polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + polygonIndices.push(t1); + polygonIndices.push(t2); + polygonIndices.push(t3); + lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); + fanBaseIndex = t1; + } + } + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + for (var i = 0, n = convexPolygons.length; i < n; i++) { + polygonIndices = convexPolygonsIndices[i]; + if (polygonIndices.length == 0) + continue; + var firstIndex = polygonIndices[0]; + var lastIndex = polygonIndices[polygonIndices.length - 1]; + polygon = convexPolygons[i]; + var o = polygon.length - 4; + var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; + var prevX = polygon[o + 2], prevY = polygon[o + 3]; + var firstX = polygon[0], firstY = polygon[1]; + var secondX = polygon[2], secondY = polygon[3]; + var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); + for (var ii = 0; ii < n; ii++) { + if (ii == i) + continue; + var otherIndices = convexPolygonsIndices[ii]; + if (otherIndices.length != 3) + continue; + var otherFirstIndex = otherIndices[0]; + var otherSecondIndex = otherIndices[1]; + var otherLastIndex = otherIndices[2]; + var otherPoly = convexPolygons[ii]; + var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; + if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) + continue; + var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); + var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); + if (winding1 == winding && winding2 == winding) { + otherPoly.length = 0; + otherIndices.length = 0; + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(otherLastIndex); + prevPrevX = prevX; + prevPrevY = prevY; + prevX = x3; + prevY = y3; + ii = 0; + } + } + } + for (var i = convexPolygons.length - 1; i >= 0; i--) { + polygon = convexPolygons[i]; + if (polygon.length == 0) { + convexPolygons.splice(i, 1); + this.polygonPool.free(polygon); + polygonIndices = convexPolygonsIndices[i]; + convexPolygonsIndices.splice(i, 1); + this.polygonIndicesPool.free(polygonIndices); + } + } + return convexPolygons; + }; + Triangulator.isConcave = function (index, vertexCount, vertices, indices) { + var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; + var current = indices[index] << 1; + var next = indices[(index + 1) % vertexCount] << 1; + return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); + }; + Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { + return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; + }; + Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { + var px = p2x - p1x, py = p2y - p1y; + return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; + }; + return Triangulator; + }()); + spine.Triangulator = Triangulator; })(spine || (spine = {})); var spine; (function (spine) { - var IntSet = (function () { - function IntSet() { - this.array = new Array(); - } - IntSet.prototype.add = function (value) { - var contains = this.contains(value); - this.array[value | 0] = value | 0; - return !contains; - }; - IntSet.prototype.contains = function (value) { - return this.array[value | 0] != undefined; - }; - IntSet.prototype.remove = function (value) { - this.array[value | 0] = undefined; - }; - IntSet.prototype.clear = function () { - this.array.length = 0; - }; - return IntSet; - }()); - spine.IntSet = IntSet; - var Color = (function () { - function Color(r, g, b, a) { - if (r === void 0) { r = 0; } - if (g === void 0) { g = 0; } - if (b === void 0) { b = 0; } - if (a === void 0) { a = 0; } - this.r = r; - this.g = g; - this.b = b; - this.a = a; - } - Color.prototype.set = function (r, g, b, a) { - this.r = r; - this.g = g; - this.b = b; - this.a = a; - this.clamp(); - return this; - }; - Color.prototype.setFromColor = function (c) { - this.r = c.r; - this.g = c.g; - this.b = c.b; - this.a = c.a; - return this; - }; - Color.prototype.setFromString = function (hex) { - hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; - this.r = parseInt(hex.substr(0, 2), 16) / 255.0; - this.g = parseInt(hex.substr(2, 2), 16) / 255.0; - this.b = parseInt(hex.substr(4, 2), 16) / 255.0; - this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; - return this; - }; - Color.prototype.add = function (r, g, b, a) { - this.r += r; - this.g += g; - this.b += b; - this.a += a; - this.clamp(); - return this; - }; - Color.prototype.clamp = function () { - if (this.r < 0) - this.r = 0; - else if (this.r > 1) - this.r = 1; - if (this.g < 0) - this.g = 0; - else if (this.g > 1) - this.g = 1; - if (this.b < 0) - this.b = 0; - else if (this.b > 1) - this.b = 1; - if (this.a < 0) - this.a = 0; - else if (this.a > 1) - this.a = 1; - return this; - }; - Color.WHITE = new Color(1, 1, 1, 1); - Color.RED = new Color(1, 0, 0, 1); - Color.GREEN = new Color(0, 1, 0, 1); - Color.BLUE = new Color(0, 0, 1, 1); - Color.MAGENTA = new Color(1, 0, 1, 1); - return Color; - }()); - spine.Color = Color; - var MathUtils = (function () { - function MathUtils() { - } - MathUtils.clamp = function (value, min, max) { - if (value < min) - return min; - if (value > max) - return max; - return value; - }; - MathUtils.cosDeg = function (degrees) { - return Math.cos(degrees * MathUtils.degRad); - }; - MathUtils.sinDeg = function (degrees) { - return Math.sin(degrees * MathUtils.degRad); - }; - MathUtils.signum = function (value) { - return value > 0 ? 1 : value < 0 ? -1 : 0; - }; - MathUtils.toInt = function (x) { - return x > 0 ? Math.floor(x) : Math.ceil(x); - }; - MathUtils.cbrt = function (x) { - var y = Math.pow(Math.abs(x), 1 / 3); - return x < 0 ? -y : y; - }; - MathUtils.PI = 3.1415927; - MathUtils.PI2 = MathUtils.PI * 2; - MathUtils.radiansToDegrees = 180 / MathUtils.PI; - MathUtils.radDeg = MathUtils.radiansToDegrees; - MathUtils.degreesToRadians = MathUtils.PI / 180; - MathUtils.degRad = MathUtils.degreesToRadians; - return MathUtils; - }()); - spine.MathUtils = MathUtils; - var Utils = (function () { - function Utils() { - } - Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { - for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { - dest[j] = source[i]; - } - }; - Utils.setArraySize = function (array, size, value) { - if (value === void 0) { value = 0; } - var oldSize = array.length; - if (oldSize == size) - return array; - array.length = size; - if (oldSize < size) { - for (var i = oldSize; i < size; i++) - array[i] = value; - } - return array; - }; - Utils.ensureArrayCapacity = function (array, size, value) { - if (value === void 0) { value = 0; } - if (array.length >= size) - return array; - return Utils.setArraySize(array, size, value); - }; - Utils.newArray = function (size, defaultValue) { - var array = new Array(size); - for (var i = 0; i < size; i++) - array[i] = defaultValue; - return array; - }; - Utils.newFloatArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Float32Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.newShortArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Int16Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.toFloatArray = function (array) { - return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; - }; - Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; - return Utils; - }()); - spine.Utils = Utils; - var DebugUtils = (function () { - function DebugUtils() { - } - DebugUtils.logBones = function (skeleton) { - for (var i = 0; i < skeleton.bones.length; i++) { - var bone = skeleton.bones[i]; - console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); - } - }; - return DebugUtils; - }()); - spine.DebugUtils = DebugUtils; - var Pool = (function () { - function Pool(instantiator) { - this.items = new Array(); - this.instantiator = instantiator; - } - Pool.prototype.obtain = function () { - return this.items.length > 0 ? this.items.pop() : this.instantiator(); - }; - Pool.prototype.free = function (item) { - if (item.reset) - item.reset(); - this.items.push(item); - }; - Pool.prototype.freeAll = function (items) { - for (var i = 0; i < items.length; i++) { - if (items[i].reset) - items[i].reset(); - this.items[i] = items[i]; - } - }; - Pool.prototype.clear = function () { - this.items.length = 0; - }; - return Pool; - }()); - spine.Pool = Pool; - var Vector2 = (function () { - function Vector2(x, y) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - this.x = x; - this.y = y; - } - Vector2.prototype.set = function (x, y) { - this.x = x; - this.y = y; - return this; - }; - Vector2.prototype.length = function () { - var x = this.x; - var y = this.y; - return Math.sqrt(x * x + y * y); - }; - Vector2.prototype.normalize = function () { - var len = this.length(); - if (len != 0) { - this.x /= len; - this.y /= len; - } - return this; - }; - return Vector2; - }()); - spine.Vector2 = Vector2; - var TimeKeeper = (function () { - function TimeKeeper() { - this.maxDelta = 0.064; - this.framesPerSecond = 0; - this.delta = 0; - this.totalTime = 0; - this.lastTime = Date.now() / 1000; - this.frameCount = 0; - this.frameTime = 0; - } - TimeKeeper.prototype.update = function () { - var now = Date.now() / 1000; - this.delta = now - this.lastTime; - this.frameTime += this.delta; - this.totalTime += this.delta; - if (this.delta > this.maxDelta) - this.delta = this.maxDelta; - this.lastTime = now; - this.frameCount++; - if (this.frameTime > 1) { - this.framesPerSecond = this.frameCount / this.frameTime; - this.frameTime = 0; - this.frameCount = 0; - } - }; - return TimeKeeper; - }()); - spine.TimeKeeper = TimeKeeper; - var WindowedMean = (function () { - function WindowedMean(windowSize) { - if (windowSize === void 0) { windowSize = 32; } - this.addedValues = 0; - this.lastValue = 0; - this.mean = 0; - this.dirty = true; - this.values = new Array(windowSize); - } - WindowedMean.prototype.hasEnoughData = function () { - return this.addedValues >= this.values.length; - }; - WindowedMean.prototype.addValue = function (value) { - if (this.addedValues < this.values.length) - this.addedValues++; - this.values[this.lastValue++] = value; - if (this.lastValue > this.values.length - 1) - this.lastValue = 0; - this.dirty = true; - }; - WindowedMean.prototype.getMean = function () { - if (this.hasEnoughData()) { - if (this.dirty) { - var mean = 0; - for (var i = 0; i < this.values.length; i++) { - mean += this.values[i]; - } - this.mean = mean / this.values.length; - this.dirty = false; - } - return this.mean; - } - else { - return 0; - } - }; - return WindowedMean; - }()); - spine.WindowedMean = WindowedMean; + var IntSet = (function () { + function IntSet() { + this.array = new Array(); + } + IntSet.prototype.add = function (value) { + var contains = this.contains(value); + this.array[value | 0] = value | 0; + return !contains; + }; + IntSet.prototype.contains = function (value) { + return this.array[value | 0] != undefined; + }; + IntSet.prototype.remove = function (value) { + this.array[value | 0] = undefined; + }; + IntSet.prototype.clear = function () { + this.array.length = 0; + }; + return IntSet; + }()); + spine.IntSet = IntSet; + var Color = (function () { + function Color(r, g, b, a) { + if (r === void 0) { r = 0; } + if (g === void 0) { g = 0; } + if (b === void 0) { b = 0; } + if (a === void 0) { a = 0; } + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + Color.prototype.set = function (r, g, b, a) { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + this.clamp(); + return this; + }; + Color.prototype.setFromColor = function (c) { + this.r = c.r; + this.g = c.g; + this.b = c.b; + this.a = c.a; + return this; + }; + Color.prototype.setFromString = function (hex) { + hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; + this.r = parseInt(hex.substr(0, 2), 16) / 255.0; + this.g = parseInt(hex.substr(2, 2), 16) / 255.0; + this.b = parseInt(hex.substr(4, 2), 16) / 255.0; + this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; + return this; + }; + Color.prototype.add = function (r, g, b, a) { + this.r += r; + this.g += g; + this.b += b; + this.a += a; + this.clamp(); + return this; + }; + Color.prototype.clamp = function () { + if (this.r < 0) + this.r = 0; + else if (this.r > 1) + this.r = 1; + if (this.g < 0) + this.g = 0; + else if (this.g > 1) + this.g = 1; + if (this.b < 0) + this.b = 0; + else if (this.b > 1) + this.b = 1; + if (this.a < 0) + this.a = 0; + else if (this.a > 1) + this.a = 1; + return this; + }; + Color.WHITE = new Color(1, 1, 1, 1); + Color.RED = new Color(1, 0, 0, 1); + Color.GREEN = new Color(0, 1, 0, 1); + Color.BLUE = new Color(0, 0, 1, 1); + Color.MAGENTA = new Color(1, 0, 1, 1); + return Color; + }()); + spine.Color = Color; + var MathUtils = (function () { + function MathUtils() { + } + MathUtils.clamp = function (value, min, max) { + if (value < min) + return min; + if (value > max) + return max; + return value; + }; + MathUtils.cosDeg = function (degrees) { + return Math.cos(degrees * MathUtils.degRad); + }; + MathUtils.sinDeg = function (degrees) { + return Math.sin(degrees * MathUtils.degRad); + }; + MathUtils.signum = function (value) { + return value > 0 ? 1 : value < 0 ? -1 : 0; + }; + MathUtils.toInt = function (x) { + return x > 0 ? Math.floor(x) : Math.ceil(x); + }; + MathUtils.cbrt = function (x) { + var y = Math.pow(Math.abs(x), 1 / 3); + return x < 0 ? -y : y; + }; + MathUtils.PI = 3.1415927; + MathUtils.PI2 = MathUtils.PI * 2; + MathUtils.radiansToDegrees = 180 / MathUtils.PI; + MathUtils.radDeg = MathUtils.radiansToDegrees; + MathUtils.degreesToRadians = MathUtils.PI / 180; + MathUtils.degRad = MathUtils.degreesToRadians; + return MathUtils; + }()); + spine.MathUtils = MathUtils; + var Utils = (function () { + function Utils() { + } + Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { + for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { + dest[j] = source[i]; + } + }; + Utils.setArraySize = function (array, size, value) { + if (value === void 0) { value = 0; } + var oldSize = array.length; + if (oldSize == size) + return array; + array.length = size; + if (oldSize < size) { + for (var i = oldSize; i < size; i++) + array[i] = value; + } + return array; + }; + Utils.ensureArrayCapacity = function (array, size, value) { + if (value === void 0) { value = 0; } + if (array.length >= size) + return array; + return Utils.setArraySize(array, size, value); + }; + Utils.newArray = function (size, defaultValue) { + var array = new Array(size); + for (var i = 0; i < size; i++) + array[i] = defaultValue; + return array; + }; + Utils.newFloatArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Float32Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.newShortArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Int16Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.toFloatArray = function (array) { + return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; + }; + Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; + return Utils; + }()); + spine.Utils = Utils; + var DebugUtils = (function () { + function DebugUtils() { + } + DebugUtils.logBones = function (skeleton) { + for (var i = 0; i < skeleton.bones.length; i++) { + var bone = skeleton.bones[i]; + console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); + } + }; + return DebugUtils; + }()); + spine.DebugUtils = DebugUtils; + var Pool = (function () { + function Pool(instantiator) { + this.items = new Array(); + this.instantiator = instantiator; + } + Pool.prototype.obtain = function () { + return this.items.length > 0 ? this.items.pop() : this.instantiator(); + }; + Pool.prototype.free = function (item) { + if (item.reset) + item.reset(); + this.items.push(item); + }; + Pool.prototype.freeAll = function (items) { + for (var i = 0; i < items.length; i++) { + if (items[i].reset) + items[i].reset(); + this.items[i] = items[i]; + } + }; + Pool.prototype.clear = function () { + this.items.length = 0; + }; + return Pool; + }()); + spine.Pool = Pool; + var Vector2 = (function () { + function Vector2(x, y) { + if (x === void 0) { x = 0; } + if (y === void 0) { y = 0; } + this.x = x; + this.y = y; + } + Vector2.prototype.set = function (x, y) { + this.x = x; + this.y = y; + return this; + }; + Vector2.prototype.length = function () { + var x = this.x; + var y = this.y; + return Math.sqrt(x * x + y * y); + }; + Vector2.prototype.normalize = function () { + var len = this.length(); + if (len != 0) { + this.x /= len; + this.y /= len; + } + return this; + }; + return Vector2; + }()); + spine.Vector2 = Vector2; + var TimeKeeper = (function () { + function TimeKeeper() { + this.maxDelta = 0.064; + this.framesPerSecond = 0; + this.delta = 0; + this.totalTime = 0; + this.lastTime = Date.now() / 1000; + this.frameCount = 0; + this.frameTime = 0; + } + TimeKeeper.prototype.update = function () { + var now = Date.now() / 1000; + this.delta = now - this.lastTime; + this.frameTime += this.delta; + this.totalTime += this.delta; + if (this.delta > this.maxDelta) + this.delta = this.maxDelta; + this.lastTime = now; + this.frameCount++; + if (this.frameTime > 1) { + this.framesPerSecond = this.frameCount / this.frameTime; + this.frameTime = 0; + this.frameCount = 0; + } + }; + return TimeKeeper; + }()); + spine.TimeKeeper = TimeKeeper; + var WindowedMean = (function () { + function WindowedMean(windowSize) { + if (windowSize === void 0) { windowSize = 32; } + this.addedValues = 0; + this.lastValue = 0; + this.mean = 0; + this.dirty = true; + this.values = new Array(windowSize); + } + WindowedMean.prototype.hasEnoughData = function () { + return this.addedValues >= this.values.length; + }; + WindowedMean.prototype.addValue = function (value) { + if (this.addedValues < this.values.length) + this.addedValues++; + this.values[this.lastValue++] = value; + if (this.lastValue > this.values.length - 1) + this.lastValue = 0; + this.dirty = true; + }; + WindowedMean.prototype.getMean = function () { + if (this.hasEnoughData()) { + if (this.dirty) { + var mean = 0; + for (var i = 0; i < this.values.length; i++) { + mean += this.values[i]; + } + this.mean = mean / this.values.length; + this.dirty = false; + } + return this.mean; + } + else { + return 0; + } + }; + return WindowedMean; + }()); + spine.WindowedMean = WindowedMean; })(spine || (spine = {})); //# sourceMappingURL=spine-canvas.js.map \ No newline at end of file diff --git a/spine-ts/build/spine-core.d.ts b/spine-ts/build/spine-core.d.ts index 2d00787aa..b56595de1 100644 --- a/spine-ts/build/spine-core.d.ts +++ b/spine-ts/build/spine-core.d.ts @@ -1,1160 +1,1160 @@ declare module spine { - class Animation { - name: string; - timelines: Array; - duration: number; - constructor(name: string, timelines: Array, duration: number); - apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - static binarySearch(values: ArrayLike, target: number, step?: number): number; - static linearSearch(values: ArrayLike, target: number, step: number): number; - } - interface Timeline { - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - getPropertyId(): number; - } - enum TimelineType { - rotate = 0, - translate = 1, - scale = 2, - shear = 3, - attachment = 4, - color = 5, - deform = 6, - event = 7, - drawOrder = 8, - ikConstraint = 9, - transformConstraint = 10, - pathConstraintPosition = 11, - pathConstraintSpacing = 12, - pathConstraintMix = 13, - twoColor = 14, - } - abstract class CurveTimeline implements Timeline { - static LINEAR: number; - static STEPPED: number; - static BEZIER: number; - static BEZIER_SIZE: number; - private curves; - abstract getPropertyId(): number; - constructor(frameCount: number); - getFrameCount(): number; - setLinear(frameIndex: number): void; - setStepped(frameIndex: number): void; - getCurveType(frameIndex: number): number; - setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; - getCurvePercent(frameIndex: number, percent: number): number; - abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class RotateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATION: number; - static ROTATION: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, degrees: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TranslateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_X: number; - static PREV_Y: number; - static X: number; - static Y: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, x: number, y: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ScaleTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ShearTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static R: number; - static G: number; - static B: number; - static A: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TwoColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static PREV_R2: number; - static PREV_G2: number; - static PREV_B2: number; - static R: number; - static G: number; - static B: number; - static A: number; - static R2: number; - static G2: number; - static B2: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class AttachmentTimeline implements Timeline { - slotIndex: number; - frames: ArrayLike; - attachmentNames: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, attachmentName: string): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DeformTimeline extends CurveTimeline { - slotIndex: number; - attachment: VertexAttachment; - frames: ArrayLike; - frameVertices: Array>; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class EventTimeline implements Timeline { - frames: ArrayLike; - events: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, event: Event): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DrawOrderTimeline implements Timeline { - frames: ArrayLike; - drawOrders: Array>; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, drawOrder: Array): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class IkConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_MIX: number; - static PREV_BEND_DIRECTION: number; - static MIX: number; - static BEND_DIRECTION: number; - ikConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TransformConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static PREV_SCALE: number; - static PREV_SHEAR: number; - static ROTATE: number; - static TRANSLATE: number; - static SCALE: number; - static SHEAR: number; - transformConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintPositionTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_VALUE: number; - static VALUE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, value: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintMixTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static ROTATE: number; - static TRANSLATE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } + class Animation { + name: string; + timelines: Array; + duration: number; + constructor(name: string, timelines: Array, duration: number); + apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + static binarySearch(values: ArrayLike, target: number, step?: number): number; + static linearSearch(values: ArrayLike, target: number, step: number): number; + } + interface Timeline { + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + getPropertyId(): number; + } + enum TimelineType { + rotate = 0, + translate = 1, + scale = 2, + shear = 3, + attachment = 4, + color = 5, + deform = 6, + event = 7, + drawOrder = 8, + ikConstraint = 9, + transformConstraint = 10, + pathConstraintPosition = 11, + pathConstraintSpacing = 12, + pathConstraintMix = 13, + twoColor = 14, + } + abstract class CurveTimeline implements Timeline { + static LINEAR: number; + static STEPPED: number; + static BEZIER: number; + static BEZIER_SIZE: number; + private curves; + abstract getPropertyId(): number; + constructor(frameCount: number); + getFrameCount(): number; + setLinear(frameIndex: number): void; + setStepped(frameIndex: number): void; + getCurveType(frameIndex: number): number; + setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; + getCurvePercent(frameIndex: number, percent: number): number; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class RotateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATION: number; + static ROTATION: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, degrees: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TranslateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_X: number; + static PREV_Y: number; + static X: number; + static Y: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, x: number, y: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ScaleTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ShearTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static R: number; + static G: number; + static B: number; + static A: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TwoColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static PREV_R2: number; + static PREV_G2: number; + static PREV_B2: number; + static R: number; + static G: number; + static B: number; + static A: number; + static R2: number; + static G2: number; + static B2: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class AttachmentTimeline implements Timeline { + slotIndex: number; + frames: ArrayLike; + attachmentNames: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, attachmentName: string): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DeformTimeline extends CurveTimeline { + slotIndex: number; + attachment: VertexAttachment; + frames: ArrayLike; + frameVertices: Array>; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class EventTimeline implements Timeline { + frames: ArrayLike; + events: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, event: Event): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DrawOrderTimeline implements Timeline { + frames: ArrayLike; + drawOrders: Array>; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, drawOrder: Array): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class IkConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_MIX: number; + static PREV_BEND_DIRECTION: number; + static MIX: number; + static BEND_DIRECTION: number; + ikConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TransformConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static PREV_SCALE: number; + static PREV_SHEAR: number; + static ROTATE: number; + static TRANSLATE: number; + static SCALE: number; + static SHEAR: number; + transformConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintPositionTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_VALUE: number; + static VALUE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, value: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintMixTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static ROTATE: number; + static TRANSLATE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } } declare module spine { - class AnimationState { - static emptyAnimation: Animation; - static SUBSEQUENT: number; - static FIRST: number; - static DIP: number; - static DIP_MIX: number; - data: AnimationStateData; - tracks: TrackEntry[]; - events: Event[]; - listeners: AnimationStateListener2[]; - queue: EventQueue; - propertyIDs: IntSet; - mixingTo: TrackEntry[]; - animationsChanged: boolean; - timeScale: number; - trackEntryPool: Pool; - constructor(data: AnimationStateData); - update(delta: number): void; - updateMixingFrom(to: TrackEntry, delta: number): boolean; - apply(skeleton: Skeleton): boolean; - applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; - applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; - queueEvents(entry: TrackEntry, animationTime: number): void; - clearTracks(): void; - clearTrack(trackIndex: number): void; - setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; - setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; - setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; - addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; - addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; - setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; - addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; - setEmptyAnimations(mixDuration: number): void; - expandToIndex(index: number): TrackEntry; - trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; - disposeNext(entry: TrackEntry): void; - _animationsChanged(): void; - getCurrent(trackIndex: number): TrackEntry; - addListener(listener: AnimationStateListener2): void; - removeListener(listener: AnimationStateListener2): void; - clearListeners(): void; - clearListenerNotifications(): void; - } - class TrackEntry { - animation: Animation; - next: TrackEntry; - mixingFrom: TrackEntry; - listener: AnimationStateListener2; - trackIndex: number; - loop: boolean; - eventThreshold: number; - attachmentThreshold: number; - drawOrderThreshold: number; - animationStart: number; - animationEnd: number; - animationLast: number; - nextAnimationLast: number; - delay: number; - trackTime: number; - trackLast: number; - nextTrackLast: number; - trackEnd: number; - timeScale: number; - alpha: number; - mixTime: number; - mixDuration: number; - interruptAlpha: number; - totalAlpha: number; - timelineData: number[]; - timelineDipMix: TrackEntry[]; - timelinesRotation: number[]; - reset(): void; - setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; - hasTimeline(id: number): boolean; - getAnimationTime(): number; - setAnimationLast(animationLast: number): void; - isComplete(): boolean; - resetRotationDirections(): void; - } - class EventQueue { - objects: Array; - drainDisabled: boolean; - animState: AnimationState; - constructor(animState: AnimationState); - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - drain(): void; - clear(): void; - } - enum EventType { - start = 0, - interrupt = 1, - end = 2, - dispose = 3, - complete = 4, - event = 5, - } - interface AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } - abstract class AnimationStateAdapter2 implements AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } + class AnimationState { + static emptyAnimation: Animation; + static SUBSEQUENT: number; + static FIRST: number; + static DIP: number; + static DIP_MIX: number; + data: AnimationStateData; + tracks: TrackEntry[]; + events: Event[]; + listeners: AnimationStateListener2[]; + queue: EventQueue; + propertyIDs: IntSet; + mixingTo: TrackEntry[]; + animationsChanged: boolean; + timeScale: number; + trackEntryPool: Pool; + constructor(data: AnimationStateData); + update(delta: number): void; + updateMixingFrom(to: TrackEntry, delta: number): boolean; + apply(skeleton: Skeleton): boolean; + applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; + applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; + queueEvents(entry: TrackEntry, animationTime: number): void; + clearTracks(): void; + clearTrack(trackIndex: number): void; + setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; + setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; + setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; + addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; + addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; + setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; + addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; + setEmptyAnimations(mixDuration: number): void; + expandToIndex(index: number): TrackEntry; + trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; + disposeNext(entry: TrackEntry): void; + _animationsChanged(): void; + getCurrent(trackIndex: number): TrackEntry; + addListener(listener: AnimationStateListener2): void; + removeListener(listener: AnimationStateListener2): void; + clearListeners(): void; + clearListenerNotifications(): void; + } + class TrackEntry { + animation: Animation; + next: TrackEntry; + mixingFrom: TrackEntry; + listener: AnimationStateListener2; + trackIndex: number; + loop: boolean; + eventThreshold: number; + attachmentThreshold: number; + drawOrderThreshold: number; + animationStart: number; + animationEnd: number; + animationLast: number; + nextAnimationLast: number; + delay: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; + timeScale: number; + alpha: number; + mixTime: number; + mixDuration: number; + interruptAlpha: number; + totalAlpha: number; + timelineData: number[]; + timelineDipMix: TrackEntry[]; + timelinesRotation: number[]; + reset(): void; + setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; + hasTimeline(id: number): boolean; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; + isComplete(): boolean; + resetRotationDirections(): void; + } + class EventQueue { + objects: Array; + drainDisabled: boolean; + animState: AnimationState; + constructor(animState: AnimationState); + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + drain(): void; + clear(): void; + } + enum EventType { + start = 0, + interrupt = 1, + end = 2, + dispose = 3, + complete = 4, + event = 5, + } + interface AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } + abstract class AnimationStateAdapter2 implements AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } } declare module spine { - class AnimationStateData { - skeletonData: SkeletonData; - animationToMixTime: Map; - defaultMix: number; - constructor(skeletonData: SkeletonData); - setMix(fromName: string, toName: string, duration: number): void; - setMixWith(from: Animation, to: Animation, duration: number): void; - getMix(from: Animation, to: Animation): number; - } + class AnimationStateData { + skeletonData: SkeletonData; + animationToMixTime: Map; + defaultMix: number; + constructor(skeletonData: SkeletonData); + setMix(fromName: string, toName: string, duration: number): void; + setMixWith(from: Animation, to: Animation, duration: number): void; + getMix(from: Animation, to: Animation): number; + } } declare module spine { - class AssetManager implements Disposable { - private pathPrefix; - private textureLoader; - private assets; - private errors; - private toLoad; - private loaded; - constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); - loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; - loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - get(path: string): any; - remove(path: string): void; - removeAll(): void; - isLoadingComplete(): boolean; - getToLoad(): number; - getLoaded(): number; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class AssetManager implements Disposable { + private pathPrefix; + private textureLoader; + private assets; + private errors; + private toLoad; + private loaded; + constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); + loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; + loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + get(path: string): any; + remove(path: string): void; + removeAll(): void; + isLoadingComplete(): boolean; + getToLoad(): number; + getLoaded(): number; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class AtlasAttachmentLoader implements AttachmentLoader { - atlas: TextureAtlas; - constructor(atlas: TextureAtlas); - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + class AtlasAttachmentLoader implements AttachmentLoader { + atlas: TextureAtlas; + constructor(atlas: TextureAtlas); + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - abstract class Attachment { - name: string; - constructor(name: string); - } - abstract class VertexAttachment extends Attachment { - bones: Array; - vertices: ArrayLike; - worldVerticesLength: number; - constructor(name: string); - computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - } + abstract class Attachment { + name: string; + constructor(name: string); + } + abstract class VertexAttachment extends Attachment { + bones: Array; + vertices: ArrayLike; + worldVerticesLength: number; + constructor(name: string); + computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + } } declare module spine { - interface AttachmentLoader { - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + interface AttachmentLoader { + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - enum AttachmentType { - Region = 0, - BoundingBox = 1, - Mesh = 2, - LinkedMesh = 3, - Path = 4, - Point = 5, - } + enum AttachmentType { + Region = 0, + BoundingBox = 1, + Mesh = 2, + LinkedMesh = 3, + Path = 4, + Point = 5, + } } declare module spine { - class BoundingBoxAttachment extends VertexAttachment { - color: Color; - constructor(name: string); - } + class BoundingBoxAttachment extends VertexAttachment { + color: Color; + constructor(name: string); + } } declare module spine { - class ClippingAttachment extends VertexAttachment { - endSlot: SlotData; - color: Color; - constructor(name: string); - } + class ClippingAttachment extends VertexAttachment { + endSlot: SlotData; + color: Color; + constructor(name: string); + } } declare module spine { - class MeshAttachment extends VertexAttachment { - region: TextureRegion; - path: string; - regionUVs: ArrayLike; - uvs: ArrayLike; - triangles: Array; - color: Color; - hullLength: number; - private parentMesh; - inheritDeform: boolean; - tempColor: Color; - constructor(name: string); - updateUVs(): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - getParentMesh(): MeshAttachment; - setParentMesh(parentMesh: MeshAttachment): void; - } + class MeshAttachment extends VertexAttachment { + region: TextureRegion; + path: string; + regionUVs: ArrayLike; + uvs: ArrayLike; + triangles: Array; + color: Color; + hullLength: number; + private parentMesh; + inheritDeform: boolean; + tempColor: Color; + constructor(name: string); + updateUVs(): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + getParentMesh(): MeshAttachment; + setParentMesh(parentMesh: MeshAttachment): void; + } } declare module spine { - class PathAttachment extends VertexAttachment { - lengths: Array; - closed: boolean; - constantSpeed: boolean; - color: Color; - constructor(name: string); - } + class PathAttachment extends VertexAttachment { + lengths: Array; + closed: boolean; + constantSpeed: boolean; + color: Color; + constructor(name: string); + } } declare module spine { - class PointAttachment extends VertexAttachment { - x: number; - y: number; - rotation: number; - color: Color; - constructor(name: string); - computeWorldPosition(bone: Bone, point: Vector2): Vector2; - computeWorldRotation(bone: Bone): number; - } + class PointAttachment extends VertexAttachment { + x: number; + y: number; + rotation: number; + color: Color; + constructor(name: string); + computeWorldPosition(bone: Bone, point: Vector2): Vector2; + computeWorldRotation(bone: Bone): number; + } } declare module spine { - class RegionAttachment extends Attachment { - static OX1: number; - static OY1: number; - static OX2: number; - static OY2: number; - static OX3: number; - static OY3: number; - static OX4: number; - static OY4: number; - static X1: number; - static Y1: number; - static C1R: number; - static C1G: number; - static C1B: number; - static C1A: number; - static U1: number; - static V1: number; - static X2: number; - static Y2: number; - static C2R: number; - static C2G: number; - static C2B: number; - static C2A: number; - static U2: number; - static V2: number; - static X3: number; - static Y3: number; - static C3R: number; - static C3G: number; - static C3B: number; - static C3A: number; - static U3: number; - static V3: number; - static X4: number; - static Y4: number; - static C4R: number; - static C4G: number; - static C4B: number; - static C4A: number; - static U4: number; - static V4: number; - x: number; - y: number; - scaleX: number; - scaleY: number; - rotation: number; - width: number; - height: number; - color: Color; - path: string; - rendererObject: any; - region: TextureRegion; - offset: ArrayLike; - uvs: ArrayLike; - tempColor: Color; - constructor(name: string); - updateOffset(): void; - setRegion(region: TextureRegion): void; - computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; - } + class RegionAttachment extends Attachment { + static OX1: number; + static OY1: number; + static OX2: number; + static OY2: number; + static OX3: number; + static OY3: number; + static OX4: number; + static OY4: number; + static X1: number; + static Y1: number; + static C1R: number; + static C1G: number; + static C1B: number; + static C1A: number; + static U1: number; + static V1: number; + static X2: number; + static Y2: number; + static C2R: number; + static C2G: number; + static C2B: number; + static C2A: number; + static U2: number; + static V2: number; + static X3: number; + static Y3: number; + static C3R: number; + static C3G: number; + static C3B: number; + static C3A: number; + static U3: number; + static V3: number; + static X4: number; + static Y4: number; + static C4R: number; + static C4G: number; + static C4B: number; + static C4A: number; + static U4: number; + static V4: number; + x: number; + y: number; + scaleX: number; + scaleY: number; + rotation: number; + width: number; + height: number; + color: Color; + path: string; + rendererObject: any; + region: TextureRegion; + offset: ArrayLike; + uvs: ArrayLike; + tempColor: Color; + constructor(name: string); + updateOffset(): void; + setRegion(region: TextureRegion): void; + computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; + } } declare module spine { - enum BlendMode { - Normal = 0, - Additive = 1, - Multiply = 2, - Screen = 3, - } + enum BlendMode { + Normal = 0, + Additive = 1, + Multiply = 2, + Screen = 3, + } } declare module spine { - class Bone implements Updatable { - data: BoneData; - skeleton: Skeleton; - parent: Bone; - children: Bone[]; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - ax: number; - ay: number; - arotation: number; - ascaleX: number; - ascaleY: number; - ashearX: number; - ashearY: number; - appliedValid: boolean; - a: number; - b: number; - worldX: number; - c: number; - d: number; - worldY: number; - sorted: boolean; - constructor(data: BoneData, skeleton: Skeleton, parent: Bone); - update(): void; - updateWorldTransform(): void; - updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; - setToSetupPose(): void; - getWorldRotationX(): number; - getWorldRotationY(): number; - getWorldScaleX(): number; - getWorldScaleY(): number; - updateAppliedTransform(): void; - worldToLocal(world: Vector2): Vector2; - localToWorld(local: Vector2): Vector2; - worldToLocalRotation(worldRotation: number): number; - localToWorldRotation(localRotation: number): number; - rotateWorld(degrees: number): void; - } + class Bone implements Updatable { + data: BoneData; + skeleton: Skeleton; + parent: Bone; + children: Bone[]; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + ax: number; + ay: number; + arotation: number; + ascaleX: number; + ascaleY: number; + ashearX: number; + ashearY: number; + appliedValid: boolean; + a: number; + b: number; + worldX: number; + c: number; + d: number; + worldY: number; + sorted: boolean; + constructor(data: BoneData, skeleton: Skeleton, parent: Bone); + update(): void; + updateWorldTransform(): void; + updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; + setToSetupPose(): void; + getWorldRotationX(): number; + getWorldRotationY(): number; + getWorldScaleX(): number; + getWorldScaleY(): number; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + worldToLocalRotation(worldRotation: number): number; + localToWorldRotation(localRotation: number): number; + rotateWorld(degrees: number): void; + } } declare module spine { - class BoneData { - index: number; - name: string; - parent: BoneData; - length: number; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - transformMode: TransformMode; - constructor(index: number, name: string, parent: BoneData); - } - enum TransformMode { - Normal = 0, - OnlyTranslation = 1, - NoRotationOrReflection = 2, - NoScale = 3, - NoScaleOrReflection = 4, - } + class BoneData { + index: number; + name: string; + parent: BoneData; + length: number; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + transformMode: TransformMode; + constructor(index: number, name: string, parent: BoneData); + } + enum TransformMode { + Normal = 0, + OnlyTranslation = 1, + NoRotationOrReflection = 2, + NoScale = 3, + NoScaleOrReflection = 4, + } } declare module spine { - interface Constraint extends Updatable { - getOrder(): number; - } + interface Constraint extends Updatable { + getOrder(): number; + } } declare module spine { - class Event { - data: EventData; - intValue: number; - floatValue: number; - stringValue: string; - time: number; - constructor(time: number, data: EventData); - } + class Event { + data: EventData; + intValue: number; + floatValue: number; + stringValue: string; + time: number; + constructor(time: number, data: EventData); + } } declare module spine { - class EventData { - name: string; - intValue: number; - floatValue: number; - stringValue: string; - constructor(name: string); - } + class EventData { + name: string; + intValue: number; + floatValue: number; + stringValue: string; + constructor(name: string); + } } declare module spine { - class IkConstraint implements Constraint { - data: IkConstraintData; - bones: Array; - target: Bone; - mix: number; - bendDirection: number; - constructor(data: IkConstraintData, skeleton: Skeleton); - getOrder(): number; - apply(): void; - update(): void; - apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; - apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; - } + class IkConstraint implements Constraint { + data: IkConstraintData; + bones: Array; + target: Bone; + mix: number; + bendDirection: number; + constructor(data: IkConstraintData, skeleton: Skeleton); + getOrder(): number; + apply(): void; + update(): void; + apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; + apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; + } } declare module spine { - class IkConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - bendDirection: number; - mix: number; - constructor(name: string); - } + class IkConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + bendDirection: number; + mix: number; + constructor(name: string); + } } declare module spine { - class PathConstraint implements Constraint { - static NONE: number; - static BEFORE: number; - static AFTER: number; - data: PathConstraintData; - bones: Array; - target: Slot; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - spaces: number[]; - positions: number[]; - world: number[]; - curves: number[]; - lengths: number[]; - segments: number[]; - constructor(data: PathConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; - addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; - getOrder(): number; - } + class PathConstraint implements Constraint { + static NONE: number; + static BEFORE: number; + static AFTER: number; + data: PathConstraintData; + bones: Array; + target: Slot; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + spaces: number[]; + positions: number[]; + world: number[]; + curves: number[]; + lengths: number[]; + segments: number[]; + constructor(data: PathConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; + addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; + getOrder(): number; + } } declare module spine { - class PathConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: SlotData; - positionMode: PositionMode; - spacingMode: SpacingMode; - rotateMode: RotateMode; - offsetRotation: number; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - constructor(name: string); - } - enum PositionMode { - Fixed = 0, - Percent = 1, - } - enum SpacingMode { - Length = 0, - Fixed = 1, - Percent = 2, - } - enum RotateMode { - Tangent = 0, - Chain = 1, - ChainScale = 2, - } + class PathConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: SlotData; + positionMode: PositionMode; + spacingMode: SpacingMode; + rotateMode: RotateMode; + offsetRotation: number; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + constructor(name: string); + } + enum PositionMode { + Fixed = 0, + Percent = 1, + } + enum SpacingMode { + Length = 0, + Fixed = 1, + Percent = 2, + } + enum RotateMode { + Tangent = 0, + Chain = 1, + ChainScale = 2, + } } declare module spine { - class SharedAssetManager implements Disposable { - private pathPrefix; - private clientAssets; - private queuedAssets; - private rawAssets; - private errors; - constructor(pathPrefix?: string); - private queueAsset(clientId, textureLoader, path); - loadText(clientId: string, path: string): void; - loadJson(clientId: string, path: string): void; - loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; - get(clientId: string, path: string): any; - private updateClientAssets(clientAssets); - isLoadingComplete(clientId: string): boolean; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class SharedAssetManager implements Disposable { + private pathPrefix; + private clientAssets; + private queuedAssets; + private rawAssets; + private errors; + constructor(pathPrefix?: string); + private queueAsset(clientId, textureLoader, path); + loadText(clientId: string, path: string): void; + loadJson(clientId: string, path: string): void; + loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; + get(clientId: string, path: string): any; + private updateClientAssets(clientAssets); + isLoadingComplete(clientId: string): boolean; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class Skeleton { - data: SkeletonData; - bones: Array; - slots: Array; - drawOrder: Array; - ikConstraints: Array; - transformConstraints: Array; - pathConstraints: Array; - _updateCache: Updatable[]; - updateCacheReset: Updatable[]; - skin: Skin; - color: Color; - time: number; - flipX: boolean; - flipY: boolean; - x: number; - y: number; - constructor(data: SkeletonData); - updateCache(): void; - sortIkConstraint(constraint: IkConstraint): void; - sortPathConstraint(constraint: PathConstraint): void; - sortTransformConstraint(constraint: TransformConstraint): void; - sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; - sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; - sortBone(bone: Bone): void; - sortReset(bones: Array): void; - updateWorldTransform(): void; - setToSetupPose(): void; - setBonesToSetupPose(): void; - setSlotsToSetupPose(): void; - getRootBone(): Bone; - findBone(boneName: string): Bone; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): Slot; - findSlotIndex(slotName: string): number; - setSkinByName(skinName: string): void; - setSkin(newSkin: Skin): void; - getAttachmentByName(slotName: string, attachmentName: string): Attachment; - getAttachment(slotIndex: number, attachmentName: string): Attachment; - setAttachment(slotName: string, attachmentName: string): void; - findIkConstraint(constraintName: string): IkConstraint; - findTransformConstraint(constraintName: string): TransformConstraint; - findPathConstraint(constraintName: string): PathConstraint; - getBounds(offset: Vector2, size: Vector2, temp: Array): void; - update(delta: number): void; - } + class Skeleton { + data: SkeletonData; + bones: Array; + slots: Array; + drawOrder: Array; + ikConstraints: Array; + transformConstraints: Array; + pathConstraints: Array; + _updateCache: Updatable[]; + updateCacheReset: Updatable[]; + skin: Skin; + color: Color; + time: number; + flipX: boolean; + flipY: boolean; + x: number; + y: number; + constructor(data: SkeletonData); + updateCache(): void; + sortIkConstraint(constraint: IkConstraint): void; + sortPathConstraint(constraint: PathConstraint): void; + sortTransformConstraint(constraint: TransformConstraint): void; + sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; + sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; + sortBone(bone: Bone): void; + sortReset(bones: Array): void; + updateWorldTransform(): void; + setToSetupPose(): void; + setBonesToSetupPose(): void; + setSlotsToSetupPose(): void; + getRootBone(): Bone; + findBone(boneName: string): Bone; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): Slot; + findSlotIndex(slotName: string): number; + setSkinByName(skinName: string): void; + setSkin(newSkin: Skin): void; + getAttachmentByName(slotName: string, attachmentName: string): Attachment; + getAttachment(slotIndex: number, attachmentName: string): Attachment; + setAttachment(slotName: string, attachmentName: string): void; + findIkConstraint(constraintName: string): IkConstraint; + findTransformConstraint(constraintName: string): TransformConstraint; + findPathConstraint(constraintName: string): PathConstraint; + getBounds(offset: Vector2, size: Vector2, temp: Array): void; + update(delta: number): void; + } } declare module spine { - class SkeletonBounds { - minX: number; - minY: number; - maxX: number; - maxY: number; - boundingBoxes: BoundingBoxAttachment[]; - polygons: ArrayLike[]; - private polygonPool; - update(skeleton: Skeleton, updateAabb: boolean): void; - aabbCompute(): void; - aabbContainsPoint(x: number, y: number): boolean; - aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; - aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; - containsPoint(x: number, y: number): BoundingBoxAttachment; - containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; - intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; - intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; - getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; - getWidth(): number; - getHeight(): number; - } + class SkeletonBounds { + minX: number; + minY: number; + maxX: number; + maxY: number; + boundingBoxes: BoundingBoxAttachment[]; + polygons: ArrayLike[]; + private polygonPool; + update(skeleton: Skeleton, updateAabb: boolean): void; + aabbCompute(): void; + aabbContainsPoint(x: number, y: number): boolean; + aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; + aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; + containsPoint(x: number, y: number): BoundingBoxAttachment; + containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; + intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; + intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; + getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; + getWidth(): number; + getHeight(): number; + } } declare module spine { - class SkeletonClipping { - private triangulator; - private clippingPolygon; - private clipOutput; - clippedVertices: number[]; - clippedTriangles: number[]; - private scratch; - private clipAttachment; - private clippingPolygons; - clipStart(slot: Slot, clip: ClippingAttachment): number; - clipEndWithSlot(slot: Slot): void; - clipEnd(): void; - isClipping(): boolean; - clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; - clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; - static makeClockwise(polygon: ArrayLike): void; - } + class SkeletonClipping { + private triangulator; + private clippingPolygon; + private clipOutput; + clippedVertices: number[]; + clippedTriangles: number[]; + private scratch; + private clipAttachment; + private clippingPolygons; + clipStart(slot: Slot, clip: ClippingAttachment): number; + clipEndWithSlot(slot: Slot): void; + clipEnd(): void; + isClipping(): boolean; + clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; + clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; + static makeClockwise(polygon: ArrayLike): void; + } } declare module spine { - class SkeletonData { - name: string; - bones: BoneData[]; - slots: SlotData[]; - skins: Skin[]; - defaultSkin: Skin; - events: EventData[]; - animations: Animation[]; - ikConstraints: IkConstraintData[]; - transformConstraints: TransformConstraintData[]; - pathConstraints: PathConstraintData[]; - width: number; - height: number; - version: string; - hash: string; - fps: number; - imagesPath: string; - findBone(boneName: string): BoneData; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): SlotData; - findSlotIndex(slotName: string): number; - findSkin(skinName: string): Skin; - findEvent(eventDataName: string): EventData; - findAnimation(animationName: string): Animation; - findIkConstraint(constraintName: string): IkConstraintData; - findTransformConstraint(constraintName: string): TransformConstraintData; - findPathConstraint(constraintName: string): PathConstraintData; - findPathConstraintIndex(pathConstraintName: string): number; - } + class SkeletonData { + name: string; + bones: BoneData[]; + slots: SlotData[]; + skins: Skin[]; + defaultSkin: Skin; + events: EventData[]; + animations: Animation[]; + ikConstraints: IkConstraintData[]; + transformConstraints: TransformConstraintData[]; + pathConstraints: PathConstraintData[]; + width: number; + height: number; + version: string; + hash: string; + fps: number; + imagesPath: string; + findBone(boneName: string): BoneData; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): SlotData; + findSlotIndex(slotName: string): number; + findSkin(skinName: string): Skin; + findEvent(eventDataName: string): EventData; + findAnimation(animationName: string): Animation; + findIkConstraint(constraintName: string): IkConstraintData; + findTransformConstraint(constraintName: string): TransformConstraintData; + findPathConstraint(constraintName: string): PathConstraintData; + findPathConstraintIndex(pathConstraintName: string): number; + } } declare module spine { - class SkeletonJson { - attachmentLoader: AttachmentLoader; - scale: number; - private linkedMeshes; - constructor(attachmentLoader: AttachmentLoader); - readSkeletonData(json: string | any): SkeletonData; - readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; - readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; - readAnimation(map: any, name: string, skeletonData: SkeletonData): void; - readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; - getValue(map: any, prop: string, defaultValue: any): any; - static blendModeFromString(str: string): BlendMode; - static positionModeFromString(str: string): PositionMode; - static spacingModeFromString(str: string): SpacingMode; - static rotateModeFromString(str: string): RotateMode; - static transformModeFromString(str: string): TransformMode; - } + class SkeletonJson { + attachmentLoader: AttachmentLoader; + scale: number; + private linkedMeshes; + constructor(attachmentLoader: AttachmentLoader); + readSkeletonData(json: string | any): SkeletonData; + readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; + readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; + readAnimation(map: any, name: string, skeletonData: SkeletonData): void; + readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; + getValue(map: any, prop: string, defaultValue: any): any; + static blendModeFromString(str: string): BlendMode; + static positionModeFromString(str: string): PositionMode; + static spacingModeFromString(str: string): SpacingMode; + static rotateModeFromString(str: string): RotateMode; + static transformModeFromString(str: string): TransformMode; + } } declare module spine { - class Skin { - name: string; - attachments: Map[]; - constructor(name: string); - addAttachment(slotIndex: number, name: string, attachment: Attachment): void; - getAttachment(slotIndex: number, name: string): Attachment; - attachAll(skeleton: Skeleton, oldSkin: Skin): void; - } + class Skin { + name: string; + attachments: Map[]; + constructor(name: string); + addAttachment(slotIndex: number, name: string, attachment: Attachment): void; + getAttachment(slotIndex: number, name: string): Attachment; + attachAll(skeleton: Skeleton, oldSkin: Skin): void; + } } declare module spine { - class Slot { - data: SlotData; - bone: Bone; - color: Color; - darkColor: Color; - private attachment; - private attachmentTime; - attachmentVertices: number[]; - constructor(data: SlotData, bone: Bone); - getAttachment(): Attachment; - setAttachment(attachment: Attachment): void; - setAttachmentTime(time: number): void; - getAttachmentTime(): number; - setToSetupPose(): void; - } + class Slot { + data: SlotData; + bone: Bone; + color: Color; + darkColor: Color; + private attachment; + private attachmentTime; + attachmentVertices: number[]; + constructor(data: SlotData, bone: Bone); + getAttachment(): Attachment; + setAttachment(attachment: Attachment): void; + setAttachmentTime(time: number): void; + getAttachmentTime(): number; + setToSetupPose(): void; + } } declare module spine { - class SlotData { - index: number; - name: string; - boneData: BoneData; - color: Color; - darkColor: Color; - attachmentName: string; - blendMode: BlendMode; - constructor(index: number, name: string, boneData: BoneData); - } + class SlotData { + index: number; + name: string; + boneData: BoneData; + color: Color; + darkColor: Color; + attachmentName: string; + blendMode: BlendMode; + constructor(index: number, name: string, boneData: BoneData); + } } declare module spine { - abstract class Texture { - protected _image: HTMLImageElement; - constructor(image: HTMLImageElement); - getImage(): HTMLImageElement; - abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - abstract dispose(): void; - static filterFromString(text: string): TextureFilter; - static wrapFromString(text: string): TextureWrap; - } - enum TextureFilter { - Nearest = 9728, - Linear = 9729, - MipMap = 9987, - MipMapNearestNearest = 9984, - MipMapLinearNearest = 9985, - MipMapNearestLinear = 9986, - MipMapLinearLinear = 9987, - } - enum TextureWrap { - MirroredRepeat = 33648, - ClampToEdge = 33071, - Repeat = 10497, - } - class TextureRegion { - renderObject: any; - u: number; - v: number; - u2: number; - v2: number; - width: number; - height: number; - rotate: boolean; - offsetX: number; - offsetY: number; - originalWidth: number; - originalHeight: number; - } + abstract class Texture { + protected _image: HTMLImageElement; + constructor(image: HTMLImageElement); + getImage(): HTMLImageElement; + abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + abstract dispose(): void; + static filterFromString(text: string): TextureFilter; + static wrapFromString(text: string): TextureWrap; + } + enum TextureFilter { + Nearest = 9728, + Linear = 9729, + MipMap = 9987, + MipMapNearestNearest = 9984, + MipMapLinearNearest = 9985, + MipMapNearestLinear = 9986, + MipMapLinearLinear = 9987, + } + enum TextureWrap { + MirroredRepeat = 33648, + ClampToEdge = 33071, + Repeat = 10497, + } + class TextureRegion { + renderObject: any; + u: number; + v: number; + u2: number; + v2: number; + width: number; + height: number; + rotate: boolean; + offsetX: number; + offsetY: number; + originalWidth: number; + originalHeight: number; + } } declare module spine { - class TextureAtlas implements Disposable { - pages: TextureAtlasPage[]; - regions: TextureAtlasRegion[]; - constructor(atlasText: string, textureLoader: (path: string) => any); - private load(atlasText, textureLoader); - findRegion(name: string): TextureAtlasRegion; - dispose(): void; - } - class TextureAtlasPage { - name: string; - minFilter: TextureFilter; - magFilter: TextureFilter; - uWrap: TextureWrap; - vWrap: TextureWrap; - texture: Texture; - width: number; - height: number; - } - class TextureAtlasRegion extends TextureRegion { - page: TextureAtlasPage; - name: string; - x: number; - y: number; - index: number; - rotate: boolean; - texture: Texture; - } + class TextureAtlas implements Disposable { + pages: TextureAtlasPage[]; + regions: TextureAtlasRegion[]; + constructor(atlasText: string, textureLoader: (path: string) => any); + private load(atlasText, textureLoader); + findRegion(name: string): TextureAtlasRegion; + dispose(): void; + } + class TextureAtlasPage { + name: string; + minFilter: TextureFilter; + magFilter: TextureFilter; + uWrap: TextureWrap; + vWrap: TextureWrap; + texture: Texture; + width: number; + height: number; + } + class TextureAtlasRegion extends TextureRegion { + page: TextureAtlasPage; + name: string; + x: number; + y: number; + index: number; + rotate: boolean; + texture: Texture; + } } declare module spine { - class TransformConstraint implements Constraint { - data: TransformConstraintData; - bones: Array; - target: Bone; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - temp: Vector2; - constructor(data: TransformConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - applyAbsoluteWorld(): void; - applyRelativeWorld(): void; - applyAbsoluteLocal(): void; - applyRelativeLocal(): void; - getOrder(): number; - } + class TransformConstraint implements Constraint { + data: TransformConstraintData; + bones: Array; + target: Bone; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + temp: Vector2; + constructor(data: TransformConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + applyAbsoluteWorld(): void; + applyRelativeWorld(): void; + applyAbsoluteLocal(): void; + applyRelativeLocal(): void; + getOrder(): number; + } } declare module spine { - class TransformConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - offsetRotation: number; - offsetX: number; - offsetY: number; - offsetScaleX: number; - offsetScaleY: number; - offsetShearY: number; - relative: boolean; - local: boolean; - constructor(name: string); - } + class TransformConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + offsetRotation: number; + offsetX: number; + offsetY: number; + offsetScaleX: number; + offsetScaleY: number; + offsetShearY: number; + relative: boolean; + local: boolean; + constructor(name: string); + } } declare module spine { - class Triangulator { - private convexPolygons; - private convexPolygonsIndices; - private indicesArray; - private isConcaveArray; - private triangles; - private polygonPool; - private polygonIndicesPool; - triangulate(verticesArray: ArrayLike): Array; - decompose(verticesArray: Array, triangles: Array): Array>; - private static isConcave(index, vertexCount, vertices, indices); - private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); - private static winding(p1x, p1y, p2x, p2y, p3x, p3y); - } + class Triangulator { + private convexPolygons; + private convexPolygonsIndices; + private indicesArray; + private isConcaveArray; + private triangles; + private polygonPool; + private polygonIndicesPool; + triangulate(verticesArray: ArrayLike): Array; + decompose(verticesArray: Array, triangles: Array): Array>; + private static isConcave(index, vertexCount, vertices, indices); + private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); + private static winding(p1x, p1y, p2x, p2y, p3x, p3y); + } } declare module spine { - interface Updatable { - update(): void; - } + interface Updatable { + update(): void; + } } declare module spine { - interface Map { - [key: string]: T; - } - class IntSet { - array: number[]; - add(value: number): boolean; - contains(value: number): boolean; - remove(value: number): void; - clear(): void; - } - interface Disposable { - dispose(): void; - } - interface Restorable { - restore(): void; - } - class Color { - r: number; - g: number; - b: number; - a: number; - static WHITE: Color; - static RED: Color; - static GREEN: Color; - static BLUE: Color; - static MAGENTA: Color; - constructor(r?: number, g?: number, b?: number, a?: number); - set(r: number, g: number, b: number, a: number): this; - setFromColor(c: Color): this; - setFromString(hex: string): this; - add(r: number, g: number, b: number, a: number): this; - clamp(): this; - } - class MathUtils { - static PI: number; - static PI2: number; - static radiansToDegrees: number; - static radDeg: number; - static degreesToRadians: number; - static degRad: number; - static clamp(value: number, min: number, max: number): number; - static cosDeg(degrees: number): number; - static sinDeg(degrees: number): number; - static signum(value: number): number; - static toInt(x: number): number; - static cbrt(x: number): number; - } - class Utils { - static SUPPORTS_TYPED_ARRAYS: boolean; - static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; - static setArraySize(array: Array, size: number, value?: any): Array; - static ensureArrayCapacity(array: Array, size: number, value?: any): Array; - static newArray(size: number, defaultValue: T): Array; - static newFloatArray(size: number): ArrayLike; - static newShortArray(size: number): ArrayLike; - static toFloatArray(array: Array): number[] | Float32Array; - } - class DebugUtils { - static logBones(skeleton: Skeleton): void; - } - class Pool { - private items; - private instantiator; - constructor(instantiator: () => T); - obtain(): T; - free(item: T): void; - freeAll(items: ArrayLike): void; - clear(): void; - } - class Vector2 { - x: number; - y: number; - constructor(x?: number, y?: number); - set(x: number, y: number): Vector2; - length(): number; - normalize(): this; - } - class TimeKeeper { - maxDelta: number; - framesPerSecond: number; - delta: number; - totalTime: number; - private lastTime; - private frameCount; - private frameTime; - update(): void; - } - interface ArrayLike { - length: number; - [n: number]: T; - } - class WindowedMean { - values: Array; - addedValues: number; - lastValue: number; - mean: number; - dirty: boolean; - constructor(windowSize?: number); - hasEnoughData(): boolean; - addValue(value: number): void; - getMean(): number; - } + interface Map { + [key: string]: T; + } + class IntSet { + array: number[]; + add(value: number): boolean; + contains(value: number): boolean; + remove(value: number): void; + clear(): void; + } + interface Disposable { + dispose(): void; + } + interface Restorable { + restore(): void; + } + class Color { + r: number; + g: number; + b: number; + a: number; + static WHITE: Color; + static RED: Color; + static GREEN: Color; + static BLUE: Color; + static MAGENTA: Color; + constructor(r?: number, g?: number, b?: number, a?: number); + set(r: number, g: number, b: number, a: number): this; + setFromColor(c: Color): this; + setFromString(hex: string): this; + add(r: number, g: number, b: number, a: number): this; + clamp(): this; + } + class MathUtils { + static PI: number; + static PI2: number; + static radiansToDegrees: number; + static radDeg: number; + static degreesToRadians: number; + static degRad: number; + static clamp(value: number, min: number, max: number): number; + static cosDeg(degrees: number): number; + static sinDeg(degrees: number): number; + static signum(value: number): number; + static toInt(x: number): number; + static cbrt(x: number): number; + } + class Utils { + static SUPPORTS_TYPED_ARRAYS: boolean; + static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; + static setArraySize(array: Array, size: number, value?: any): Array; + static ensureArrayCapacity(array: Array, size: number, value?: any): Array; + static newArray(size: number, defaultValue: T): Array; + static newFloatArray(size: number): ArrayLike; + static newShortArray(size: number): ArrayLike; + static toFloatArray(array: Array): number[] | Float32Array; + } + class DebugUtils { + static logBones(skeleton: Skeleton): void; + } + class Pool { + private items; + private instantiator; + constructor(instantiator: () => T); + obtain(): T; + free(item: T): void; + freeAll(items: ArrayLike): void; + clear(): void; + } + class Vector2 { + x: number; + y: number; + constructor(x?: number, y?: number); + set(x: number, y: number): Vector2; + length(): number; + normalize(): this; + } + class TimeKeeper { + maxDelta: number; + framesPerSecond: number; + delta: number; + totalTime: number; + private lastTime; + private frameCount; + private frameTime; + update(): void; + } + interface ArrayLike { + length: number; + [n: number]: T; + } + class WindowedMean { + values: Array; + addedValues: number; + lastValue: number; + mean: number; + dirty: boolean; + constructor(windowSize?: number); + hasEnoughData(): boolean; + addValue(value: number): void; + getMean(): number; + } } diff --git a/spine-ts/build/spine-core.js b/spine-ts/build/spine-core.js index d8f2bce5d..f6f58f957 100644 --- a/spine-ts/build/spine-core.js +++ b/spine-ts/build/spine-core.js @@ -1,6218 +1,6218 @@ var __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var spine; (function (spine) { - var Animation = (function () { - function Animation(name, timelines, duration) { - if (name == null) - throw new Error("name cannot be null."); - if (timelines == null) - throw new Error("timelines cannot be null."); - this.name = name; - this.timelines = timelines; - this.duration = duration; - } - Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (loop && this.duration != 0) { - time %= this.duration; - if (lastTime > 0) - lastTime %= this.duration; - } - var timelines = this.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); - }; - Animation.binarySearch = function (values, target, step) { - if (step === void 0) { step = 1; } - var low = 0; - var high = values.length / step - 2; - if (high == 0) - return step; - var current = high >>> 1; - while (true) { - if (values[(current + 1) * step] <= target) - low = current + 1; - else - high = current; - if (low == high) - return (low + 1) * step; - current = (low + high) >>> 1; - } - }; - Animation.linearSearch = function (values, target, step) { - for (var i = 0, last = values.length - step; i <= last; i += step) - if (values[i] > target) - return i; - return -1; - }; - return Animation; - }()); - spine.Animation = Animation; - (function (TimelineType) { - TimelineType[TimelineType["rotate"] = 0] = "rotate"; - TimelineType[TimelineType["translate"] = 1] = "translate"; - TimelineType[TimelineType["scale"] = 2] = "scale"; - TimelineType[TimelineType["shear"] = 3] = "shear"; - TimelineType[TimelineType["attachment"] = 4] = "attachment"; - TimelineType[TimelineType["color"] = 5] = "color"; - TimelineType[TimelineType["deform"] = 6] = "deform"; - TimelineType[TimelineType["event"] = 7] = "event"; - TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; - TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; - TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; - TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; - TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; - TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; - TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; - })(spine.TimelineType || (spine.TimelineType = {})); - var TimelineType = spine.TimelineType; - var CurveTimeline = (function () { - function CurveTimeline(frameCount) { - if (frameCount <= 0) - throw new Error("frameCount must be > 0: " + frameCount); - this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); - } - CurveTimeline.prototype.getFrameCount = function () { - return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; - }; - CurveTimeline.prototype.setLinear = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; - }; - CurveTimeline.prototype.setStepped = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; - }; - CurveTimeline.prototype.getCurveType = function (frameIndex) { - var index = frameIndex * CurveTimeline.BEZIER_SIZE; - if (index == this.curves.length) - return CurveTimeline.LINEAR; - var type = this.curves[index]; - if (type == CurveTimeline.LINEAR) - return CurveTimeline.LINEAR; - if (type == CurveTimeline.STEPPED) - return CurveTimeline.STEPPED; - return CurveTimeline.BEZIER; - }; - CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { - var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; - var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; - var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; - var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var curves = this.curves; - curves[i++] = CurveTimeline.BEZIER; - var x = dfx, y = dfy; - for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - curves[i] = x; - curves[i + 1] = y; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - x += dfx; - y += dfy; - } - }; - CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { - percent = spine.MathUtils.clamp(percent, 0, 1); - var curves = this.curves; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var type = curves[i]; - if (type == CurveTimeline.LINEAR) - return percent; - if (type == CurveTimeline.STEPPED) - return 0; - i++; - var x = 0; - for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - x = curves[i]; - if (x >= percent) { - var prevX = void 0, prevY = void 0; - if (i == start) { - prevX = 0; - prevY = 0; - } - else { - prevX = curves[i - 2]; - prevY = curves[i - 1]; - } - return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); - } - } - var y = curves[i - 1]; - return y + (1 - y) * (percent - x) / (1 - x); - }; - CurveTimeline.LINEAR = 0; - CurveTimeline.STEPPED = 1; - CurveTimeline.BEZIER = 2; - CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; - return CurveTimeline; - }()); - spine.CurveTimeline = CurveTimeline; - var RotateTimeline = (function (_super) { - __extends(RotateTimeline, _super); - function RotateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount << 1); - } - RotateTimeline.prototype.getPropertyId = function () { - return (TimelineType.rotate << 24) + this.boneIndex; - }; - RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { - frameIndex <<= 1; - this.frames[frameIndex] = time; - this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; - }; - RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { - if (setupPose) - bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; - else { - var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; - r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; - bone.rotation += r_1 * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); - var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); - var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - r = prevRotation + r * percent; - if (setupPose) { - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation = bone.data.rotation + r * alpha; - } - else { - r = bone.data.rotation + r - bone.rotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation += r * alpha; - } - }; - RotateTimeline.ENTRIES = 2; - RotateTimeline.PREV_TIME = -2; - RotateTimeline.PREV_ROTATION = -1; - RotateTimeline.ROTATION = 1; - return RotateTimeline; - }(CurveTimeline)); - spine.RotateTimeline = RotateTimeline; - var TranslateTimeline = (function (_super) { - __extends(TranslateTimeline, _super); - function TranslateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); - } - TranslateTimeline.prototype.getPropertyId = function () { - return (TimelineType.translate << 24) + this.boneIndex; - }; - TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { - frameIndex *= TranslateTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TranslateTimeline.X] = x; - this.frames[frameIndex + TranslateTimeline.Y] = y; - }; - TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.x = bone.data.x; - bone.y = bone.data.y; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { - x = frames[frames.length + TranslateTimeline.PREV_X]; - y = frames[frames.length + TranslateTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - x = frames[frame + TranslateTimeline.PREV_X]; - y = frames[frame + TranslateTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); - x += (frames[frame + TranslateTimeline.X] - x) * percent; - y += (frames[frame + TranslateTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.x = bone.data.x + x * alpha; - bone.y = bone.data.y + y * alpha; - } - else { - bone.x += (bone.data.x + x - bone.x) * alpha; - bone.y += (bone.data.y + y - bone.y) * alpha; - } - }; - TranslateTimeline.ENTRIES = 3; - TranslateTimeline.PREV_TIME = -3; - TranslateTimeline.PREV_X = -2; - TranslateTimeline.PREV_Y = -1; - TranslateTimeline.X = 1; - TranslateTimeline.Y = 2; - return TranslateTimeline; - }(CurveTimeline)); - spine.TranslateTimeline = TranslateTimeline; - var ScaleTimeline = (function (_super) { - __extends(ScaleTimeline, _super); - function ScaleTimeline(frameCount) { - _super.call(this, frameCount); - } - ScaleTimeline.prototype.getPropertyId = function () { - return (TimelineType.scale << 24) + this.boneIndex; - }; - ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.scaleX = bone.data.scaleX; - bone.scaleY = bone.data.scaleY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { - x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; - y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; - } - else { - var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - x = frames[frame + ScaleTimeline.PREV_X]; - y = frames[frame + ScaleTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); - x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; - y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; - } - if (alpha == 1) { - bone.scaleX = x; - bone.scaleY = y; - } - else { - var bx = 0, by = 0; - if (setupPose) { - bx = bone.data.scaleX; - by = bone.data.scaleY; - } - else { - bx = bone.scaleX; - by = bone.scaleY; - } - if (mixingOut) { - x = Math.abs(x) * spine.MathUtils.signum(bx); - y = Math.abs(y) * spine.MathUtils.signum(by); - } - else { - bx = Math.abs(bx) * spine.MathUtils.signum(x); - by = Math.abs(by) * spine.MathUtils.signum(y); - } - bone.scaleX = bx + (x - bx) * alpha; - bone.scaleY = by + (y - by) * alpha; - } - }; - return ScaleTimeline; - }(TranslateTimeline)); - spine.ScaleTimeline = ScaleTimeline; - var ShearTimeline = (function (_super) { - __extends(ShearTimeline, _super); - function ShearTimeline(frameCount) { - _super.call(this, frameCount); - } - ShearTimeline.prototype.getPropertyId = function () { - return (TimelineType.shear << 24) + this.boneIndex; - }; - ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.shearX = bone.data.shearX; - bone.shearY = bone.data.shearY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { - x = frames[frames.length + ShearTimeline.PREV_X]; - y = frames[frames.length + ShearTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - x = frames[frame + ShearTimeline.PREV_X]; - y = frames[frame + ShearTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); - x = x + (frames[frame + ShearTimeline.X] - x) * percent; - y = y + (frames[frame + ShearTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.shearX = bone.data.shearX + x * alpha; - bone.shearY = bone.data.shearY + y * alpha; - } - else { - bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; - } - }; - return ShearTimeline; - }(TranslateTimeline)); - spine.ShearTimeline = ShearTimeline; - var ColorTimeline = (function (_super) { - __extends(ColorTimeline, _super); - function ColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); - } - ColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.color << 24) + this.slotIndex; - }; - ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { - frameIndex *= ColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + ColorTimeline.R] = r; - this.frames[frameIndex + ColorTimeline.G] = g; - this.frames[frameIndex + ColorTimeline.B] = b; - this.frames[frameIndex + ColorTimeline.A] = a; - }; - ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - slot.color.setFromColor(slot.data.color); - return; - } - var r = 0, g = 0, b = 0, a = 0; - if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + ColorTimeline.PREV_R]; - g = frames[i + ColorTimeline.PREV_G]; - b = frames[i + ColorTimeline.PREV_B]; - a = frames[i + ColorTimeline.PREV_A]; - } - else { - var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); - r = frames[frame + ColorTimeline.PREV_R]; - g = frames[frame + ColorTimeline.PREV_G]; - b = frames[frame + ColorTimeline.PREV_B]; - a = frames[frame + ColorTimeline.PREV_A]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + ColorTimeline.R] - r) * percent; - g += (frames[frame + ColorTimeline.G] - g) * percent; - b += (frames[frame + ColorTimeline.B] - b) * percent; - a += (frames[frame + ColorTimeline.A] - a) * percent; - } - if (alpha == 1) - slot.color.set(r, g, b, a); - else { - var color = slot.color; - if (setupPose) - color.setFromColor(slot.data.color); - color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); - } - }; - ColorTimeline.ENTRIES = 5; - ColorTimeline.PREV_TIME = -5; - ColorTimeline.PREV_R = -4; - ColorTimeline.PREV_G = -3; - ColorTimeline.PREV_B = -2; - ColorTimeline.PREV_A = -1; - ColorTimeline.R = 1; - ColorTimeline.G = 2; - ColorTimeline.B = 3; - ColorTimeline.A = 4; - return ColorTimeline; - }(CurveTimeline)); - spine.ColorTimeline = ColorTimeline; - var TwoColorTimeline = (function (_super) { - __extends(TwoColorTimeline, _super); - function TwoColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); - } - TwoColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.twoColor << 24) + this.slotIndex; - }; - TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { - frameIndex *= TwoColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TwoColorTimeline.R] = r; - this.frames[frameIndex + TwoColorTimeline.G] = g; - this.frames[frameIndex + TwoColorTimeline.B] = b; - this.frames[frameIndex + TwoColorTimeline.A] = a; - this.frames[frameIndex + TwoColorTimeline.R2] = r2; - this.frames[frameIndex + TwoColorTimeline.G2] = g2; - this.frames[frameIndex + TwoColorTimeline.B2] = b2; - }; - TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - slot.color.setFromColor(slot.data.color); - slot.darkColor.setFromColor(slot.data.darkColor); - } - return; - } - var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; - if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + TwoColorTimeline.PREV_R]; - g = frames[i + TwoColorTimeline.PREV_G]; - b = frames[i + TwoColorTimeline.PREV_B]; - a = frames[i + TwoColorTimeline.PREV_A]; - r2 = frames[i + TwoColorTimeline.PREV_R2]; - g2 = frames[i + TwoColorTimeline.PREV_G2]; - b2 = frames[i + TwoColorTimeline.PREV_B2]; - } - else { - var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); - r = frames[frame + TwoColorTimeline.PREV_R]; - g = frames[frame + TwoColorTimeline.PREV_G]; - b = frames[frame + TwoColorTimeline.PREV_B]; - a = frames[frame + TwoColorTimeline.PREV_A]; - r2 = frames[frame + TwoColorTimeline.PREV_R2]; - g2 = frames[frame + TwoColorTimeline.PREV_G2]; - b2 = frames[frame + TwoColorTimeline.PREV_B2]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + TwoColorTimeline.R] - r) * percent; - g += (frames[frame + TwoColorTimeline.G] - g) * percent; - b += (frames[frame + TwoColorTimeline.B] - b) * percent; - a += (frames[frame + TwoColorTimeline.A] - a) * percent; - r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; - g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; - b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; - } - if (alpha == 1) { - slot.color.set(r, g, b, a); - slot.darkColor.set(r2, g2, b2, 1); - } - else { - var light = slot.color; - var dark = slot.darkColor; - if (setupPose) { - light.setFromColor(slot.data.color); - dark.setFromColor(slot.data.darkColor); - } - light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); - dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); - } - }; - TwoColorTimeline.ENTRIES = 8; - TwoColorTimeline.PREV_TIME = -8; - TwoColorTimeline.PREV_R = -7; - TwoColorTimeline.PREV_G = -6; - TwoColorTimeline.PREV_B = -5; - TwoColorTimeline.PREV_A = -4; - TwoColorTimeline.PREV_R2 = -3; - TwoColorTimeline.PREV_G2 = -2; - TwoColorTimeline.PREV_B2 = -1; - TwoColorTimeline.R = 1; - TwoColorTimeline.G = 2; - TwoColorTimeline.B = 3; - TwoColorTimeline.A = 4; - TwoColorTimeline.R2 = 5; - TwoColorTimeline.G2 = 6; - TwoColorTimeline.B2 = 7; - return TwoColorTimeline; - }(CurveTimeline)); - spine.TwoColorTimeline = TwoColorTimeline; - var AttachmentTimeline = (function () { - function AttachmentTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.attachmentNames = new Array(frameCount); - } - AttachmentTimeline.prototype.getPropertyId = function () { - return (TimelineType.attachment << 24) + this.slotIndex; - }; - AttachmentTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { - this.frames[frameIndex] = time; - this.attachmentNames[frameIndex] = attachmentName; - }; - AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - if (mixingOut && setupPose) { - var attachmentName_1 = slot.data.attachmentName; - slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - var attachmentName_2 = slot.data.attachmentName; - slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); - } - return; - } - var frameIndex = 0; - if (time >= frames[frames.length - 1]) - frameIndex = frames.length - 1; - else - frameIndex = Animation.binarySearch(frames, time, 1) - 1; - var attachmentName = this.attachmentNames[frameIndex]; - skeleton.slots[this.slotIndex] - .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); - }; - return AttachmentTimeline; - }()); - spine.AttachmentTimeline = AttachmentTimeline; - var DeformTimeline = (function (_super) { - __extends(DeformTimeline, _super); - function DeformTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount); - this.frameVertices = new Array(frameCount); - } - DeformTimeline.prototype.getPropertyId = function () { - return (TimelineType.deform << 24) + this.slotIndex; - }; - DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { - this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; - }; - DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var slotAttachment = slot.getAttachment(); - if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) - return; - var frames = this.frames; - var verticesArray = slot.attachmentVertices; - if (time < frames[0]) { - if (setupPose) - spine.Utils.setArraySize(verticesArray, 0); - return; - } - var frameVertices = this.frameVertices; - var vertexCount = frameVertices[0].length; - if (verticesArray.length != vertexCount && !setupPose) - alpha = 1; - var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); - if (time >= frames[frames.length - 1]) { - var lastVertices = frameVertices[frames.length - 1]; - if (alpha == 1) { - spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var setup = setupVertices[i]; - vertices[i] = setup + (lastVertices[i] - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] = lastVertices[i] * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time); - var prevVertices = frameVertices[frame - 1]; - var nextVertices = frameVertices[frame]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); - if (alpha == 1) { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i], setup = setupVertices[i]; - vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; - } - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; - } - } - }; - return DeformTimeline; - }(CurveTimeline)); - spine.DeformTimeline = DeformTimeline; - var EventTimeline = (function () { - function EventTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.events = new Array(frameCount); - } - EventTimeline.prototype.getPropertyId = function () { - return TimelineType.event << 24; - }; - EventTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - EventTimeline.prototype.setFrame = function (frameIndex, event) { - this.frames[frameIndex] = event.time; - this.events[frameIndex] = event; - }; - EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - if (firedEvents == null) - return; - var frames = this.frames; - var frameCount = this.frames.length; - if (lastTime > time) { - this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); - lastTime = -1; - } - else if (lastTime >= frames[frameCount - 1]) - return; - if (time < frames[0]) - return; - var frame = 0; - if (lastTime < frames[0]) - frame = 0; - else { - frame = Animation.binarySearch(frames, lastTime); - var frameTime = frames[frame]; - while (frame > 0) { - if (frames[frame - 1] != frameTime) - break; - frame--; - } - } - for (; frame < frameCount && time >= frames[frame]; frame++) - firedEvents.push(this.events[frame]); - }; - return EventTimeline; - }()); - spine.EventTimeline = EventTimeline; - var DrawOrderTimeline = (function () { - function DrawOrderTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.drawOrders = new Array(frameCount); - } - DrawOrderTimeline.prototype.getPropertyId = function () { - return TimelineType.drawOrder << 24; - }; - DrawOrderTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { - this.frames[frameIndex] = time; - this.drawOrders[frameIndex] = drawOrder; - }; - DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var drawOrder = skeleton.drawOrder; - var slots = skeleton.slots; - if (mixingOut && setupPose) { - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frame = 0; - if (time >= frames[frames.length - 1]) - frame = frames.length - 1; - else - frame = Animation.binarySearch(frames, time) - 1; - var drawOrderToSetupIndex = this.drawOrders[frame]; - if (drawOrderToSetupIndex == null) - spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); - else { - for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) - drawOrder[i] = slots[drawOrderToSetupIndex[i]]; - } - }; - return DrawOrderTimeline; - }()); - spine.DrawOrderTimeline = DrawOrderTimeline; - var IkConstraintTimeline = (function (_super) { - __extends(IkConstraintTimeline, _super); - function IkConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); - } - IkConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; - }; - IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { - frameIndex *= IkConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; - this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; - }; - IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.mix = constraint.data.mix; - constraint.bendDirection = constraint.data.bendDirection; - } - return; - } - if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { - if (setupPose) { - constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection - : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - return; - } - var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); - var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); - if (setupPose) { - constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - }; - IkConstraintTimeline.ENTRIES = 3; - IkConstraintTimeline.PREV_TIME = -3; - IkConstraintTimeline.PREV_MIX = -2; - IkConstraintTimeline.PREV_BEND_DIRECTION = -1; - IkConstraintTimeline.MIX = 1; - IkConstraintTimeline.BEND_DIRECTION = 2; - return IkConstraintTimeline; - }(CurveTimeline)); - spine.IkConstraintTimeline = IkConstraintTimeline; - var TransformConstraintTimeline = (function (_super) { - __extends(TransformConstraintTimeline, _super); - function TransformConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); - } - TransformConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; - }; - TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { - frameIndex *= TransformConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; - this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; - this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; - }; - TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.rotateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - return; - } - var rotate = 0, translate = 0, scale = 0, shear = 0; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { - var i = frames.length; - rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; - } - else { - var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; - scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; - shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; - } - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; - constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; - constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; - constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - constraint.scaleMix += (scale - constraint.scaleMix) * alpha; - constraint.shearMix += (shear - constraint.shearMix) * alpha; - } - }; - TransformConstraintTimeline.ENTRIES = 5; - TransformConstraintTimeline.PREV_TIME = -5; - TransformConstraintTimeline.PREV_ROTATE = -4; - TransformConstraintTimeline.PREV_TRANSLATE = -3; - TransformConstraintTimeline.PREV_SCALE = -2; - TransformConstraintTimeline.PREV_SHEAR = -1; - TransformConstraintTimeline.ROTATE = 1; - TransformConstraintTimeline.TRANSLATE = 2; - TransformConstraintTimeline.SCALE = 3; - TransformConstraintTimeline.SHEAR = 4; - return TransformConstraintTimeline; - }(CurveTimeline)); - spine.TransformConstraintTimeline = TransformConstraintTimeline; - var PathConstraintPositionTimeline = (function (_super) { - __extends(PathConstraintPositionTimeline, _super); - function PathConstraintPositionTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); - } - PathConstraintPositionTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; - }; - PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { - frameIndex *= PathConstraintPositionTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; - }; - PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.position = constraint.data.position; - return; - } - var position = 0; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) - position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); - position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; - } - if (setupPose) - constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; - else - constraint.position += (position - constraint.position) * alpha; - }; - PathConstraintPositionTimeline.ENTRIES = 2; - PathConstraintPositionTimeline.PREV_TIME = -2; - PathConstraintPositionTimeline.PREV_VALUE = -1; - PathConstraintPositionTimeline.VALUE = 1; - return PathConstraintPositionTimeline; - }(CurveTimeline)); - spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; - var PathConstraintSpacingTimeline = (function (_super) { - __extends(PathConstraintSpacingTimeline, _super); - function PathConstraintSpacingTimeline(frameCount) { - _super.call(this, frameCount); - } - PathConstraintSpacingTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; - }; - PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.spacing = constraint.data.spacing; - return; - } - var spacing = 0; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) - spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); - spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; - } - if (setupPose) - constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; - else - constraint.spacing += (spacing - constraint.spacing) * alpha; - }; - return PathConstraintSpacingTimeline; - }(PathConstraintPositionTimeline)); - spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; - var PathConstraintMixTimeline = (function (_super) { - __extends(PathConstraintMixTimeline, _super); - function PathConstraintMixTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); - } - PathConstraintMixTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; - }; - PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { - frameIndex *= PathConstraintMixTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; - }; - PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix; - constraint.translateMix = constraint.data.translateMix; - } - return; - } - var rotate = 0, translate = 0; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { - rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; - } - else { - var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; - } - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; - constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - } - }; - PathConstraintMixTimeline.ENTRIES = 3; - PathConstraintMixTimeline.PREV_TIME = -3; - PathConstraintMixTimeline.PREV_ROTATE = -2; - PathConstraintMixTimeline.PREV_TRANSLATE = -1; - PathConstraintMixTimeline.ROTATE = 1; - PathConstraintMixTimeline.TRANSLATE = 2; - return PathConstraintMixTimeline; - }(CurveTimeline)); - spine.PathConstraintMixTimeline = PathConstraintMixTimeline; + var Animation = (function () { + function Animation(name, timelines, duration) { + if (name == null) + throw new Error("name cannot be null."); + if (timelines == null) + throw new Error("timelines cannot be null."); + this.name = name; + this.timelines = timelines; + this.duration = duration; + } + Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (loop && this.duration != 0) { + time %= this.duration; + if (lastTime > 0) + lastTime %= this.duration; + } + var timelines = this.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); + }; + Animation.binarySearch = function (values, target, step) { + if (step === void 0) { step = 1; } + var low = 0; + var high = values.length / step - 2; + if (high == 0) + return step; + var current = high >>> 1; + while (true) { + if (values[(current + 1) * step] <= target) + low = current + 1; + else + high = current; + if (low == high) + return (low + 1) * step; + current = (low + high) >>> 1; + } + }; + Animation.linearSearch = function (values, target, step) { + for (var i = 0, last = values.length - step; i <= last; i += step) + if (values[i] > target) + return i; + return -1; + }; + return Animation; + }()); + spine.Animation = Animation; + (function (TimelineType) { + TimelineType[TimelineType["rotate"] = 0] = "rotate"; + TimelineType[TimelineType["translate"] = 1] = "translate"; + TimelineType[TimelineType["scale"] = 2] = "scale"; + TimelineType[TimelineType["shear"] = 3] = "shear"; + TimelineType[TimelineType["attachment"] = 4] = "attachment"; + TimelineType[TimelineType["color"] = 5] = "color"; + TimelineType[TimelineType["deform"] = 6] = "deform"; + TimelineType[TimelineType["event"] = 7] = "event"; + TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; + TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; + TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; + TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; + TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; + TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; + TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; + var CurveTimeline = (function () { + function CurveTimeline(frameCount) { + if (frameCount <= 0) + throw new Error("frameCount must be > 0: " + frameCount); + this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); + } + CurveTimeline.prototype.getFrameCount = function () { + return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; + }; + CurveTimeline.prototype.setLinear = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; + }; + CurveTimeline.prototype.setStepped = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; + }; + CurveTimeline.prototype.getCurveType = function (frameIndex) { + var index = frameIndex * CurveTimeline.BEZIER_SIZE; + if (index == this.curves.length) + return CurveTimeline.LINEAR; + var type = this.curves[index]; + if (type == CurveTimeline.LINEAR) + return CurveTimeline.LINEAR; + if (type == CurveTimeline.STEPPED) + return CurveTimeline.STEPPED; + return CurveTimeline.BEZIER; + }; + CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { + var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; + var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; + var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; + var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var curves = this.curves; + curves[i++] = CurveTimeline.BEZIER; + var x = dfx, y = dfy; + for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + curves[i] = x; + curves[i + 1] = y; + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + x += dfx; + y += dfy; + } + }; + CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { + percent = spine.MathUtils.clamp(percent, 0, 1); + var curves = this.curves; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var type = curves[i]; + if (type == CurveTimeline.LINEAR) + return percent; + if (type == CurveTimeline.STEPPED) + return 0; + i++; + var x = 0; + for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + x = curves[i]; + if (x >= percent) { + var prevX = void 0, prevY = void 0; + if (i == start) { + prevX = 0; + prevY = 0; + } + else { + prevX = curves[i - 2]; + prevY = curves[i - 1]; + } + return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); + } + } + var y = curves[i - 1]; + return y + (1 - y) * (percent - x) / (1 - x); + }; + CurveTimeline.LINEAR = 0; + CurveTimeline.STEPPED = 1; + CurveTimeline.BEZIER = 2; + CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; + return CurveTimeline; + }()); + spine.CurveTimeline = CurveTimeline; + var RotateTimeline = (function (_super) { + __extends(RotateTimeline, _super); + function RotateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount << 1); + } + RotateTimeline.prototype.getPropertyId = function () { + return (TimelineType.rotate << 24) + this.boneIndex; + }; + RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { + frameIndex <<= 1; + this.frames[frameIndex] = time; + this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; + }; + RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { + if (setupPose) + bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; + else { + var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; + r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; + bone.rotation += r_1 * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); + var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); + var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + r = prevRotation + r * percent; + if (setupPose) { + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation = bone.data.rotation + r * alpha; + } + else { + r = bone.data.rotation + r - bone.rotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation += r * alpha; + } + }; + RotateTimeline.ENTRIES = 2; + RotateTimeline.PREV_TIME = -2; + RotateTimeline.PREV_ROTATION = -1; + RotateTimeline.ROTATION = 1; + return RotateTimeline; + }(CurveTimeline)); + spine.RotateTimeline = RotateTimeline; + var TranslateTimeline = (function (_super) { + __extends(TranslateTimeline, _super); + function TranslateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); + } + TranslateTimeline.prototype.getPropertyId = function () { + return (TimelineType.translate << 24) + this.boneIndex; + }; + TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { + frameIndex *= TranslateTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TranslateTimeline.X] = x; + this.frames[frameIndex + TranslateTimeline.Y] = y; + }; + TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { + x = frames[frames.length + TranslateTimeline.PREV_X]; + y = frames[frames.length + TranslateTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); + x = frames[frame + TranslateTimeline.PREV_X]; + y = frames[frame + TranslateTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); + x += (frames[frame + TranslateTimeline.X] - x) * percent; + y += (frames[frame + TranslateTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.x = bone.data.x + x * alpha; + bone.y = bone.data.y + y * alpha; + } + else { + bone.x += (bone.data.x + x - bone.x) * alpha; + bone.y += (bone.data.y + y - bone.y) * alpha; + } + }; + TranslateTimeline.ENTRIES = 3; + TranslateTimeline.PREV_TIME = -3; + TranslateTimeline.PREV_X = -2; + TranslateTimeline.PREV_Y = -1; + TranslateTimeline.X = 1; + TranslateTimeline.Y = 2; + return TranslateTimeline; + }(CurveTimeline)); + spine.TranslateTimeline = TranslateTimeline; + var ScaleTimeline = (function (_super) { + __extends(ScaleTimeline, _super); + function ScaleTimeline(frameCount) { + _super.call(this, frameCount); + } + ScaleTimeline.prototype.getPropertyId = function () { + return (TimelineType.scale << 24) + this.boneIndex; + }; + ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { + x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; + y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; + } + else { + var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); + x = frames[frame + ScaleTimeline.PREV_X]; + y = frames[frame + ScaleTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); + x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; + y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; + } + if (alpha == 1) { + bone.scaleX = x; + bone.scaleY = y; + } + else { + var bx = 0, by = 0; + if (setupPose) { + bx = bone.data.scaleX; + by = bone.data.scaleY; + } + else { + bx = bone.scaleX; + by = bone.scaleY; + } + if (mixingOut) { + x = Math.abs(x) * spine.MathUtils.signum(bx); + y = Math.abs(y) * spine.MathUtils.signum(by); + } + else { + bx = Math.abs(bx) * spine.MathUtils.signum(x); + by = Math.abs(by) * spine.MathUtils.signum(y); + } + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + } + }; + return ScaleTimeline; + }(TranslateTimeline)); + spine.ScaleTimeline = ScaleTimeline; + var ShearTimeline = (function (_super) { + __extends(ShearTimeline, _super); + function ShearTimeline(frameCount) { + _super.call(this, frameCount); + } + ShearTimeline.prototype.getPropertyId = function () { + return (TimelineType.shear << 24) + this.boneIndex; + }; + ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { + x = frames[frames.length + ShearTimeline.PREV_X]; + y = frames[frames.length + ShearTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); + x = frames[frame + ShearTimeline.PREV_X]; + y = frames[frame + ShearTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); + x = x + (frames[frame + ShearTimeline.X] - x) * percent; + y = y + (frames[frame + ShearTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.shearX = bone.data.shearX + x * alpha; + bone.shearY = bone.data.shearY + y * alpha; + } + else { + bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; + bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; + } + }; + return ShearTimeline; + }(TranslateTimeline)); + spine.ShearTimeline = ShearTimeline; + var ColorTimeline = (function (_super) { + __extends(ColorTimeline, _super); + function ColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); + } + ColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.color << 24) + this.slotIndex; + }; + ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { + frameIndex *= ColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + ColorTimeline.R] = r; + this.frames[frameIndex + ColorTimeline.G] = g; + this.frames[frameIndex + ColorTimeline.B] = b; + this.frames[frameIndex + ColorTimeline.A] = a; + }; + ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + slot.color.setFromColor(slot.data.color); + return; + } + var r = 0, g = 0, b = 0, a = 0; + if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + ColorTimeline.PREV_R]; + g = frames[i + ColorTimeline.PREV_G]; + b = frames[i + ColorTimeline.PREV_B]; + a = frames[i + ColorTimeline.PREV_A]; + } + else { + var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); + r = frames[frame + ColorTimeline.PREV_R]; + g = frames[frame + ColorTimeline.PREV_G]; + b = frames[frame + ColorTimeline.PREV_B]; + a = frames[frame + ColorTimeline.PREV_A]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + ColorTimeline.R] - r) * percent; + g += (frames[frame + ColorTimeline.G] - g) * percent; + b += (frames[frame + ColorTimeline.B] - b) * percent; + a += (frames[frame + ColorTimeline.A] - a) * percent; + } + if (alpha == 1) + slot.color.set(r, g, b, a); + else { + var color = slot.color; + if (setupPose) + color.setFromColor(slot.data.color); + color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); + } + }; + ColorTimeline.ENTRIES = 5; + ColorTimeline.PREV_TIME = -5; + ColorTimeline.PREV_R = -4; + ColorTimeline.PREV_G = -3; + ColorTimeline.PREV_B = -2; + ColorTimeline.PREV_A = -1; + ColorTimeline.R = 1; + ColorTimeline.G = 2; + ColorTimeline.B = 3; + ColorTimeline.A = 4; + return ColorTimeline; + }(CurveTimeline)); + spine.ColorTimeline = ColorTimeline; + var TwoColorTimeline = (function (_super) { + __extends(TwoColorTimeline, _super); + function TwoColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); + } + TwoColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.twoColor << 24) + this.slotIndex; + }; + TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { + frameIndex *= TwoColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TwoColorTimeline.R] = r; + this.frames[frameIndex + TwoColorTimeline.G] = g; + this.frames[frameIndex + TwoColorTimeline.B] = b; + this.frames[frameIndex + TwoColorTimeline.A] = a; + this.frames[frameIndex + TwoColorTimeline.R2] = r2; + this.frames[frameIndex + TwoColorTimeline.G2] = g2; + this.frames[frameIndex + TwoColorTimeline.B2] = b2; + }; + TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + slot.color.setFromColor(slot.data.color); + slot.darkColor.setFromColor(slot.data.darkColor); + } + return; + } + var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; + if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + TwoColorTimeline.PREV_R]; + g = frames[i + TwoColorTimeline.PREV_G]; + b = frames[i + TwoColorTimeline.PREV_B]; + a = frames[i + TwoColorTimeline.PREV_A]; + r2 = frames[i + TwoColorTimeline.PREV_R2]; + g2 = frames[i + TwoColorTimeline.PREV_G2]; + b2 = frames[i + TwoColorTimeline.PREV_B2]; + } + else { + var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); + r = frames[frame + TwoColorTimeline.PREV_R]; + g = frames[frame + TwoColorTimeline.PREV_G]; + b = frames[frame + TwoColorTimeline.PREV_B]; + a = frames[frame + TwoColorTimeline.PREV_A]; + r2 = frames[frame + TwoColorTimeline.PREV_R2]; + g2 = frames[frame + TwoColorTimeline.PREV_G2]; + b2 = frames[frame + TwoColorTimeline.PREV_B2]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + TwoColorTimeline.R] - r) * percent; + g += (frames[frame + TwoColorTimeline.G] - g) * percent; + b += (frames[frame + TwoColorTimeline.B] - b) * percent; + a += (frames[frame + TwoColorTimeline.A] - a) * percent; + r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; + g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; + b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; + } + if (alpha == 1) { + slot.color.set(r, g, b, a); + slot.darkColor.set(r2, g2, b2, 1); + } + else { + var light = slot.color; + var dark = slot.darkColor; + if (setupPose) { + light.setFromColor(slot.data.color); + dark.setFromColor(slot.data.darkColor); + } + light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); + dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); + } + }; + TwoColorTimeline.ENTRIES = 8; + TwoColorTimeline.PREV_TIME = -8; + TwoColorTimeline.PREV_R = -7; + TwoColorTimeline.PREV_G = -6; + TwoColorTimeline.PREV_B = -5; + TwoColorTimeline.PREV_A = -4; + TwoColorTimeline.PREV_R2 = -3; + TwoColorTimeline.PREV_G2 = -2; + TwoColorTimeline.PREV_B2 = -1; + TwoColorTimeline.R = 1; + TwoColorTimeline.G = 2; + TwoColorTimeline.B = 3; + TwoColorTimeline.A = 4; + TwoColorTimeline.R2 = 5; + TwoColorTimeline.G2 = 6; + TwoColorTimeline.B2 = 7; + return TwoColorTimeline; + }(CurveTimeline)); + spine.TwoColorTimeline = TwoColorTimeline; + var AttachmentTimeline = (function () { + function AttachmentTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.attachmentNames = new Array(frameCount); + } + AttachmentTimeline.prototype.getPropertyId = function () { + return (TimelineType.attachment << 24) + this.slotIndex; + }; + AttachmentTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { + this.frames[frameIndex] = time; + this.attachmentNames[frameIndex] = attachmentName; + }; + AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + if (mixingOut && setupPose) { + var attachmentName_1 = slot.data.attachmentName; + slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + var attachmentName_2 = slot.data.attachmentName; + slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); + } + return; + } + var frameIndex = 0; + if (time >= frames[frames.length - 1]) + frameIndex = frames.length - 1; + else + frameIndex = Animation.binarySearch(frames, time, 1) - 1; + var attachmentName = this.attachmentNames[frameIndex]; + skeleton.slots[this.slotIndex] + .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); + }; + return AttachmentTimeline; + }()); + spine.AttachmentTimeline = AttachmentTimeline; + var DeformTimeline = (function (_super) { + __extends(DeformTimeline, _super); + function DeformTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount); + this.frameVertices = new Array(frameCount); + } + DeformTimeline.prototype.getPropertyId = function () { + return (TimelineType.deform << 24) + this.slotIndex; + }; + DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { + this.frames[frameIndex] = time; + this.frameVertices[frameIndex] = vertices; + }; + DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var slotAttachment = slot.getAttachment(); + if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) + return; + var frames = this.frames; + var verticesArray = slot.attachmentVertices; + if (time < frames[0]) { + if (setupPose) + spine.Utils.setArraySize(verticesArray, 0); + return; + } + var frameVertices = this.frameVertices; + var vertexCount = frameVertices[0].length; + if (verticesArray.length != vertexCount && !setupPose) + alpha = 1; + var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); + if (time >= frames[frames.length - 1]) { + var lastVertices = frameVertices[frames.length - 1]; + if (alpha == 1) { + spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var setup = setupVertices[i]; + vertices[i] = setup + (lastVertices[i] - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] = lastVertices[i] * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] += (lastVertices[i] - vertices[i]) * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time); + var prevVertices = frameVertices[frame - 1]; + var nextVertices = frameVertices[frame]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); + if (alpha == 1) { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = prev + (nextVertices[i] - prev) * percent; + } + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i], setup = setupVertices[i]; + vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; + } + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; + } + } + }; + return DeformTimeline; + }(CurveTimeline)); + spine.DeformTimeline = DeformTimeline; + var EventTimeline = (function () { + function EventTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.events = new Array(frameCount); + } + EventTimeline.prototype.getPropertyId = function () { + return TimelineType.event << 24; + }; + EventTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + EventTimeline.prototype.setFrame = function (frameIndex, event) { + this.frames[frameIndex] = event.time; + this.events[frameIndex] = event; + }; + EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + if (firedEvents == null) + return; + var frames = this.frames; + var frameCount = this.frames.length; + if (lastTime > time) { + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); + lastTime = -1; + } + else if (lastTime >= frames[frameCount - 1]) + return; + if (time < frames[0]) + return; + var frame = 0; + if (lastTime < frames[0]) + frame = 0; + else { + frame = Animation.binarySearch(frames, lastTime); + var frameTime = frames[frame]; + while (frame > 0) { + if (frames[frame - 1] != frameTime) + break; + frame--; + } + } + for (; frame < frameCount && time >= frames[frame]; frame++) + firedEvents.push(this.events[frame]); + }; + return EventTimeline; + }()); + spine.EventTimeline = EventTimeline; + var DrawOrderTimeline = (function () { + function DrawOrderTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.drawOrders = new Array(frameCount); + } + DrawOrderTimeline.prototype.getPropertyId = function () { + return TimelineType.drawOrder << 24; + }; + DrawOrderTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { + this.frames[frameIndex] = time; + this.drawOrders[frameIndex] = drawOrder; + }; + DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var drawOrder = skeleton.drawOrder; + var slots = skeleton.slots; + if (mixingOut && setupPose) { + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frame = 0; + if (time >= frames[frames.length - 1]) + frame = frames.length - 1; + else + frame = Animation.binarySearch(frames, time) - 1; + var drawOrderToSetupIndex = this.drawOrders[frame]; + if (drawOrderToSetupIndex == null) + spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); + else { + for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) + drawOrder[i] = slots[drawOrderToSetupIndex[i]]; + } + }; + return DrawOrderTimeline; + }()); + spine.DrawOrderTimeline = DrawOrderTimeline; + var IkConstraintTimeline = (function (_super) { + __extends(IkConstraintTimeline, _super); + function IkConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); + } + IkConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; + }; + IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { + frameIndex *= IkConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; + this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; + }; + IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.mix = constraint.data.mix; + constraint.bendDirection = constraint.data.bendDirection; + } + return; + } + if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { + if (setupPose) { + constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection + : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + return; + } + var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); + var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); + if (setupPose) { + constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + }; + IkConstraintTimeline.ENTRIES = 3; + IkConstraintTimeline.PREV_TIME = -3; + IkConstraintTimeline.PREV_MIX = -2; + IkConstraintTimeline.PREV_BEND_DIRECTION = -1; + IkConstraintTimeline.MIX = 1; + IkConstraintTimeline.BEND_DIRECTION = 2; + return IkConstraintTimeline; + }(CurveTimeline)); + spine.IkConstraintTimeline = IkConstraintTimeline; + var TransformConstraintTimeline = (function (_super) { + __extends(TransformConstraintTimeline, _super); + function TransformConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); + } + TransformConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; + }; + TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { + frameIndex *= TransformConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; + this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; + this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; + }; + TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.rotateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + return; + } + var rotate = 0, translate = 0, scale = 0, shear = 0; + if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { + var i = frames.length; + rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; + } + else { + var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); + rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; + scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; + shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; + } + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; + constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; + constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; + constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + constraint.scaleMix += (scale - constraint.scaleMix) * alpha; + constraint.shearMix += (shear - constraint.shearMix) * alpha; + } + }; + TransformConstraintTimeline.ENTRIES = 5; + TransformConstraintTimeline.PREV_TIME = -5; + TransformConstraintTimeline.PREV_ROTATE = -4; + TransformConstraintTimeline.PREV_TRANSLATE = -3; + TransformConstraintTimeline.PREV_SCALE = -2; + TransformConstraintTimeline.PREV_SHEAR = -1; + TransformConstraintTimeline.ROTATE = 1; + TransformConstraintTimeline.TRANSLATE = 2; + TransformConstraintTimeline.SCALE = 3; + TransformConstraintTimeline.SHEAR = 4; + return TransformConstraintTimeline; + }(CurveTimeline)); + spine.TransformConstraintTimeline = TransformConstraintTimeline; + var PathConstraintPositionTimeline = (function (_super) { + __extends(PathConstraintPositionTimeline, _super); + function PathConstraintPositionTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); + } + PathConstraintPositionTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; + }; + PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { + frameIndex *= PathConstraintPositionTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; + }; + PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.position = constraint.data.position; + return; + } + var position = 0; + if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) + position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); + position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); + position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; + } + if (setupPose) + constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; + else + constraint.position += (position - constraint.position) * alpha; + }; + PathConstraintPositionTimeline.ENTRIES = 2; + PathConstraintPositionTimeline.PREV_TIME = -2; + PathConstraintPositionTimeline.PREV_VALUE = -1; + PathConstraintPositionTimeline.VALUE = 1; + return PathConstraintPositionTimeline; + }(CurveTimeline)); + spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; + var PathConstraintSpacingTimeline = (function (_super) { + __extends(PathConstraintSpacingTimeline, _super); + function PathConstraintSpacingTimeline(frameCount) { + _super.call(this, frameCount); + } + PathConstraintSpacingTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; + }; + PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.spacing = constraint.data.spacing; + return; + } + var spacing = 0; + if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) + spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); + spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); + spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; + } + if (setupPose) + constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; + else + constraint.spacing += (spacing - constraint.spacing) * alpha; + }; + return PathConstraintSpacingTimeline; + }(PathConstraintPositionTimeline)); + spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; + var PathConstraintMixTimeline = (function (_super) { + __extends(PathConstraintMixTimeline, _super); + function PathConstraintMixTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); + } + PathConstraintMixTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; + }; + PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { + frameIndex *= PathConstraintMixTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; + }; + PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } + return; + } + var rotate = 0, translate = 0; + if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { + rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; + } + else { + var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); + rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; + } + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; + constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + } + }; + PathConstraintMixTimeline.ENTRIES = 3; + PathConstraintMixTimeline.PREV_TIME = -3; + PathConstraintMixTimeline.PREV_ROTATE = -2; + PathConstraintMixTimeline.PREV_TRANSLATE = -1; + PathConstraintMixTimeline.ROTATE = 1; + PathConstraintMixTimeline.TRANSLATE = 2; + return PathConstraintMixTimeline; + }(CurveTimeline)); + spine.PathConstraintMixTimeline = PathConstraintMixTimeline; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationState = (function () { - function AnimationState(data) { - this.tracks = new Array(); - this.events = new Array(); - this.listeners = new Array(); - this.queue = new EventQueue(this); - this.propertyIDs = new spine.IntSet(); - this.mixingTo = new Array(); - this.animationsChanged = false; - this.timeScale = 1; - this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); - this.data = data; - } - AnimationState.prototype.update = function (delta) { - delta *= this.timeScale; - var tracks = this.tracks; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null) - continue; - current.animationLast = current.nextAnimationLast; - current.trackLast = current.nextTrackLast; - var currentDelta = delta * current.timeScale; - if (current.delay > 0) { - current.delay -= currentDelta; - if (current.delay > 0) - continue; - currentDelta = -current.delay; - current.delay = 0; - } - var next = current.next; - if (next != null) { - var nextTime = current.trackLast - next.delay; - if (nextTime >= 0) { - next.delay = 0; - next.trackTime = nextTime + delta * next.timeScale; - current.trackTime += currentDelta; - this.setCurrent(i, next, true); - while (next.mixingFrom != null) { - next.mixTime += currentDelta; - next = next.mixingFrom; - } - continue; - } - } - else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { - tracks[i] = null; - this.queue.end(current); - this.disposeNext(current); - continue; - } - if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { - var from = current.mixingFrom; - current.mixingFrom = null; - while (from != null) { - this.queue.end(from); - from = from.mixingFrom; - } - } - current.trackTime += currentDelta; - } - this.queue.drain(); - }; - AnimationState.prototype.updateMixingFrom = function (to, delta) { - var from = to.mixingFrom; - if (from == null) - return true; - var finished = this.updateMixingFrom(from, delta); - if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { - if (from.totalAlpha == 0) { - to.mixingFrom = from.mixingFrom; - to.interruptAlpha = from.interruptAlpha; - this.queue.end(from); - } - return finished; - } - from.animationLast = from.nextAnimationLast; - from.trackLast = from.nextTrackLast; - from.trackTime += delta * from.timeScale; - to.mixTime += delta * to.timeScale; - return false; - }; - AnimationState.prototype.apply = function (skeleton) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (this.animationsChanged) - this._animationsChanged(); - var events = this.events; - var tracks = this.tracks; - var applied = false; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null || current.delay > 0) - continue; - applied = true; - var mix = current.alpha; - if (current.mixingFrom != null) - mix *= this.applyMixingFrom(current, skeleton); - else if (current.trackTime >= current.trackEnd && current.next == null) - mix = 0; - var animationLast = current.animationLast, animationTime = current.getAnimationTime(); - var timelineCount = current.animation.timelines.length; - var timelines = current.animation.timelines; - if (mix == 1) { - for (var ii = 0; ii < timelineCount; ii++) - timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); - } - else { - var timelineData = current.timelineData; - var firstFrame = current.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = current.timelinesRotation; - for (var ii = 0; ii < timelineCount; ii++) { - var timeline = timelines[ii]; - if (timeline instanceof spine.RotateTimeline) { - this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); - } - else - timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); - } - } - this.queueEvents(current, animationTime); - events.length = 0; - current.nextAnimationLast = animationTime; - current.nextTrackLast = current.trackTime; - } - this.queue.drain(); - return applied; - }; - AnimationState.prototype.applyMixingFrom = function (to, skeleton) { - var from = to.mixingFrom; - if (from.mixingFrom != null) - this.applyMixingFrom(from, skeleton); - var mix = 0; - if (to.mixDuration == 0) - mix = 1; - else { - mix = to.mixTime / to.mixDuration; - if (mix > 1) - mix = 1; - } - var events = mix < from.eventThreshold ? this.events : null; - var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; - var animationLast = from.animationLast, animationTime = from.getAnimationTime(); - var timelineCount = from.animation.timelines.length; - var timelines = from.animation.timelines; - var timelineData = from.timelineData; - var timelineDipMix = from.timelineDipMix; - var firstFrame = from.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = from.timelinesRotation; - var first = false; - var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; - from.totalAlpha = 0; - for (var i = 0; i < timelineCount; i++) { - var timeline = timelines[i]; - switch (timelineData[i]) { - case AnimationState.SUBSEQUENT: - first = false; - alpha = alphaMix; - break; - case AnimationState.FIRST: - first = true; - alpha = alphaMix; - break; - case AnimationState.DIP: - first = true; - alpha = alphaDip; - break; - default: - first = true; - alpha = alphaDip; - var dipMix = timelineDipMix[i]; - alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); - break; - } - from.totalAlpha += alpha; - if (timeline instanceof spine.RotateTimeline) - this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); - else { - if (!first) { - if (!attachments && timeline instanceof spine.AttachmentTimeline) - continue; - if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) - continue; - } - timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); - } - } - if (to.mixDuration > 0) - this.queueEvents(from, animationTime); - this.events.length = 0; - from.nextAnimationLast = animationTime; - from.nextTrackLast = from.trackTime; - return mix; - }; - AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { - if (firstFrame) - timelinesRotation[i] = 0; - if (alpha == 1) { - timeline.apply(skeleton, 0, time, null, 1, setupPose, false); - return; - } - var rotateTimeline = timeline; - var frames = rotateTimeline.frames; - var bone = skeleton.bones[rotateTimeline.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - var r2 = 0; - if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) - r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; - else { - var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); - var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); - r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - r2 = prevRotation + r2 * percent + bone.data.rotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - } - var r1 = setupPose ? bone.data.rotation : bone.rotation; - var total = 0, diff = r2 - r1; - if (diff == 0) { - total = timelinesRotation[i]; - } - else { - diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; - var lastTotal = 0, lastDiff = 0; - if (firstFrame) { - lastTotal = 0; - lastDiff = diff; - } - else { - lastTotal = timelinesRotation[i]; - lastDiff = timelinesRotation[i + 1]; - } - var current = diff > 0, dir = lastTotal >= 0; - if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { - if (Math.abs(lastTotal) > 180) - lastTotal += 360 * spine.MathUtils.signum(lastTotal); - dir = current; - } - total = diff + lastTotal - lastTotal % 360; - if (dir != current) - total += 360 * spine.MathUtils.signum(lastTotal); - timelinesRotation[i] = total; - } - timelinesRotation[i + 1] = diff; - r1 += total * alpha; - bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; - }; - AnimationState.prototype.queueEvents = function (entry, animationTime) { - var animationStart = entry.animationStart, animationEnd = entry.animationEnd; - var duration = animationEnd - animationStart; - var trackLastWrapped = entry.trackLast % duration; - var events = this.events; - var i = 0, n = events.length; - for (; i < n; i++) { - var event_1 = events[i]; - if (event_1.time < trackLastWrapped) - break; - if (event_1.time > animationEnd) - continue; - this.queue.event(entry, event_1); - } - if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) - : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { - this.queue.complete(entry); - } - for (; i < n; i++) { - var event_2 = events[i]; - if (event_2.time < animationStart) - continue; - this.queue.event(entry, events[i]); - } - }; - AnimationState.prototype.clearTracks = function () { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) - this.clearTrack(i); - this.tracks.length = 0; - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.clearTrack = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return; - var current = this.tracks[trackIndex]; - if (current == null) - return; - this.queue.end(current); - this.disposeNext(current); - var entry = current; - while (true) { - var from = entry.mixingFrom; - if (from == null) - break; - this.queue.end(from); - entry.mixingFrom = null; - entry = from; - } - this.tracks[current.trackIndex] = null; - this.queue.drain(); - }; - AnimationState.prototype.setCurrent = function (index, current, interrupt) { - var from = this.expandToIndex(index); - this.tracks[index] = current; - if (from != null) { - if (interrupt) - this.queue.interrupt(from); - current.mixingFrom = from; - current.mixTime = 0; - if (from.mixingFrom != null && from.mixDuration > 0) - current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); - from.timelinesRotation.length = 0; - } - this.queue.start(current); - }; - AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.setAnimationWith(trackIndex, animation, loop); - }; - AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { - if (animation == null) - throw new Error("animation cannot be null."); - var interrupt = true; - var current = this.expandToIndex(trackIndex); - if (current != null) { - if (current.nextTrackLast == -1) { - this.tracks[trackIndex] = current.mixingFrom; - this.queue.interrupt(current); - this.queue.end(current); - this.disposeNext(current); - current = current.mixingFrom; - interrupt = false; - } - else - this.disposeNext(current); - } - var entry = this.trackEntry(trackIndex, animation, loop, current); - this.setCurrent(trackIndex, entry, interrupt); - this.queue.drain(); - return entry; - }; - AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.addAnimationWith(trackIndex, animation, loop, delay); - }; - AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { - if (animation == null) - throw new Error("animation cannot be null."); - var last = this.expandToIndex(trackIndex); - if (last != null) { - while (last.next != null) - last = last.next; - } - var entry = this.trackEntry(trackIndex, animation, loop, last); - if (last == null) { - this.setCurrent(trackIndex, entry, true); - this.queue.drain(); - } - else { - last.next = entry; - if (delay <= 0) { - var duration = last.animationEnd - last.animationStart; - if (duration != 0) - delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); - else - delay = 0; - } - } - entry.delay = delay; - return entry; - }; - AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { - var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { - if (delay <= 0) - delay -= mixDuration; - var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.setEmptyAnimations = function (mixDuration) { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var current = this.tracks[i]; - if (current != null) - this.setEmptyAnimation(current.trackIndex, mixDuration); - } - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.expandToIndex = function (index) { - if (index < this.tracks.length) - return this.tracks[index]; - spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); - this.tracks.length = index + 1; - return null; - }; - AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { - var entry = this.trackEntryPool.obtain(); - entry.trackIndex = trackIndex; - entry.animation = animation; - entry.loop = loop; - entry.eventThreshold = 0; - entry.attachmentThreshold = 0; - entry.drawOrderThreshold = 0; - entry.animationStart = 0; - entry.animationEnd = animation.duration; - entry.animationLast = -1; - entry.nextAnimationLast = -1; - entry.delay = 0; - entry.trackTime = 0; - entry.trackLast = -1; - entry.nextTrackLast = -1; - entry.trackEnd = Number.MAX_VALUE; - entry.timeScale = 1; - entry.alpha = 1; - entry.interruptAlpha = 1; - entry.mixTime = 0; - entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); - return entry; - }; - AnimationState.prototype.disposeNext = function (entry) { - var next = entry.next; - while (next != null) { - this.queue.dispose(next); - next = next.next; - } - entry.next = null; - }; - AnimationState.prototype._animationsChanged = function () { - this.animationsChanged = false; - var propertyIDs = this.propertyIDs; - propertyIDs.clear(); - var mixingTo = this.mixingTo; - var lastEntry = null; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var entry = this.tracks[i]; - if (entry != null) { - entry.setTimelineData(lastEntry, mixingTo, propertyIDs); - lastEntry = entry; - } - } - }; - AnimationState.prototype.getCurrent = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return null; - return this.tracks[trackIndex]; - }; - AnimationState.prototype.addListener = function (listener) { - if (listener == null) - throw new Error("listener cannot be null."); - this.listeners.push(listener); - }; - AnimationState.prototype.removeListener = function (listener) { - var index = this.listeners.indexOf(listener); - if (index >= 0) - this.listeners.splice(index, 1); - }; - AnimationState.prototype.clearListeners = function () { - this.listeners.length = 0; - }; - AnimationState.prototype.clearListenerNotifications = function () { - this.queue.clear(); - }; - AnimationState.emptyAnimation = new spine.Animation("", [], 0); - AnimationState.SUBSEQUENT = 0; - AnimationState.FIRST = 1; - AnimationState.DIP = 2; - AnimationState.DIP_MIX = 3; - return AnimationState; - }()); - spine.AnimationState = AnimationState; - var TrackEntry = (function () { - function TrackEntry() { - this.timelineData = new Array(); - this.timelineDipMix = new Array(); - this.timelinesRotation = new Array(); - } - TrackEntry.prototype.reset = function () { - this.next = null; - this.mixingFrom = null; - this.animation = null; - this.listener = null; - this.timelineData.length = 0; - this.timelineDipMix.length = 0; - this.timelinesRotation.length = 0; - }; - TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { - if (to != null) - mixingToArray.push(to); - var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; - if (to != null) - mixingToArray.pop(); - var mixingTo = mixingToArray; - var mixingToLast = mixingToArray.length - 1; - var timelines = this.animation.timelines; - var timelinesCount = this.animation.timelines.length; - var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); - this.timelineDipMix.length = 0; - var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); - outer: for (var i = 0; i < timelinesCount; i++) { - var id = timelines[i].getPropertyId(); - if (!propertyIDs.add(id)) - timelineData[i] = AnimationState.SUBSEQUENT; - else if (to == null || !to.hasTimeline(id)) - timelineData[i] = AnimationState.FIRST; - else { - for (var ii = mixingToLast; ii >= 0; ii--) { - var entry = mixingTo[ii]; - if (!entry.hasTimeline(id)) { - if (entry.mixDuration > 0) { - timelineData[i] = AnimationState.DIP_MIX; - timelineDipMix[i] = entry; - continue outer; - } - } - } - timelineData[i] = AnimationState.DIP; - } - } - return lastEntry; - }; - TrackEntry.prototype.hasTimeline = function (id) { - var timelines = this.animation.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - if (timelines[i].getPropertyId() == id) - return true; - return false; - }; - TrackEntry.prototype.getAnimationTime = function () { - if (this.loop) { - var duration = this.animationEnd - this.animationStart; - if (duration == 0) - return this.animationStart; - return (this.trackTime % duration) + this.animationStart; - } - return Math.min(this.trackTime + this.animationStart, this.animationEnd); - }; - TrackEntry.prototype.setAnimationLast = function (animationLast) { - this.animationLast = animationLast; - this.nextAnimationLast = animationLast; - }; - TrackEntry.prototype.isComplete = function () { - return this.trackTime >= this.animationEnd - this.animationStart; - }; - TrackEntry.prototype.resetRotationDirections = function () { - this.timelinesRotation.length = 0; - }; - return TrackEntry; - }()); - spine.TrackEntry = TrackEntry; - var EventQueue = (function () { - function EventQueue(animState) { - this.objects = []; - this.drainDisabled = false; - this.animState = animState; - } - EventQueue.prototype.start = function (entry) { - this.objects.push(EventType.start); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.interrupt = function (entry) { - this.objects.push(EventType.interrupt); - this.objects.push(entry); - }; - EventQueue.prototype.end = function (entry) { - this.objects.push(EventType.end); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.dispose = function (entry) { - this.objects.push(EventType.dispose); - this.objects.push(entry); - }; - EventQueue.prototype.complete = function (entry) { - this.objects.push(EventType.complete); - this.objects.push(entry); - }; - EventQueue.prototype.event = function (entry, event) { - this.objects.push(EventType.event); - this.objects.push(entry); - this.objects.push(event); - }; - EventQueue.prototype.drain = function () { - if (this.drainDisabled) - return; - this.drainDisabled = true; - var objects = this.objects; - var listeners = this.animState.listeners; - for (var i = 0; i < objects.length; i += 2) { - var type = objects[i]; - var entry = objects[i + 1]; - switch (type) { - case EventType.start: - if (entry.listener != null && entry.listener.start) - entry.listener.start(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].start) - listeners[ii].start(entry); - break; - case EventType.interrupt: - if (entry.listener != null && entry.listener.interrupt) - entry.listener.interrupt(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].interrupt) - listeners[ii].interrupt(entry); - break; - case EventType.end: - if (entry.listener != null && entry.listener.end) - entry.listener.end(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].end) - listeners[ii].end(entry); - case EventType.dispose: - if (entry.listener != null && entry.listener.dispose) - entry.listener.dispose(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].dispose) - listeners[ii].dispose(entry); - this.animState.trackEntryPool.free(entry); - break; - case EventType.complete: - if (entry.listener != null && entry.listener.complete) - entry.listener.complete(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].complete) - listeners[ii].complete(entry); - break; - case EventType.event: - var event_3 = objects[i++ + 2]; - if (entry.listener != null && entry.listener.event) - entry.listener.event(entry, event_3); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].event) - listeners[ii].event(entry, event_3); - break; - } - } - this.clear(); - this.drainDisabled = false; - }; - EventQueue.prototype.clear = function () { - this.objects.length = 0; - }; - return EventQueue; - }()); - spine.EventQueue = EventQueue; - (function (EventType) { - EventType[EventType["start"] = 0] = "start"; - EventType[EventType["interrupt"] = 1] = "interrupt"; - EventType[EventType["end"] = 2] = "end"; - EventType[EventType["dispose"] = 3] = "dispose"; - EventType[EventType["complete"] = 4] = "complete"; - EventType[EventType["event"] = 5] = "event"; - })(spine.EventType || (spine.EventType = {})); - var EventType = spine.EventType; - var AnimationStateAdapter2 = (function () { - function AnimationStateAdapter2() { - } - AnimationStateAdapter2.prototype.start = function (entry) { - }; - AnimationStateAdapter2.prototype.interrupt = function (entry) { - }; - AnimationStateAdapter2.prototype.end = function (entry) { - }; - AnimationStateAdapter2.prototype.dispose = function (entry) { - }; - AnimationStateAdapter2.prototype.complete = function (entry) { - }; - AnimationStateAdapter2.prototype.event = function (entry, event) { - }; - return AnimationStateAdapter2; - }()); - spine.AnimationStateAdapter2 = AnimationStateAdapter2; + var AnimationState = (function () { + function AnimationState(data) { + this.tracks = new Array(); + this.events = new Array(); + this.listeners = new Array(); + this.queue = new EventQueue(this); + this.propertyIDs = new spine.IntSet(); + this.mixingTo = new Array(); + this.animationsChanged = false; + this.timeScale = 1; + this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); + this.data = data; + } + AnimationState.prototype.update = function (delta) { + delta *= this.timeScale; + var tracks = this.tracks; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null) + continue; + current.animationLast = current.nextAnimationLast; + current.trackLast = current.nextTrackLast; + var currentDelta = delta * current.timeScale; + if (current.delay > 0) { + current.delay -= currentDelta; + if (current.delay > 0) + continue; + currentDelta = -current.delay; + current.delay = 0; + } + var next = current.next; + if (next != null) { + var nextTime = current.trackLast - next.delay; + if (nextTime >= 0) { + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; + this.setCurrent(i, next, true); + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + } + else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; + } + if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { + var from = current.mixingFrom; + current.mixingFrom = null; + while (from != null) { + this.queue.end(from); + from = from.mixingFrom; + } + } + current.trackTime += currentDelta; + } + this.queue.drain(); + }; + AnimationState.prototype.updateMixingFrom = function (to, delta) { + var from = to.mixingFrom; + if (from == null) + return true; + var finished = this.updateMixingFrom(from, delta); + if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { + if (from.totalAlpha == 0) { + to.mixingFrom = from.mixingFrom; + to.interruptAlpha = from.interruptAlpha; + this.queue.end(from); + } + return finished; + } + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + from.trackTime += delta * from.timeScale; + to.mixTime += delta * to.timeScale; + return false; + }; + AnimationState.prototype.apply = function (skeleton) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (this.animationsChanged) + this._animationsChanged(); + var events = this.events; + var tracks = this.tracks; + var applied = false; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null || current.delay > 0) + continue; + applied = true; + var mix = current.alpha; + if (current.mixingFrom != null) + mix *= this.applyMixingFrom(current, skeleton); + else if (current.trackTime >= current.trackEnd && current.next == null) + mix = 0; + var animationLast = current.animationLast, animationTime = current.getAnimationTime(); + var timelineCount = current.animation.timelines.length; + var timelines = current.animation.timelines; + if (mix == 1) { + for (var ii = 0; ii < timelineCount; ii++) + timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); + } + else { + var timelineData = current.timelineData; + var firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = current.timelinesRotation; + for (var ii = 0; ii < timelineCount; ii++) { + var timeline = timelines[ii]; + if (timeline instanceof spine.RotateTimeline) { + this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); + } + else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); + } + } + this.queueEvents(current, animationTime); + events.length = 0; + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; + } + this.queue.drain(); + return applied; + }; + AnimationState.prototype.applyMixingFrom = function (to, skeleton) { + var from = to.mixingFrom; + if (from.mixingFrom != null) + this.applyMixingFrom(from, skeleton); + var mix = 0; + if (to.mixDuration == 0) + mix = 1; + else { + mix = to.mixTime / to.mixDuration; + if (mix > 1) + mix = 1; + } + var events = mix < from.eventThreshold ? this.events : null; + var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; + var animationLast = from.animationLast, animationTime = from.getAnimationTime(); + var timelineCount = from.animation.timelines.length; + var timelines = from.animation.timelines; + var timelineData = from.timelineData; + var timelineDipMix = from.timelineDipMix; + var firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = from.timelinesRotation; + var first = false; + var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; + from.totalAlpha = 0; + for (var i = 0; i < timelineCount; i++) { + var timeline = timelines[i]; + switch (timelineData[i]) { + case AnimationState.SUBSEQUENT: + first = false; + alpha = alphaMix; + break; + case AnimationState.FIRST: + first = true; + alpha = alphaMix; + break; + case AnimationState.DIP: + first = true; + alpha = alphaDip; + break; + default: + first = true; + alpha = alphaDip; + var dipMix = timelineDipMix[i]; + alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); + break; + } + from.totalAlpha += alpha; + if (timeline instanceof spine.RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); + else { + if (!first) { + if (!attachments && timeline instanceof spine.AttachmentTimeline) + continue; + if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) + continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); + } + } + if (to.mixDuration > 0) + this.queueEvents(from, animationTime); + this.events.length = 0; + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + }; + AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { + if (firstFrame) + timelinesRotation[i] = 0; + if (alpha == 1) { + timeline.apply(skeleton, 0, time, null, 1, setupPose, false); + return; + } + var rotateTimeline = timeline; + var frames = rotateTimeline.frames; + var bone = skeleton.bones[rotateTimeline.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + var r2 = 0; + if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) + r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; + else { + var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); + var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); + r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + r2 = prevRotation + r2 * percent + bone.data.rotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + } + var r1 = setupPose ? bone.data.rotation : bone.rotation; + var total = 0, diff = r2 - r1; + if (diff == 0) { + total = timelinesRotation[i]; + } + else { + diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; + var lastTotal = 0, lastDiff = 0; + if (firstFrame) { + lastTotal = 0; + lastDiff = diff; + } + else { + lastTotal = timelinesRotation[i]; + lastDiff = timelinesRotation[i + 1]; + } + var current = diff > 0, dir = lastTotal >= 0; + if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { + if (Math.abs(lastTotal) > 180) + lastTotal += 360 * spine.MathUtils.signum(lastTotal); + dir = current; + } + total = diff + lastTotal - lastTotal % 360; + if (dir != current) + total += 360 * spine.MathUtils.signum(lastTotal); + timelinesRotation[i] = total; + } + timelinesRotation[i + 1] = diff; + r1 += total * alpha; + bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; + }; + AnimationState.prototype.queueEvents = function (entry, animationTime) { + var animationStart = entry.animationStart, animationEnd = entry.animationEnd; + var duration = animationEnd - animationStart; + var trackLastWrapped = entry.trackLast % duration; + var events = this.events; + var i = 0, n = events.length; + for (; i < n; i++) { + var event_1 = events[i]; + if (event_1.time < trackLastWrapped) + break; + if (event_1.time > animationEnd) + continue; + this.queue.event(entry, event_1); + } + if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) + : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { + this.queue.complete(entry); + } + for (; i < n; i++) { + var event_2 = events[i]; + if (event_2.time < animationStart) + continue; + this.queue.event(entry, events[i]); + } + }; + AnimationState.prototype.clearTracks = function () { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) + this.clearTrack(i); + this.tracks.length = 0; + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.clearTrack = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return; + var current = this.tracks[trackIndex]; + if (current == null) + return; + this.queue.end(current); + this.disposeNext(current); + var entry = current; + while (true) { + var from = entry.mixingFrom; + if (from == null) + break; + this.queue.end(from); + entry.mixingFrom = null; + entry = from; + } + this.tracks[current.trackIndex] = null; + this.queue.drain(); + }; + AnimationState.prototype.setCurrent = function (index, current, interrupt) { + var from = this.expandToIndex(index); + this.tracks[index] = current; + if (from != null) { + if (interrupt) + this.queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + if (from.mixingFrom != null && from.mixDuration > 0) + current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); + from.timelinesRotation.length = 0; + } + this.queue.start(current); + }; + AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.setAnimationWith(trackIndex, animation, loop); + }; + AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { + if (animation == null) + throw new Error("animation cannot be null."); + var interrupt = true; + var current = this.expandToIndex(trackIndex); + if (current != null) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = current.mixingFrom; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = current.mixingFrom; + interrupt = false; + } + else + this.disposeNext(current); + } + var entry = this.trackEntry(trackIndex, animation, loop, current); + this.setCurrent(trackIndex, entry, interrupt); + this.queue.drain(); + return entry; + }; + AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.addAnimationWith(trackIndex, animation, loop, delay); + }; + AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { + if (animation == null) + throw new Error("animation cannot be null."); + var last = this.expandToIndex(trackIndex); + if (last != null) { + while (last.next != null) + last = last.next; + } + var entry = this.trackEntry(trackIndex, animation, loop, last); + if (last == null) { + this.setCurrent(trackIndex, entry, true); + this.queue.drain(); + } + else { + last.next = entry; + if (delay <= 0) { + var duration = last.animationEnd - last.animationStart; + if (duration != 0) + delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); + else + delay = 0; + } + } + entry.delay = delay; + return entry; + }; + AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { + var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { + if (delay <= 0) + delay -= mixDuration; + var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.setEmptyAnimations = function (mixDuration) { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var current = this.tracks[i]; + if (current != null) + this.setEmptyAnimation(current.trackIndex, mixDuration); + } + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.expandToIndex = function (index) { + if (index < this.tracks.length) + return this.tracks[index]; + spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); + this.tracks.length = index + 1; + return null; + }; + AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { + var entry = this.trackEntryPool.obtain(); + entry.trackIndex = trackIndex; + entry.animation = animation; + entry.loop = loop; + entry.eventThreshold = 0; + entry.attachmentThreshold = 0; + entry.drawOrderThreshold = 0; + entry.animationStart = 0; + entry.animationEnd = animation.duration; + entry.animationLast = -1; + entry.nextAnimationLast = -1; + entry.delay = 0; + entry.trackTime = 0; + entry.trackLast = -1; + entry.nextTrackLast = -1; + entry.trackEnd = Number.MAX_VALUE; + entry.timeScale = 1; + entry.alpha = 1; + entry.interruptAlpha = 1; + entry.mixTime = 0; + entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); + return entry; + }; + AnimationState.prototype.disposeNext = function (entry) { + var next = entry.next; + while (next != null) { + this.queue.dispose(next); + next = next.next; + } + entry.next = null; + }; + AnimationState.prototype._animationsChanged = function () { + this.animationsChanged = false; + var propertyIDs = this.propertyIDs; + propertyIDs.clear(); + var mixingTo = this.mixingTo; + var lastEntry = null; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var entry = this.tracks[i]; + if (entry != null) { + entry.setTimelineData(lastEntry, mixingTo, propertyIDs); + lastEntry = entry; + } + } + }; + AnimationState.prototype.getCurrent = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return null; + return this.tracks[trackIndex]; + }; + AnimationState.prototype.addListener = function (listener) { + if (listener == null) + throw new Error("listener cannot be null."); + this.listeners.push(listener); + }; + AnimationState.prototype.removeListener = function (listener) { + var index = this.listeners.indexOf(listener); + if (index >= 0) + this.listeners.splice(index, 1); + }; + AnimationState.prototype.clearListeners = function () { + this.listeners.length = 0; + }; + AnimationState.prototype.clearListenerNotifications = function () { + this.queue.clear(); + }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); + AnimationState.SUBSEQUENT = 0; + AnimationState.FIRST = 1; + AnimationState.DIP = 2; + AnimationState.DIP_MIX = 3; + return AnimationState; + }()); + spine.AnimationState = AnimationState; + var TrackEntry = (function () { + function TrackEntry() { + this.timelineData = new Array(); + this.timelineDipMix = new Array(); + this.timelinesRotation = new Array(); + } + TrackEntry.prototype.reset = function () { + this.next = null; + this.mixingFrom = null; + this.animation = null; + this.listener = null; + this.timelineData.length = 0; + this.timelineDipMix.length = 0; + this.timelinesRotation.length = 0; + }; + TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { + if (to != null) + mixingToArray.push(to); + var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; + if (to != null) + mixingToArray.pop(); + var mixingTo = mixingToArray; + var mixingToLast = mixingToArray.length - 1; + var timelines = this.animation.timelines; + var timelinesCount = this.animation.timelines.length; + var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); + this.timelineDipMix.length = 0; + var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); + outer: for (var i = 0; i < timelinesCount; i++) { + var id = timelines[i].getPropertyId(); + if (!propertyIDs.add(id)) + timelineData[i] = AnimationState.SUBSEQUENT; + else if (to == null || !to.hasTimeline(id)) + timelineData[i] = AnimationState.FIRST; + else { + for (var ii = mixingToLast; ii >= 0; ii--) { + var entry = mixingTo[ii]; + if (!entry.hasTimeline(id)) { + if (entry.mixDuration > 0) { + timelineData[i] = AnimationState.DIP_MIX; + timelineDipMix[i] = entry; + continue outer; + } + } + } + timelineData[i] = AnimationState.DIP; + } + } + return lastEntry; + }; + TrackEntry.prototype.hasTimeline = function (id) { + var timelines = this.animation.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + if (timelines[i].getPropertyId() == id) + return true; + return false; + }; + TrackEntry.prototype.getAnimationTime = function () { + if (this.loop) { + var duration = this.animationEnd - this.animationStart; + if (duration == 0) + return this.animationStart; + return (this.trackTime % duration) + this.animationStart; + } + return Math.min(this.trackTime + this.animationStart, this.animationEnd); + }; + TrackEntry.prototype.setAnimationLast = function (animationLast) { + this.animationLast = animationLast; + this.nextAnimationLast = animationLast; + }; + TrackEntry.prototype.isComplete = function () { + return this.trackTime >= this.animationEnd - this.animationStart; + }; + TrackEntry.prototype.resetRotationDirections = function () { + this.timelinesRotation.length = 0; + }; + return TrackEntry; + }()); + spine.TrackEntry = TrackEntry; + var EventQueue = (function () { + function EventQueue(animState) { + this.objects = []; + this.drainDisabled = false; + this.animState = animState; + } + EventQueue.prototype.start = function (entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.interrupt = function (entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); + }; + EventQueue.prototype.end = function (entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.dispose = function (entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); + }; + EventQueue.prototype.complete = function (entry) { + this.objects.push(EventType.complete); + this.objects.push(entry); + }; + EventQueue.prototype.event = function (entry, event) { + this.objects.push(EventType.event); + this.objects.push(entry); + this.objects.push(event); + }; + EventQueue.prototype.drain = function () { + if (this.drainDisabled) + return; + this.drainDisabled = true; + var objects = this.objects; + var listeners = this.animState.listeners; + for (var i = 0; i < objects.length; i += 2) { + var type = objects[i]; + var entry = objects[i + 1]; + switch (type) { + case EventType.start: + if (entry.listener != null && entry.listener.start) + entry.listener.start(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].start) + listeners[ii].start(entry); + break; + case EventType.interrupt: + if (entry.listener != null && entry.listener.interrupt) + entry.listener.interrupt(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].interrupt) + listeners[ii].interrupt(entry); + break; + case EventType.end: + if (entry.listener != null && entry.listener.end) + entry.listener.end(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].end) + listeners[ii].end(entry); + case EventType.dispose: + if (entry.listener != null && entry.listener.dispose) + entry.listener.dispose(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].dispose) + listeners[ii].dispose(entry); + this.animState.trackEntryPool.free(entry); + break; + case EventType.complete: + if (entry.listener != null && entry.listener.complete) + entry.listener.complete(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].complete) + listeners[ii].complete(entry); + break; + case EventType.event: + var event_3 = objects[i++ + 2]; + if (entry.listener != null && entry.listener.event) + entry.listener.event(entry, event_3); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].event) + listeners[ii].event(entry, event_3); + break; + } + } + this.clear(); + this.drainDisabled = false; + }; + EventQueue.prototype.clear = function () { + this.objects.length = 0; + }; + return EventQueue; + }()); + spine.EventQueue = EventQueue; + (function (EventType) { + EventType[EventType["start"] = 0] = "start"; + EventType[EventType["interrupt"] = 1] = "interrupt"; + EventType[EventType["end"] = 2] = "end"; + EventType[EventType["dispose"] = 3] = "dispose"; + EventType[EventType["complete"] = 4] = "complete"; + EventType[EventType["event"] = 5] = "event"; + })(spine.EventType || (spine.EventType = {})); + var EventType = spine.EventType; + var AnimationStateAdapter2 = (function () { + function AnimationStateAdapter2() { + } + AnimationStateAdapter2.prototype.start = function (entry) { + }; + AnimationStateAdapter2.prototype.interrupt = function (entry) { + }; + AnimationStateAdapter2.prototype.end = function (entry) { + }; + AnimationStateAdapter2.prototype.dispose = function (entry) { + }; + AnimationStateAdapter2.prototype.complete = function (entry) { + }; + AnimationStateAdapter2.prototype.event = function (entry, event) { + }; + return AnimationStateAdapter2; + }()); + spine.AnimationStateAdapter2 = AnimationStateAdapter2; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationStateData = (function () { - function AnimationStateData(skeletonData) { - this.animationToMixTime = {}; - this.defaultMix = 0; - if (skeletonData == null) - throw new Error("skeletonData cannot be null."); - this.skeletonData = skeletonData; - } - AnimationStateData.prototype.setMix = function (fromName, toName, duration) { - var from = this.skeletonData.findAnimation(fromName); - if (from == null) - throw new Error("Animation not found: " + fromName); - var to = this.skeletonData.findAnimation(toName); - if (to == null) - throw new Error("Animation not found: " + toName); - this.setMixWith(from, to, duration); - }; - AnimationStateData.prototype.setMixWith = function (from, to, duration) { - if (from == null) - throw new Error("from cannot be null."); - if (to == null) - throw new Error("to cannot be null."); - var key = from.name + to.name; - this.animationToMixTime[key] = duration; - }; - AnimationStateData.prototype.getMix = function (from, to) { - var key = from.name + to.name; - var value = this.animationToMixTime[key]; - return value === undefined ? this.defaultMix : value; - }; - return AnimationStateData; - }()); - spine.AnimationStateData = AnimationStateData; + var AnimationStateData = (function () { + function AnimationStateData(skeletonData) { + this.animationToMixTime = {}; + this.defaultMix = 0; + if (skeletonData == null) + throw new Error("skeletonData cannot be null."); + this.skeletonData = skeletonData; + } + AnimationStateData.prototype.setMix = function (fromName, toName, duration) { + var from = this.skeletonData.findAnimation(fromName); + if (from == null) + throw new Error("Animation not found: " + fromName); + var to = this.skeletonData.findAnimation(toName); + if (to == null) + throw new Error("Animation not found: " + toName); + this.setMixWith(from, to, duration); + }; + AnimationStateData.prototype.setMixWith = function (from, to, duration) { + if (from == null) + throw new Error("from cannot be null."); + if (to == null) + throw new Error("to cannot be null."); + var key = from.name + to.name; + this.animationToMixTime[key] = duration; + }; + AnimationStateData.prototype.getMix = function (from, to) { + var key = from.name + to.name; + var value = this.animationToMixTime[key]; + return value === undefined ? this.defaultMix : value; + }; + return AnimationStateData; + }()); + spine.AnimationStateData = AnimationStateData; })(spine || (spine = {})); var spine; (function (spine) { - var AssetManager = (function () { - function AssetManager(textureLoader, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.assets = {}; - this.errors = {}; - this.toLoad = 0; - this.loaded = 0; - this.textureLoader = textureLoader; - this.pathPrefix = pathPrefix; - } - AssetManager.prototype.loadText = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.assets[path] = request.responseText; - if (success) - success(path, request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - if (error) - error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); - } - _this.toLoad--; - _this.loaded++; - } - }; - request.open("GET", path, true); - request.send(); - }; - AssetManager.prototype.loadTexture = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = path; - }; - AssetManager.prototype.loadTextureData = function (path, data, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = data; - }; - AssetManager.prototype.get = function (path) { - path = this.pathPrefix + path; - return this.assets[path]; - }; - AssetManager.prototype.remove = function (path) { - path = this.pathPrefix + path; - var asset = this.assets[path]; - if (asset.dispose) - asset.dispose(); - this.assets[path] = null; - }; - AssetManager.prototype.removeAll = function () { - for (var key in this.assets) { - var asset = this.assets[key]; - if (asset.dispose) - asset.dispose(); - } - this.assets = {}; - }; - AssetManager.prototype.isLoadingComplete = function () { - return this.toLoad == 0; - }; - AssetManager.prototype.getToLoad = function () { - return this.toLoad; - }; - AssetManager.prototype.getLoaded = function () { - return this.loaded; - }; - AssetManager.prototype.dispose = function () { - this.removeAll(); - }; - AssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - AssetManager.prototype.getErrors = function () { - return this.errors; - }; - return AssetManager; - }()); - spine.AssetManager = AssetManager; + var AssetManager = (function () { + function AssetManager(textureLoader, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.assets = {}; + this.errors = {}; + this.toLoad = 0; + this.loaded = 0; + this.textureLoader = textureLoader; + this.pathPrefix = pathPrefix; + } + AssetManager.prototype.loadText = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.assets[path] = request.responseText; + if (success) + success(path, request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + if (error) + error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); + } + _this.toLoad--; + _this.loaded++; + } + }; + request.open("GET", path, true); + request.send(); + }; + AssetManager.prototype.loadTexture = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = path; + }; + AssetManager.prototype.loadTextureData = function (path, data, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = data; + }; + AssetManager.prototype.get = function (path) { + path = this.pathPrefix + path; + return this.assets[path]; + }; + AssetManager.prototype.remove = function (path) { + path = this.pathPrefix + path; + var asset = this.assets[path]; + if (asset.dispose) + asset.dispose(); + this.assets[path] = null; + }; + AssetManager.prototype.removeAll = function () { + for (var key in this.assets) { + var asset = this.assets[key]; + if (asset.dispose) + asset.dispose(); + } + this.assets = {}; + }; + AssetManager.prototype.isLoadingComplete = function () { + return this.toLoad == 0; + }; + AssetManager.prototype.getToLoad = function () { + return this.toLoad; + }; + AssetManager.prototype.getLoaded = function () { + return this.loaded; + }; + AssetManager.prototype.dispose = function () { + this.removeAll(); + }; + AssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + AssetManager.prototype.getErrors = function () { + return this.errors; + }; + return AssetManager; + }()); + spine.AssetManager = AssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var AtlasAttachmentLoader = (function () { - function AtlasAttachmentLoader(atlas) { - this.atlas = atlas; - } - AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.RegionAttachment(name); - attachment.setRegion(region); - return attachment; - }; - AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.MeshAttachment(name); - attachment.region = region; - return attachment; - }; - AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { - return new spine.BoundingBoxAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { - return new spine.PathAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { - return new spine.PointAttachment(name); - }; - AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { - return new spine.ClippingAttachment(name); - }; - return AtlasAttachmentLoader; - }()); - spine.AtlasAttachmentLoader = AtlasAttachmentLoader; + var AtlasAttachmentLoader = (function () { + function AtlasAttachmentLoader(atlas) { + this.atlas = atlas; + } + AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.RegionAttachment(name); + attachment.setRegion(region); + return attachment; + }; + AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.MeshAttachment(name); + attachment.region = region; + return attachment; + }; + AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { + return new spine.BoundingBoxAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { + return new spine.PathAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { + return new spine.PointAttachment(name); + }; + AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { + return new spine.ClippingAttachment(name); + }; + return AtlasAttachmentLoader; + }()); + spine.AtlasAttachmentLoader = AtlasAttachmentLoader; })(spine || (spine = {})); var spine; (function (spine) { - var Attachment = (function () { - function Attachment(name) { - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return Attachment; - }()); - spine.Attachment = Attachment; - var VertexAttachment = (function (_super) { - __extends(VertexAttachment, _super); - function VertexAttachment(name) { - _super.call(this, name); - this.worldVerticesLength = 0; - } - VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { - count = offset + (count >> 1) * stride; - var skeleton = slot.bone.skeleton; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices; - var bones = this.bones; - if (bones == null) { - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - var x = bone.worldX; - var y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { - var vx = vertices[v_1], vy = vertices[v_1 + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - } - return; - } - var v = 0, skip = 0; - for (var i = 0; i < start; i += 2) { - var n = bones[v]; - v += n + 1; - skip += n; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = offset, b = skip * 3; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - else { - var deform = deformArray; - for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3, f += 2) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - }; - VertexAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment; - }; - return VertexAttachment; - }(Attachment)); - spine.VertexAttachment = VertexAttachment; + var Attachment = (function () { + function Attachment(name) { + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return Attachment; + }()); + spine.Attachment = Attachment; + var VertexAttachment = (function (_super) { + __extends(VertexAttachment, _super); + function VertexAttachment(name) { + _super.call(this, name); + this.worldVerticesLength = 0; + } + VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { + count = offset + (count >> 1) * stride; + var skeleton = slot.bone.skeleton; + var deformArray = slot.attachmentVertices; + var vertices = this.vertices; + var bones = this.bones; + if (bones == null) { + if (deformArray.length > 0) + vertices = deformArray; + var bone = slot.bone; + var x = bone.worldX; + var y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { + var vx = vertices[v_1], vy = vertices[v_1 + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + } + return; + } + var v = 0, skip = 0; + for (var i = 0; i < start; i += 2) { + var n = bones[v]; + v += n + 1; + skip += n; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = offset, b = skip * 3; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + else { + var deform = deformArray; + for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3, f += 2) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + }; + VertexAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment; + }; + return VertexAttachment; + }(Attachment)); + spine.VertexAttachment = VertexAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (AttachmentType) { - AttachmentType[AttachmentType["Region"] = 0] = "Region"; - AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; - AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; - AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; - AttachmentType[AttachmentType["Path"] = 4] = "Path"; - AttachmentType[AttachmentType["Point"] = 5] = "Point"; - })(spine.AttachmentType || (spine.AttachmentType = {})); - var AttachmentType = spine.AttachmentType; + (function (AttachmentType) { + AttachmentType[AttachmentType["Region"] = 0] = "Region"; + AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; + AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; + AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; + AttachmentType[AttachmentType["Path"] = 4] = "Path"; + AttachmentType[AttachmentType["Point"] = 5] = "Point"; + })(spine.AttachmentType || (spine.AttachmentType = {})); + var AttachmentType = spine.AttachmentType; })(spine || (spine = {})); var spine; (function (spine) { - var BoundingBoxAttachment = (function (_super) { - __extends(BoundingBoxAttachment, _super); - function BoundingBoxAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - } - return BoundingBoxAttachment; - }(spine.VertexAttachment)); - spine.BoundingBoxAttachment = BoundingBoxAttachment; + var BoundingBoxAttachment = (function (_super) { + __extends(BoundingBoxAttachment, _super); + function BoundingBoxAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + } + return BoundingBoxAttachment; + }(spine.VertexAttachment)); + spine.BoundingBoxAttachment = BoundingBoxAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var ClippingAttachment = (function (_super) { - __extends(ClippingAttachment, _super); - function ClippingAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); - } - return ClippingAttachment; - }(spine.VertexAttachment)); - spine.ClippingAttachment = ClippingAttachment; + var ClippingAttachment = (function (_super) { + __extends(ClippingAttachment, _super); + function ClippingAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); + } + return ClippingAttachment; + }(spine.VertexAttachment)); + spine.ClippingAttachment = ClippingAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var MeshAttachment = (function (_super) { - __extends(MeshAttachment, _super); - function MeshAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - this.inheritDeform = false; - this.tempColor = new spine.Color(0, 0, 0, 0); - } - MeshAttachment.prototype.updateUVs = function () { - var u = 0, v = 0, width = 0, height = 0; - if (this.region == null) { - u = v = 0; - width = height = 1; - } - else { - u = this.region.u; - v = this.region.v; - width = this.region.u2 - u; - height = this.region.v2 - v; - } - var regionUVs = this.regionUVs; - if (this.uvs == null || this.uvs.length != regionUVs.length) - this.uvs = spine.Utils.newFloatArray(regionUVs.length); - var uvs = this.uvs; - if (this.region.rotate) { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i + 1] * width; - uvs[i + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i] * width; - uvs[i + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); - }; - MeshAttachment.prototype.getParentMesh = function () { - return this.parentMesh; - }; - MeshAttachment.prototype.setParentMesh = function (parentMesh) { - this.parentMesh = parentMesh; - if (parentMesh != null) { - this.bones = parentMesh.bones; - this.vertices = parentMesh.vertices; - this.worldVerticesLength = parentMesh.worldVerticesLength; - this.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - this.worldVerticesLength = parentMesh.worldVerticesLength; - } - }; - return MeshAttachment; - }(spine.VertexAttachment)); - spine.MeshAttachment = MeshAttachment; + var MeshAttachment = (function (_super) { + __extends(MeshAttachment, _super); + function MeshAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + this.inheritDeform = false; + this.tempColor = new spine.Color(0, 0, 0, 0); + } + MeshAttachment.prototype.updateUVs = function () { + var u = 0, v = 0, width = 0, height = 0; + if (this.region == null) { + u = v = 0; + width = height = 1; + } + else { + u = this.region.u; + v = this.region.v; + width = this.region.u2 - u; + height = this.region.v2 - v; + } + var regionUVs = this.regionUVs; + if (this.uvs == null || this.uvs.length != regionUVs.length) + this.uvs = spine.Utils.newFloatArray(regionUVs.length); + var uvs = this.uvs; + if (this.region.rotate) { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); + }; + MeshAttachment.prototype.getParentMesh = function () { + return this.parentMesh; + }; + MeshAttachment.prototype.setParentMesh = function (parentMesh) { + this.parentMesh = parentMesh; + if (parentMesh != null) { + this.bones = parentMesh.bones; + this.vertices = parentMesh.vertices; + this.worldVerticesLength = parentMesh.worldVerticesLength; + this.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + this.worldVerticesLength = parentMesh.worldVerticesLength; + } + }; + return MeshAttachment; + }(spine.VertexAttachment)); + spine.MeshAttachment = MeshAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PathAttachment = (function (_super) { - __extends(PathAttachment, _super); - function PathAttachment(name) { - _super.call(this, name); - this.closed = false; - this.constantSpeed = false; - this.color = new spine.Color(1, 1, 1, 1); - } - return PathAttachment; - }(spine.VertexAttachment)); - spine.PathAttachment = PathAttachment; + var PathAttachment = (function (_super) { + __extends(PathAttachment, _super); + function PathAttachment(name) { + _super.call(this, name); + this.closed = false; + this.constantSpeed = false; + this.color = new spine.Color(1, 1, 1, 1); + } + return PathAttachment; + }(spine.VertexAttachment)); + spine.PathAttachment = PathAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PointAttachment = (function (_super) { - __extends(PointAttachment, _super); - function PointAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.38, 0.94, 0, 1); - } - PointAttachment.prototype.computeWorldPosition = function (bone, point) { - point.x = this.x * bone.a + this.y * bone.b + bone.worldX; - point.y = this.x * bone.c + this.y * bone.d + bone.worldY; - return point; - }; - PointAttachment.prototype.computeWorldRotation = function (bone) { - var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); - var x = cos * bone.a + sin * bone.b; - var y = cos * bone.c + sin * bone.d; - return Math.atan2(y, x) * spine.MathUtils.radDeg; - }; - return PointAttachment; - }(spine.VertexAttachment)); - spine.PointAttachment = PointAttachment; + var PointAttachment = (function (_super) { + __extends(PointAttachment, _super); + function PointAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.38, 0.94, 0, 1); + } + PointAttachment.prototype.computeWorldPosition = function (bone, point) { + point.x = this.x * bone.a + this.y * bone.b + bone.worldX; + point.y = this.x * bone.c + this.y * bone.d + bone.worldY; + return point; + }; + PointAttachment.prototype.computeWorldRotation = function (bone) { + var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); + var x = cos * bone.a + sin * bone.b; + var y = cos * bone.c + sin * bone.d; + return Math.atan2(y, x) * spine.MathUtils.radDeg; + }; + return PointAttachment; + }(spine.VertexAttachment)); + spine.PointAttachment = PointAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var RegionAttachment = (function (_super) { - __extends(RegionAttachment, _super); - function RegionAttachment(name) { - _super.call(this, name); - this.x = 0; - this.y = 0; - this.scaleX = 1; - this.scaleY = 1; - this.rotation = 0; - this.width = 0; - this.height = 0; - this.color = new spine.Color(1, 1, 1, 1); - this.offset = spine.Utils.newFloatArray(8); - this.uvs = spine.Utils.newFloatArray(8); - this.tempColor = new spine.Color(1, 1, 1, 1); - } - RegionAttachment.prototype.updateOffset = function () { - var regionScaleX = this.width / this.region.originalWidth * this.scaleX; - var regionScaleY = this.height / this.region.originalHeight * this.scaleY; - var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; - var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; - var localX2 = localX + this.region.width * regionScaleX; - var localY2 = localY + this.region.height * regionScaleY; - var radians = this.rotation * Math.PI / 180; - var cos = Math.cos(radians); - var sin = Math.sin(radians); - var localXCos = localX * cos + this.x; - var localXSin = localX * sin; - var localYCos = localY * cos + this.y; - var localYSin = localY * sin; - var localX2Cos = localX2 * cos + this.x; - var localX2Sin = localX2 * sin; - var localY2Cos = localY2 * cos + this.y; - var localY2Sin = localY2 * sin; - var offset = this.offset; - offset[RegionAttachment.OX1] = localXCos - localYSin; - offset[RegionAttachment.OY1] = localYCos + localXSin; - offset[RegionAttachment.OX2] = localXCos - localY2Sin; - offset[RegionAttachment.OY2] = localY2Cos + localXSin; - offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; - offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; - offset[RegionAttachment.OX4] = localX2Cos - localYSin; - offset[RegionAttachment.OY4] = localYCos + localX2Sin; - }; - RegionAttachment.prototype.setRegion = function (region) { - this.region = region; - var uvs = this.uvs; - if (region.rotate) { - uvs[2] = region.u; - uvs[3] = region.v2; - uvs[4] = region.u; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v; - uvs[0] = region.u2; - uvs[1] = region.v2; - } - else { - uvs[0] = region.u; - uvs[1] = region.v2; - uvs[2] = region.u; - uvs[3] = region.v; - uvs[4] = region.u2; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v2; - } - }; - RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { - var vertexOffset = this.offset; - var x = bone.worldX, y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = vertexOffset[RegionAttachment.OX1]; - offsetY = vertexOffset[RegionAttachment.OY1]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX2]; - offsetY = vertexOffset[RegionAttachment.OY2]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX3]; - offsetY = vertexOffset[RegionAttachment.OY3]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX4]; - offsetY = vertexOffset[RegionAttachment.OY4]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - }; - RegionAttachment.OX1 = 0; - RegionAttachment.OY1 = 1; - RegionAttachment.OX2 = 2; - RegionAttachment.OY2 = 3; - RegionAttachment.OX3 = 4; - RegionAttachment.OY3 = 5; - RegionAttachment.OX4 = 6; - RegionAttachment.OY4 = 7; - RegionAttachment.X1 = 0; - RegionAttachment.Y1 = 1; - RegionAttachment.C1R = 2; - RegionAttachment.C1G = 3; - RegionAttachment.C1B = 4; - RegionAttachment.C1A = 5; - RegionAttachment.U1 = 6; - RegionAttachment.V1 = 7; - RegionAttachment.X2 = 8; - RegionAttachment.Y2 = 9; - RegionAttachment.C2R = 10; - RegionAttachment.C2G = 11; - RegionAttachment.C2B = 12; - RegionAttachment.C2A = 13; - RegionAttachment.U2 = 14; - RegionAttachment.V2 = 15; - RegionAttachment.X3 = 16; - RegionAttachment.Y3 = 17; - RegionAttachment.C3R = 18; - RegionAttachment.C3G = 19; - RegionAttachment.C3B = 20; - RegionAttachment.C3A = 21; - RegionAttachment.U3 = 22; - RegionAttachment.V3 = 23; - RegionAttachment.X4 = 24; - RegionAttachment.Y4 = 25; - RegionAttachment.C4R = 26; - RegionAttachment.C4G = 27; - RegionAttachment.C4B = 28; - RegionAttachment.C4A = 29; - RegionAttachment.U4 = 30; - RegionAttachment.V4 = 31; - return RegionAttachment; - }(spine.Attachment)); - spine.RegionAttachment = RegionAttachment; + var RegionAttachment = (function (_super) { + __extends(RegionAttachment, _super); + function RegionAttachment(name) { + _super.call(this, name); + this.x = 0; + this.y = 0; + this.scaleX = 1; + this.scaleY = 1; + this.rotation = 0; + this.width = 0; + this.height = 0; + this.color = new spine.Color(1, 1, 1, 1); + this.offset = spine.Utils.newFloatArray(8); + this.uvs = spine.Utils.newFloatArray(8); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.updateOffset = function () { + var regionScaleX = this.width / this.region.originalWidth * this.scaleX; + var regionScaleY = this.height / this.region.originalHeight * this.scaleY; + var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; + var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; + var localX2 = localX + this.region.width * regionScaleX; + var localY2 = localY + this.region.height * regionScaleY; + var radians = this.rotation * Math.PI / 180; + var cos = Math.cos(radians); + var sin = Math.sin(radians); + var localXCos = localX * cos + this.x; + var localXSin = localX * sin; + var localYCos = localY * cos + this.y; + var localYSin = localY * sin; + var localX2Cos = localX2 * cos + this.x; + var localX2Sin = localX2 * sin; + var localY2Cos = localY2 * cos + this.y; + var localY2Sin = localY2 * sin; + var offset = this.offset; + offset[RegionAttachment.OX1] = localXCos - localYSin; + offset[RegionAttachment.OY1] = localYCos + localXSin; + offset[RegionAttachment.OX2] = localXCos - localY2Sin; + offset[RegionAttachment.OY2] = localY2Cos + localXSin; + offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; + offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; + offset[RegionAttachment.OX4] = localX2Cos - localYSin; + offset[RegionAttachment.OY4] = localYCos + localX2Sin; + }; + RegionAttachment.prototype.setRegion = function (region) { + this.region = region; + var uvs = this.uvs; + if (region.rotate) { + uvs[2] = region.u; + uvs[3] = region.v2; + uvs[4] = region.u; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v; + uvs[0] = region.u2; + uvs[1] = region.v2; + } + else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; + } + }; + RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { + var vertexOffset = this.offset; + var x = bone.worldX, y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var offsetX = 0, offsetY = 0; + offsetX = vertexOffset[RegionAttachment.OX1]; + offsetY = vertexOffset[RegionAttachment.OY1]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX2]; + offsetY = vertexOffset[RegionAttachment.OY2]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX3]; + offsetY = vertexOffset[RegionAttachment.OY3]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX4]; + offsetY = vertexOffset[RegionAttachment.OY4]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + }; + RegionAttachment.OX1 = 0; + RegionAttachment.OY1 = 1; + RegionAttachment.OX2 = 2; + RegionAttachment.OY2 = 3; + RegionAttachment.OX3 = 4; + RegionAttachment.OY3 = 5; + RegionAttachment.OX4 = 6; + RegionAttachment.OY4 = 7; + RegionAttachment.X1 = 0; + RegionAttachment.Y1 = 1; + RegionAttachment.C1R = 2; + RegionAttachment.C1G = 3; + RegionAttachment.C1B = 4; + RegionAttachment.C1A = 5; + RegionAttachment.U1 = 6; + RegionAttachment.V1 = 7; + RegionAttachment.X2 = 8; + RegionAttachment.Y2 = 9; + RegionAttachment.C2R = 10; + RegionAttachment.C2G = 11; + RegionAttachment.C2B = 12; + RegionAttachment.C2A = 13; + RegionAttachment.U2 = 14; + RegionAttachment.V2 = 15; + RegionAttachment.X3 = 16; + RegionAttachment.Y3 = 17; + RegionAttachment.C3R = 18; + RegionAttachment.C3G = 19; + RegionAttachment.C3B = 20; + RegionAttachment.C3A = 21; + RegionAttachment.U3 = 22; + RegionAttachment.V3 = 23; + RegionAttachment.X4 = 24; + RegionAttachment.Y4 = 25; + RegionAttachment.C4R = 26; + RegionAttachment.C4G = 27; + RegionAttachment.C4B = 28; + RegionAttachment.C4A = 29; + RegionAttachment.U4 = 30; + RegionAttachment.V4 = 31; + return RegionAttachment; + }(spine.Attachment)); + spine.RegionAttachment = RegionAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (BlendMode) { - BlendMode[BlendMode["Normal"] = 0] = "Normal"; - BlendMode[BlendMode["Additive"] = 1] = "Additive"; - BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; - BlendMode[BlendMode["Screen"] = 3] = "Screen"; - })(spine.BlendMode || (spine.BlendMode = {})); - var BlendMode = spine.BlendMode; + (function (BlendMode) { + BlendMode[BlendMode["Normal"] = 0] = "Normal"; + BlendMode[BlendMode["Additive"] = 1] = "Additive"; + BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; + BlendMode[BlendMode["Screen"] = 3] = "Screen"; + })(spine.BlendMode || (spine.BlendMode = {})); + var BlendMode = spine.BlendMode; })(spine || (spine = {})); var spine; (function (spine) { - var Bone = (function () { - function Bone(data, skeleton, parent) { - this.children = new Array(); - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 0; - this.scaleY = 0; - this.shearX = 0; - this.shearY = 0; - this.ax = 0; - this.ay = 0; - this.arotation = 0; - this.ascaleX = 0; - this.ascaleY = 0; - this.ashearX = 0; - this.ashearY = 0; - this.appliedValid = false; - this.a = 0; - this.b = 0; - this.worldX = 0; - this.c = 0; - this.d = 0; - this.worldY = 0; - this.sorted = false; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.skeleton = skeleton; - this.parent = parent; - this.setToSetupPose(); - } - Bone.prototype.update = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransform = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { - this.ax = x; - this.ay = y; - this.arotation = rotation; - this.ascaleX = scaleX; - this.ascaleY = scaleY; - this.ashearX = shearX; - this.ashearY = shearY; - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - var skeleton = this.skeleton; - if (skeleton.flipX) { - x = -x; - la = -la; - lb = -lb; - } - if (skeleton.flipY) { - y = -y; - lc = -lc; - ld = -ld; - } - this.a = la; - this.b = lb; - this.c = lc; - this.d = ld; - this.worldX = x + skeleton.x; - this.worldY = y + skeleton.y; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - this.worldX = pa * x + pb * y + parent.worldX; - this.worldY = pc * x + pd * y + parent.worldY; - switch (this.data.transformMode) { - case spine.TransformMode.Normal: { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - return; - } - case spine.TransformMode.OnlyTranslation: { - var rotationY = rotation + 90 + shearY; - this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; - this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; - break; - } - case spine.TransformMode.NoRotationOrReflection: { - var s = pa * pa + pc * pc; - var prx = 0; - if (s > 0.0001) { - s = Math.abs(pa * pd - pb * pc) / s; - pb = pc * s; - pd = pa * s; - prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; - } - else { - pa = 0; - pc = 0; - prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; - } - var rx = rotation + shearX - prx; - var ry = rotation + shearY - prx + 90; - var la = spine.MathUtils.cosDeg(rx) * scaleX; - var lb = spine.MathUtils.cosDeg(ry) * scaleY; - var lc = spine.MathUtils.sinDeg(rx) * scaleX; - var ld = spine.MathUtils.sinDeg(ry) * scaleY; - this.a = pa * la - pb * lc; - this.b = pa * lb - pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - break; - } - case spine.TransformMode.NoScale: - case spine.TransformMode.NoScaleOrReflection: { - var cos = spine.MathUtils.cosDeg(rotation); - var sin = spine.MathUtils.sinDeg(rotation); - var za = pa * cos + pb * sin; - var zc = pc * cos + pd * sin; - var s = Math.sqrt(za * za + zc * zc); - if (s > 0.00001) - s = 1 / s; - za *= s; - zc *= s; - s = Math.sqrt(za * za + zc * zc); - var r = Math.PI / 2 + Math.atan2(zc, za); - var zb = Math.cos(r) * s; - var zd = Math.sin(r) * s; - var la = spine.MathUtils.cosDeg(shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; - var lc = spine.MathUtils.sinDeg(shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; - this.a = za * la + zb * lc; - this.b = za * lb + zb * ld; - this.c = zc * la + zd * lc; - this.d = zc * lb + zd * ld; - if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { - this.b = -this.b; - this.d = -this.d; - } - return; - } - } - if (this.skeleton.flipX) { - this.a = -this.a; - this.b = -this.b; - } - if (this.skeleton.flipY) { - this.c = -this.c; - this.d = -this.d; - } - }; - Bone.prototype.setToSetupPose = function () { - var data = this.data; - this.x = data.x; - this.y = data.y; - this.rotation = data.rotation; - this.scaleX = data.scaleX; - this.scaleY = data.scaleY; - this.shearX = data.shearX; - this.shearY = data.shearY; - }; - Bone.prototype.getWorldRotationX = function () { - return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldRotationY = function () { - return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldScaleX = function () { - return Math.sqrt(this.a * this.a + this.c * this.c); - }; - Bone.prototype.getWorldScaleY = function () { - return Math.sqrt(this.b * this.b + this.d * this.d); - }; - Bone.prototype.updateAppliedTransform = function () { - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - this.ax = this.worldX; - this.ay = this.worldY; - this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); - this.ashearX = 0; - this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - var pid = 1 / (pa * pd - pb * pc); - var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; - this.ax = (dx * pd * pid - dy * pb * pid); - this.ay = (dy * pa * pid - dx * pc * pid); - var ia = pid * pd; - var id = pid * pa; - var ib = pid * pb; - var ic = pid * pc; - var ra = ia * this.a - ib * this.c; - var rb = ia * this.b - ib * this.d; - var rc = id * this.c - ic * this.a; - var rd = id * this.d - ic * this.b; - this.ashearX = 0; - this.ascaleX = Math.sqrt(ra * ra + rc * rc); - if (this.ascaleX > 0.0001) { - var det = ra * rd - rb * rc; - this.ascaleY = det / this.ascaleX; - this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; - this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; - } - else { - this.ascaleX = 0; - this.ascaleY = Math.sqrt(rb * rb + rd * rd); - this.ashearY = 0; - this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; - } - }; - Bone.prototype.worldToLocal = function (world) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var invDet = 1 / (a * d - b * c); - var x = world.x - this.worldX, y = world.y - this.worldY; - world.x = (x * d * invDet - y * b * invDet); - world.y = (y * a * invDet - x * c * invDet); - return world; - }; - Bone.prototype.localToWorld = function (local) { - var x = local.x, y = local.y; - local.x = x * this.a + y * this.b + this.worldX; - local.y = x * this.c + y * this.d + this.worldY; - return local; - }; - Bone.prototype.worldToLocalRotation = function (worldRotation) { - var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); - return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; - }; - Bone.prototype.localToWorldRotation = function (localRotation) { - var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); - return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.rotateWorld = function (degrees) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); - this.a = cos * a - sin * c; - this.b = cos * b - sin * d; - this.c = sin * a + cos * c; - this.d = sin * b + cos * d; - this.appliedValid = false; - }; - return Bone; - }()); - spine.Bone = Bone; + var Bone = (function () { + function Bone(data, skeleton, parent) { + this.children = new Array(); + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 0; + this.scaleY = 0; + this.shearX = 0; + this.shearY = 0; + this.ax = 0; + this.ay = 0; + this.arotation = 0; + this.ascaleX = 0; + this.ascaleY = 0; + this.ashearX = 0; + this.ashearY = 0; + this.appliedValid = false; + this.a = 0; + this.b = 0; + this.worldX = 0; + this.c = 0; + this.d = 0; + this.worldY = 0; + this.sorted = false; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.skeleton = skeleton; + this.parent = parent; + this.setToSetupPose(); + } + Bone.prototype.update = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransform = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { + this.ax = x; + this.ay = y; + this.arotation = rotation; + this.ascaleX = scaleX; + this.ascaleY = scaleY; + this.ashearX = shearX; + this.ashearY = shearY; + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + var skeleton = this.skeleton; + if (skeleton.flipX) { + x = -x; + la = -la; + lb = -lb; + } + if (skeleton.flipY) { + y = -y; + lc = -lc; + ld = -ld; + } + this.a = la; + this.b = lb; + this.c = lc; + this.d = ld; + this.worldX = x + skeleton.x; + this.worldY = y + skeleton.y; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + this.worldX = pa * x + pb * y + parent.worldX; + this.worldY = pc * x + pd * y + parent.worldY; + switch (this.data.transformMode) { + case spine.TransformMode.Normal: { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + this.a = pa * la + pb * lc; + this.b = pa * lb + pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + return; + } + case spine.TransformMode.OnlyTranslation: { + var rotationY = rotation + 90 + shearY; + this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; + this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; + break; + } + case spine.TransformMode.NoRotationOrReflection: { + var s = pa * pa + pc * pc; + var prx = 0; + if (s > 0.0001) { + s = Math.abs(pa * pd - pb * pc) / s; + pb = pc * s; + pd = pa * s; + prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; + } + else { + pa = 0; + pc = 0; + prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; + } + var rx = rotation + shearX - prx; + var ry = rotation + shearY - prx + 90; + var la = spine.MathUtils.cosDeg(rx) * scaleX; + var lb = spine.MathUtils.cosDeg(ry) * scaleY; + var lc = spine.MathUtils.sinDeg(rx) * scaleX; + var ld = spine.MathUtils.sinDeg(ry) * scaleY; + this.a = pa * la - pb * lc; + this.b = pa * lb - pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + break; + } + case spine.TransformMode.NoScale: + case spine.TransformMode.NoScaleOrReflection: { + var cos = spine.MathUtils.cosDeg(rotation); + var sin = spine.MathUtils.sinDeg(rotation); + var za = pa * cos + pb * sin; + var zc = pc * cos + pd * sin; + var s = Math.sqrt(za * za + zc * zc); + if (s > 0.00001) + s = 1 / s; + za *= s; + zc *= s; + s = Math.sqrt(za * za + zc * zc); + var r = Math.PI / 2 + Math.atan2(zc, za); + var zb = Math.cos(r) * s; + var zd = Math.sin(r) * s; + var la = spine.MathUtils.cosDeg(shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; + var lc = spine.MathUtils.sinDeg(shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; + this.a = za * la + zb * lc; + this.b = za * lb + zb * ld; + this.c = zc * la + zd * lc; + this.d = zc * lb + zd * ld; + if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { + this.b = -this.b; + this.d = -this.d; + } + return; + } + } + if (this.skeleton.flipX) { + this.a = -this.a; + this.b = -this.b; + } + if (this.skeleton.flipY) { + this.c = -this.c; + this.d = -this.d; + } + }; + Bone.prototype.setToSetupPose = function () { + var data = this.data; + this.x = data.x; + this.y = data.y; + this.rotation = data.rotation; + this.scaleX = data.scaleX; + this.scaleY = data.scaleY; + this.shearX = data.shearX; + this.shearY = data.shearY; + }; + Bone.prototype.getWorldRotationX = function () { + return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldRotationY = function () { + return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldScaleX = function () { + return Math.sqrt(this.a * this.a + this.c * this.c); + }; + Bone.prototype.getWorldScaleY = function () { + return Math.sqrt(this.b * this.b + this.d * this.d); + }; + Bone.prototype.updateAppliedTransform = function () { + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + this.ax = this.worldX; + this.ay = this.worldY; + this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); + this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); + this.ashearX = 0; + this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + var pid = 1 / (pa * pd - pb * pc); + var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; + this.ax = (dx * pd * pid - dy * pb * pid); + this.ay = (dy * pa * pid - dx * pc * pid); + var ia = pid * pd; + var id = pid * pa; + var ib = pid * pb; + var ic = pid * pc; + var ra = ia * this.a - ib * this.c; + var rb = ia * this.b - ib * this.d; + var rc = id * this.c - ic * this.a; + var rd = id * this.d - ic * this.b; + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { + var det = ra * rd - rb * rc; + this.ascaleY = det / this.ascaleX; + this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; + this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; + } + else { + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; + } + }; + Bone.prototype.worldToLocal = function (world) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var invDet = 1 / (a * d - b * c); + var x = world.x - this.worldX, y = world.y - this.worldY; + world.x = (x * d * invDet - y * b * invDet); + world.y = (y * a * invDet - x * c * invDet); + return world; + }; + Bone.prototype.localToWorld = function (local) { + var x = local.x, y = local.y; + local.x = x * this.a + y * this.b + this.worldX; + local.y = x * this.c + y * this.d + this.worldY; + return local; + }; + Bone.prototype.worldToLocalRotation = function (worldRotation) { + var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); + return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; + }; + Bone.prototype.localToWorldRotation = function (localRotation) { + var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); + return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.rotateWorld = function (degrees) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); + this.a = cos * a - sin * c; + this.b = cos * b - sin * d; + this.c = sin * a + cos * c; + this.d = sin * b + cos * d; + this.appliedValid = false; + }; + return Bone; + }()); + spine.Bone = Bone; })(spine || (spine = {})); var spine; (function (spine) { - var BoneData = (function () { - function BoneData(index, name, parent) { - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 1; - this.scaleY = 1; - this.shearX = 0; - this.shearY = 0; - this.transformMode = TransformMode.Normal; - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - this.index = index; - this.name = name; - this.parent = parent; - } - return BoneData; - }()); - spine.BoneData = BoneData; - (function (TransformMode) { - TransformMode[TransformMode["Normal"] = 0] = "Normal"; - TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; - TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; - TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; - TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; - })(spine.TransformMode || (spine.TransformMode = {})); - var TransformMode = spine.TransformMode; + var BoneData = (function () { + function BoneData(index, name, parent) { + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 1; + this.scaleY = 1; + this.shearX = 0; + this.shearY = 0; + this.transformMode = TransformMode.Normal; + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + this.index = index; + this.name = name; + this.parent = parent; + } + return BoneData; + }()); + spine.BoneData = BoneData; + (function (TransformMode) { + TransformMode[TransformMode["Normal"] = 0] = "Normal"; + TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; + TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; + TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; + TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; + })(spine.TransformMode || (spine.TransformMode = {})); + var TransformMode = spine.TransformMode; })(spine || (spine = {})); var spine; (function (spine) { - var Event = (function () { - function Event(time, data) { - if (data == null) - throw new Error("data cannot be null."); - this.time = time; - this.data = data; - } - return Event; - }()); - spine.Event = Event; + var Event = (function () { + function Event(time, data) { + if (data == null) + throw new Error("data cannot be null."); + this.time = time; + this.data = data; + } + return Event; + }()); + spine.Event = Event; })(spine || (spine = {})); var spine; (function (spine) { - var EventData = (function () { - function EventData(name) { - this.name = name; - } - return EventData; - }()); - spine.EventData = EventData; + var EventData = (function () { + function EventData(name) { + this.name = name; + } + return EventData; + }()); + spine.EventData = EventData; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraint = (function () { - function IkConstraint(data, skeleton) { - this.mix = 1; - this.bendDirection = 0; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.mix = data.mix; - this.bendDirection = data.bendDirection; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - IkConstraint.prototype.getOrder = function () { - return this.data.order; - }; - IkConstraint.prototype.apply = function () { - this.update(); - }; - IkConstraint.prototype.update = function () { - var target = this.target; - var bones = this.bones; - switch (bones.length) { - case 1: - this.apply1(bones[0], target.worldX, target.worldY, this.mix); - break; - case 2: - this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); - break; - } - }; - IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var p = bone.parent; - var id = 1 / (p.a * p.d - p.b * p.c); - var x = targetX - p.worldX, y = targetY - p.worldY; - var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; - var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; - if (bone.ascaleX < 0) - rotationIK += 180; - if (rotationIK > 180) - rotationIK -= 360; - else if (rotationIK < -180) - rotationIK += 360; - bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); - }; - IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { - if (alpha == 0) { - child.updateWorldTransform(); - return; - } - if (!parent.appliedValid) - parent.updateAppliedTransform(); - if (!child.appliedValid) - child.updateAppliedTransform(); - var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; - var os1 = 0, os2 = 0, s2 = 0; - if (psx < 0) { - psx = -psx; - os1 = 180; - s2 = -1; - } - else { - os1 = 0; - s2 = 1; - } - if (psy < 0) { - psy = -psy; - s2 = -s2; - } - if (csx < 0) { - csx = -csx; - os2 = 180; - } - else - os2 = 0; - var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; - var u = Math.abs(psx - psy) <= 0.0001; - if (!u) { - cy = 0; - cwx = a * cx + parent.worldX; - cwy = c * cx + parent.worldY; - } - else { - cy = child.ay; - cwx = a * cx + b * cy + parent.worldX; - cwy = c * cx + d * cy + parent.worldY; - } - var pp = parent.parent; - a = pp.a; - b = pp.b; - c = pp.c; - d = pp.d; - var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; - var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; - x = cwx - pp.worldX; - y = cwy - pp.worldY; - var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; - var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; - outer: if (u) { - l2 *= psx; - var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); - if (cos < -1) - cos = -1; - else if (cos > 1) - cos = 1; - a2 = Math.acos(cos) * bendDir; - a = l1 + l2 * cos; - b = l2 * Math.sin(a2); - a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); - } - else { - a = psx * l2; - b = psy * l2; - var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); - c = bb * l1 * l1 + aa * dd - aa * bb; - var c1 = -2 * bb * l1, c2 = bb - aa; - d = c1 * c1 - 4 * c2 * c; - if (d >= 0) { - var q = Math.sqrt(d); - if (c1 < 0) - q = -q; - q = -(c1 + q) / 2; - var r0 = q / c2, r1 = c / q; - var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; - if (r * r <= dd) { - y = Math.sqrt(dd - r * r) * bendDir; - a1 = ta - Math.atan2(y, r); - a2 = Math.atan2(y / psy, (r - l1) / psx); - break outer; - } - } - var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; - var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; - c = -a * l1 / (aa - bb); - if (c >= -1 && c <= 1) { - c = Math.acos(c); - x = a * Math.cos(c) + l1; - y = b * Math.sin(c); - d = x * x + y * y; - if (d < minDist) { - minAngle = c; - minDist = d; - minX = x; - minY = y; - } - if (d > maxDist) { - maxAngle = c; - maxDist = d; - maxX = x; - maxY = y; - } - } - if (dd <= (minDist + maxDist) / 2) { - a1 = ta - Math.atan2(minY * bendDir, minX); - a2 = minAngle * bendDir; - } - else { - a1 = ta - Math.atan2(maxY * bendDir, maxX); - a2 = maxAngle * bendDir; - } - } - var os = Math.atan2(cy, cx) * s2; - var rotation = parent.arotation; - a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; - if (a1 > 180) - a1 -= 360; - else if (a1 < -180) - a1 += 360; - parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); - rotation = child.arotation; - a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; - if (a2 > 180) - a2 -= 360; - else if (a2 < -180) - a2 += 360; - child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); - }; - return IkConstraint; - }()); - spine.IkConstraint = IkConstraint; + var IkConstraint = (function () { + function IkConstraint(data, skeleton) { + this.mix = 1; + this.bendDirection = 0; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.mix = data.mix; + this.bendDirection = data.bendDirection; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + IkConstraint.prototype.getOrder = function () { + return this.data.order; + }; + IkConstraint.prototype.apply = function () { + this.update(); + }; + IkConstraint.prototype.update = function () { + var target = this.target; + var bones = this.bones; + switch (bones.length) { + case 1: + this.apply1(bones[0], target.worldX, target.worldY, this.mix); + break; + case 2: + this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); + break; + } + }; + IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var p = bone.parent; + var id = 1 / (p.a * p.d - p.b * p.c); + var x = targetX - p.worldX, y = targetY - p.worldY; + var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; + var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; + if (bone.ascaleX < 0) + rotationIK += 180; + if (rotationIK > 180) + rotationIK -= 360; + else if (rotationIK < -180) + rotationIK += 360; + bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); + }; + IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { + if (alpha == 0) { + child.updateWorldTransform(); + return; + } + if (!parent.appliedValid) + parent.updateAppliedTransform(); + if (!child.appliedValid) + child.updateAppliedTransform(); + var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; + var os1 = 0, os2 = 0, s2 = 0; + if (psx < 0) { + psx = -psx; + os1 = 180; + s2 = -1; + } + else { + os1 = 0; + s2 = 1; + } + if (psy < 0) { + psy = -psy; + s2 = -s2; + } + if (csx < 0) { + csx = -csx; + os2 = 180; + } + else + os2 = 0; + var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + var u = Math.abs(psx - psy) <= 0.0001; + if (!u) { + cy = 0; + cwx = a * cx + parent.worldX; + cwy = c * cx + parent.worldY; + } + else { + cy = child.ay; + cwx = a * cx + b * cy + parent.worldX; + cwy = c * cx + d * cy + parent.worldY; + } + var pp = parent.parent; + a = pp.a; + b = pp.b; + c = pp.c; + d = pp.d; + var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; + var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; + x = cwx - pp.worldX; + y = cwy - pp.worldY; + var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; + var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; + outer: if (u) { + l2 *= psx; + var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); + if (cos < -1) + cos = -1; + else if (cos > 1) + cos = 1; + a2 = Math.acos(cos) * bendDir; + a = l1 + l2 * cos; + b = l2 * Math.sin(a2); + a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); + } + else { + a = psx * l2; + b = psy * l2; + var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); + c = bb * l1 * l1 + aa * dd - aa * bb; + var c1 = -2 * bb * l1, c2 = bb - aa; + d = c1 * c1 - 4 * c2 * c; + if (d >= 0) { + var q = Math.sqrt(d); + if (c1 < 0) + q = -q; + q = -(c1 + q) / 2; + var r0 = q / c2, r1 = c / q; + var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; + if (r * r <= dd) { + y = Math.sqrt(dd - r * r) * bendDir; + a1 = ta - Math.atan2(y, r); + a2 = Math.atan2(y / psy, (r - l1) / psx); + break outer; + } + } + var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; + var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } + } + if (dd <= (minDist + maxDist) / 2) { + a1 = ta - Math.atan2(minY * bendDir, minX); + a2 = minAngle * bendDir; + } + else { + a1 = ta - Math.atan2(maxY * bendDir, maxX); + a2 = maxAngle * bendDir; + } + } + var os = Math.atan2(cy, cx) * s2; + var rotation = parent.arotation; + a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; + if (a1 > 180) + a1 -= 360; + else if (a1 < -180) + a1 += 360; + parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); + rotation = child.arotation; + a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; + if (a2 > 180) + a2 -= 360; + else if (a2 < -180) + a2 += 360; + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); + }; + return IkConstraint; + }()); + spine.IkConstraint = IkConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraintData = (function () { - function IkConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.bendDirection = 1; - this.mix = 1; - this.name = name; - } - return IkConstraintData; - }()); - spine.IkConstraintData = IkConstraintData; + var IkConstraintData = (function () { + function IkConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.bendDirection = 1; + this.mix = 1; + this.name = name; + } + return IkConstraintData; + }()); + spine.IkConstraintData = IkConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraint = (function () { - function PathConstraint(data, skeleton) { - this.position = 0; - this.spacing = 0; - this.rotateMix = 0; - this.translateMix = 0; - this.spaces = new Array(); - this.positions = new Array(); - this.world = new Array(); - this.curves = new Array(); - this.lengths = new Array(); - this.segments = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0, n = data.bones.length; i < n; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findSlot(data.target.name); - this.position = data.position; - this.spacing = data.spacing; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - } - PathConstraint.prototype.apply = function () { - this.update(); - }; - PathConstraint.prototype.update = function () { - var attachment = this.target.getAttachment(); - if (!(attachment instanceof spine.PathAttachment)) - return; - var rotateMix = this.rotateMix, translateMix = this.translateMix; - var translate = translateMix > 0, rotate = rotateMix > 0; - if (!translate && !rotate) - return; - var data = this.data; - var spacingMode = data.spacingMode; - var lengthSpacing = spacingMode == spine.SpacingMode.Length; - var rotateMode = data.rotateMode; - var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; - var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; - var bones = this.bones; - var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; - var spacing = this.spacing; - if (scale || lengthSpacing) { - if (scale) - lengths = spine.Utils.setArraySize(this.lengths, boneCount); - for (var i = 0, n = spacesCount - 1; i < n;) { - var bone = bones[i]; - var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; - var length_1 = Math.sqrt(x * x + y * y); - if (scale) - lengths[i] = length_1; - spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; - } - } - else { - for (var i = 1; i < spacesCount; i++) - spaces[i] = spacing; - } - var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); - var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - var tip = false; - if (offsetRotation == 0) - tip = rotateMode == spine.RotateMode.Chain; - else { - tip = false; - var p = this.target.bone; - offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - } - for (var i = 0, p = 3; i < boneCount; i++, p += 3) { - var bone = bones[i]; - bone.worldX += (boneX - bone.worldX) * translateMix; - bone.worldY += (boneY - bone.worldY) * translateMix; - var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; - if (scale) { - var length_2 = lengths[i]; - if (length_2 != 0) { - var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; - bone.a *= s; - bone.c *= s; - } - } - boneX = x; - boneY = y; - if (rotate) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; - if (tangents) - r = positions[p - 1]; - else if (spaces[i + 1] == 0) - r = positions[p + 2]; - else - r = Math.atan2(dy, dx); - r -= Math.atan2(c, a); - if (tip) { - cos = Math.cos(r); - sin = Math.sin(r); - var length_3 = bone.data.length; - boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; - boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; - } - else { - r += offsetRotation; - } - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - cos = Math.cos(r); - sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - } - bone.appliedValid = false; - } - }; - PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { - var target = this.target; - var position = this.position; - var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; - var closed = path.closed; - var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; - if (!path.constantSpeed) { - var lengths = path.lengths; - curveCount -= closed ? 1 : 2; - var pathLength_1 = lengths[curveCount]; - if (percentPosition) - position *= pathLength_1; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength_1; - } - world = spine.Utils.setArraySize(this.world, 8); - for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength_1; - if (p < 0) - p += pathLength_1; - curve = 0; - } - else if (p < 0) { - if (prevCurve != PathConstraint.BEFORE) { - prevCurve = PathConstraint.BEFORE; - path.computeWorldVertices(target, 2, 4, world, 0, 2); - } - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength_1) { - if (prevCurve != PathConstraint.AFTER) { - prevCurve = PathConstraint.AFTER; - path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); - } - this.addAfterPosition(p - pathLength_1, world, 0, out, o); - continue; - } - for (;; curve++) { - var length_4 = lengths[curve]; - if (p > length_4) - continue; - if (curve == 0) - p /= length_4; - else { - var prev = lengths[curve - 1]; - p = (p - prev) / (length_4 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - if (closed && curve == curveCount) { - path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); - path.computeWorldVertices(target, 0, 4, world, 4, 2); - } - else - path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); - } - this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); - } - return out; - } - if (closed) { - verticesLength += 2; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); - path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); - world[verticesLength - 2] = world[0]; - world[verticesLength - 1] = world[1]; - } - else { - curveCount--; - verticesLength -= 4; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); - } - var curves = spine.Utils.setArraySize(this.curves, curveCount); - var pathLength = 0; - var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; - var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; - for (var i = 0, w = 2; i < curveCount; i++, w += 6) { - cx1 = world[w]; - cy1 = world[w + 1]; - cx2 = world[w + 2]; - cy2 = world[w + 3]; - x2 = world[w + 4]; - y2 = world[w + 5]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; - tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - curves[i] = pathLength; - x1 = x2; - y1 = y2; - } - if (percentPosition) - position *= pathLength; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength; - } - var segments = this.segments; - var curveLength = 0; - for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength; - if (p < 0) - p += pathLength; - curve = 0; - } - else if (p < 0) { - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength) { - this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); - continue; - } - for (;; curve++) { - var length_5 = curves[curve]; - if (p > length_5) - continue; - if (curve == 0) - p /= length_5; - else { - var prev = curves[curve - 1]; - p = (p - prev) / (length_5 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - var ii = curve * 6; - x1 = world[ii]; - y1 = world[ii + 1]; - cx1 = world[ii + 2]; - cy1 = world[ii + 3]; - cx2 = world[ii + 4]; - cy2 = world[ii + 5]; - x2 = world[ii + 6]; - y2 = world[ii + 7]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.03; - tmpy = (y1 - cy1 * 2 + cy2) * 0.03; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; - curveLength = Math.sqrt(dfx * dfx + dfy * dfy); - segments[0] = curveLength; - for (ii = 1; ii < 8; ii++) { - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[ii] = curveLength; - } - dfx += ddfx; - dfy += ddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[8] = curveLength; - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[9] = curveLength; - segment = 0; - } - p *= curveLength; - for (;; segment++) { - var length_6 = segments[segment]; - if (p > length_6) - continue; - if (segment == 0) - p /= length_6; - else { - var prev = segments[segment - 1]; - p = segment + (p - prev) / (length_6 - prev); - } - break; - } - this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); - } - return out; - }; - PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { - var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { - var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { - if (p == 0 || isNaN(p)) - p = 0.0001; - var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; - var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; - var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; - out[o] = x; - out[o + 1] = y; - if (tangents) - out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); - }; - PathConstraint.prototype.getOrder = function () { - return this.data.order; - }; - PathConstraint.NONE = -1; - PathConstraint.BEFORE = -2; - PathConstraint.AFTER = -3; - return PathConstraint; - }()); - spine.PathConstraint = PathConstraint; + var PathConstraint = (function () { + function PathConstraint(data, skeleton) { + this.position = 0; + this.spacing = 0; + this.rotateMix = 0; + this.translateMix = 0; + this.spaces = new Array(); + this.positions = new Array(); + this.world = new Array(); + this.curves = new Array(); + this.lengths = new Array(); + this.segments = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0, n = data.bones.length; i < n; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findSlot(data.target.name); + this.position = data.position; + this.spacing = data.spacing; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + } + PathConstraint.prototype.apply = function () { + this.update(); + }; + PathConstraint.prototype.update = function () { + var attachment = this.target.getAttachment(); + if (!(attachment instanceof spine.PathAttachment)) + return; + var rotateMix = this.rotateMix, translateMix = this.translateMix; + var translate = translateMix > 0, rotate = rotateMix > 0; + if (!translate && !rotate) + return; + var data = this.data; + var spacingMode = data.spacingMode; + var lengthSpacing = spacingMode == spine.SpacingMode.Length; + var rotateMode = data.rotateMode; + var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; + var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; + var bones = this.bones; + var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; + var spacing = this.spacing; + if (scale || lengthSpacing) { + if (scale) + lengths = spine.Utils.setArraySize(this.lengths, boneCount); + for (var i = 0, n = spacesCount - 1; i < n;) { + var bone = bones[i]; + var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; + var length_1 = Math.sqrt(x * x + y * y); + if (scale) + lengths[i] = length_1; + spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; + } + } + else { + for (var i = 1; i < spacesCount; i++) + spaces[i] = spacing; + } + var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); + var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; + var tip = false; + if (offsetRotation == 0) + tip = rotateMode == spine.RotateMode.Chain; + else { + tip = false; + var p = this.target.bone; + offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + } + for (var i = 0, p = 3; i < boneCount; i++, p += 3) { + var bone = bones[i]; + bone.worldX += (boneX - bone.worldX) * translateMix; + bone.worldY += (boneY - bone.worldY) * translateMix; + var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; + if (scale) { + var length_2 = lengths[i]; + if (length_2 != 0) { + var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; + bone.a *= s; + bone.c *= s; + } + } + boneX = x; + boneY = y; + if (rotate) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; + if (tangents) + r = positions[p - 1]; + else if (spaces[i + 1] == 0) + r = positions[p + 2]; + else + r = Math.atan2(dy, dx); + r -= Math.atan2(c, a); + if (tip) { + cos = Math.cos(r); + sin = Math.sin(r); + var length_3 = bone.data.length; + boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; + boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; + } + else { + r += offsetRotation; + } + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + cos = Math.cos(r); + sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + bone.appliedValid = false; + } + }; + PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { + var target = this.target; + var position = this.position; + var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; + var closed = path.closed; + var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; + if (!path.constantSpeed) { + var lengths = path.lengths; + curveCount -= closed ? 1 : 2; + var pathLength_1 = lengths[curveCount]; + if (percentPosition) + position *= pathLength_1; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength_1; + } + world = spine.Utils.setArraySize(this.world, 8); + for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength_1; + if (p < 0) + p += pathLength_1; + curve = 0; + } + else if (p < 0) { + if (prevCurve != PathConstraint.BEFORE) { + prevCurve = PathConstraint.BEFORE; + path.computeWorldVertices(target, 2, 4, world, 0, 2); + } + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength_1) { + if (prevCurve != PathConstraint.AFTER) { + prevCurve = PathConstraint.AFTER; + path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); + } + this.addAfterPosition(p - pathLength_1, world, 0, out, o); + continue; + } + for (;; curve++) { + var length_4 = lengths[curve]; + if (p > length_4) + continue; + if (curve == 0) + p /= length_4; + else { + var prev = lengths[curve - 1]; + p = (p - prev) / (length_4 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + if (closed && curve == curveCount) { + path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); + path.computeWorldVertices(target, 0, 4, world, 4, 2); + } + else + path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); + } + this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); + } + return out; + } + if (closed) { + verticesLength += 2; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); + path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); + world[verticesLength - 2] = world[0]; + world[verticesLength - 1] = world[1]; + } + else { + curveCount--; + verticesLength -= 4; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); + } + var curves = spine.Utils.setArraySize(this.curves, curveCount); + var pathLength = 0; + var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; + var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; + for (var i = 0, w = 2; i < curveCount; i++, w += 6) { + cx1 = world[w]; + cy1 = world[w + 1]; + cx2 = world[w + 2]; + cy2 = world[w + 3]; + x2 = world[w + 4]; + y2 = world[w + 5]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; + tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + curves[i] = pathLength; + x1 = x2; + y1 = y2; + } + if (percentPosition) + position *= pathLength; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength; + } + var segments = this.segments; + var curveLength = 0; + for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength; + if (p < 0) + p += pathLength; + curve = 0; + } + else if (p < 0) { + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength) { + this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); + continue; + } + for (;; curve++) { + var length_5 = curves[curve]; + if (p > length_5) + continue; + if (curve == 0) + p /= length_5; + else { + var prev = curves[curve - 1]; + p = (p - prev) / (length_5 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + var ii = curve * 6; + x1 = world[ii]; + y1 = world[ii + 1]; + cx1 = world[ii + 2]; + cy1 = world[ii + 3]; + cx2 = world[ii + 4]; + cy2 = world[ii + 5]; + x2 = world[ii + 6]; + y2 = world[ii + 7]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.03; + tmpy = (y1 - cy1 * 2 + cy2) * 0.03; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; + curveLength = Math.sqrt(dfx * dfx + dfy * dfy); + segments[0] = curveLength; + for (ii = 1; ii < 8; ii++) { + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[ii] = curveLength; + } + dfx += ddfx; + dfy += ddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[8] = curveLength; + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[9] = curveLength; + segment = 0; + } + p *= curveLength; + for (;; segment++) { + var length_6 = segments[segment]; + if (p > length_6) + continue; + if (segment == 0) + p /= length_6; + else { + var prev = segments[segment - 1]; + p = segment + (p - prev) / (length_6 - prev); + } + break; + } + this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); + } + return out; + }; + PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { + var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { + var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { + if (p == 0 || isNaN(p)) + p = 0.0001; + var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; + var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; + var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; + out[o] = x; + out[o + 1] = y; + if (tangents) + out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); + }; + PathConstraint.prototype.getOrder = function () { + return this.data.order; + }; + PathConstraint.NONE = -1; + PathConstraint.BEFORE = -2; + PathConstraint.AFTER = -3; + return PathConstraint; + }()); + spine.PathConstraint = PathConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraintData = (function () { - function PathConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.name = name; - } - return PathConstraintData; - }()); - spine.PathConstraintData = PathConstraintData; - (function (PositionMode) { - PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; - PositionMode[PositionMode["Percent"] = 1] = "Percent"; - })(spine.PositionMode || (spine.PositionMode = {})); - var PositionMode = spine.PositionMode; - (function (SpacingMode) { - SpacingMode[SpacingMode["Length"] = 0] = "Length"; - SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; - SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; - })(spine.SpacingMode || (spine.SpacingMode = {})); - var SpacingMode = spine.SpacingMode; - (function (RotateMode) { - RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; - RotateMode[RotateMode["Chain"] = 1] = "Chain"; - RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; - })(spine.RotateMode || (spine.RotateMode = {})); - var RotateMode = spine.RotateMode; + var PathConstraintData = (function () { + function PathConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.name = name; + } + return PathConstraintData; + }()); + spine.PathConstraintData = PathConstraintData; + (function (PositionMode) { + PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; + PositionMode[PositionMode["Percent"] = 1] = "Percent"; + })(spine.PositionMode || (spine.PositionMode = {})); + var PositionMode = spine.PositionMode; + (function (SpacingMode) { + SpacingMode[SpacingMode["Length"] = 0] = "Length"; + SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; + SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; + })(spine.SpacingMode || (spine.SpacingMode = {})); + var SpacingMode = spine.SpacingMode; + (function (RotateMode) { + RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; + RotateMode[RotateMode["Chain"] = 1] = "Chain"; + RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; + })(spine.RotateMode || (spine.RotateMode = {})); + var RotateMode = spine.RotateMode; })(spine || (spine = {})); var spine; (function (spine) { - var Assets = (function () { - function Assets(clientId) { - this.toLoad = new Array(); - this.assets = {}; - this.clientId = clientId; - } - Assets.prototype.loaded = function () { - var i = 0; - for (var v in this.assets) - i++; - return i; - }; - return Assets; - }()); - var SharedAssetManager = (function () { - function SharedAssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.clientAssets = {}; - this.queuedAssets = {}; - this.rawAssets = {}; - this.errors = {}; - this.pathPrefix = pathPrefix; - } - SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) { - clientAssets = new Assets(clientId); - this.clientAssets[clientId] = clientAssets; - } - if (textureLoader !== null) - clientAssets.textureLoader = textureLoader; - clientAssets.toLoad.push(path); - if (this.queuedAssets[path] === path) { - return false; - } - else { - this.queuedAssets[path] = path; - return true; - } - }; - SharedAssetManager.prototype.loadText = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = request.responseText; - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadJson = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = JSON.parse(request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, textureLoader, path)) - return; - var img = new Image(); - img.src = path; - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - _this.rawAssets[path] = img; - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - }; - }; - SharedAssetManager.prototype.get = function (clientId, path) { - path = this.pathPrefix + path; - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - return clientAssets.assets[path]; - }; - SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { - for (var i = 0; i < clientAssets.toLoad.length; i++) { - var path = clientAssets.toLoad[i]; - var asset = clientAssets.assets[path]; - if (asset === null || asset === undefined) { - var rawAsset = this.rawAssets[path]; - if (rawAsset === null || rawAsset === undefined) - continue; - if (rawAsset instanceof HTMLImageElement) { - clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); - } - else { - clientAssets.assets[path] = rawAsset; - } - } - } - }; - SharedAssetManager.prototype.isLoadingComplete = function (clientId) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - this.updateClientAssets(clientAssets); - return clientAssets.toLoad.length == clientAssets.loaded(); - }; - SharedAssetManager.prototype.dispose = function () { - }; - SharedAssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - SharedAssetManager.prototype.getErrors = function () { - return this.errors; - }; - return SharedAssetManager; - }()); - spine.SharedAssetManager = SharedAssetManager; + var Assets = (function () { + function Assets(clientId) { + this.toLoad = new Array(); + this.assets = {}; + this.clientId = clientId; + } + Assets.prototype.loaded = function () { + var i = 0; + for (var v in this.assets) + i++; + return i; + }; + return Assets; + }()); + var SharedAssetManager = (function () { + function SharedAssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.clientAssets = {}; + this.queuedAssets = {}; + this.rawAssets = {}; + this.errors = {}; + this.pathPrefix = pathPrefix; + } + SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) { + clientAssets = new Assets(clientId); + this.clientAssets[clientId] = clientAssets; + } + if (textureLoader !== null) + clientAssets.textureLoader = textureLoader; + clientAssets.toLoad.push(path); + if (this.queuedAssets[path] === path) { + return false; + } + else { + this.queuedAssets[path] = path; + return true; + } + }; + SharedAssetManager.prototype.loadText = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = request.responseText; + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadJson = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = JSON.parse(request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, textureLoader, path)) + return; + var img = new Image(); + img.src = path; + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + _this.rawAssets[path] = img; + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + }; + }; + SharedAssetManager.prototype.get = function (clientId, path) { + path = this.pathPrefix + path; + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + return clientAssets.assets[path]; + }; + SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { + for (var i = 0; i < clientAssets.toLoad.length; i++) { + var path = clientAssets.toLoad[i]; + var asset = clientAssets.assets[path]; + if (asset === null || asset === undefined) { + var rawAsset = this.rawAssets[path]; + if (rawAsset === null || rawAsset === undefined) + continue; + if (rawAsset instanceof HTMLImageElement) { + clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); + } + else { + clientAssets.assets[path] = rawAsset; + } + } + } + }; + SharedAssetManager.prototype.isLoadingComplete = function (clientId) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + this.updateClientAssets(clientAssets); + return clientAssets.toLoad.length == clientAssets.loaded(); + }; + SharedAssetManager.prototype.dispose = function () { + }; + SharedAssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + SharedAssetManager.prototype.getErrors = function () { + return this.errors; + }; + return SharedAssetManager; + }()); + spine.SharedAssetManager = SharedAssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var Skeleton = (function () { - function Skeleton(data) { - this._updateCache = new Array(); - this.updateCacheReset = new Array(); - this.time = 0; - this.flipX = false; - this.flipY = false; - this.x = 0; - this.y = 0; - if (data == null) - throw new Error("data cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) { - var boneData = data.bones[i]; - var bone = void 0; - if (boneData.parent == null) - bone = new spine.Bone(boneData, this, null); - else { - var parent_1 = this.bones[boneData.parent.index]; - bone = new spine.Bone(boneData, this, parent_1); - parent_1.children.push(bone); - } - this.bones.push(bone); - } - this.slots = new Array(); - this.drawOrder = new Array(); - for (var i = 0; i < data.slots.length; i++) { - var slotData = data.slots[i]; - var bone = this.bones[slotData.boneData.index]; - var slot = new spine.Slot(slotData, bone); - this.slots.push(slot); - this.drawOrder.push(slot); - } - this.ikConstraints = new Array(); - for (var i = 0; i < data.ikConstraints.length; i++) { - var ikConstraintData = data.ikConstraints[i]; - this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); - } - this.transformConstraints = new Array(); - for (var i = 0; i < data.transformConstraints.length; i++) { - var transformConstraintData = data.transformConstraints[i]; - this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); - } - this.pathConstraints = new Array(); - for (var i = 0; i < data.pathConstraints.length; i++) { - var pathConstraintData = data.pathConstraints[i]; - this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); - } - this.color = new spine.Color(1, 1, 1, 1); - this.updateCache(); - } - Skeleton.prototype.updateCache = function () { - var updateCache = this._updateCache; - updateCache.length = 0; - this.updateCacheReset.length = 0; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].sorted = false; - var ikConstraints = this.ikConstraints; - var transformConstraints = this.transformConstraints; - var pathConstraints = this.pathConstraints; - var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; - var constraintCount = ikCount + transformCount + pathCount; - outer: for (var i = 0; i < constraintCount; i++) { - for (var ii = 0; ii < ikCount; ii++) { - var constraint = ikConstraints[ii]; - if (constraint.data.order == i) { - this.sortIkConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < transformCount; ii++) { - var constraint = transformConstraints[ii]; - if (constraint.data.order == i) { - this.sortTransformConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < pathCount; ii++) { - var constraint = pathConstraints[ii]; - if (constraint.data.order == i) { - this.sortPathConstraint(constraint); - continue outer; - } - } - } - for (var i = 0, n = bones.length; i < n; i++) - this.sortBone(bones[i]); - }; - Skeleton.prototype.sortIkConstraint = function (constraint) { - var target = constraint.target; - this.sortBone(target); - var constrained = constraint.bones; - var parent = constrained[0]; - this.sortBone(parent); - if (constrained.length > 1) { - var child = constrained[constrained.length - 1]; - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - this._updateCache.push(constraint); - this.sortReset(parent.children); - constrained[constrained.length - 1].sorted = true; - }; - Skeleton.prototype.sortPathConstraint = function (constraint) { - var slot = constraint.target; - var slotIndex = slot.data.index; - var slotBone = slot.bone; - if (this.skin != null) - this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); - if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) - this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); - for (var i = 0, n = this.data.skins.length; i < n; i++) - this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); - var attachment = slot.getAttachment(); - if (attachment instanceof spine.PathAttachment) - this.sortPathConstraintAttachmentWith(attachment, slotBone); - var constrained = constraint.bones; - var boneCount = constrained.length; - for (var i = 0; i < boneCount; i++) - this.sortBone(constrained[i]); - this._updateCache.push(constraint); - for (var i = 0; i < boneCount; i++) - this.sortReset(constrained[i].children); - for (var i = 0; i < boneCount; i++) - constrained[i].sorted = true; - }; - Skeleton.prototype.sortTransformConstraint = function (constraint) { - this.sortBone(constraint.target); - var constrained = constraint.bones; - var boneCount = constrained.length; - if (constraint.data.local) { - for (var i = 0; i < boneCount; i++) { - var child = constrained[i]; - this.sortBone(child.parent); - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - } - else { - for (var i = 0; i < boneCount; i++) { - this.sortBone(constrained[i]); - } - } - this._updateCache.push(constraint); - for (var ii = 0; ii < boneCount; ii++) - this.sortReset(constrained[ii].children); - for (var ii = 0; ii < boneCount; ii++) - constrained[ii].sorted = true; - }; - Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { - var attachments = skin.attachments[slotIndex]; - if (!attachments) - return; - for (var key in attachments) { - this.sortPathConstraintAttachmentWith(attachments[key], slotBone); - } - }; - Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { - if (!(attachment instanceof spine.PathAttachment)) - return; - var pathBones = attachment.bones; - if (pathBones == null) - this.sortBone(slotBone); - else { - var bones = this.bones; - var i = 0; - while (i < pathBones.length) { - var boneCount = pathBones[i++]; - for (var n = i + boneCount; i < n; i++) { - var boneIndex = pathBones[i]; - this.sortBone(bones[boneIndex]); - } - } - } - }; - Skeleton.prototype.sortBone = function (bone) { - if (bone.sorted) - return; - var parent = bone.parent; - if (parent != null) - this.sortBone(parent); - bone.sorted = true; - this._updateCache.push(bone); - }; - Skeleton.prototype.sortReset = function (bones) { - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.sorted) - this.sortReset(bone.children); - bone.sorted = false; - } - }; - Skeleton.prototype.updateWorldTransform = function () { - var updateCacheReset = this.updateCacheReset; - for (var i = 0, n = updateCacheReset.length; i < n; i++) { - var bone = updateCacheReset[i]; - bone.ax = bone.x; - bone.ay = bone.y; - bone.arotation = bone.rotation; - bone.ascaleX = bone.scaleX; - bone.ascaleY = bone.scaleY; - bone.ashearX = bone.shearX; - bone.ashearY = bone.shearY; - bone.appliedValid = true; - } - var updateCache = this._updateCache; - for (var i = 0, n = updateCache.length; i < n; i++) - updateCache[i].update(); - }; - Skeleton.prototype.setToSetupPose = function () { - this.setBonesToSetupPose(); - this.setSlotsToSetupPose(); - }; - Skeleton.prototype.setBonesToSetupPose = function () { - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].setToSetupPose(); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - constraint.bendDirection = constraint.data.bendDirection; - constraint.mix = constraint.data.mix; - } - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - var data = constraint.data; - constraint.position = data.position; - constraint.spacing = data.spacing; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - } - }; - Skeleton.prototype.setSlotsToSetupPose = function () { - var slots = this.slots; - spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); - for (var i = 0, n = slots.length; i < n; i++) - slots[i].setToSetupPose(); - }; - Skeleton.prototype.getRootBone = function () { - if (this.bones.length == 0) - return null; - return this.bones[0]; - }; - Skeleton.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.data.name == boneName) - return bone; - } - return null; - }; - Skeleton.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].data.name == boneName) - return i; - return -1; - }; - Skeleton.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) - return slot; - } - return null; - }; - Skeleton.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].data.name == slotName) - return i; - return -1; - }; - Skeleton.prototype.setSkinByName = function (skinName) { - var skin = this.data.findSkin(skinName); - if (skin == null) - throw new Error("Skin not found: " + skinName); - this.setSkin(skin); - }; - Skeleton.prototype.setSkin = function (newSkin) { - if (newSkin != null) { - if (this.skin != null) - newSkin.attachAll(this, this.skin); - else { - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var name_1 = slot.data.attachmentName; - if (name_1 != null) { - var attachment = newSkin.getAttachment(i, name_1); - if (attachment != null) - slot.setAttachment(attachment); - } - } - } - } - this.skin = newSkin; - }; - Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { - return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); - }; - Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { - if (attachmentName == null) - throw new Error("attachmentName cannot be null."); - if (this.skin != null) { - var attachment = this.skin.getAttachment(slotIndex, attachmentName); - if (attachment != null) - return attachment; - } - if (this.data.defaultSkin != null) - return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); - return null; - }; - Skeleton.prototype.setAttachment = function (slotName, attachmentName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) { - var attachment = null; - if (attachmentName != null) { - attachment = this.getAttachment(i, attachmentName); - if (attachment == null) - throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); - } - slot.setAttachment(attachment); - return; - } - } - throw new Error("Slot not found: " + slotName); - }; - Skeleton.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var ikConstraint = ikConstraints[i]; - if (ikConstraint.data.name == constraintName) - return ikConstraint; - } - return null; - }; - Skeleton.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.getBounds = function (offset, size, temp) { - if (offset == null) - throw new Error("offset cannot be null."); - if (size == null) - throw new Error("size cannot be null."); - var drawOrder = this.drawOrder; - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var verticesLength = 0; - var vertices = null; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.RegionAttachment) { - verticesLength = 8; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - attachment.computeWorldVertices(slot.bone, vertices, 0, 2); - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - verticesLength = mesh.worldVerticesLength; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); - } - if (vertices != null) { - for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { - var x = vertices[ii], y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - } - offset.set(minX, minY); - size.set(maxX - minX, maxY - minY); - }; - Skeleton.prototype.update = function (delta) { - this.time += delta; - }; - return Skeleton; - }()); - spine.Skeleton = Skeleton; + var Skeleton = (function () { + function Skeleton(data) { + this._updateCache = new Array(); + this.updateCacheReset = new Array(); + this.time = 0; + this.flipX = false; + this.flipY = false; + this.x = 0; + this.y = 0; + if (data == null) + throw new Error("data cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) { + var boneData = data.bones[i]; + var bone = void 0; + if (boneData.parent == null) + bone = new spine.Bone(boneData, this, null); + else { + var parent_1 = this.bones[boneData.parent.index]; + bone = new spine.Bone(boneData, this, parent_1); + parent_1.children.push(bone); + } + this.bones.push(bone); + } + this.slots = new Array(); + this.drawOrder = new Array(); + for (var i = 0; i < data.slots.length; i++) { + var slotData = data.slots[i]; + var bone = this.bones[slotData.boneData.index]; + var slot = new spine.Slot(slotData, bone); + this.slots.push(slot); + this.drawOrder.push(slot); + } + this.ikConstraints = new Array(); + for (var i = 0; i < data.ikConstraints.length; i++) { + var ikConstraintData = data.ikConstraints[i]; + this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); + } + this.transformConstraints = new Array(); + for (var i = 0; i < data.transformConstraints.length; i++) { + var transformConstraintData = data.transformConstraints[i]; + this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); + } + this.pathConstraints = new Array(); + for (var i = 0; i < data.pathConstraints.length; i++) { + var pathConstraintData = data.pathConstraints[i]; + this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); + } + this.color = new spine.Color(1, 1, 1, 1); + this.updateCache(); + } + Skeleton.prototype.updateCache = function () { + var updateCache = this._updateCache; + updateCache.length = 0; + this.updateCacheReset.length = 0; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].sorted = false; + var ikConstraints = this.ikConstraints; + var transformConstraints = this.transformConstraints; + var pathConstraints = this.pathConstraints; + var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; + var constraintCount = ikCount + transformCount + pathCount; + outer: for (var i = 0; i < constraintCount; i++) { + for (var ii = 0; ii < ikCount; ii++) { + var constraint = ikConstraints[ii]; + if (constraint.data.order == i) { + this.sortIkConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < transformCount; ii++) { + var constraint = transformConstraints[ii]; + if (constraint.data.order == i) { + this.sortTransformConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < pathCount; ii++) { + var constraint = pathConstraints[ii]; + if (constraint.data.order == i) { + this.sortPathConstraint(constraint); + continue outer; + } + } + } + for (var i = 0, n = bones.length; i < n; i++) + this.sortBone(bones[i]); + }; + Skeleton.prototype.sortIkConstraint = function (constraint) { + var target = constraint.target; + this.sortBone(target); + var constrained = constraint.bones; + var parent = constrained[0]; + this.sortBone(parent); + if (constrained.length > 1) { + var child = constrained[constrained.length - 1]; + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + this._updateCache.push(constraint); + this.sortReset(parent.children); + constrained[constrained.length - 1].sorted = true; + }; + Skeleton.prototype.sortPathConstraint = function (constraint) { + var slot = constraint.target; + var slotIndex = slot.data.index; + var slotBone = slot.bone; + if (this.skin != null) + this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); + if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) + this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); + for (var i = 0, n = this.data.skins.length; i < n; i++) + this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); + var attachment = slot.getAttachment(); + if (attachment instanceof spine.PathAttachment) + this.sortPathConstraintAttachmentWith(attachment, slotBone); + var constrained = constraint.bones; + var boneCount = constrained.length; + for (var i = 0; i < boneCount; i++) + this.sortBone(constrained[i]); + this._updateCache.push(constraint); + for (var i = 0; i < boneCount; i++) + this.sortReset(constrained[i].children); + for (var i = 0; i < boneCount; i++) + constrained[i].sorted = true; + }; + Skeleton.prototype.sortTransformConstraint = function (constraint) { + this.sortBone(constraint.target); + var constrained = constraint.bones; + var boneCount = constrained.length; + if (constraint.data.local) { + for (var i = 0; i < boneCount; i++) { + var child = constrained[i]; + this.sortBone(child.parent); + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + } + else { + for (var i = 0; i < boneCount; i++) { + this.sortBone(constrained[i]); + } + } + this._updateCache.push(constraint); + for (var ii = 0; ii < boneCount; ii++) + this.sortReset(constrained[ii].children); + for (var ii = 0; ii < boneCount; ii++) + constrained[ii].sorted = true; + }; + Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { + var attachments = skin.attachments[slotIndex]; + if (!attachments) + return; + for (var key in attachments) { + this.sortPathConstraintAttachmentWith(attachments[key], slotBone); + } + }; + Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { + if (!(attachment instanceof spine.PathAttachment)) + return; + var pathBones = attachment.bones; + if (pathBones == null) + this.sortBone(slotBone); + else { + var bones = this.bones; + var i = 0; + while (i < pathBones.length) { + var boneCount = pathBones[i++]; + for (var n = i + boneCount; i < n; i++) { + var boneIndex = pathBones[i]; + this.sortBone(bones[boneIndex]); + } + } + } + }; + Skeleton.prototype.sortBone = function (bone) { + if (bone.sorted) + return; + var parent = bone.parent; + if (parent != null) + this.sortBone(parent); + bone.sorted = true; + this._updateCache.push(bone); + }; + Skeleton.prototype.sortReset = function (bones) { + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.sorted) + this.sortReset(bone.children); + bone.sorted = false; + } + }; + Skeleton.prototype.updateWorldTransform = function () { + var updateCacheReset = this.updateCacheReset; + for (var i = 0, n = updateCacheReset.length; i < n; i++) { + var bone = updateCacheReset[i]; + bone.ax = bone.x; + bone.ay = bone.y; + bone.arotation = bone.rotation; + bone.ascaleX = bone.scaleX; + bone.ascaleY = bone.scaleY; + bone.ashearX = bone.shearX; + bone.ashearY = bone.shearY; + bone.appliedValid = true; + } + var updateCache = this._updateCache; + for (var i = 0, n = updateCache.length; i < n; i++) + updateCache[i].update(); + }; + Skeleton.prototype.setToSetupPose = function () { + this.setBonesToSetupPose(); + this.setSlotsToSetupPose(); + }; + Skeleton.prototype.setBonesToSetupPose = function () { + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].setToSetupPose(); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + constraint.bendDirection = constraint.data.bendDirection; + constraint.mix = constraint.data.mix; + } + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + var data = constraint.data; + constraint.position = data.position; + constraint.spacing = data.spacing; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + } + }; + Skeleton.prototype.setSlotsToSetupPose = function () { + var slots = this.slots; + spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); + for (var i = 0, n = slots.length; i < n; i++) + slots[i].setToSetupPose(); + }; + Skeleton.prototype.getRootBone = function () { + if (this.bones.length == 0) + return null; + return this.bones[0]; + }; + Skeleton.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.data.name == boneName) + return bone; + } + return null; + }; + Skeleton.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].data.name == boneName) + return i; + return -1; + }; + Skeleton.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) + return slot; + } + return null; + }; + Skeleton.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].data.name == slotName) + return i; + return -1; + }; + Skeleton.prototype.setSkinByName = function (skinName) { + var skin = this.data.findSkin(skinName); + if (skin == null) + throw new Error("Skin not found: " + skinName); + this.setSkin(skin); + }; + Skeleton.prototype.setSkin = function (newSkin) { + if (newSkin != null) { + if (this.skin != null) + newSkin.attachAll(this, this.skin); + else { + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var name_1 = slot.data.attachmentName; + if (name_1 != null) { + var attachment = newSkin.getAttachment(i, name_1); + if (attachment != null) + slot.setAttachment(attachment); + } + } + } + } + this.skin = newSkin; + }; + Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { + return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); + }; + Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { + if (attachmentName == null) + throw new Error("attachmentName cannot be null."); + if (this.skin != null) { + var attachment = this.skin.getAttachment(slotIndex, attachmentName); + if (attachment != null) + return attachment; + } + if (this.data.defaultSkin != null) + return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); + return null; + }; + Skeleton.prototype.setAttachment = function (slotName, attachmentName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) { + var attachment = null; + if (attachmentName != null) { + attachment = this.getAttachment(i, attachmentName); + if (attachment == null) + throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); + } + slot.setAttachment(attachment); + return; + } + } + throw new Error("Slot not found: " + slotName); + }; + Skeleton.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var ikConstraint = ikConstraints[i]; + if (ikConstraint.data.name == constraintName) + return ikConstraint; + } + return null; + }; + Skeleton.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.getBounds = function (offset, size, temp) { + if (offset == null) + throw new Error("offset cannot be null."); + if (size == null) + throw new Error("size cannot be null."); + var drawOrder = this.drawOrder; + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var verticesLength = 0; + var vertices = null; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.RegionAttachment) { + verticesLength = 8; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + attachment.computeWorldVertices(slot.bone, vertices, 0, 2); + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + verticesLength = mesh.worldVerticesLength; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); + } + if (vertices != null) { + for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { + var x = vertices[ii], y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + } + offset.set(minX, minY); + size.set(maxX - minX, maxY - minY); + }; + Skeleton.prototype.update = function (delta) { + this.time += delta; + }; + return Skeleton; + }()); + spine.Skeleton = Skeleton; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonBounds = (function () { - function SkeletonBounds() { - this.minX = 0; - this.minY = 0; - this.maxX = 0; - this.maxY = 0; - this.boundingBoxes = new Array(); - this.polygons = new Array(); - this.polygonPool = new spine.Pool(function () { - return spine.Utils.newFloatArray(16); - }); - } - SkeletonBounds.prototype.update = function (skeleton, updateAabb) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - var boundingBoxes = this.boundingBoxes; - var polygons = this.polygons; - var polygonPool = this.polygonPool; - var slots = skeleton.slots; - var slotCount = slots.length; - boundingBoxes.length = 0; - polygonPool.freeAll(polygons); - polygons.length = 0; - for (var i = 0; i < slotCount; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.BoundingBoxAttachment) { - var boundingBox = attachment; - boundingBoxes.push(boundingBox); - var polygon = polygonPool.obtain(); - if (polygon.length != boundingBox.worldVerticesLength) { - polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); - } - polygons.push(polygon); - boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); - } - } - if (updateAabb) { - this.aabbCompute(); - } - else { - this.minX = Number.POSITIVE_INFINITY; - this.minY = Number.POSITIVE_INFINITY; - this.maxX = Number.NEGATIVE_INFINITY; - this.maxY = Number.NEGATIVE_INFINITY; - } - }; - SkeletonBounds.prototype.aabbCompute = function () { - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) { - var polygon = polygons[i]; - var vertices = polygon; - for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { - var x = vertices[ii]; - var y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - this.minX = minX; - this.minY = minY; - this.maxX = maxX; - this.maxY = maxY; - }; - SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { - return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; - }; - SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { - var minX = this.minX; - var minY = this.minY; - var maxX = this.maxX; - var maxY = this.maxY; - if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) - return false; - var m = (y2 - y1) / (x2 - x1); - var y = m * (minX - x1) + y1; - if (y > minY && y < maxY) - return true; - y = m * (maxX - x1) + y1; - if (y > minY && y < maxY) - return true; - var x = (minY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - x = (maxY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - return false; - }; - SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { - return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; - }; - SkeletonBounds.prototype.containsPoint = function (x, y) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.containsPointPolygon(polygons[i], x, y)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { - var vertices = polygon; - var nn = polygon.length; - var prevIndex = nn - 2; - var inside = false; - for (var ii = 0; ii < nn; ii += 2) { - var vertexY = vertices[ii + 1]; - var prevY = vertices[prevIndex + 1]; - if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { - var vertexX = vertices[ii]; - if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) - inside = !inside; - } - prevIndex = ii; - } - return inside; - }; - SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { - var vertices = polygon; - var nn = polygon.length; - var width12 = x1 - x2, height12 = y1 - y2; - var det1 = x1 * y2 - y1 * x2; - var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; - for (var ii = 0; ii < nn; ii += 2) { - var x4 = vertices[ii], y4 = vertices[ii + 1]; - var det2 = x3 * y4 - y3 * x4; - var width34 = x3 - x4, height34 = y3 - y4; - var det3 = width12 * height34 - height12 * width34; - var x = (det1 * width34 - width12 * det2) / det3; - if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { - var y = (det1 * height34 - height12 * det2) / det3; - if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) - return true; - } - x3 = x4; - y3 = y4; - } - return false; - }; - SkeletonBounds.prototype.getPolygon = function (boundingBox) { - if (boundingBox == null) - throw new Error("boundingBox cannot be null."); - var index = this.boundingBoxes.indexOf(boundingBox); - return index == -1 ? null : this.polygons[index]; - }; - SkeletonBounds.prototype.getWidth = function () { - return this.maxX - this.minX; - }; - SkeletonBounds.prototype.getHeight = function () { - return this.maxY - this.minY; - }; - return SkeletonBounds; - }()); - spine.SkeletonBounds = SkeletonBounds; + var SkeletonBounds = (function () { + function SkeletonBounds() { + this.minX = 0; + this.minY = 0; + this.maxX = 0; + this.maxY = 0; + this.boundingBoxes = new Array(); + this.polygons = new Array(); + this.polygonPool = new spine.Pool(function () { + return spine.Utils.newFloatArray(16); + }); + } + SkeletonBounds.prototype.update = function (skeleton, updateAabb) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + var boundingBoxes = this.boundingBoxes; + var polygons = this.polygons; + var polygonPool = this.polygonPool; + var slots = skeleton.slots; + var slotCount = slots.length; + boundingBoxes.length = 0; + polygonPool.freeAll(polygons); + polygons.length = 0; + for (var i = 0; i < slotCount; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.BoundingBoxAttachment) { + var boundingBox = attachment; + boundingBoxes.push(boundingBox); + var polygon = polygonPool.obtain(); + if (polygon.length != boundingBox.worldVerticesLength) { + polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); + } + polygons.push(polygon); + boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); + } + } + if (updateAabb) { + this.aabbCompute(); + } + else { + this.minX = Number.POSITIVE_INFINITY; + this.minY = Number.POSITIVE_INFINITY; + this.maxX = Number.NEGATIVE_INFINITY; + this.maxY = Number.NEGATIVE_INFINITY; + } + }; + SkeletonBounds.prototype.aabbCompute = function () { + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) { + var polygon = polygons[i]; + var vertices = polygon; + for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { + var x = vertices[ii]; + var y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + this.minX = minX; + this.minY = minY; + this.maxX = maxX; + this.maxY = maxY; + }; + SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { + return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; + }; + SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { + var minX = this.minX; + var minY = this.minY; + var maxX = this.maxX; + var maxY = this.maxY; + if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) + return false; + var m = (y2 - y1) / (x2 - x1); + var y = m * (minX - x1) + y1; + if (y > minY && y < maxY) + return true; + y = m * (maxX - x1) + y1; + if (y > minY && y < maxY) + return true; + var x = (minY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + x = (maxY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + return false; + }; + SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { + return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; + }; + SkeletonBounds.prototype.containsPoint = function (x, y) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.containsPointPolygon(polygons[i], x, y)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { + var vertices = polygon; + var nn = polygon.length; + var prevIndex = nn - 2; + var inside = false; + for (var ii = 0; ii < nn; ii += 2) { + var vertexY = vertices[ii + 1]; + var prevY = vertices[prevIndex + 1]; + if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { + var vertexX = vertices[ii]; + if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) + inside = !inside; + } + prevIndex = ii; + } + return inside; + }; + SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { + var vertices = polygon; + var nn = polygon.length; + var width12 = x1 - x2, height12 = y1 - y2; + var det1 = x1 * y2 - y1 * x2; + var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; + for (var ii = 0; ii < nn; ii += 2) { + var x4 = vertices[ii], y4 = vertices[ii + 1]; + var det2 = x3 * y4 - y3 * x4; + var width34 = x3 - x4, height34 = y3 - y4; + var det3 = width12 * height34 - height12 * width34; + var x = (det1 * width34 - width12 * det2) / det3; + if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { + var y = (det1 * height34 - height12 * det2) / det3; + if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) + return true; + } + x3 = x4; + y3 = y4; + } + return false; + }; + SkeletonBounds.prototype.getPolygon = function (boundingBox) { + if (boundingBox == null) + throw new Error("boundingBox cannot be null."); + var index = this.boundingBoxes.indexOf(boundingBox); + return index == -1 ? null : this.polygons[index]; + }; + SkeletonBounds.prototype.getWidth = function () { + return this.maxX - this.minX; + }; + SkeletonBounds.prototype.getHeight = function () { + return this.maxY - this.minY; + }; + return SkeletonBounds; + }()); + spine.SkeletonBounds = SkeletonBounds; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonClipping = (function () { - function SkeletonClipping() { - this.triangulator = new spine.Triangulator(); - this.clippingPolygon = new Array(); - this.clipOutput = new Array(); - this.clippedVertices = new Array(); - this.clippedTriangles = new Array(); - this.scratch = new Array(); - } - SkeletonClipping.prototype.clipStart = function (slot, clip) { - if (this.clipAttachment != null) - return 0; - this.clipAttachment = clip; - var n = clip.worldVerticesLength; - var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); - clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); - var clippingPolygon = this.clippingPolygon; - SkeletonClipping.makeClockwise(clippingPolygon); - var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); - for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { - var polygon = clippingPolygons[i]; - SkeletonClipping.makeClockwise(polygon); - polygon.push(polygon[0]); - polygon.push(polygon[1]); - } - return clippingPolygons.length; - }; - SkeletonClipping.prototype.clipEndWithSlot = function (slot) { - if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) - this.clipEnd(); - }; - SkeletonClipping.prototype.clipEnd = function () { - if (this.clipAttachment == null) - return; - this.clipAttachment = null; - this.clippingPolygons = null; - this.clippedVertices.length = 0; - this.clippedTriangles.length = 0; - this.clippingPolygon.length = 0; - }; - SkeletonClipping.prototype.isClipping = function () { - return this.clipAttachment != null; - }; - SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { - var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; - var clippedTriangles = this.clippedTriangles; - var polygons = this.clippingPolygons; - var polygonsCount = this.clippingPolygons.length; - var vertexSize = twoColor ? 12 : 8; - var index = 0; - clippedVertices.length = 0; - clippedTriangles.length = 0; - outer: for (var i = 0; i < trianglesLength; i += 3) { - var vertexOffset = triangles[i] << 1; - var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; - var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 1] << 1; - var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; - var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 2] << 1; - var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; - var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; - for (var p = 0; p < polygonsCount; p++) { - var s = clippedVertices.length; - if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { - var clipOutputLength = clipOutput.length; - if (clipOutputLength == 0) - continue; - var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; - var d = 1 / (d0 * d2 + d1 * (y1 - y3)); - var clipOutputCount = clipOutputLength >> 1; - var clipOutputItems = this.clipOutput; - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); - for (var ii = 0; ii < clipOutputLength; ii += 2) { - var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; - clippedVerticesItems[s] = x; - clippedVerticesItems[s + 1] = y; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - var c0 = x - x3, c1 = y - y3; - var a = (d0 * c0 + d1 * c1) * d; - var b = (d4 * c0 + d2 * c1) * d; - var c = 1 - a - b; - clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; - clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; - if (twoColor) { - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 8] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - } - s += vertexSize; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); - clipOutputCount--; - for (var ii = 1; ii < clipOutputCount; ii++) { - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + ii); - clippedTrianglesItems[s + 2] = (index + ii + 1); - s += 3; - } - index += clipOutputCount + 1; - } - else { - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); - clippedVerticesItems[s] = x1; - clippedVerticesItems[s + 1] = y1; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - if (!twoColor) { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = x2; - clippedVerticesItems[s + 9] = y2; - clippedVerticesItems[s + 10] = light.r; - clippedVerticesItems[s + 11] = light.g; - clippedVerticesItems[s + 12] = light.b; - clippedVerticesItems[s + 13] = light.a; - clippedVerticesItems[s + 14] = u2; - clippedVerticesItems[s + 15] = v2; - clippedVerticesItems[s + 16] = x3; - clippedVerticesItems[s + 17] = y3; - clippedVerticesItems[s + 18] = light.r; - clippedVerticesItems[s + 19] = light.g; - clippedVerticesItems[s + 20] = light.b; - clippedVerticesItems[s + 21] = light.a; - clippedVerticesItems[s + 22] = u3; - clippedVerticesItems[s + 23] = v3; - } - else { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 9] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - clippedVerticesItems[s + 12] = x2; - clippedVerticesItems[s + 13] = y2; - clippedVerticesItems[s + 14] = light.r; - clippedVerticesItems[s + 15] = light.g; - clippedVerticesItems[s + 16] = light.b; - clippedVerticesItems[s + 17] = light.a; - clippedVerticesItems[s + 18] = u2; - clippedVerticesItems[s + 19] = v2; - clippedVerticesItems[s + 20] = dark.r; - clippedVerticesItems[s + 21] = dark.g; - clippedVerticesItems[s + 22] = dark.b; - clippedVerticesItems[s + 23] = dark.a; - clippedVerticesItems[s + 24] = x3; - clippedVerticesItems[s + 25] = y3; - clippedVerticesItems[s + 26] = light.r; - clippedVerticesItems[s + 27] = light.g; - clippedVerticesItems[s + 28] = light.b; - clippedVerticesItems[s + 29] = light.a; - clippedVerticesItems[s + 30] = u3; - clippedVerticesItems[s + 31] = v3; - clippedVerticesItems[s + 32] = dark.r; - clippedVerticesItems[s + 33] = dark.g; - clippedVerticesItems[s + 34] = dark.b; - clippedVerticesItems[s + 35] = dark.a; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + 1); - clippedTrianglesItems[s + 2] = (index + 2); - index += 3; - continue outer; - } - } - } - }; - SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { - var originalOutput = output; - var clipped = false; - var input = null; - if (clippingArea.length % 4 >= 2) { - input = output; - output = this.scratch; - } - else - input = this.scratch; - input.length = 0; - input.push(x1); - input.push(y1); - input.push(x2); - input.push(y2); - input.push(x3); - input.push(y3); - input.push(x1); - input.push(y1); - output.length = 0; - var clippingVertices = clippingArea; - var clippingVerticesLast = clippingArea.length - 4; - for (var i = 0;; i += 2) { - var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; - var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; - var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; - var inputVertices = input; - var inputVerticesLength = input.length - 2, outputStart = output.length; - for (var ii = 0; ii < inputVerticesLength; ii += 2) { - var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; - var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; - var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; - if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { - if (side2) { - output.push(inputX2); - output.push(inputY2); - continue; - } - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - } - else if (side2) { - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - output.push(inputX2); - output.push(inputY2); - } - clipped = true; - } - if (outputStart == output.length) { - originalOutput.length = 0; - return true; - } - output.push(output[0]); - output.push(output[1]); - if (i == clippingVerticesLast) - break; - var temp = output; - output = input; - output.length = 0; - input = temp; - } - if (originalOutput != output) { - originalOutput.length = 0; - for (var i = 0, n = output.length - 2; i < n; i++) - originalOutput[i] = output[i]; - } - else - originalOutput.length = originalOutput.length - 2; - return clipped; - }; - SkeletonClipping.makeClockwise = function (polygon) { - var vertices = polygon; - var verticeslength = polygon.length; - var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; - for (var i = 0, n = verticeslength - 3; i < n; i += 2) { - p1x = vertices[i]; - p1y = vertices[i + 1]; - p2x = vertices[i + 2]; - p2y = vertices[i + 3]; - area += p1x * p2y - p2x * p1y; - } - if (area < 0) - return; - for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { - var x = vertices[i], y = vertices[i + 1]; - var other = lastX - i; - vertices[i] = vertices[other]; - vertices[i + 1] = vertices[other + 1]; - vertices[other] = x; - vertices[other + 1] = y; - } - }; - return SkeletonClipping; - }()); - spine.SkeletonClipping = SkeletonClipping; + var SkeletonClipping = (function () { + function SkeletonClipping() { + this.triangulator = new spine.Triangulator(); + this.clippingPolygon = new Array(); + this.clipOutput = new Array(); + this.clippedVertices = new Array(); + this.clippedTriangles = new Array(); + this.scratch = new Array(); + } + SkeletonClipping.prototype.clipStart = function (slot, clip) { + if (this.clipAttachment != null) + return 0; + this.clipAttachment = clip; + var n = clip.worldVerticesLength; + var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); + clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); + var clippingPolygon = this.clippingPolygon; + SkeletonClipping.makeClockwise(clippingPolygon); + var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); + for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { + var polygon = clippingPolygons[i]; + SkeletonClipping.makeClockwise(polygon); + polygon.push(polygon[0]); + polygon.push(polygon[1]); + } + return clippingPolygons.length; + }; + SkeletonClipping.prototype.clipEndWithSlot = function (slot) { + if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) + this.clipEnd(); + }; + SkeletonClipping.prototype.clipEnd = function () { + if (this.clipAttachment == null) + return; + this.clipAttachment = null; + this.clippingPolygons = null; + this.clippedVertices.length = 0; + this.clippedTriangles.length = 0; + this.clippingPolygon.length = 0; + }; + SkeletonClipping.prototype.isClipping = function () { + return this.clipAttachment != null; + }; + SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { + var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; + var clippedTriangles = this.clippedTriangles; + var polygons = this.clippingPolygons; + var polygonsCount = this.clippingPolygons.length; + var vertexSize = twoColor ? 12 : 8; + var index = 0; + clippedVertices.length = 0; + clippedTriangles.length = 0; + outer: for (var i = 0; i < trianglesLength; i += 3) { + var vertexOffset = triangles[i] << 1; + var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; + var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 1] << 1; + var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; + var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 2] << 1; + var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; + var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; + for (var p = 0; p < polygonsCount; p++) { + var s = clippedVertices.length; + if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { + var clipOutputLength = clipOutput.length; + if (clipOutputLength == 0) + continue; + var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; + var d = 1 / (d0 * d2 + d1 * (y1 - y3)); + var clipOutputCount = clipOutputLength >> 1; + var clipOutputItems = this.clipOutput; + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); + for (var ii = 0; ii < clipOutputLength; ii += 2) { + var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; + clippedVerticesItems[s] = x; + clippedVerticesItems[s + 1] = y; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + var c0 = x - x3, c1 = y - y3; + var a = (d0 * c0 + d1 * c1) * d; + var b = (d4 * c0 + d2 * c1) * d; + var c = 1 - a - b; + clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; + clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; + if (twoColor) { + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 8] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + } + s += vertexSize; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); + clipOutputCount--; + for (var ii = 1; ii < clipOutputCount; ii++) { + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + ii); + clippedTrianglesItems[s + 2] = (index + ii + 1); + s += 3; + } + index += clipOutputCount + 1; + } + else { + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); + clippedVerticesItems[s] = x1; + clippedVerticesItems[s + 1] = y1; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + if (!twoColor) { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = x2; + clippedVerticesItems[s + 9] = y2; + clippedVerticesItems[s + 10] = light.r; + clippedVerticesItems[s + 11] = light.g; + clippedVerticesItems[s + 12] = light.b; + clippedVerticesItems[s + 13] = light.a; + clippedVerticesItems[s + 14] = u2; + clippedVerticesItems[s + 15] = v2; + clippedVerticesItems[s + 16] = x3; + clippedVerticesItems[s + 17] = y3; + clippedVerticesItems[s + 18] = light.r; + clippedVerticesItems[s + 19] = light.g; + clippedVerticesItems[s + 20] = light.b; + clippedVerticesItems[s + 21] = light.a; + clippedVerticesItems[s + 22] = u3; + clippedVerticesItems[s + 23] = v3; + } + else { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 9] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + clippedVerticesItems[s + 12] = x2; + clippedVerticesItems[s + 13] = y2; + clippedVerticesItems[s + 14] = light.r; + clippedVerticesItems[s + 15] = light.g; + clippedVerticesItems[s + 16] = light.b; + clippedVerticesItems[s + 17] = light.a; + clippedVerticesItems[s + 18] = u2; + clippedVerticesItems[s + 19] = v2; + clippedVerticesItems[s + 20] = dark.r; + clippedVerticesItems[s + 21] = dark.g; + clippedVerticesItems[s + 22] = dark.b; + clippedVerticesItems[s + 23] = dark.a; + clippedVerticesItems[s + 24] = x3; + clippedVerticesItems[s + 25] = y3; + clippedVerticesItems[s + 26] = light.r; + clippedVerticesItems[s + 27] = light.g; + clippedVerticesItems[s + 28] = light.b; + clippedVerticesItems[s + 29] = light.a; + clippedVerticesItems[s + 30] = u3; + clippedVerticesItems[s + 31] = v3; + clippedVerticesItems[s + 32] = dark.r; + clippedVerticesItems[s + 33] = dark.g; + clippedVerticesItems[s + 34] = dark.b; + clippedVerticesItems[s + 35] = dark.a; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + 1); + clippedTrianglesItems[s + 2] = (index + 2); + index += 3; + continue outer; + } + } + } + }; + SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { + var originalOutput = output; + var clipped = false; + var input = null; + if (clippingArea.length % 4 >= 2) { + input = output; + output = this.scratch; + } + else + input = this.scratch; + input.length = 0; + input.push(x1); + input.push(y1); + input.push(x2); + input.push(y2); + input.push(x3); + input.push(y3); + input.push(x1); + input.push(y1); + output.length = 0; + var clippingVertices = clippingArea; + var clippingVerticesLast = clippingArea.length - 4; + for (var i = 0;; i += 2) { + var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; + var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; + var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; + var inputVertices = input; + var inputVerticesLength = input.length - 2, outputStart = output.length; + for (var ii = 0; ii < inputVerticesLength; ii += 2) { + var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; + var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; + var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; + if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { + if (side2) { + output.push(inputX2); + output.push(inputY2); + continue; + } + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + } + else if (side2) { + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + output.push(inputX2); + output.push(inputY2); + } + clipped = true; + } + if (outputStart == output.length) { + originalOutput.length = 0; + return true; + } + output.push(output[0]); + output.push(output[1]); + if (i == clippingVerticesLast) + break; + var temp = output; + output = input; + output.length = 0; + input = temp; + } + if (originalOutput != output) { + originalOutput.length = 0; + for (var i = 0, n = output.length - 2; i < n; i++) + originalOutput[i] = output[i]; + } + else + originalOutput.length = originalOutput.length - 2; + return clipped; + }; + SkeletonClipping.makeClockwise = function (polygon) { + var vertices = polygon; + var verticeslength = polygon.length; + var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; + for (var i = 0, n = verticeslength - 3; i < n; i += 2) { + p1x = vertices[i]; + p1y = vertices[i + 1]; + p2x = vertices[i + 2]; + p2y = vertices[i + 3]; + area += p1x * p2y - p2x * p1y; + } + if (area < 0) + return; + for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { + var x = vertices[i], y = vertices[i + 1]; + var other = lastX - i; + vertices[i] = vertices[other]; + vertices[i + 1] = vertices[other + 1]; + vertices[other] = x; + vertices[other + 1] = y; + } + }; + return SkeletonClipping; + }()); + spine.SkeletonClipping = SkeletonClipping; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonData = (function () { - function SkeletonData() { - this.bones = new Array(); - this.slots = new Array(); - this.skins = new Array(); - this.events = new Array(); - this.animations = new Array(); - this.ikConstraints = new Array(); - this.transformConstraints = new Array(); - this.pathConstraints = new Array(); - this.fps = 0; - } - SkeletonData.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.name == boneName) - return bone; - } - return null; - }; - SkeletonData.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].name == boneName) - return i; - return -1; - }; - SkeletonData.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.name == slotName) - return slot; - } - return null; - }; - SkeletonData.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].name == slotName) - return i; - return -1; - }; - SkeletonData.prototype.findSkin = function (skinName) { - if (skinName == null) - throw new Error("skinName cannot be null."); - var skins = this.skins; - for (var i = 0, n = skins.length; i < n; i++) { - var skin = skins[i]; - if (skin.name == skinName) - return skin; - } - return null; - }; - SkeletonData.prototype.findEvent = function (eventDataName) { - if (eventDataName == null) - throw new Error("eventDataName cannot be null."); - var events = this.events; - for (var i = 0, n = events.length; i < n; i++) { - var event_4 = events[i]; - if (event_4.name == eventDataName) - return event_4; - } - return null; - }; - SkeletonData.prototype.findAnimation = function (animationName) { - if (animationName == null) - throw new Error("animationName cannot be null."); - var animations = this.animations; - for (var i = 0, n = animations.length; i < n; i++) { - var animation = animations[i]; - if (animation.name == animationName) - return animation; - } - return null; - }; - SkeletonData.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { - if (pathConstraintName == null) - throw new Error("pathConstraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) - if (pathConstraints[i].name == pathConstraintName) - return i; - return -1; - }; - return SkeletonData; - }()); - spine.SkeletonData = SkeletonData; + var SkeletonData = (function () { + function SkeletonData() { + this.bones = new Array(); + this.slots = new Array(); + this.skins = new Array(); + this.events = new Array(); + this.animations = new Array(); + this.ikConstraints = new Array(); + this.transformConstraints = new Array(); + this.pathConstraints = new Array(); + this.fps = 0; + } + SkeletonData.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.name == boneName) + return bone; + } + return null; + }; + SkeletonData.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].name == boneName) + return i; + return -1; + }; + SkeletonData.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.name == slotName) + return slot; + } + return null; + }; + SkeletonData.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].name == slotName) + return i; + return -1; + }; + SkeletonData.prototype.findSkin = function (skinName) { + if (skinName == null) + throw new Error("skinName cannot be null."); + var skins = this.skins; + for (var i = 0, n = skins.length; i < n; i++) { + var skin = skins[i]; + if (skin.name == skinName) + return skin; + } + return null; + }; + SkeletonData.prototype.findEvent = function (eventDataName) { + if (eventDataName == null) + throw new Error("eventDataName cannot be null."); + var events = this.events; + for (var i = 0, n = events.length; i < n; i++) { + var event_4 = events[i]; + if (event_4.name == eventDataName) + return event_4; + } + return null; + }; + SkeletonData.prototype.findAnimation = function (animationName) { + if (animationName == null) + throw new Error("animationName cannot be null."); + var animations = this.animations; + for (var i = 0, n = animations.length; i < n; i++) { + var animation = animations[i]; + if (animation.name == animationName) + return animation; + } + return null; + }; + SkeletonData.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { + if (pathConstraintName == null) + throw new Error("pathConstraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) + if (pathConstraints[i].name == pathConstraintName) + return i; + return -1; + }; + return SkeletonData; + }()); + spine.SkeletonData = SkeletonData; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonJson = (function () { - function SkeletonJson(attachmentLoader) { - this.scale = 1; - this.linkedMeshes = new Array(); - this.attachmentLoader = attachmentLoader; - } - SkeletonJson.prototype.readSkeletonData = function (json) { - var scale = this.scale; - var skeletonData = new spine.SkeletonData(); - var root = typeof (json) === "string" ? JSON.parse(json) : json; - var skeletonMap = root.skeleton; - if (skeletonMap != null) { - skeletonData.hash = skeletonMap.hash; - skeletonData.version = skeletonMap.spine; - skeletonData.width = skeletonMap.width; - skeletonData.height = skeletonMap.height; - skeletonData.fps = skeletonMap.fps; - skeletonData.imagesPath = skeletonMap.images; - } - if (root.bones) { - for (var i = 0; i < root.bones.length; i++) { - var boneMap = root.bones[i]; - var parent_2 = null; - var parentName = this.getValue(boneMap, "parent", null); - if (parentName != null) { - parent_2 = skeletonData.findBone(parentName); - if (parent_2 == null) - throw new Error("Parent bone not found: " + parentName); - } - var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); - data.length = this.getValue(boneMap, "length", 0) * scale; - data.x = this.getValue(boneMap, "x", 0) * scale; - data.y = this.getValue(boneMap, "y", 0) * scale; - data.rotation = this.getValue(boneMap, "rotation", 0); - data.scaleX = this.getValue(boneMap, "scaleX", 1); - data.scaleY = this.getValue(boneMap, "scaleY", 1); - data.shearX = this.getValue(boneMap, "shearX", 0); - data.shearY = this.getValue(boneMap, "shearY", 0); - data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); - skeletonData.bones.push(data); - } - } - if (root.slots) { - for (var i = 0; i < root.slots.length; i++) { - var slotMap = root.slots[i]; - var slotName = slotMap.name; - var boneName = slotMap.bone; - var boneData = skeletonData.findBone(boneName); - if (boneData == null) - throw new Error("Slot bone not found: " + boneName); - var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); - var color = this.getValue(slotMap, "color", null); - if (color != null) - data.color.setFromString(color); - var dark = this.getValue(slotMap, "dark", null); - if (dark != null) { - data.darkColor = new spine.Color(1, 1, 1, 1); - data.darkColor.setFromString(dark); - } - data.attachmentName = this.getValue(slotMap, "attachment", null); - data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); - skeletonData.slots.push(data); - } - } - if (root.ik) { - for (var i = 0; i < root.ik.length; i++) { - var constraintMap = root.ik[i]; - var data = new spine.IkConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("IK bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("IK target bone not found: " + targetName); - data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; - data.mix = this.getValue(constraintMap, "mix", 1); - skeletonData.ikConstraints.push(data); - } - } - if (root.transform) { - for (var i = 0; i < root.transform.length; i++) { - var constraintMap = root.transform[i]; - var data = new spine.TransformConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("Transform constraint target bone not found: " + targetName); - data.local = this.getValue(constraintMap, "local", false); - data.relative = this.getValue(constraintMap, "relative", false); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.offsetX = this.getValue(constraintMap, "x", 0) * scale; - data.offsetY = this.getValue(constraintMap, "y", 0) * scale; - data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); - data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); - data.offsetShearY = this.getValue(constraintMap, "shearY", 0); - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); - data.shearMix = this.getValue(constraintMap, "shearMix", 1); - skeletonData.transformConstraints.push(data); - } - } - if (root.path) { - for (var i = 0; i < root.path.length; i++) { - var constraintMap = root.path[i]; - var data = new spine.PathConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findSlot(targetName); - if (data.target == null) - throw new Error("Path target slot not found: " + targetName); - data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); - data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); - data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.position = this.getValue(constraintMap, "position", 0); - if (data.positionMode == spine.PositionMode.Fixed) - data.position *= scale; - data.spacing = this.getValue(constraintMap, "spacing", 0); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - data.spacing *= scale; - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - skeletonData.pathConstraints.push(data); - } - } - if (root.skins) { - for (var skinName in root.skins) { - var skinMap = root.skins[skinName]; - var skin = new spine.Skin(skinName); - for (var slotName in skinMap) { - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - var slotMap = skinMap[slotName]; - for (var entryName in slotMap) { - var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); - if (attachment != null) - skin.addAttachment(slotIndex, entryName, attachment); - } - } - skeletonData.skins.push(skin); - if (skin.name == "default") - skeletonData.defaultSkin = skin; - } - } - for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { - var linkedMesh = this.linkedMeshes[i]; - var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); - if (skin == null) - throw new Error("Skin not found: " + linkedMesh.skin); - var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_3 == null) - throw new Error("Parent mesh not found: " + linkedMesh.parent); - linkedMesh.mesh.setParentMesh(parent_3); - linkedMesh.mesh.updateUVs(); - } - this.linkedMeshes.length = 0; - if (root.events) { - for (var eventName in root.events) { - var eventMap = root.events[eventName]; - var data = new spine.EventData(eventName); - data.intValue = this.getValue(eventMap, "int", 0); - data.floatValue = this.getValue(eventMap, "float", 0); - data.stringValue = this.getValue(eventMap, "string", ""); - skeletonData.events.push(data); - } - } - if (root.animations) { - for (var animationName in root.animations) { - var animationMap = root.animations[animationName]; - this.readAnimation(animationMap, animationName, skeletonData); - } - } - return skeletonData; - }; - SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { - var scale = this.scale; - name = this.getValue(map, "name", name); - var type = this.getValue(map, "type", "region"); - switch (type) { - case "region": { - var path = this.getValue(map, "path", name); - var region = this.attachmentLoader.newRegionAttachment(skin, name, path); - if (region == null) - return null; - region.path = path; - region.x = this.getValue(map, "x", 0) * scale; - region.y = this.getValue(map, "y", 0) * scale; - region.scaleX = this.getValue(map, "scaleX", 1); - region.scaleY = this.getValue(map, "scaleY", 1); - region.rotation = this.getValue(map, "rotation", 0); - region.width = map.width * scale; - region.height = map.height * scale; - var color = this.getValue(map, "color", null); - if (color != null) - region.color.setFromString(color); - region.updateOffset(); - return region; - } - case "boundingbox": { - var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); - if (box == null) - return null; - this.readVertices(map, box, map.vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - box.color.setFromString(color); - return box; - } - case "mesh": - case "linkedmesh": { - var path = this.getValue(map, "path", name); - var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); - if (mesh == null) - return null; - mesh.path = path; - var color = this.getValue(map, "color", null); - if (color != null) - mesh.color.setFromString(color); - var parent_4 = this.getValue(map, "parent", null); - if (parent_4 != null) { - mesh.inheritDeform = this.getValue(map, "deform", true); - this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); - return mesh; - } - var uvs = map.uvs; - this.readVertices(map, mesh, uvs.length); - mesh.triangles = map.triangles; - mesh.regionUVs = uvs; - mesh.updateUVs(); - mesh.hullLength = this.getValue(map, "hull", 0) * 2; - return mesh; - } - case "path": { - var path = this.attachmentLoader.newPathAttachment(skin, name); - if (path == null) - return null; - path.closed = this.getValue(map, "closed", false); - path.constantSpeed = this.getValue(map, "constantSpeed", true); - var vertexCount = map.vertexCount; - this.readVertices(map, path, vertexCount << 1); - var lengths = spine.Utils.newArray(vertexCount / 3, 0); - for (var i = 0; i < map.lengths.length; i++) - lengths[i++] = map.lengths[i] * scale; - path.lengths = lengths; - var color = this.getValue(map, "color", null); - if (color != null) - path.color.setFromString(color); - return path; - } - case "point": { - var point = this.attachmentLoader.newPointAttachment(skin, name); - if (point == null) - return null; - point.x = this.getValue(map, "x", 0) * scale; - point.y = this.getValue(map, "y", 0) * scale; - point.rotation = this.getValue(map, "rotation", 0); - var color = this.getValue(map, "color", null); - if (color != null) - point.color.setFromString(color); - return point; - } - case "clipping": { - var clip = this.attachmentLoader.newClippingAttachment(skin, name); - if (clip == null) - return null; - var end = this.getValue(map, "end", null); - if (end != null) { - var slot = skeletonData.findSlot(end); - if (slot == null) - throw new Error("Clipping end slot not found: " + end); - clip.endSlot = slot; - } - var vertexCount = map.vertexCount; - this.readVertices(map, clip, vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - clip.color.setFromString(color); - return clip; - } - } - return null; - }; - SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { - var scale = this.scale; - attachment.worldVerticesLength = verticesLength; - var vertices = map.vertices; - if (verticesLength == vertices.length) { - var scaledVertices = spine.Utils.toFloatArray(vertices); - if (scale != 1) { - for (var i = 0, n = vertices.length; i < n; i++) - scaledVertices[i] *= scale; - } - attachment.vertices = scaledVertices; - return; - } - var weights = new Array(); - var bones = new Array(); - for (var i = 0, n = vertices.length; i < n;) { - var boneCount = vertices[i++]; - bones.push(boneCount); - for (var nn = i + boneCount * 4; i < nn; i += 4) { - bones.push(vertices[i]); - weights.push(vertices[i + 1] * scale); - weights.push(vertices[i + 2] * scale); - weights.push(vertices[i + 3]); - } - } - attachment.bones = bones; - attachment.vertices = spine.Utils.toFloatArray(weights); - }; - SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { - var scale = this.scale; - var timelines = new Array(); - var duration = 0; - if (map.slots) { - for (var slotName in map.slots) { - var slotMap = map.slots[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - if (timelineName == "attachment") { - var timeline = new spine.AttachmentTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - else if (timelineName == "color") { - var timeline = new spine.ColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var color = new spine.Color(); - color.setFromString(valueMap.color); - timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); - } - else if (timelineName == "twoColor") { - var timeline = new spine.TwoColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var light = new spine.Color(); - var dark = new spine.Color(); - light.setFromString(valueMap.light); - dark.setFromString(valueMap.dark); - timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); - } - } - } - if (map.bones) { - for (var boneName in map.bones) { - var boneMap = map.bones[boneName]; - var boneIndex = skeletonData.findBoneIndex(boneName); - if (boneIndex == -1) - throw new Error("Bone not found: " + boneName); - for (var timelineName in boneMap) { - var timelineMap = boneMap[timelineName]; - if (timelineName === "rotate") { - var timeline = new spine.RotateTimeline(timelineMap.length); - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); - } - else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "scale") - timeline = new spine.ScaleTimeline(timelineMap.length); - else if (timelineName === "shear") - timeline = new spine.ShearTimeline(timelineMap.length); - else { - timeline = new spine.TranslateTimeline(timelineMap.length); - timelineScale = scale; - } - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); - timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); - } - } - } - if (map.ik) { - for (var constraintName in map.ik) { - var constraintMap = map.ik[constraintName]; - var constraint = skeletonData.findIkConstraint(constraintName); - var timeline = new spine.IkConstraintTimeline(constraintMap.length); - timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); - } - } - if (map.transform) { - for (var constraintName in map.transform) { - var constraintMap = map.transform[constraintName]; - var constraint = skeletonData.findTransformConstraint(constraintName); - var timeline = new spine.TransformConstraintTimeline(constraintMap.length); - timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); - } - } - if (map.paths) { - for (var constraintName in map.paths) { - var constraintMap = map.paths[constraintName]; - var index = skeletonData.findPathConstraintIndex(constraintName); - if (index == -1) - throw new Error("Path constraint not found: " + constraintName); - var data = skeletonData.pathConstraints[index]; - for (var timelineName in constraintMap) { - var timelineMap = constraintMap[timelineName]; - if (timelineName === "position" || timelineName === "spacing") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "spacing") { - timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - timelineScale = scale; - } - else { - timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); - if (data.positionMode == spine.PositionMode.Fixed) - timelineScale = scale; - } - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); - } - else if (timelineName === "mix") { - var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); - } - } - } - } - if (map.deform) { - for (var deformName in map.deform) { - var deformMap = map.deform[deformName]; - var skin = skeletonData.findSkin(deformName); - if (skin == null) - throw new Error("Skin not found: " + deformName); - for (var slotName in deformMap) { - var slotMap = deformMap[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotMap.name); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - var attachment = skin.getAttachment(slotIndex, timelineName); - if (attachment == null) - throw new Error("Deform attachment not found: " + timelineMap.name); - var weighted = attachment.bones != null; - var vertices = attachment.vertices; - var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; - var timeline = new spine.DeformTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - timeline.attachment = attachment; - var frameIndex = 0; - for (var j = 0; j < timelineMap.length; j++) { - var valueMap = timelineMap[j]; - var deform = void 0; - var verticesValue = this.getValue(valueMap, "vertices", null); - if (verticesValue == null) - deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; - else { - deform = spine.Utils.newFloatArray(deformLength); - var start = this.getValue(valueMap, "offset", 0); - spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); - if (scale != 1) { - for (var i = start, n = i + verticesValue.length; i < n; i++) - deform[i] *= scale; - } - if (!weighted) { - for (var i = 0; i < deformLength; i++) - deform[i] += vertices[i]; - } - } - timeline.setFrame(frameIndex, valueMap.time, deform); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - } - } - } - var drawOrderNode = map.drawOrder; - if (drawOrderNode == null) - drawOrderNode = map.draworder; - if (drawOrderNode != null) { - var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); - var slotCount = skeletonData.slots.length; - var frameIndex = 0; - for (var j = 0; j < drawOrderNode.length; j++) { - var drawOrderMap = drawOrderNode[j]; - var drawOrder = null; - var offsets = this.getValue(drawOrderMap, "offsets", null); - if (offsets != null) { - drawOrder = spine.Utils.newArray(slotCount, -1); - var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); - var originalIndex = 0, unchangedIndex = 0; - for (var i = 0; i < offsets.length; i++) { - var offsetMap = offsets[i]; - var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); - if (slotIndex == -1) - throw new Error("Slot not found: " + offsetMap.slot); - while (originalIndex != slotIndex) - unchanged[unchangedIndex++] = originalIndex++; - drawOrder[originalIndex + offsetMap.offset] = originalIndex++; - } - while (originalIndex < slotCount) - unchanged[unchangedIndex++] = originalIndex++; - for (var i = slotCount - 1; i >= 0; i--) - if (drawOrder[i] == -1) - drawOrder[i] = unchanged[--unchangedIndex]; - } - timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (map.events) { - var timeline = new spine.EventTimeline(map.events.length); - var frameIndex = 0; - for (var i = 0; i < map.events.length; i++) { - var eventMap = map.events[i]; - var eventData = skeletonData.findEvent(eventMap.name); - if (eventData == null) - throw new Error("Event not found: " + eventMap.name); - var event_5 = new spine.Event(eventMap.time, eventData); - event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); - event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); - event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); - timeline.setFrame(frameIndex++, event_5); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (isNaN(duration)) { - throw new Error("Error while parsing animation, duration is NaN"); - } - skeletonData.animations.push(new spine.Animation(name, timelines, duration)); - }; - SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { - if (!map.curve) - return; - if (map.curve === "stepped") - timeline.setStepped(frameIndex); - else if (Object.prototype.toString.call(map.curve) === '[object Array]') { - var curve = map.curve; - timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); - } - }; - SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { - return map[prop] !== undefined ? map[prop] : defaultValue; - }; - SkeletonJson.blendModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.BlendMode.Normal; - if (str == "additive") - return spine.BlendMode.Additive; - if (str == "multiply") - return spine.BlendMode.Multiply; - if (str == "screen") - return spine.BlendMode.Screen; - throw new Error("Unknown blend mode: " + str); - }; - SkeletonJson.positionModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "fixed") - return spine.PositionMode.Fixed; - if (str == "percent") - return spine.PositionMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.spacingModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "length") - return spine.SpacingMode.Length; - if (str == "fixed") - return spine.SpacingMode.Fixed; - if (str == "percent") - return spine.SpacingMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.rotateModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "tangent") - return spine.RotateMode.Tangent; - if (str == "chain") - return spine.RotateMode.Chain; - if (str == "chainscale") - return spine.RotateMode.ChainScale; - throw new Error("Unknown rotate mode: " + str); - }; - SkeletonJson.transformModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.TransformMode.Normal; - if (str == "onlytranslation") - return spine.TransformMode.OnlyTranslation; - if (str == "norotationorreflection") - return spine.TransformMode.NoRotationOrReflection; - if (str == "noscale") - return spine.TransformMode.NoScale; - if (str == "noscaleorreflection") - return spine.TransformMode.NoScaleOrReflection; - throw new Error("Unknown transform mode: " + str); - }; - return SkeletonJson; - }()); - spine.SkeletonJson = SkeletonJson; - var LinkedMesh = (function () { - function LinkedMesh(mesh, skin, slotIndex, parent) { - this.mesh = mesh; - this.skin = skin; - this.slotIndex = slotIndex; - this.parent = parent; - } - return LinkedMesh; - }()); + var SkeletonJson = (function () { + function SkeletonJson(attachmentLoader) { + this.scale = 1; + this.linkedMeshes = new Array(); + this.attachmentLoader = attachmentLoader; + } + SkeletonJson.prototype.readSkeletonData = function (json) { + var scale = this.scale; + var skeletonData = new spine.SkeletonData(); + var root = typeof (json) === "string" ? JSON.parse(json) : json; + var skeletonMap = root.skeleton; + if (skeletonMap != null) { + skeletonData.hash = skeletonMap.hash; + skeletonData.version = skeletonMap.spine; + skeletonData.width = skeletonMap.width; + skeletonData.height = skeletonMap.height; + skeletonData.fps = skeletonMap.fps; + skeletonData.imagesPath = skeletonMap.images; + } + if (root.bones) { + for (var i = 0; i < root.bones.length; i++) { + var boneMap = root.bones[i]; + var parent_2 = null; + var parentName = this.getValue(boneMap, "parent", null); + if (parentName != null) { + parent_2 = skeletonData.findBone(parentName); + if (parent_2 == null) + throw new Error("Parent bone not found: " + parentName); + } + var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); + data.length = this.getValue(boneMap, "length", 0) * scale; + data.x = this.getValue(boneMap, "x", 0) * scale; + data.y = this.getValue(boneMap, "y", 0) * scale; + data.rotation = this.getValue(boneMap, "rotation", 0); + data.scaleX = this.getValue(boneMap, "scaleX", 1); + data.scaleY = this.getValue(boneMap, "scaleY", 1); + data.shearX = this.getValue(boneMap, "shearX", 0); + data.shearY = this.getValue(boneMap, "shearY", 0); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); + skeletonData.bones.push(data); + } + } + if (root.slots) { + for (var i = 0; i < root.slots.length; i++) { + var slotMap = root.slots[i]; + var slotName = slotMap.name; + var boneName = slotMap.bone; + var boneData = skeletonData.findBone(boneName); + if (boneData == null) + throw new Error("Slot bone not found: " + boneName); + var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); + var color = this.getValue(slotMap, "color", null); + if (color != null) + data.color.setFromString(color); + var dark = this.getValue(slotMap, "dark", null); + if (dark != null) { + data.darkColor = new spine.Color(1, 1, 1, 1); + data.darkColor.setFromString(dark); + } + data.attachmentName = this.getValue(slotMap, "attachment", null); + data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); + skeletonData.slots.push(data); + } + } + if (root.ik) { + for (var i = 0; i < root.ik.length; i++) { + var constraintMap = root.ik[i]; + var data = new spine.IkConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("IK bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("IK target bone not found: " + targetName); + data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; + data.mix = this.getValue(constraintMap, "mix", 1); + skeletonData.ikConstraints.push(data); + } + } + if (root.transform) { + for (var i = 0; i < root.transform.length; i++) { + var constraintMap = root.transform[i]; + var data = new spine.TransformConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("Transform constraint target bone not found: " + targetName); + data.local = this.getValue(constraintMap, "local", false); + data.relative = this.getValue(constraintMap, "relative", false); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.offsetX = this.getValue(constraintMap, "x", 0) * scale; + data.offsetY = this.getValue(constraintMap, "y", 0) * scale; + data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); + data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); + data.offsetShearY = this.getValue(constraintMap, "shearY", 0); + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); + data.shearMix = this.getValue(constraintMap, "shearMix", 1); + skeletonData.transformConstraints.push(data); + } + } + if (root.path) { + for (var i = 0; i < root.path.length; i++) { + var constraintMap = root.path[i]; + var data = new spine.PathConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findSlot(targetName); + if (data.target == null) + throw new Error("Path target slot not found: " + targetName); + data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); + data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); + data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.position = this.getValue(constraintMap, "position", 0); + if (data.positionMode == spine.PositionMode.Fixed) + data.position *= scale; + data.spacing = this.getValue(constraintMap, "spacing", 0); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + data.spacing *= scale; + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + skeletonData.pathConstraints.push(data); + } + } + if (root.skins) { + for (var skinName in root.skins) { + var skinMap = root.skins[skinName]; + var skin = new spine.Skin(skinName); + for (var slotName in skinMap) { + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + var slotMap = skinMap[slotName]; + for (var entryName in slotMap) { + var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); + if (attachment != null) + skin.addAttachment(slotIndex, entryName, attachment); + } + } + skeletonData.skins.push(skin); + if (skin.name == "default") + skeletonData.defaultSkin = skin; + } + } + for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { + var linkedMesh = this.linkedMeshes[i]; + var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); + if (skin == null) + throw new Error("Skin not found: " + linkedMesh.skin); + var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); + if (parent_3 == null) + throw new Error("Parent mesh not found: " + linkedMesh.parent); + linkedMesh.mesh.setParentMesh(parent_3); + linkedMesh.mesh.updateUVs(); + } + this.linkedMeshes.length = 0; + if (root.events) { + for (var eventName in root.events) { + var eventMap = root.events[eventName]; + var data = new spine.EventData(eventName); + data.intValue = this.getValue(eventMap, "int", 0); + data.floatValue = this.getValue(eventMap, "float", 0); + data.stringValue = this.getValue(eventMap, "string", ""); + skeletonData.events.push(data); + } + } + if (root.animations) { + for (var animationName in root.animations) { + var animationMap = root.animations[animationName]; + this.readAnimation(animationMap, animationName, skeletonData); + } + } + return skeletonData; + }; + SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { + var scale = this.scale; + name = this.getValue(map, "name", name); + var type = this.getValue(map, "type", "region"); + switch (type) { + case "region": { + var path = this.getValue(map, "path", name); + var region = this.attachmentLoader.newRegionAttachment(skin, name, path); + if (region == null) + return null; + region.path = path; + region.x = this.getValue(map, "x", 0) * scale; + region.y = this.getValue(map, "y", 0) * scale; + region.scaleX = this.getValue(map, "scaleX", 1); + region.scaleY = this.getValue(map, "scaleY", 1); + region.rotation = this.getValue(map, "rotation", 0); + region.width = map.width * scale; + region.height = map.height * scale; + var color = this.getValue(map, "color", null); + if (color != null) + region.color.setFromString(color); + region.updateOffset(); + return region; + } + case "boundingbox": { + var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); + if (box == null) + return null; + this.readVertices(map, box, map.vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + box.color.setFromString(color); + return box; + } + case "mesh": + case "linkedmesh": { + var path = this.getValue(map, "path", name); + var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); + if (mesh == null) + return null; + mesh.path = path; + var color = this.getValue(map, "color", null); + if (color != null) + mesh.color.setFromString(color); + var parent_4 = this.getValue(map, "parent", null); + if (parent_4 != null) { + mesh.inheritDeform = this.getValue(map, "deform", true); + this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); + return mesh; + } + var uvs = map.uvs; + this.readVertices(map, mesh, uvs.length); + mesh.triangles = map.triangles; + mesh.regionUVs = uvs; + mesh.updateUVs(); + mesh.hullLength = this.getValue(map, "hull", 0) * 2; + return mesh; + } + case "path": { + var path = this.attachmentLoader.newPathAttachment(skin, name); + if (path == null) + return null; + path.closed = this.getValue(map, "closed", false); + path.constantSpeed = this.getValue(map, "constantSpeed", true); + var vertexCount = map.vertexCount; + this.readVertices(map, path, vertexCount << 1); + var lengths = spine.Utils.newArray(vertexCount / 3, 0); + for (var i = 0; i < map.lengths.length; i++) + lengths[i++] = map.lengths[i] * scale; + path.lengths = lengths; + var color = this.getValue(map, "color", null); + if (color != null) + path.color.setFromString(color); + return path; + } + case "point": { + var point = this.attachmentLoader.newPointAttachment(skin, name); + if (point == null) + return null; + point.x = this.getValue(map, "x", 0) * scale; + point.y = this.getValue(map, "y", 0) * scale; + point.rotation = this.getValue(map, "rotation", 0); + var color = this.getValue(map, "color", null); + if (color != null) + point.color.setFromString(color); + return point; + } + case "clipping": { + var clip = this.attachmentLoader.newClippingAttachment(skin, name); + if (clip == null) + return null; + var end = this.getValue(map, "end", null); + if (end != null) { + var slot = skeletonData.findSlot(end); + if (slot == null) + throw new Error("Clipping end slot not found: " + end); + clip.endSlot = slot; + } + var vertexCount = map.vertexCount; + this.readVertices(map, clip, vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + clip.color.setFromString(color); + return clip; + } + } + return null; + }; + SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { + var scale = this.scale; + attachment.worldVerticesLength = verticesLength; + var vertices = map.vertices; + if (verticesLength == vertices.length) { + var scaledVertices = spine.Utils.toFloatArray(vertices); + if (scale != 1) { + for (var i = 0, n = vertices.length; i < n; i++) + scaledVertices[i] *= scale; + } + attachment.vertices = scaledVertices; + return; + } + var weights = new Array(); + var bones = new Array(); + for (var i = 0, n = vertices.length; i < n;) { + var boneCount = vertices[i++]; + bones.push(boneCount); + for (var nn = i + boneCount * 4; i < nn; i += 4) { + bones.push(vertices[i]); + weights.push(vertices[i + 1] * scale); + weights.push(vertices[i + 2] * scale); + weights.push(vertices[i + 3]); + } + } + attachment.bones = bones; + attachment.vertices = spine.Utils.toFloatArray(weights); + }; + SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { + var scale = this.scale; + var timelines = new Array(); + var duration = 0; + if (map.slots) { + for (var slotName in map.slots) { + var slotMap = map.slots[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + if (timelineName == "attachment") { + var timeline = new spine.AttachmentTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + else if (timelineName == "color") { + var timeline = new spine.ColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var color = new spine.Color(); + color.setFromString(valueMap.color); + timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); + } + else if (timelineName == "twoColor") { + var timeline = new spine.TwoColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var light = new spine.Color(); + var dark = new spine.Color(); + light.setFromString(valueMap.light); + dark.setFromString(valueMap.dark); + timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); + } + } + } + if (map.bones) { + for (var boneName in map.bones) { + var boneMap = map.bones[boneName]; + var boneIndex = skeletonData.findBoneIndex(boneName); + if (boneIndex == -1) + throw new Error("Bone not found: " + boneName); + for (var timelineName in boneMap) { + var timelineMap = boneMap[timelineName]; + if (timelineName === "rotate") { + var timeline = new spine.RotateTimeline(timelineMap.length); + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); + } + else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "scale") + timeline = new spine.ScaleTimeline(timelineMap.length); + else if (timelineName === "shear") + timeline = new spine.ShearTimeline(timelineMap.length); + else { + timeline = new spine.TranslateTimeline(timelineMap.length); + timelineScale = scale; + } + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); + timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); + } + } + } + if (map.ik) { + for (var constraintName in map.ik) { + var constraintMap = map.ik[constraintName]; + var constraint = skeletonData.findIkConstraint(constraintName); + var timeline = new spine.IkConstraintTimeline(constraintMap.length); + timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); + } + } + if (map.transform) { + for (var constraintName in map.transform) { + var constraintMap = map.transform[constraintName]; + var constraint = skeletonData.findTransformConstraint(constraintName); + var timeline = new spine.TransformConstraintTimeline(constraintMap.length); + timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); + } + } + if (map.paths) { + for (var constraintName in map.paths) { + var constraintMap = map.paths[constraintName]; + var index = skeletonData.findPathConstraintIndex(constraintName); + if (index == -1) + throw new Error("Path constraint not found: " + constraintName); + var data = skeletonData.pathConstraints[index]; + for (var timelineName in constraintMap) { + var timelineMap = constraintMap[timelineName]; + if (timelineName === "position" || timelineName === "spacing") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "spacing") { + timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + timelineScale = scale; + } + else { + timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); + if (data.positionMode == spine.PositionMode.Fixed) + timelineScale = scale; + } + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); + } + else if (timelineName === "mix") { + var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); + } + } + } + } + if (map.deform) { + for (var deformName in map.deform) { + var deformMap = map.deform[deformName]; + var skin = skeletonData.findSkin(deformName); + if (skin == null) + throw new Error("Skin not found: " + deformName); + for (var slotName in deformMap) { + var slotMap = deformMap[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotMap.name); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + var attachment = skin.getAttachment(slotIndex, timelineName); + if (attachment == null) + throw new Error("Deform attachment not found: " + timelineMap.name); + var weighted = attachment.bones != null; + var vertices = attachment.vertices; + var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; + var timeline = new spine.DeformTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + timeline.attachment = attachment; + var frameIndex = 0; + for (var j = 0; j < timelineMap.length; j++) { + var valueMap = timelineMap[j]; + var deform = void 0; + var verticesValue = this.getValue(valueMap, "vertices", null); + if (verticesValue == null) + deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; + else { + deform = spine.Utils.newFloatArray(deformLength); + var start = this.getValue(valueMap, "offset", 0); + spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); + if (scale != 1) { + for (var i = start, n = i + verticesValue.length; i < n; i++) + deform[i] *= scale; + } + if (!weighted) { + for (var i = 0; i < deformLength; i++) + deform[i] += vertices[i]; + } + } + timeline.setFrame(frameIndex, valueMap.time, deform); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + } + } + } + var drawOrderNode = map.drawOrder; + if (drawOrderNode == null) + drawOrderNode = map.draworder; + if (drawOrderNode != null) { + var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); + var slotCount = skeletonData.slots.length; + var frameIndex = 0; + for (var j = 0; j < drawOrderNode.length; j++) { + var drawOrderMap = drawOrderNode[j]; + var drawOrder = null; + var offsets = this.getValue(drawOrderMap, "offsets", null); + if (offsets != null) { + drawOrder = spine.Utils.newArray(slotCount, -1); + var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); + var originalIndex = 0, unchangedIndex = 0; + for (var i = 0; i < offsets.length; i++) { + var offsetMap = offsets[i]; + var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); + if (slotIndex == -1) + throw new Error("Slot not found: " + offsetMap.slot); + while (originalIndex != slotIndex) + unchanged[unchangedIndex++] = originalIndex++; + drawOrder[originalIndex + offsetMap.offset] = originalIndex++; + } + while (originalIndex < slotCount) + unchanged[unchangedIndex++] = originalIndex++; + for (var i = slotCount - 1; i >= 0; i--) + if (drawOrder[i] == -1) + drawOrder[i] = unchanged[--unchangedIndex]; + } + timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (map.events) { + var timeline = new spine.EventTimeline(map.events.length); + var frameIndex = 0; + for (var i = 0; i < map.events.length; i++) { + var eventMap = map.events[i]; + var eventData = skeletonData.findEvent(eventMap.name); + if (eventData == null) + throw new Error("Event not found: " + eventMap.name); + var event_5 = new spine.Event(eventMap.time, eventData); + event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); + event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); + event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); + timeline.setFrame(frameIndex++, event_5); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (isNaN(duration)) { + throw new Error("Error while parsing animation, duration is NaN"); + } + skeletonData.animations.push(new spine.Animation(name, timelines, duration)); + }; + SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { + if (!map.curve) + return; + if (map.curve === "stepped") + timeline.setStepped(frameIndex); + else if (Object.prototype.toString.call(map.curve) === '[object Array]') { + var curve = map.curve; + timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); + } + }; + SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { + return map[prop] !== undefined ? map[prop] : defaultValue; + }; + SkeletonJson.blendModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.BlendMode.Normal; + if (str == "additive") + return spine.BlendMode.Additive; + if (str == "multiply") + return spine.BlendMode.Multiply; + if (str == "screen") + return spine.BlendMode.Screen; + throw new Error("Unknown blend mode: " + str); + }; + SkeletonJson.positionModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "fixed") + return spine.PositionMode.Fixed; + if (str == "percent") + return spine.PositionMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.spacingModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "length") + return spine.SpacingMode.Length; + if (str == "fixed") + return spine.SpacingMode.Fixed; + if (str == "percent") + return spine.SpacingMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.rotateModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "tangent") + return spine.RotateMode.Tangent; + if (str == "chain") + return spine.RotateMode.Chain; + if (str == "chainscale") + return spine.RotateMode.ChainScale; + throw new Error("Unknown rotate mode: " + str); + }; + SkeletonJson.transformModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.TransformMode.Normal; + if (str == "onlytranslation") + return spine.TransformMode.OnlyTranslation; + if (str == "norotationorreflection") + return spine.TransformMode.NoRotationOrReflection; + if (str == "noscale") + return spine.TransformMode.NoScale; + if (str == "noscaleorreflection") + return spine.TransformMode.NoScaleOrReflection; + throw new Error("Unknown transform mode: " + str); + }; + return SkeletonJson; + }()); + spine.SkeletonJson = SkeletonJson; + var LinkedMesh = (function () { + function LinkedMesh(mesh, skin, slotIndex, parent) { + this.mesh = mesh; + this.skin = skin; + this.slotIndex = slotIndex; + this.parent = parent; + } + return LinkedMesh; + }()); })(spine || (spine = {})); var spine; (function (spine) { - var Skin = (function () { - function Skin(name) { - this.attachments = new Array(); - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - Skin.prototype.addAttachment = function (slotIndex, name, attachment) { - if (attachment == null) - throw new Error("attachment cannot be null."); - var attachments = this.attachments; - if (slotIndex >= attachments.length) - attachments.length = slotIndex + 1; - if (!attachments[slotIndex]) - attachments[slotIndex] = {}; - attachments[slotIndex][name] = attachment; - }; - Skin.prototype.getAttachment = function (slotIndex, name) { - var dictionary = this.attachments[slotIndex]; - return dictionary ? dictionary[name] : null; - }; - Skin.prototype.attachAll = function (skeleton, oldSkin) { - var slotIndex = 0; - for (var i = 0; i < skeleton.slots.length; i++) { - var slot = skeleton.slots[i]; - var slotAttachment = slot.getAttachment(); - if (slotAttachment && slotIndex < oldSkin.attachments.length) { - var dictionary = oldSkin.attachments[slotIndex]; - for (var key in dictionary) { - var skinAttachment = dictionary[key]; - if (slotAttachment == skinAttachment) { - var attachment = this.getAttachment(slotIndex, key); - if (attachment != null) - slot.setAttachment(attachment); - break; - } - } - } - slotIndex++; - } - }; - return Skin; - }()); - spine.Skin = Skin; + var Skin = (function () { + function Skin(name) { + this.attachments = new Array(); + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + Skin.prototype.addAttachment = function (slotIndex, name, attachment) { + if (attachment == null) + throw new Error("attachment cannot be null."); + var attachments = this.attachments; + if (slotIndex >= attachments.length) + attachments.length = slotIndex + 1; + if (!attachments[slotIndex]) + attachments[slotIndex] = {}; + attachments[slotIndex][name] = attachment; + }; + Skin.prototype.getAttachment = function (slotIndex, name) { + var dictionary = this.attachments[slotIndex]; + return dictionary ? dictionary[name] : null; + }; + Skin.prototype.attachAll = function (skeleton, oldSkin) { + var slotIndex = 0; + for (var i = 0; i < skeleton.slots.length; i++) { + var slot = skeleton.slots[i]; + var slotAttachment = slot.getAttachment(); + if (slotAttachment && slotIndex < oldSkin.attachments.length) { + var dictionary = oldSkin.attachments[slotIndex]; + for (var key in dictionary) { + var skinAttachment = dictionary[key]; + if (slotAttachment == skinAttachment) { + var attachment = this.getAttachment(slotIndex, key); + if (attachment != null) + slot.setAttachment(attachment); + break; + } + } + } + slotIndex++; + } + }; + return Skin; + }()); + spine.Skin = Skin; })(spine || (spine = {})); var spine; (function (spine) { - var Slot = (function () { - function Slot(data, bone) { - this.attachmentVertices = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (bone == null) - throw new Error("bone cannot be null."); - this.data = data; - this.bone = bone; - this.color = new spine.Color(); - this.darkColor = data.darkColor == null ? null : new spine.Color(); - this.setToSetupPose(); - } - Slot.prototype.getAttachment = function () { - return this.attachment; - }; - Slot.prototype.setAttachment = function (attachment) { - if (this.attachment == attachment) - return; - this.attachment = attachment; - this.attachmentTime = this.bone.skeleton.time; - this.attachmentVertices.length = 0; - }; - Slot.prototype.setAttachmentTime = function (time) { - this.attachmentTime = this.bone.skeleton.time - time; - }; - Slot.prototype.getAttachmentTime = function () { - return this.bone.skeleton.time - this.attachmentTime; - }; - Slot.prototype.setToSetupPose = function () { - this.color.setFromColor(this.data.color); - if (this.darkColor != null) - this.darkColor.setFromColor(this.data.darkColor); - if (this.data.attachmentName == null) - this.attachment = null; - else { - this.attachment = null; - this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); - } - }; - return Slot; - }()); - spine.Slot = Slot; + var Slot = (function () { + function Slot(data, bone) { + this.attachmentVertices = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (bone == null) + throw new Error("bone cannot be null."); + this.data = data; + this.bone = bone; + this.color = new spine.Color(); + this.darkColor = data.darkColor == null ? null : new spine.Color(); + this.setToSetupPose(); + } + Slot.prototype.getAttachment = function () { + return this.attachment; + }; + Slot.prototype.setAttachment = function (attachment) { + if (this.attachment == attachment) + return; + this.attachment = attachment; + this.attachmentTime = this.bone.skeleton.time; + this.attachmentVertices.length = 0; + }; + Slot.prototype.setAttachmentTime = function (time) { + this.attachmentTime = this.bone.skeleton.time - time; + }; + Slot.prototype.getAttachmentTime = function () { + return this.bone.skeleton.time - this.attachmentTime; + }; + Slot.prototype.setToSetupPose = function () { + this.color.setFromColor(this.data.color); + if (this.darkColor != null) + this.darkColor.setFromColor(this.data.darkColor); + if (this.data.attachmentName == null) + this.attachment = null; + else { + this.attachment = null; + this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); + } + }; + return Slot; + }()); + spine.Slot = Slot; })(spine || (spine = {})); var spine; (function (spine) { - var SlotData = (function () { - function SlotData(index, name, boneData) { - this.color = new spine.Color(1, 1, 1, 1); - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - if (boneData == null) - throw new Error("boneData cannot be null."); - this.index = index; - this.name = name; - this.boneData = boneData; - } - return SlotData; - }()); - spine.SlotData = SlotData; + var SlotData = (function () { + function SlotData(index, name, boneData) { + this.color = new spine.Color(1, 1, 1, 1); + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + if (boneData == null) + throw new Error("boneData cannot be null."); + this.index = index; + this.name = name; + this.boneData = boneData; + } + return SlotData; + }()); + spine.SlotData = SlotData; })(spine || (spine = {})); var spine; (function (spine) { - var Texture = (function () { - function Texture(image) { - this._image = image; - } - Texture.prototype.getImage = function () { - return this._image; - }; - Texture.filterFromString = function (text) { - switch (text.toLowerCase()) { - case "nearest": return TextureFilter.Nearest; - case "linear": return TextureFilter.Linear; - case "mipmap": return TextureFilter.MipMap; - case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; - case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; - case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; - case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; - default: throw new Error("Unknown texture filter " + text); - } - }; - Texture.wrapFromString = function (text) { - switch (text.toLowerCase()) { - case "mirroredtepeat": return TextureWrap.MirroredRepeat; - case "clamptoedge": return TextureWrap.ClampToEdge; - case "repeat": return TextureWrap.Repeat; - default: throw new Error("Unknown texture wrap " + text); - } - }; - return Texture; - }()); - spine.Texture = Texture; - (function (TextureFilter) { - TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; - TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; - TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; - TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; - TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; - TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; - TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; - })(spine.TextureFilter || (spine.TextureFilter = {})); - var TextureFilter = spine.TextureFilter; - (function (TextureWrap) { - TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; - TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; - TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; - })(spine.TextureWrap || (spine.TextureWrap = {})); - var TextureWrap = spine.TextureWrap; - var TextureRegion = (function () { - function TextureRegion() { - this.u = 0; - this.v = 0; - this.u2 = 0; - this.v2 = 0; - this.width = 0; - this.height = 0; - this.rotate = false; - this.offsetX = 0; - this.offsetY = 0; - this.originalWidth = 0; - this.originalHeight = 0; - } - return TextureRegion; - }()); - spine.TextureRegion = TextureRegion; + var Texture = (function () { + function Texture(image) { + this._image = image; + } + Texture.prototype.getImage = function () { + return this._image; + }; + Texture.filterFromString = function (text) { + switch (text.toLowerCase()) { + case "nearest": return TextureFilter.Nearest; + case "linear": return TextureFilter.Linear; + case "mipmap": return TextureFilter.MipMap; + case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; + case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; + case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; + case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; + default: throw new Error("Unknown texture filter " + text); + } + }; + Texture.wrapFromString = function (text) { + switch (text.toLowerCase()) { + case "mirroredtepeat": return TextureWrap.MirroredRepeat; + case "clamptoedge": return TextureWrap.ClampToEdge; + case "repeat": return TextureWrap.Repeat; + default: throw new Error("Unknown texture wrap " + text); + } + }; + return Texture; + }()); + spine.Texture = Texture; + (function (TextureFilter) { + TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; + TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; + TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; + TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; + TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; + TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; + TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; + })(spine.TextureFilter || (spine.TextureFilter = {})); + var TextureFilter = spine.TextureFilter; + (function (TextureWrap) { + TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; + TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; + TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; + })(spine.TextureWrap || (spine.TextureWrap = {})); + var TextureWrap = spine.TextureWrap; + var TextureRegion = (function () { + function TextureRegion() { + this.u = 0; + this.v = 0; + this.u2 = 0; + this.v2 = 0; + this.width = 0; + this.height = 0; + this.rotate = false; + this.offsetX = 0; + this.offsetY = 0; + this.originalWidth = 0; + this.originalHeight = 0; + } + return TextureRegion; + }()); + spine.TextureRegion = TextureRegion; })(spine || (spine = {})); var spine; (function (spine) { - var TextureAtlas = (function () { - function TextureAtlas(atlasText, textureLoader) { - this.pages = new Array(); - this.regions = new Array(); - this.load(atlasText, textureLoader); - } - TextureAtlas.prototype.load = function (atlasText, textureLoader) { - if (textureLoader == null) - throw new Error("textureLoader cannot be null."); - var reader = new TextureAtlasReader(atlasText); - var tuple = new Array(4); - var page = null; - while (true) { - var line = reader.readLine(); - if (line == null) - break; - line = line.trim(); - if (line.length == 0) - page = null; - else if (!page) { - page = new TextureAtlasPage(); - page.name = line; - if (reader.readTuple(tuple) == 2) { - page.width = parseInt(tuple[0]); - page.height = parseInt(tuple[1]); - reader.readTuple(tuple); - } - reader.readTuple(tuple); - page.minFilter = spine.Texture.filterFromString(tuple[0]); - page.magFilter = spine.Texture.filterFromString(tuple[1]); - var direction = reader.readValue(); - page.uWrap = spine.TextureWrap.ClampToEdge; - page.vWrap = spine.TextureWrap.ClampToEdge; - if (direction == "x") - page.uWrap = spine.TextureWrap.Repeat; - else if (direction == "y") - page.vWrap = spine.TextureWrap.Repeat; - else if (direction == "xy") - page.uWrap = page.vWrap = spine.TextureWrap.Repeat; - page.texture = textureLoader(line); - page.texture.setFilters(page.minFilter, page.magFilter); - page.texture.setWraps(page.uWrap, page.vWrap); - page.width = page.texture.getImage().width; - page.height = page.texture.getImage().height; - this.pages.push(page); - } - else { - var region = new TextureAtlasRegion(); - region.name = line; - region.page = page; - region.rotate = reader.readValue() == "true"; - reader.readTuple(tuple); - var x = parseInt(tuple[0]); - var y = parseInt(tuple[1]); - reader.readTuple(tuple); - var width = parseInt(tuple[0]); - var height = parseInt(tuple[1]); - region.u = x / page.width; - region.v = y / page.height; - if (region.rotate) { - region.u2 = (x + height) / page.width; - region.v2 = (y + width) / page.height; - } - else { - region.u2 = (x + width) / page.width; - region.v2 = (y + height) / page.height; - } - region.x = x; - region.y = y; - region.width = Math.abs(width); - region.height = Math.abs(height); - if (reader.readTuple(tuple) == 4) { - if (reader.readTuple(tuple) == 4) { - reader.readTuple(tuple); - } - } - region.originalWidth = parseInt(tuple[0]); - region.originalHeight = parseInt(tuple[1]); - reader.readTuple(tuple); - region.offsetX = parseInt(tuple[0]); - region.offsetY = parseInt(tuple[1]); - region.index = parseInt(reader.readValue()); - region.texture = page.texture; - this.regions.push(region); - } - } - }; - TextureAtlas.prototype.findRegion = function (name) { - for (var i = 0; i < this.regions.length; i++) { - if (this.regions[i].name == name) { - return this.regions[i]; - } - } - return null; - }; - TextureAtlas.prototype.dispose = function () { - for (var i = 0; i < this.pages.length; i++) { - this.pages[i].texture.dispose(); - } - }; - return TextureAtlas; - }()); - spine.TextureAtlas = TextureAtlas; - var TextureAtlasReader = (function () { - function TextureAtlasReader(text) { - this.index = 0; - this.lines = text.split(/\r\n|\r|\n/); - } - TextureAtlasReader.prototype.readLine = function () { - if (this.index >= this.lines.length) - return null; - return this.lines[this.index++]; - }; - TextureAtlasReader.prototype.readValue = function () { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - return line.substring(colon + 1).trim(); - }; - TextureAtlasReader.prototype.readTuple = function (tuple) { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - var i = 0, lastMatch = colon + 1; - for (; i < 3; i++) { - var comma = line.indexOf(",", lastMatch); - if (comma == -1) - break; - tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); - lastMatch = comma + 1; - } - tuple[i] = line.substring(lastMatch).trim(); - return i + 1; - }; - return TextureAtlasReader; - }()); - var TextureAtlasPage = (function () { - function TextureAtlasPage() { - } - return TextureAtlasPage; - }()); - spine.TextureAtlasPage = TextureAtlasPage; - var TextureAtlasRegion = (function (_super) { - __extends(TextureAtlasRegion, _super); - function TextureAtlasRegion() { - _super.apply(this, arguments); - } - return TextureAtlasRegion; - }(spine.TextureRegion)); - spine.TextureAtlasRegion = TextureAtlasRegion; + var TextureAtlas = (function () { + function TextureAtlas(atlasText, textureLoader) { + this.pages = new Array(); + this.regions = new Array(); + this.load(atlasText, textureLoader); + } + TextureAtlas.prototype.load = function (atlasText, textureLoader) { + if (textureLoader == null) + throw new Error("textureLoader cannot be null."); + var reader = new TextureAtlasReader(atlasText); + var tuple = new Array(4); + var page = null; + while (true) { + var line = reader.readLine(); + if (line == null) + break; + line = line.trim(); + if (line.length == 0) + page = null; + else if (!page) { + page = new TextureAtlasPage(); + page.name = line; + if (reader.readTuple(tuple) == 2) { + page.width = parseInt(tuple[0]); + page.height = parseInt(tuple[1]); + reader.readTuple(tuple); + } + reader.readTuple(tuple); + page.minFilter = spine.Texture.filterFromString(tuple[0]); + page.magFilter = spine.Texture.filterFromString(tuple[1]); + var direction = reader.readValue(); + page.uWrap = spine.TextureWrap.ClampToEdge; + page.vWrap = spine.TextureWrap.ClampToEdge; + if (direction == "x") + page.uWrap = spine.TextureWrap.Repeat; + else if (direction == "y") + page.vWrap = spine.TextureWrap.Repeat; + else if (direction == "xy") + page.uWrap = page.vWrap = spine.TextureWrap.Repeat; + page.texture = textureLoader(line); + page.texture.setFilters(page.minFilter, page.magFilter); + page.texture.setWraps(page.uWrap, page.vWrap); + page.width = page.texture.getImage().width; + page.height = page.texture.getImage().height; + this.pages.push(page); + } + else { + var region = new TextureAtlasRegion(); + region.name = line; + region.page = page; + region.rotate = reader.readValue() == "true"; + reader.readTuple(tuple); + var x = parseInt(tuple[0]); + var y = parseInt(tuple[1]); + reader.readTuple(tuple); + var width = parseInt(tuple[0]); + var height = parseInt(tuple[1]); + region.u = x / page.width; + region.v = y / page.height; + if (region.rotate) { + region.u2 = (x + height) / page.width; + region.v2 = (y + width) / page.height; + } + else { + region.u2 = (x + width) / page.width; + region.v2 = (y + height) / page.height; + } + region.x = x; + region.y = y; + region.width = Math.abs(width); + region.height = Math.abs(height); + if (reader.readTuple(tuple) == 4) { + if (reader.readTuple(tuple) == 4) { + reader.readTuple(tuple); + } + } + region.originalWidth = parseInt(tuple[0]); + region.originalHeight = parseInt(tuple[1]); + reader.readTuple(tuple); + region.offsetX = parseInt(tuple[0]); + region.offsetY = parseInt(tuple[1]); + region.index = parseInt(reader.readValue()); + region.texture = page.texture; + this.regions.push(region); + } + } + }; + TextureAtlas.prototype.findRegion = function (name) { + for (var i = 0; i < this.regions.length; i++) { + if (this.regions[i].name == name) { + return this.regions[i]; + } + } + return null; + }; + TextureAtlas.prototype.dispose = function () { + for (var i = 0; i < this.pages.length; i++) { + this.pages[i].texture.dispose(); + } + }; + return TextureAtlas; + }()); + spine.TextureAtlas = TextureAtlas; + var TextureAtlasReader = (function () { + function TextureAtlasReader(text) { + this.index = 0; + this.lines = text.split(/\r\n|\r|\n/); + } + TextureAtlasReader.prototype.readLine = function () { + if (this.index >= this.lines.length) + return null; + return this.lines[this.index++]; + }; + TextureAtlasReader.prototype.readValue = function () { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + return line.substring(colon + 1).trim(); + }; + TextureAtlasReader.prototype.readTuple = function (tuple) { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + var i = 0, lastMatch = colon + 1; + for (; i < 3; i++) { + var comma = line.indexOf(",", lastMatch); + if (comma == -1) + break; + tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); + lastMatch = comma + 1; + } + tuple[i] = line.substring(lastMatch).trim(); + return i + 1; + }; + return TextureAtlasReader; + }()); + var TextureAtlasPage = (function () { + function TextureAtlasPage() { + } + return TextureAtlasPage; + }()); + spine.TextureAtlasPage = TextureAtlasPage; + var TextureAtlasRegion = (function (_super) { + __extends(TextureAtlasRegion, _super); + function TextureAtlasRegion() { + _super.apply(this, arguments); + } + return TextureAtlasRegion; + }(spine.TextureRegion)); + spine.TextureAtlasRegion = TextureAtlasRegion; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraint = (function () { - function TransformConstraint(data, skeleton) { - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.temp = new spine.Vector2(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - this.scaleMix = data.scaleMix; - this.shearMix = data.shearMix; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - TransformConstraint.prototype.apply = function () { - this.update(); - }; - TransformConstraint.prototype.update = function () { - if (this.data.local) { - if (this.data.relative) - this.applyRelativeLocal(); - else - this.applyAbsoluteLocal(); - } - else { - if (this.data.relative) - this.applyRelativeWorld(); - else - this.applyAbsoluteWorld(); - } - }; - TransformConstraint.prototype.applyAbsoluteWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect; - var offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += (temp.x - bone.worldX) * translateMix; - bone.worldY += (temp.y - bone.worldY) * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); - var ts = Math.sqrt(ta * ta + tc * tc); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; - bone.a *= s; - bone.c *= s; - s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); - ts = Math.sqrt(tb * tb + td * td); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var b = bone.b, d = bone.d; - var by = Math.atan2(d, b); - var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r = by + (r + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyRelativeWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += temp.x * translateMix; - bone.worldY += temp.y * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; - bone.a *= s; - bone.c *= s; - s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var r = Math.atan2(td, tb) - Math.atan2(tc, ta); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - var b = bone.b, d = bone.d; - r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyAbsoluteLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) { - var r = target.arotation - rotation + this.data.offsetRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - rotation += r * rotateMix; - } - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax - x + this.data.offsetX) * translateMix; - y += (target.ay - y + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; - if (scaleY > 0.00001) - scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; - } - var shearY = bone.ashearY; - if (shearMix > 0) { - var r = target.ashearY - shearY + this.data.offsetShearY; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.shearY += r * shearMix; - } - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.applyRelativeLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) - rotation += (target.arotation + this.data.offsetRotation) * rotateMix; - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax + this.data.offsetX) * translateMix; - y += (target.ay + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; - if (scaleY > 0.00001) - scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; - } - var shearY = bone.ashearY; - if (shearMix > 0) - shearY += (target.ashearY + this.data.offsetShearY) * shearMix; - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.getOrder = function () { - return this.data.order; - }; - return TransformConstraint; - }()); - spine.TransformConstraint = TransformConstraint; + var TransformConstraint = (function () { + function TransformConstraint(data, skeleton) { + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.temp = new spine.Vector2(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + this.scaleMix = data.scaleMix; + this.shearMix = data.shearMix; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + TransformConstraint.prototype.apply = function () { + this.update(); + }; + TransformConstraint.prototype.update = function () { + if (this.data.local) { + if (this.data.relative) + this.applyRelativeLocal(); + else + this.applyAbsoluteLocal(); + } + else { + if (this.data.relative) + this.applyRelativeWorld(); + else + this.applyAbsoluteWorld(); + } + }; + TransformConstraint.prototype.applyAbsoluteWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect; + var offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += (temp.x - bone.worldX) * translateMix; + bone.worldY += (temp.y - bone.worldY) * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var ts = Math.sqrt(ta * ta + tc * tc); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; + bone.a *= s; + bone.c *= s; + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + ts = Math.sqrt(tb * tb + td * td); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var b = bone.b, d = bone.d; + var by = Math.atan2(d, b); + var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r = by + (r + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyRelativeWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += temp.x * translateMix; + bone.worldY += temp.y * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; + bone.a *= s; + bone.c *= s; + s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var r = Math.atan2(td, tb) - Math.atan2(tc, ta); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + var b = bone.b, d = bone.d; + r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyAbsoluteLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) { + var r = target.arotation - rotation + this.data.offsetRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + rotation += r * rotateMix; + } + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax - x + this.data.offsetX) * translateMix; + y += (target.ay - y + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; + if (scaleY > 0.00001) + scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; + } + var shearY = bone.ashearY; + if (shearMix > 0) { + var r = target.ashearY - shearY + this.data.offsetShearY; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.shearY += r * shearMix; + } + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.applyRelativeLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) + rotation += (target.arotation + this.data.offsetRotation) * rotateMix; + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax + this.data.offsetX) * translateMix; + y += (target.ay + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; + if (scaleY > 0.00001) + scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; + } + var shearY = bone.ashearY; + if (shearMix > 0) + shearY += (target.ashearY + this.data.offsetShearY) * shearMix; + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.getOrder = function () { + return this.data.order; + }; + return TransformConstraint; + }()); + spine.TransformConstraint = TransformConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraintData = (function () { - function TransformConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.offsetRotation = 0; - this.offsetX = 0; - this.offsetY = 0; - this.offsetScaleX = 0; - this.offsetScaleY = 0; - this.offsetShearY = 0; - this.relative = false; - this.local = false; - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return TransformConstraintData; - }()); - spine.TransformConstraintData = TransformConstraintData; + var TransformConstraintData = (function () { + function TransformConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.offsetRotation = 0; + this.offsetX = 0; + this.offsetY = 0; + this.offsetScaleX = 0; + this.offsetScaleY = 0; + this.offsetShearY = 0; + this.relative = false; + this.local = false; + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return TransformConstraintData; + }()); + spine.TransformConstraintData = TransformConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var Triangulator = (function () { - function Triangulator() { - this.convexPolygons = new Array(); - this.convexPolygonsIndices = new Array(); - this.indicesArray = new Array(); - this.isConcaveArray = new Array(); - this.triangles = new Array(); - this.polygonPool = new spine.Pool(function () { - return new Array(); - }); - this.polygonIndicesPool = new spine.Pool(function () { - return new Array(); - }); - } - Triangulator.prototype.triangulate = function (verticesArray) { - var vertices = verticesArray; - var vertexCount = verticesArray.length >> 1; - var indices = this.indicesArray; - indices.length = 0; - for (var i = 0; i < vertexCount; i++) - indices[i] = i; - var isConcave = this.isConcaveArray; - isConcave.length = 0; - for (var i = 0, n = vertexCount; i < n; ++i) - isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); - var triangles = this.triangles; - triangles.length = 0; - while (vertexCount > 3) { - var previous = vertexCount - 1, i = 0, next = 1; - while (true) { - outer: if (!isConcave[i]) { - var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; - var p1x = vertices[p1], p1y = vertices[p1 + 1]; - var p2x = vertices[p2], p2y = vertices[p2 + 1]; - var p3x = vertices[p3], p3y = vertices[p3 + 1]; - for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { - if (!isConcave[ii]) - continue; - var v = indices[ii] << 1; - var vx = vertices[v], vy = vertices[v + 1]; - if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { - if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { - if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) - break outer; - } - } - } - break; - } - if (next == 0) { - do { - if (!isConcave[i]) - break; - i--; - } while (i > 0); - break; - } - previous = i; - i = next; - next = (next + 1) % vertexCount; - } - triangles.push(indices[(vertexCount + i - 1) % vertexCount]); - triangles.push(indices[i]); - triangles.push(indices[(i + 1) % vertexCount]); - indices.splice(i, 1); - isConcave.splice(i, 1); - vertexCount--; - var previousIndex = (vertexCount + i - 1) % vertexCount; - var nextIndex = i == vertexCount ? 0 : i; - isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); - isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); - } - if (vertexCount == 3) { - triangles.push(indices[2]); - triangles.push(indices[0]); - triangles.push(indices[1]); - } - return triangles; - }; - Triangulator.prototype.decompose = function (verticesArray, triangles) { - var vertices = verticesArray; - var convexPolygons = this.convexPolygons; - this.polygonPool.freeAll(convexPolygons); - convexPolygons.length = 0; - var convexPolygonsIndices = this.convexPolygonsIndices; - this.polygonIndicesPool.freeAll(convexPolygonsIndices); - convexPolygonsIndices.length = 0; - var polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - var polygon = this.polygonPool.obtain(); - polygon.length = 0; - var fanBaseIndex = -1, lastWinding = 0; - for (var i = 0, n = triangles.length; i < n; i += 3) { - var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; - var x1 = vertices[t1], y1 = vertices[t1 + 1]; - var x2 = vertices[t2], y2 = vertices[t2 + 1]; - var x3 = vertices[t3], y3 = vertices[t3 + 1]; - var merged = false; - if (fanBaseIndex == t1) { - var o = polygon.length - 4; - var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); - var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); - if (winding1 == lastWinding && winding2 == lastWinding) { - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(t3); - merged = true; - } - } - if (!merged) { - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - else { - this.polygonPool.free(polygon); - this.polygonIndicesPool.free(polygonIndices); - } - polygon = this.polygonPool.obtain(); - polygon.length = 0; - polygon.push(x1); - polygon.push(y1); - polygon.push(x2); - polygon.push(y2); - polygon.push(x3); - polygon.push(y3); - polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - polygonIndices.push(t1); - polygonIndices.push(t2); - polygonIndices.push(t3); - lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); - fanBaseIndex = t1; - } - } - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - for (var i = 0, n = convexPolygons.length; i < n; i++) { - polygonIndices = convexPolygonsIndices[i]; - if (polygonIndices.length == 0) - continue; - var firstIndex = polygonIndices[0]; - var lastIndex = polygonIndices[polygonIndices.length - 1]; - polygon = convexPolygons[i]; - var o = polygon.length - 4; - var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; - var prevX = polygon[o + 2], prevY = polygon[o + 3]; - var firstX = polygon[0], firstY = polygon[1]; - var secondX = polygon[2], secondY = polygon[3]; - var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); - for (var ii = 0; ii < n; ii++) { - if (ii == i) - continue; - var otherIndices = convexPolygonsIndices[ii]; - if (otherIndices.length != 3) - continue; - var otherFirstIndex = otherIndices[0]; - var otherSecondIndex = otherIndices[1]; - var otherLastIndex = otherIndices[2]; - var otherPoly = convexPolygons[ii]; - var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; - if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) - continue; - var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); - var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); - if (winding1 == winding && winding2 == winding) { - otherPoly.length = 0; - otherIndices.length = 0; - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(otherLastIndex); - prevPrevX = prevX; - prevPrevY = prevY; - prevX = x3; - prevY = y3; - ii = 0; - } - } - } - for (var i = convexPolygons.length - 1; i >= 0; i--) { - polygon = convexPolygons[i]; - if (polygon.length == 0) { - convexPolygons.splice(i, 1); - this.polygonPool.free(polygon); - polygonIndices = convexPolygonsIndices[i]; - convexPolygonsIndices.splice(i, 1); - this.polygonIndicesPool.free(polygonIndices); - } - } - return convexPolygons; - }; - Triangulator.isConcave = function (index, vertexCount, vertices, indices) { - var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; - var current = indices[index] << 1; - var next = indices[(index + 1) % vertexCount] << 1; - return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); - }; - Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { - return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; - }; - Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { - var px = p2x - p1x, py = p2y - p1y; - return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; - }; - return Triangulator; - }()); - spine.Triangulator = Triangulator; + var Triangulator = (function () { + function Triangulator() { + this.convexPolygons = new Array(); + this.convexPolygonsIndices = new Array(); + this.indicesArray = new Array(); + this.isConcaveArray = new Array(); + this.triangles = new Array(); + this.polygonPool = new spine.Pool(function () { + return new Array(); + }); + this.polygonIndicesPool = new spine.Pool(function () { + return new Array(); + }); + } + Triangulator.prototype.triangulate = function (verticesArray) { + var vertices = verticesArray; + var vertexCount = verticesArray.length >> 1; + var indices = this.indicesArray; + indices.length = 0; + for (var i = 0; i < vertexCount; i++) + indices[i] = i; + var isConcave = this.isConcaveArray; + isConcave.length = 0; + for (var i = 0, n = vertexCount; i < n; ++i) + isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); + var triangles = this.triangles; + triangles.length = 0; + while (vertexCount > 3) { + var previous = vertexCount - 1, i = 0, next = 1; + while (true) { + outer: if (!isConcave[i]) { + var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; + var p1x = vertices[p1], p1y = vertices[p1 + 1]; + var p2x = vertices[p2], p2y = vertices[p2 + 1]; + var p3x = vertices[p3], p3y = vertices[p3 + 1]; + for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { + if (!isConcave[ii]) + continue; + var v = indices[ii] << 1; + var vx = vertices[v], vy = vertices[v + 1]; + if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { + if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { + if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) + break outer; + } + } + } + break; + } + if (next == 0) { + do { + if (!isConcave[i]) + break; + i--; + } while (i > 0); + break; + } + previous = i; + i = next; + next = (next + 1) % vertexCount; + } + triangles.push(indices[(vertexCount + i - 1) % vertexCount]); + triangles.push(indices[i]); + triangles.push(indices[(i + 1) % vertexCount]); + indices.splice(i, 1); + isConcave.splice(i, 1); + vertexCount--; + var previousIndex = (vertexCount + i - 1) % vertexCount; + var nextIndex = i == vertexCount ? 0 : i; + isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); + isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); + } + if (vertexCount == 3) { + triangles.push(indices[2]); + triangles.push(indices[0]); + triangles.push(indices[1]); + } + return triangles; + }; + Triangulator.prototype.decompose = function (verticesArray, triangles) { + var vertices = verticesArray; + var convexPolygons = this.convexPolygons; + this.polygonPool.freeAll(convexPolygons); + convexPolygons.length = 0; + var convexPolygonsIndices = this.convexPolygonsIndices; + this.polygonIndicesPool.freeAll(convexPolygonsIndices); + convexPolygonsIndices.length = 0; + var polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + var polygon = this.polygonPool.obtain(); + polygon.length = 0; + var fanBaseIndex = -1, lastWinding = 0; + for (var i = 0, n = triangles.length; i < n; i += 3) { + var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; + var x1 = vertices[t1], y1 = vertices[t1 + 1]; + var x2 = vertices[t2], y2 = vertices[t2 + 1]; + var x3 = vertices[t3], y3 = vertices[t3 + 1]; + var merged = false; + if (fanBaseIndex == t1) { + var o = polygon.length - 4; + var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); + var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); + if (winding1 == lastWinding && winding2 == lastWinding) { + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(t3); + merged = true; + } + } + if (!merged) { + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + else { + this.polygonPool.free(polygon); + this.polygonIndicesPool.free(polygonIndices); + } + polygon = this.polygonPool.obtain(); + polygon.length = 0; + polygon.push(x1); + polygon.push(y1); + polygon.push(x2); + polygon.push(y2); + polygon.push(x3); + polygon.push(y3); + polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + polygonIndices.push(t1); + polygonIndices.push(t2); + polygonIndices.push(t3); + lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); + fanBaseIndex = t1; + } + } + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + for (var i = 0, n = convexPolygons.length; i < n; i++) { + polygonIndices = convexPolygonsIndices[i]; + if (polygonIndices.length == 0) + continue; + var firstIndex = polygonIndices[0]; + var lastIndex = polygonIndices[polygonIndices.length - 1]; + polygon = convexPolygons[i]; + var o = polygon.length - 4; + var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; + var prevX = polygon[o + 2], prevY = polygon[o + 3]; + var firstX = polygon[0], firstY = polygon[1]; + var secondX = polygon[2], secondY = polygon[3]; + var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); + for (var ii = 0; ii < n; ii++) { + if (ii == i) + continue; + var otherIndices = convexPolygonsIndices[ii]; + if (otherIndices.length != 3) + continue; + var otherFirstIndex = otherIndices[0]; + var otherSecondIndex = otherIndices[1]; + var otherLastIndex = otherIndices[2]; + var otherPoly = convexPolygons[ii]; + var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; + if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) + continue; + var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); + var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); + if (winding1 == winding && winding2 == winding) { + otherPoly.length = 0; + otherIndices.length = 0; + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(otherLastIndex); + prevPrevX = prevX; + prevPrevY = prevY; + prevX = x3; + prevY = y3; + ii = 0; + } + } + } + for (var i = convexPolygons.length - 1; i >= 0; i--) { + polygon = convexPolygons[i]; + if (polygon.length == 0) { + convexPolygons.splice(i, 1); + this.polygonPool.free(polygon); + polygonIndices = convexPolygonsIndices[i]; + convexPolygonsIndices.splice(i, 1); + this.polygonIndicesPool.free(polygonIndices); + } + } + return convexPolygons; + }; + Triangulator.isConcave = function (index, vertexCount, vertices, indices) { + var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; + var current = indices[index] << 1; + var next = indices[(index + 1) % vertexCount] << 1; + return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); + }; + Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { + return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; + }; + Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { + var px = p2x - p1x, py = p2y - p1y; + return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; + }; + return Triangulator; + }()); + spine.Triangulator = Triangulator; })(spine || (spine = {})); var spine; (function (spine) { - var IntSet = (function () { - function IntSet() { - this.array = new Array(); - } - IntSet.prototype.add = function (value) { - var contains = this.contains(value); - this.array[value | 0] = value | 0; - return !contains; - }; - IntSet.prototype.contains = function (value) { - return this.array[value | 0] != undefined; - }; - IntSet.prototype.remove = function (value) { - this.array[value | 0] = undefined; - }; - IntSet.prototype.clear = function () { - this.array.length = 0; - }; - return IntSet; - }()); - spine.IntSet = IntSet; - var Color = (function () { - function Color(r, g, b, a) { - if (r === void 0) { r = 0; } - if (g === void 0) { g = 0; } - if (b === void 0) { b = 0; } - if (a === void 0) { a = 0; } - this.r = r; - this.g = g; - this.b = b; - this.a = a; - } - Color.prototype.set = function (r, g, b, a) { - this.r = r; - this.g = g; - this.b = b; - this.a = a; - this.clamp(); - return this; - }; - Color.prototype.setFromColor = function (c) { - this.r = c.r; - this.g = c.g; - this.b = c.b; - this.a = c.a; - return this; - }; - Color.prototype.setFromString = function (hex) { - hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; - this.r = parseInt(hex.substr(0, 2), 16) / 255.0; - this.g = parseInt(hex.substr(2, 2), 16) / 255.0; - this.b = parseInt(hex.substr(4, 2), 16) / 255.0; - this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; - return this; - }; - Color.prototype.add = function (r, g, b, a) { - this.r += r; - this.g += g; - this.b += b; - this.a += a; - this.clamp(); - return this; - }; - Color.prototype.clamp = function () { - if (this.r < 0) - this.r = 0; - else if (this.r > 1) - this.r = 1; - if (this.g < 0) - this.g = 0; - else if (this.g > 1) - this.g = 1; - if (this.b < 0) - this.b = 0; - else if (this.b > 1) - this.b = 1; - if (this.a < 0) - this.a = 0; - else if (this.a > 1) - this.a = 1; - return this; - }; - Color.WHITE = new Color(1, 1, 1, 1); - Color.RED = new Color(1, 0, 0, 1); - Color.GREEN = new Color(0, 1, 0, 1); - Color.BLUE = new Color(0, 0, 1, 1); - Color.MAGENTA = new Color(1, 0, 1, 1); - return Color; - }()); - spine.Color = Color; - var MathUtils = (function () { - function MathUtils() { - } - MathUtils.clamp = function (value, min, max) { - if (value < min) - return min; - if (value > max) - return max; - return value; - }; - MathUtils.cosDeg = function (degrees) { - return Math.cos(degrees * MathUtils.degRad); - }; - MathUtils.sinDeg = function (degrees) { - return Math.sin(degrees * MathUtils.degRad); - }; - MathUtils.signum = function (value) { - return value > 0 ? 1 : value < 0 ? -1 : 0; - }; - MathUtils.toInt = function (x) { - return x > 0 ? Math.floor(x) : Math.ceil(x); - }; - MathUtils.cbrt = function (x) { - var y = Math.pow(Math.abs(x), 1 / 3); - return x < 0 ? -y : y; - }; - MathUtils.PI = 3.1415927; - MathUtils.PI2 = MathUtils.PI * 2; - MathUtils.radiansToDegrees = 180 / MathUtils.PI; - MathUtils.radDeg = MathUtils.radiansToDegrees; - MathUtils.degreesToRadians = MathUtils.PI / 180; - MathUtils.degRad = MathUtils.degreesToRadians; - return MathUtils; - }()); - spine.MathUtils = MathUtils; - var Utils = (function () { - function Utils() { - } - Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { - for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { - dest[j] = source[i]; - } - }; - Utils.setArraySize = function (array, size, value) { - if (value === void 0) { value = 0; } - var oldSize = array.length; - if (oldSize == size) - return array; - array.length = size; - if (oldSize < size) { - for (var i = oldSize; i < size; i++) - array[i] = value; - } - return array; - }; - Utils.ensureArrayCapacity = function (array, size, value) { - if (value === void 0) { value = 0; } - if (array.length >= size) - return array; - return Utils.setArraySize(array, size, value); - }; - Utils.newArray = function (size, defaultValue) { - var array = new Array(size); - for (var i = 0; i < size; i++) - array[i] = defaultValue; - return array; - }; - Utils.newFloatArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Float32Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.newShortArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Int16Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.toFloatArray = function (array) { - return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; - }; - Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; - return Utils; - }()); - spine.Utils = Utils; - var DebugUtils = (function () { - function DebugUtils() { - } - DebugUtils.logBones = function (skeleton) { - for (var i = 0; i < skeleton.bones.length; i++) { - var bone = skeleton.bones[i]; - console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); - } - }; - return DebugUtils; - }()); - spine.DebugUtils = DebugUtils; - var Pool = (function () { - function Pool(instantiator) { - this.items = new Array(); - this.instantiator = instantiator; - } - Pool.prototype.obtain = function () { - return this.items.length > 0 ? this.items.pop() : this.instantiator(); - }; - Pool.prototype.free = function (item) { - if (item.reset) - item.reset(); - this.items.push(item); - }; - Pool.prototype.freeAll = function (items) { - for (var i = 0; i < items.length; i++) { - if (items[i].reset) - items[i].reset(); - this.items[i] = items[i]; - } - }; - Pool.prototype.clear = function () { - this.items.length = 0; - }; - return Pool; - }()); - spine.Pool = Pool; - var Vector2 = (function () { - function Vector2(x, y) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - this.x = x; - this.y = y; - } - Vector2.prototype.set = function (x, y) { - this.x = x; - this.y = y; - return this; - }; - Vector2.prototype.length = function () { - var x = this.x; - var y = this.y; - return Math.sqrt(x * x + y * y); - }; - Vector2.prototype.normalize = function () { - var len = this.length(); - if (len != 0) { - this.x /= len; - this.y /= len; - } - return this; - }; - return Vector2; - }()); - spine.Vector2 = Vector2; - var TimeKeeper = (function () { - function TimeKeeper() { - this.maxDelta = 0.064; - this.framesPerSecond = 0; - this.delta = 0; - this.totalTime = 0; - this.lastTime = Date.now() / 1000; - this.frameCount = 0; - this.frameTime = 0; - } - TimeKeeper.prototype.update = function () { - var now = Date.now() / 1000; - this.delta = now - this.lastTime; - this.frameTime += this.delta; - this.totalTime += this.delta; - if (this.delta > this.maxDelta) - this.delta = this.maxDelta; - this.lastTime = now; - this.frameCount++; - if (this.frameTime > 1) { - this.framesPerSecond = this.frameCount / this.frameTime; - this.frameTime = 0; - this.frameCount = 0; - } - }; - return TimeKeeper; - }()); - spine.TimeKeeper = TimeKeeper; - var WindowedMean = (function () { - function WindowedMean(windowSize) { - if (windowSize === void 0) { windowSize = 32; } - this.addedValues = 0; - this.lastValue = 0; - this.mean = 0; - this.dirty = true; - this.values = new Array(windowSize); - } - WindowedMean.prototype.hasEnoughData = function () { - return this.addedValues >= this.values.length; - }; - WindowedMean.prototype.addValue = function (value) { - if (this.addedValues < this.values.length) - this.addedValues++; - this.values[this.lastValue++] = value; - if (this.lastValue > this.values.length - 1) - this.lastValue = 0; - this.dirty = true; - }; - WindowedMean.prototype.getMean = function () { - if (this.hasEnoughData()) { - if (this.dirty) { - var mean = 0; - for (var i = 0; i < this.values.length; i++) { - mean += this.values[i]; - } - this.mean = mean / this.values.length; - this.dirty = false; - } - return this.mean; - } - else { - return 0; - } - }; - return WindowedMean; - }()); - spine.WindowedMean = WindowedMean; + var IntSet = (function () { + function IntSet() { + this.array = new Array(); + } + IntSet.prototype.add = function (value) { + var contains = this.contains(value); + this.array[value | 0] = value | 0; + return !contains; + }; + IntSet.prototype.contains = function (value) { + return this.array[value | 0] != undefined; + }; + IntSet.prototype.remove = function (value) { + this.array[value | 0] = undefined; + }; + IntSet.prototype.clear = function () { + this.array.length = 0; + }; + return IntSet; + }()); + spine.IntSet = IntSet; + var Color = (function () { + function Color(r, g, b, a) { + if (r === void 0) { r = 0; } + if (g === void 0) { g = 0; } + if (b === void 0) { b = 0; } + if (a === void 0) { a = 0; } + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + Color.prototype.set = function (r, g, b, a) { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + this.clamp(); + return this; + }; + Color.prototype.setFromColor = function (c) { + this.r = c.r; + this.g = c.g; + this.b = c.b; + this.a = c.a; + return this; + }; + Color.prototype.setFromString = function (hex) { + hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; + this.r = parseInt(hex.substr(0, 2), 16) / 255.0; + this.g = parseInt(hex.substr(2, 2), 16) / 255.0; + this.b = parseInt(hex.substr(4, 2), 16) / 255.0; + this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; + return this; + }; + Color.prototype.add = function (r, g, b, a) { + this.r += r; + this.g += g; + this.b += b; + this.a += a; + this.clamp(); + return this; + }; + Color.prototype.clamp = function () { + if (this.r < 0) + this.r = 0; + else if (this.r > 1) + this.r = 1; + if (this.g < 0) + this.g = 0; + else if (this.g > 1) + this.g = 1; + if (this.b < 0) + this.b = 0; + else if (this.b > 1) + this.b = 1; + if (this.a < 0) + this.a = 0; + else if (this.a > 1) + this.a = 1; + return this; + }; + Color.WHITE = new Color(1, 1, 1, 1); + Color.RED = new Color(1, 0, 0, 1); + Color.GREEN = new Color(0, 1, 0, 1); + Color.BLUE = new Color(0, 0, 1, 1); + Color.MAGENTA = new Color(1, 0, 1, 1); + return Color; + }()); + spine.Color = Color; + var MathUtils = (function () { + function MathUtils() { + } + MathUtils.clamp = function (value, min, max) { + if (value < min) + return min; + if (value > max) + return max; + return value; + }; + MathUtils.cosDeg = function (degrees) { + return Math.cos(degrees * MathUtils.degRad); + }; + MathUtils.sinDeg = function (degrees) { + return Math.sin(degrees * MathUtils.degRad); + }; + MathUtils.signum = function (value) { + return value > 0 ? 1 : value < 0 ? -1 : 0; + }; + MathUtils.toInt = function (x) { + return x > 0 ? Math.floor(x) : Math.ceil(x); + }; + MathUtils.cbrt = function (x) { + var y = Math.pow(Math.abs(x), 1 / 3); + return x < 0 ? -y : y; + }; + MathUtils.PI = 3.1415927; + MathUtils.PI2 = MathUtils.PI * 2; + MathUtils.radiansToDegrees = 180 / MathUtils.PI; + MathUtils.radDeg = MathUtils.radiansToDegrees; + MathUtils.degreesToRadians = MathUtils.PI / 180; + MathUtils.degRad = MathUtils.degreesToRadians; + return MathUtils; + }()); + spine.MathUtils = MathUtils; + var Utils = (function () { + function Utils() { + } + Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { + for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { + dest[j] = source[i]; + } + }; + Utils.setArraySize = function (array, size, value) { + if (value === void 0) { value = 0; } + var oldSize = array.length; + if (oldSize == size) + return array; + array.length = size; + if (oldSize < size) { + for (var i = oldSize; i < size; i++) + array[i] = value; + } + return array; + }; + Utils.ensureArrayCapacity = function (array, size, value) { + if (value === void 0) { value = 0; } + if (array.length >= size) + return array; + return Utils.setArraySize(array, size, value); + }; + Utils.newArray = function (size, defaultValue) { + var array = new Array(size); + for (var i = 0; i < size; i++) + array[i] = defaultValue; + return array; + }; + Utils.newFloatArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Float32Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.newShortArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Int16Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.toFloatArray = function (array) { + return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; + }; + Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; + return Utils; + }()); + spine.Utils = Utils; + var DebugUtils = (function () { + function DebugUtils() { + } + DebugUtils.logBones = function (skeleton) { + for (var i = 0; i < skeleton.bones.length; i++) { + var bone = skeleton.bones[i]; + console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); + } + }; + return DebugUtils; + }()); + spine.DebugUtils = DebugUtils; + var Pool = (function () { + function Pool(instantiator) { + this.items = new Array(); + this.instantiator = instantiator; + } + Pool.prototype.obtain = function () { + return this.items.length > 0 ? this.items.pop() : this.instantiator(); + }; + Pool.prototype.free = function (item) { + if (item.reset) + item.reset(); + this.items.push(item); + }; + Pool.prototype.freeAll = function (items) { + for (var i = 0; i < items.length; i++) { + if (items[i].reset) + items[i].reset(); + this.items[i] = items[i]; + } + }; + Pool.prototype.clear = function () { + this.items.length = 0; + }; + return Pool; + }()); + spine.Pool = Pool; + var Vector2 = (function () { + function Vector2(x, y) { + if (x === void 0) { x = 0; } + if (y === void 0) { y = 0; } + this.x = x; + this.y = y; + } + Vector2.prototype.set = function (x, y) { + this.x = x; + this.y = y; + return this; + }; + Vector2.prototype.length = function () { + var x = this.x; + var y = this.y; + return Math.sqrt(x * x + y * y); + }; + Vector2.prototype.normalize = function () { + var len = this.length(); + if (len != 0) { + this.x /= len; + this.y /= len; + } + return this; + }; + return Vector2; + }()); + spine.Vector2 = Vector2; + var TimeKeeper = (function () { + function TimeKeeper() { + this.maxDelta = 0.064; + this.framesPerSecond = 0; + this.delta = 0; + this.totalTime = 0; + this.lastTime = Date.now() / 1000; + this.frameCount = 0; + this.frameTime = 0; + } + TimeKeeper.prototype.update = function () { + var now = Date.now() / 1000; + this.delta = now - this.lastTime; + this.frameTime += this.delta; + this.totalTime += this.delta; + if (this.delta > this.maxDelta) + this.delta = this.maxDelta; + this.lastTime = now; + this.frameCount++; + if (this.frameTime > 1) { + this.framesPerSecond = this.frameCount / this.frameTime; + this.frameTime = 0; + this.frameCount = 0; + } + }; + return TimeKeeper; + }()); + spine.TimeKeeper = TimeKeeper; + var WindowedMean = (function () { + function WindowedMean(windowSize) { + if (windowSize === void 0) { windowSize = 32; } + this.addedValues = 0; + this.lastValue = 0; + this.mean = 0; + this.dirty = true; + this.values = new Array(windowSize); + } + WindowedMean.prototype.hasEnoughData = function () { + return this.addedValues >= this.values.length; + }; + WindowedMean.prototype.addValue = function (value) { + if (this.addedValues < this.values.length) + this.addedValues++; + this.values[this.lastValue++] = value; + if (this.lastValue > this.values.length - 1) + this.lastValue = 0; + this.dirty = true; + }; + WindowedMean.prototype.getMean = function () { + if (this.hasEnoughData()) { + if (this.dirty) { + var mean = 0; + for (var i = 0; i < this.values.length; i++) { + mean += this.values[i]; + } + this.mean = mean / this.values.length; + this.dirty = false; + } + return this.mean; + } + else { + return 0; + } + }; + return WindowedMean; + }()); + spine.WindowedMean = WindowedMean; })(spine || (spine = {})); //# sourceMappingURL=spine-core.js.map \ No newline at end of file diff --git a/spine-ts/build/spine-threejs.d.ts b/spine-ts/build/spine-threejs.d.ts index 6fddee330..0b760de03 100644 --- a/spine-ts/build/spine-threejs.d.ts +++ b/spine-ts/build/spine-threejs.d.ts @@ -1,1207 +1,1207 @@ declare module spine { - class Animation { - name: string; - timelines: Array; - duration: number; - constructor(name: string, timelines: Array, duration: number); - apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - static binarySearch(values: ArrayLike, target: number, step?: number): number; - static linearSearch(values: ArrayLike, target: number, step: number): number; - } - interface Timeline { - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - getPropertyId(): number; - } - enum TimelineType { - rotate = 0, - translate = 1, - scale = 2, - shear = 3, - attachment = 4, - color = 5, - deform = 6, - event = 7, - drawOrder = 8, - ikConstraint = 9, - transformConstraint = 10, - pathConstraintPosition = 11, - pathConstraintSpacing = 12, - pathConstraintMix = 13, - twoColor = 14, - } - abstract class CurveTimeline implements Timeline { - static LINEAR: number; - static STEPPED: number; - static BEZIER: number; - static BEZIER_SIZE: number; - private curves; - abstract getPropertyId(): number; - constructor(frameCount: number); - getFrameCount(): number; - setLinear(frameIndex: number): void; - setStepped(frameIndex: number): void; - getCurveType(frameIndex: number): number; - setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; - getCurvePercent(frameIndex: number, percent: number): number; - abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class RotateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATION: number; - static ROTATION: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, degrees: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TranslateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_X: number; - static PREV_Y: number; - static X: number; - static Y: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, x: number, y: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ScaleTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ShearTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static R: number; - static G: number; - static B: number; - static A: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TwoColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static PREV_R2: number; - static PREV_G2: number; - static PREV_B2: number; - static R: number; - static G: number; - static B: number; - static A: number; - static R2: number; - static G2: number; - static B2: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class AttachmentTimeline implements Timeline { - slotIndex: number; - frames: ArrayLike; - attachmentNames: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, attachmentName: string): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DeformTimeline extends CurveTimeline { - slotIndex: number; - attachment: VertexAttachment; - frames: ArrayLike; - frameVertices: Array>; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class EventTimeline implements Timeline { - frames: ArrayLike; - events: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, event: Event): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DrawOrderTimeline implements Timeline { - frames: ArrayLike; - drawOrders: Array>; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, drawOrder: Array): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class IkConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_MIX: number; - static PREV_BEND_DIRECTION: number; - static MIX: number; - static BEND_DIRECTION: number; - ikConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TransformConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static PREV_SCALE: number; - static PREV_SHEAR: number; - static ROTATE: number; - static TRANSLATE: number; - static SCALE: number; - static SHEAR: number; - transformConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintPositionTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_VALUE: number; - static VALUE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, value: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintMixTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static ROTATE: number; - static TRANSLATE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } + class Animation { + name: string; + timelines: Array; + duration: number; + constructor(name: string, timelines: Array, duration: number); + apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + static binarySearch(values: ArrayLike, target: number, step?: number): number; + static linearSearch(values: ArrayLike, target: number, step: number): number; + } + interface Timeline { + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + getPropertyId(): number; + } + enum TimelineType { + rotate = 0, + translate = 1, + scale = 2, + shear = 3, + attachment = 4, + color = 5, + deform = 6, + event = 7, + drawOrder = 8, + ikConstraint = 9, + transformConstraint = 10, + pathConstraintPosition = 11, + pathConstraintSpacing = 12, + pathConstraintMix = 13, + twoColor = 14, + } + abstract class CurveTimeline implements Timeline { + static LINEAR: number; + static STEPPED: number; + static BEZIER: number; + static BEZIER_SIZE: number; + private curves; + abstract getPropertyId(): number; + constructor(frameCount: number); + getFrameCount(): number; + setLinear(frameIndex: number): void; + setStepped(frameIndex: number): void; + getCurveType(frameIndex: number): number; + setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; + getCurvePercent(frameIndex: number, percent: number): number; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class RotateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATION: number; + static ROTATION: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, degrees: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TranslateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_X: number; + static PREV_Y: number; + static X: number; + static Y: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, x: number, y: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ScaleTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ShearTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static R: number; + static G: number; + static B: number; + static A: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TwoColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static PREV_R2: number; + static PREV_G2: number; + static PREV_B2: number; + static R: number; + static G: number; + static B: number; + static A: number; + static R2: number; + static G2: number; + static B2: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class AttachmentTimeline implements Timeline { + slotIndex: number; + frames: ArrayLike; + attachmentNames: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, attachmentName: string): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DeformTimeline extends CurveTimeline { + slotIndex: number; + attachment: VertexAttachment; + frames: ArrayLike; + frameVertices: Array>; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class EventTimeline implements Timeline { + frames: ArrayLike; + events: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, event: Event): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DrawOrderTimeline implements Timeline { + frames: ArrayLike; + drawOrders: Array>; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, drawOrder: Array): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class IkConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_MIX: number; + static PREV_BEND_DIRECTION: number; + static MIX: number; + static BEND_DIRECTION: number; + ikConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TransformConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static PREV_SCALE: number; + static PREV_SHEAR: number; + static ROTATE: number; + static TRANSLATE: number; + static SCALE: number; + static SHEAR: number; + transformConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintPositionTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_VALUE: number; + static VALUE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, value: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintMixTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static ROTATE: number; + static TRANSLATE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } } declare module spine { - class AnimationState { - static emptyAnimation: Animation; - static SUBSEQUENT: number; - static FIRST: number; - static DIP: number; - static DIP_MIX: number; - data: AnimationStateData; - tracks: TrackEntry[]; - events: Event[]; - listeners: AnimationStateListener2[]; - queue: EventQueue; - propertyIDs: IntSet; - mixingTo: TrackEntry[]; - animationsChanged: boolean; - timeScale: number; - trackEntryPool: Pool; - constructor(data: AnimationStateData); - update(delta: number): void; - updateMixingFrom(to: TrackEntry, delta: number): boolean; - apply(skeleton: Skeleton): boolean; - applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; - applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; - queueEvents(entry: TrackEntry, animationTime: number): void; - clearTracks(): void; - clearTrack(trackIndex: number): void; - setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; - setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; - setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; - addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; - addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; - setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; - addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; - setEmptyAnimations(mixDuration: number): void; - expandToIndex(index: number): TrackEntry; - trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; - disposeNext(entry: TrackEntry): void; - _animationsChanged(): void; - getCurrent(trackIndex: number): TrackEntry; - addListener(listener: AnimationStateListener2): void; - removeListener(listener: AnimationStateListener2): void; - clearListeners(): void; - clearListenerNotifications(): void; - } - class TrackEntry { - animation: Animation; - next: TrackEntry; - mixingFrom: TrackEntry; - listener: AnimationStateListener2; - trackIndex: number; - loop: boolean; - eventThreshold: number; - attachmentThreshold: number; - drawOrderThreshold: number; - animationStart: number; - animationEnd: number; - animationLast: number; - nextAnimationLast: number; - delay: number; - trackTime: number; - trackLast: number; - nextTrackLast: number; - trackEnd: number; - timeScale: number; - alpha: number; - mixTime: number; - mixDuration: number; - interruptAlpha: number; - totalAlpha: number; - timelineData: number[]; - timelineDipMix: TrackEntry[]; - timelinesRotation: number[]; - reset(): void; - setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; - hasTimeline(id: number): boolean; - getAnimationTime(): number; - setAnimationLast(animationLast: number): void; - isComplete(): boolean; - resetRotationDirections(): void; - } - class EventQueue { - objects: Array; - drainDisabled: boolean; - animState: AnimationState; - constructor(animState: AnimationState); - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - drain(): void; - clear(): void; - } - enum EventType { - start = 0, - interrupt = 1, - end = 2, - dispose = 3, - complete = 4, - event = 5, - } - interface AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } - abstract class AnimationStateAdapter2 implements AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } + class AnimationState { + static emptyAnimation: Animation; + static SUBSEQUENT: number; + static FIRST: number; + static DIP: number; + static DIP_MIX: number; + data: AnimationStateData; + tracks: TrackEntry[]; + events: Event[]; + listeners: AnimationStateListener2[]; + queue: EventQueue; + propertyIDs: IntSet; + mixingTo: TrackEntry[]; + animationsChanged: boolean; + timeScale: number; + trackEntryPool: Pool; + constructor(data: AnimationStateData); + update(delta: number): void; + updateMixingFrom(to: TrackEntry, delta: number): boolean; + apply(skeleton: Skeleton): boolean; + applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; + applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; + queueEvents(entry: TrackEntry, animationTime: number): void; + clearTracks(): void; + clearTrack(trackIndex: number): void; + setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; + setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; + setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; + addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; + addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; + setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; + addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; + setEmptyAnimations(mixDuration: number): void; + expandToIndex(index: number): TrackEntry; + trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; + disposeNext(entry: TrackEntry): void; + _animationsChanged(): void; + getCurrent(trackIndex: number): TrackEntry; + addListener(listener: AnimationStateListener2): void; + removeListener(listener: AnimationStateListener2): void; + clearListeners(): void; + clearListenerNotifications(): void; + } + class TrackEntry { + animation: Animation; + next: TrackEntry; + mixingFrom: TrackEntry; + listener: AnimationStateListener2; + trackIndex: number; + loop: boolean; + eventThreshold: number; + attachmentThreshold: number; + drawOrderThreshold: number; + animationStart: number; + animationEnd: number; + animationLast: number; + nextAnimationLast: number; + delay: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; + timeScale: number; + alpha: number; + mixTime: number; + mixDuration: number; + interruptAlpha: number; + totalAlpha: number; + timelineData: number[]; + timelineDipMix: TrackEntry[]; + timelinesRotation: number[]; + reset(): void; + setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; + hasTimeline(id: number): boolean; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; + isComplete(): boolean; + resetRotationDirections(): void; + } + class EventQueue { + objects: Array; + drainDisabled: boolean; + animState: AnimationState; + constructor(animState: AnimationState); + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + drain(): void; + clear(): void; + } + enum EventType { + start = 0, + interrupt = 1, + end = 2, + dispose = 3, + complete = 4, + event = 5, + } + interface AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } + abstract class AnimationStateAdapter2 implements AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } } declare module spine { - class AnimationStateData { - skeletonData: SkeletonData; - animationToMixTime: Map; - defaultMix: number; - constructor(skeletonData: SkeletonData); - setMix(fromName: string, toName: string, duration: number): void; - setMixWith(from: Animation, to: Animation, duration: number): void; - getMix(from: Animation, to: Animation): number; - } + class AnimationStateData { + skeletonData: SkeletonData; + animationToMixTime: Map; + defaultMix: number; + constructor(skeletonData: SkeletonData); + setMix(fromName: string, toName: string, duration: number): void; + setMixWith(from: Animation, to: Animation, duration: number): void; + getMix(from: Animation, to: Animation): number; + } } declare module spine { - class AssetManager implements Disposable { - private pathPrefix; - private textureLoader; - private assets; - private errors; - private toLoad; - private loaded; - constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); - loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; - loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - get(path: string): any; - remove(path: string): void; - removeAll(): void; - isLoadingComplete(): boolean; - getToLoad(): number; - getLoaded(): number; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class AssetManager implements Disposable { + private pathPrefix; + private textureLoader; + private assets; + private errors; + private toLoad; + private loaded; + constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); + loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; + loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + get(path: string): any; + remove(path: string): void; + removeAll(): void; + isLoadingComplete(): boolean; + getToLoad(): number; + getLoaded(): number; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class AtlasAttachmentLoader implements AttachmentLoader { - atlas: TextureAtlas; - constructor(atlas: TextureAtlas); - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + class AtlasAttachmentLoader implements AttachmentLoader { + atlas: TextureAtlas; + constructor(atlas: TextureAtlas); + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - abstract class Attachment { - name: string; - constructor(name: string); - } - abstract class VertexAttachment extends Attachment { - bones: Array; - vertices: ArrayLike; - worldVerticesLength: number; - constructor(name: string); - computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - } + abstract class Attachment { + name: string; + constructor(name: string); + } + abstract class VertexAttachment extends Attachment { + bones: Array; + vertices: ArrayLike; + worldVerticesLength: number; + constructor(name: string); + computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + } } declare module spine { - interface AttachmentLoader { - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + interface AttachmentLoader { + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - enum AttachmentType { - Region = 0, - BoundingBox = 1, - Mesh = 2, - LinkedMesh = 3, - Path = 4, - Point = 5, - } + enum AttachmentType { + Region = 0, + BoundingBox = 1, + Mesh = 2, + LinkedMesh = 3, + Path = 4, + Point = 5, + } } declare module spine { - class BoundingBoxAttachment extends VertexAttachment { - color: Color; - constructor(name: string); - } + class BoundingBoxAttachment extends VertexAttachment { + color: Color; + constructor(name: string); + } } declare module spine { - class ClippingAttachment extends VertexAttachment { - endSlot: SlotData; - color: Color; - constructor(name: string); - } + class ClippingAttachment extends VertexAttachment { + endSlot: SlotData; + color: Color; + constructor(name: string); + } } declare module spine { - class MeshAttachment extends VertexAttachment { - region: TextureRegion; - path: string; - regionUVs: ArrayLike; - uvs: ArrayLike; - triangles: Array; - color: Color; - hullLength: number; - private parentMesh; - inheritDeform: boolean; - tempColor: Color; - constructor(name: string); - updateUVs(): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - getParentMesh(): MeshAttachment; - setParentMesh(parentMesh: MeshAttachment): void; - } + class MeshAttachment extends VertexAttachment { + region: TextureRegion; + path: string; + regionUVs: ArrayLike; + uvs: ArrayLike; + triangles: Array; + color: Color; + hullLength: number; + private parentMesh; + inheritDeform: boolean; + tempColor: Color; + constructor(name: string); + updateUVs(): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + getParentMesh(): MeshAttachment; + setParentMesh(parentMesh: MeshAttachment): void; + } } declare module spine { - class PathAttachment extends VertexAttachment { - lengths: Array; - closed: boolean; - constantSpeed: boolean; - color: Color; - constructor(name: string); - } + class PathAttachment extends VertexAttachment { + lengths: Array; + closed: boolean; + constantSpeed: boolean; + color: Color; + constructor(name: string); + } } declare module spine { - class PointAttachment extends VertexAttachment { - x: number; - y: number; - rotation: number; - color: Color; - constructor(name: string); - computeWorldPosition(bone: Bone, point: Vector2): Vector2; - computeWorldRotation(bone: Bone): number; - } + class PointAttachment extends VertexAttachment { + x: number; + y: number; + rotation: number; + color: Color; + constructor(name: string); + computeWorldPosition(bone: Bone, point: Vector2): Vector2; + computeWorldRotation(bone: Bone): number; + } } declare module spine { - class RegionAttachment extends Attachment { - static OX1: number; - static OY1: number; - static OX2: number; - static OY2: number; - static OX3: number; - static OY3: number; - static OX4: number; - static OY4: number; - static X1: number; - static Y1: number; - static C1R: number; - static C1G: number; - static C1B: number; - static C1A: number; - static U1: number; - static V1: number; - static X2: number; - static Y2: number; - static C2R: number; - static C2G: number; - static C2B: number; - static C2A: number; - static U2: number; - static V2: number; - static X3: number; - static Y3: number; - static C3R: number; - static C3G: number; - static C3B: number; - static C3A: number; - static U3: number; - static V3: number; - static X4: number; - static Y4: number; - static C4R: number; - static C4G: number; - static C4B: number; - static C4A: number; - static U4: number; - static V4: number; - x: number; - y: number; - scaleX: number; - scaleY: number; - rotation: number; - width: number; - height: number; - color: Color; - path: string; - rendererObject: any; - region: TextureRegion; - offset: ArrayLike; - uvs: ArrayLike; - tempColor: Color; - constructor(name: string); - updateOffset(): void; - setRegion(region: TextureRegion): void; - computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; - } + class RegionAttachment extends Attachment { + static OX1: number; + static OY1: number; + static OX2: number; + static OY2: number; + static OX3: number; + static OY3: number; + static OX4: number; + static OY4: number; + static X1: number; + static Y1: number; + static C1R: number; + static C1G: number; + static C1B: number; + static C1A: number; + static U1: number; + static V1: number; + static X2: number; + static Y2: number; + static C2R: number; + static C2G: number; + static C2B: number; + static C2A: number; + static U2: number; + static V2: number; + static X3: number; + static Y3: number; + static C3R: number; + static C3G: number; + static C3B: number; + static C3A: number; + static U3: number; + static V3: number; + static X4: number; + static Y4: number; + static C4R: number; + static C4G: number; + static C4B: number; + static C4A: number; + static U4: number; + static V4: number; + x: number; + y: number; + scaleX: number; + scaleY: number; + rotation: number; + width: number; + height: number; + color: Color; + path: string; + rendererObject: any; + region: TextureRegion; + offset: ArrayLike; + uvs: ArrayLike; + tempColor: Color; + constructor(name: string); + updateOffset(): void; + setRegion(region: TextureRegion): void; + computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; + } } declare module spine { - enum BlendMode { - Normal = 0, - Additive = 1, - Multiply = 2, - Screen = 3, - } + enum BlendMode { + Normal = 0, + Additive = 1, + Multiply = 2, + Screen = 3, + } } declare module spine { - class Bone implements Updatable { - data: BoneData; - skeleton: Skeleton; - parent: Bone; - children: Bone[]; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - ax: number; - ay: number; - arotation: number; - ascaleX: number; - ascaleY: number; - ashearX: number; - ashearY: number; - appliedValid: boolean; - a: number; - b: number; - worldX: number; - c: number; - d: number; - worldY: number; - sorted: boolean; - constructor(data: BoneData, skeleton: Skeleton, parent: Bone); - update(): void; - updateWorldTransform(): void; - updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; - setToSetupPose(): void; - getWorldRotationX(): number; - getWorldRotationY(): number; - getWorldScaleX(): number; - getWorldScaleY(): number; - updateAppliedTransform(): void; - worldToLocal(world: Vector2): Vector2; - localToWorld(local: Vector2): Vector2; - worldToLocalRotation(worldRotation: number): number; - localToWorldRotation(localRotation: number): number; - rotateWorld(degrees: number): void; - } + class Bone implements Updatable { + data: BoneData; + skeleton: Skeleton; + parent: Bone; + children: Bone[]; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + ax: number; + ay: number; + arotation: number; + ascaleX: number; + ascaleY: number; + ashearX: number; + ashearY: number; + appliedValid: boolean; + a: number; + b: number; + worldX: number; + c: number; + d: number; + worldY: number; + sorted: boolean; + constructor(data: BoneData, skeleton: Skeleton, parent: Bone); + update(): void; + updateWorldTransform(): void; + updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; + setToSetupPose(): void; + getWorldRotationX(): number; + getWorldRotationY(): number; + getWorldScaleX(): number; + getWorldScaleY(): number; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + worldToLocalRotation(worldRotation: number): number; + localToWorldRotation(localRotation: number): number; + rotateWorld(degrees: number): void; + } } declare module spine { - class BoneData { - index: number; - name: string; - parent: BoneData; - length: number; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - transformMode: TransformMode; - constructor(index: number, name: string, parent: BoneData); - } - enum TransformMode { - Normal = 0, - OnlyTranslation = 1, - NoRotationOrReflection = 2, - NoScale = 3, - NoScaleOrReflection = 4, - } + class BoneData { + index: number; + name: string; + parent: BoneData; + length: number; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + transformMode: TransformMode; + constructor(index: number, name: string, parent: BoneData); + } + enum TransformMode { + Normal = 0, + OnlyTranslation = 1, + NoRotationOrReflection = 2, + NoScale = 3, + NoScaleOrReflection = 4, + } } declare module spine { - interface Constraint extends Updatable { - getOrder(): number; - } + interface Constraint extends Updatable { + getOrder(): number; + } } declare module spine { - class Event { - data: EventData; - intValue: number; - floatValue: number; - stringValue: string; - time: number; - constructor(time: number, data: EventData); - } + class Event { + data: EventData; + intValue: number; + floatValue: number; + stringValue: string; + time: number; + constructor(time: number, data: EventData); + } } declare module spine { - class EventData { - name: string; - intValue: number; - floatValue: number; - stringValue: string; - constructor(name: string); - } + class EventData { + name: string; + intValue: number; + floatValue: number; + stringValue: string; + constructor(name: string); + } } declare module spine { - class IkConstraint implements Constraint { - data: IkConstraintData; - bones: Array; - target: Bone; - mix: number; - bendDirection: number; - constructor(data: IkConstraintData, skeleton: Skeleton); - getOrder(): number; - apply(): void; - update(): void; - apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; - apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; - } + class IkConstraint implements Constraint { + data: IkConstraintData; + bones: Array; + target: Bone; + mix: number; + bendDirection: number; + constructor(data: IkConstraintData, skeleton: Skeleton); + getOrder(): number; + apply(): void; + update(): void; + apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; + apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; + } } declare module spine { - class IkConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - bendDirection: number; - mix: number; - constructor(name: string); - } + class IkConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + bendDirection: number; + mix: number; + constructor(name: string); + } } declare module spine { - class PathConstraint implements Constraint { - static NONE: number; - static BEFORE: number; - static AFTER: number; - data: PathConstraintData; - bones: Array; - target: Slot; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - spaces: number[]; - positions: number[]; - world: number[]; - curves: number[]; - lengths: number[]; - segments: number[]; - constructor(data: PathConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; - addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; - getOrder(): number; - } + class PathConstraint implements Constraint { + static NONE: number; + static BEFORE: number; + static AFTER: number; + data: PathConstraintData; + bones: Array; + target: Slot; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + spaces: number[]; + positions: number[]; + world: number[]; + curves: number[]; + lengths: number[]; + segments: number[]; + constructor(data: PathConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; + addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; + getOrder(): number; + } } declare module spine { - class PathConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: SlotData; - positionMode: PositionMode; - spacingMode: SpacingMode; - rotateMode: RotateMode; - offsetRotation: number; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - constructor(name: string); - } - enum PositionMode { - Fixed = 0, - Percent = 1, - } - enum SpacingMode { - Length = 0, - Fixed = 1, - Percent = 2, - } - enum RotateMode { - Tangent = 0, - Chain = 1, - ChainScale = 2, - } + class PathConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: SlotData; + positionMode: PositionMode; + spacingMode: SpacingMode; + rotateMode: RotateMode; + offsetRotation: number; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + constructor(name: string); + } + enum PositionMode { + Fixed = 0, + Percent = 1, + } + enum SpacingMode { + Length = 0, + Fixed = 1, + Percent = 2, + } + enum RotateMode { + Tangent = 0, + Chain = 1, + ChainScale = 2, + } } declare module spine { - class SharedAssetManager implements Disposable { - private pathPrefix; - private clientAssets; - private queuedAssets; - private rawAssets; - private errors; - constructor(pathPrefix?: string); - private queueAsset(clientId, textureLoader, path); - loadText(clientId: string, path: string): void; - loadJson(clientId: string, path: string): void; - loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; - get(clientId: string, path: string): any; - private updateClientAssets(clientAssets); - isLoadingComplete(clientId: string): boolean; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class SharedAssetManager implements Disposable { + private pathPrefix; + private clientAssets; + private queuedAssets; + private rawAssets; + private errors; + constructor(pathPrefix?: string); + private queueAsset(clientId, textureLoader, path); + loadText(clientId: string, path: string): void; + loadJson(clientId: string, path: string): void; + loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; + get(clientId: string, path: string): any; + private updateClientAssets(clientAssets); + isLoadingComplete(clientId: string): boolean; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class Skeleton { - data: SkeletonData; - bones: Array; - slots: Array; - drawOrder: Array; - ikConstraints: Array; - transformConstraints: Array; - pathConstraints: Array; - _updateCache: Updatable[]; - updateCacheReset: Updatable[]; - skin: Skin; - color: Color; - time: number; - flipX: boolean; - flipY: boolean; - x: number; - y: number; - constructor(data: SkeletonData); - updateCache(): void; - sortIkConstraint(constraint: IkConstraint): void; - sortPathConstraint(constraint: PathConstraint): void; - sortTransformConstraint(constraint: TransformConstraint): void; - sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; - sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; - sortBone(bone: Bone): void; - sortReset(bones: Array): void; - updateWorldTransform(): void; - setToSetupPose(): void; - setBonesToSetupPose(): void; - setSlotsToSetupPose(): void; - getRootBone(): Bone; - findBone(boneName: string): Bone; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): Slot; - findSlotIndex(slotName: string): number; - setSkinByName(skinName: string): void; - setSkin(newSkin: Skin): void; - getAttachmentByName(slotName: string, attachmentName: string): Attachment; - getAttachment(slotIndex: number, attachmentName: string): Attachment; - setAttachment(slotName: string, attachmentName: string): void; - findIkConstraint(constraintName: string): IkConstraint; - findTransformConstraint(constraintName: string): TransformConstraint; - findPathConstraint(constraintName: string): PathConstraint; - getBounds(offset: Vector2, size: Vector2, temp: Array): void; - update(delta: number): void; - } + class Skeleton { + data: SkeletonData; + bones: Array; + slots: Array; + drawOrder: Array; + ikConstraints: Array; + transformConstraints: Array; + pathConstraints: Array; + _updateCache: Updatable[]; + updateCacheReset: Updatable[]; + skin: Skin; + color: Color; + time: number; + flipX: boolean; + flipY: boolean; + x: number; + y: number; + constructor(data: SkeletonData); + updateCache(): void; + sortIkConstraint(constraint: IkConstraint): void; + sortPathConstraint(constraint: PathConstraint): void; + sortTransformConstraint(constraint: TransformConstraint): void; + sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; + sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; + sortBone(bone: Bone): void; + sortReset(bones: Array): void; + updateWorldTransform(): void; + setToSetupPose(): void; + setBonesToSetupPose(): void; + setSlotsToSetupPose(): void; + getRootBone(): Bone; + findBone(boneName: string): Bone; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): Slot; + findSlotIndex(slotName: string): number; + setSkinByName(skinName: string): void; + setSkin(newSkin: Skin): void; + getAttachmentByName(slotName: string, attachmentName: string): Attachment; + getAttachment(slotIndex: number, attachmentName: string): Attachment; + setAttachment(slotName: string, attachmentName: string): void; + findIkConstraint(constraintName: string): IkConstraint; + findTransformConstraint(constraintName: string): TransformConstraint; + findPathConstraint(constraintName: string): PathConstraint; + getBounds(offset: Vector2, size: Vector2, temp: Array): void; + update(delta: number): void; + } } declare module spine { - class SkeletonBounds { - minX: number; - minY: number; - maxX: number; - maxY: number; - boundingBoxes: BoundingBoxAttachment[]; - polygons: ArrayLike[]; - private polygonPool; - update(skeleton: Skeleton, updateAabb: boolean): void; - aabbCompute(): void; - aabbContainsPoint(x: number, y: number): boolean; - aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; - aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; - containsPoint(x: number, y: number): BoundingBoxAttachment; - containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; - intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; - intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; - getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; - getWidth(): number; - getHeight(): number; - } + class SkeletonBounds { + minX: number; + minY: number; + maxX: number; + maxY: number; + boundingBoxes: BoundingBoxAttachment[]; + polygons: ArrayLike[]; + private polygonPool; + update(skeleton: Skeleton, updateAabb: boolean): void; + aabbCompute(): void; + aabbContainsPoint(x: number, y: number): boolean; + aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; + aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; + containsPoint(x: number, y: number): BoundingBoxAttachment; + containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; + intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; + intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; + getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; + getWidth(): number; + getHeight(): number; + } } declare module spine { - class SkeletonClipping { - private triangulator; - private clippingPolygon; - private clipOutput; - clippedVertices: number[]; - clippedTriangles: number[]; - private scratch; - private clipAttachment; - private clippingPolygons; - clipStart(slot: Slot, clip: ClippingAttachment): number; - clipEndWithSlot(slot: Slot): void; - clipEnd(): void; - isClipping(): boolean; - clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; - clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; - static makeClockwise(polygon: ArrayLike): void; - } + class SkeletonClipping { + private triangulator; + private clippingPolygon; + private clipOutput; + clippedVertices: number[]; + clippedTriangles: number[]; + private scratch; + private clipAttachment; + private clippingPolygons; + clipStart(slot: Slot, clip: ClippingAttachment): number; + clipEndWithSlot(slot: Slot): void; + clipEnd(): void; + isClipping(): boolean; + clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; + clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; + static makeClockwise(polygon: ArrayLike): void; + } } declare module spine { - class SkeletonData { - name: string; - bones: BoneData[]; - slots: SlotData[]; - skins: Skin[]; - defaultSkin: Skin; - events: EventData[]; - animations: Animation[]; - ikConstraints: IkConstraintData[]; - transformConstraints: TransformConstraintData[]; - pathConstraints: PathConstraintData[]; - width: number; - height: number; - version: string; - hash: string; - fps: number; - imagesPath: string; - findBone(boneName: string): BoneData; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): SlotData; - findSlotIndex(slotName: string): number; - findSkin(skinName: string): Skin; - findEvent(eventDataName: string): EventData; - findAnimation(animationName: string): Animation; - findIkConstraint(constraintName: string): IkConstraintData; - findTransformConstraint(constraintName: string): TransformConstraintData; - findPathConstraint(constraintName: string): PathConstraintData; - findPathConstraintIndex(pathConstraintName: string): number; - } + class SkeletonData { + name: string; + bones: BoneData[]; + slots: SlotData[]; + skins: Skin[]; + defaultSkin: Skin; + events: EventData[]; + animations: Animation[]; + ikConstraints: IkConstraintData[]; + transformConstraints: TransformConstraintData[]; + pathConstraints: PathConstraintData[]; + width: number; + height: number; + version: string; + hash: string; + fps: number; + imagesPath: string; + findBone(boneName: string): BoneData; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): SlotData; + findSlotIndex(slotName: string): number; + findSkin(skinName: string): Skin; + findEvent(eventDataName: string): EventData; + findAnimation(animationName: string): Animation; + findIkConstraint(constraintName: string): IkConstraintData; + findTransformConstraint(constraintName: string): TransformConstraintData; + findPathConstraint(constraintName: string): PathConstraintData; + findPathConstraintIndex(pathConstraintName: string): number; + } } declare module spine { - class SkeletonJson { - attachmentLoader: AttachmentLoader; - scale: number; - private linkedMeshes; - constructor(attachmentLoader: AttachmentLoader); - readSkeletonData(json: string | any): SkeletonData; - readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; - readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; - readAnimation(map: any, name: string, skeletonData: SkeletonData): void; - readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; - getValue(map: any, prop: string, defaultValue: any): any; - static blendModeFromString(str: string): BlendMode; - static positionModeFromString(str: string): PositionMode; - static spacingModeFromString(str: string): SpacingMode; - static rotateModeFromString(str: string): RotateMode; - static transformModeFromString(str: string): TransformMode; - } + class SkeletonJson { + attachmentLoader: AttachmentLoader; + scale: number; + private linkedMeshes; + constructor(attachmentLoader: AttachmentLoader); + readSkeletonData(json: string | any): SkeletonData; + readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; + readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; + readAnimation(map: any, name: string, skeletonData: SkeletonData): void; + readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; + getValue(map: any, prop: string, defaultValue: any): any; + static blendModeFromString(str: string): BlendMode; + static positionModeFromString(str: string): PositionMode; + static spacingModeFromString(str: string): SpacingMode; + static rotateModeFromString(str: string): RotateMode; + static transformModeFromString(str: string): TransformMode; + } } declare module spine { - class Skin { - name: string; - attachments: Map[]; - constructor(name: string); - addAttachment(slotIndex: number, name: string, attachment: Attachment): void; - getAttachment(slotIndex: number, name: string): Attachment; - attachAll(skeleton: Skeleton, oldSkin: Skin): void; - } + class Skin { + name: string; + attachments: Map[]; + constructor(name: string); + addAttachment(slotIndex: number, name: string, attachment: Attachment): void; + getAttachment(slotIndex: number, name: string): Attachment; + attachAll(skeleton: Skeleton, oldSkin: Skin): void; + } } declare module spine { - class Slot { - data: SlotData; - bone: Bone; - color: Color; - darkColor: Color; - private attachment; - private attachmentTime; - attachmentVertices: number[]; - constructor(data: SlotData, bone: Bone); - getAttachment(): Attachment; - setAttachment(attachment: Attachment): void; - setAttachmentTime(time: number): void; - getAttachmentTime(): number; - setToSetupPose(): void; - } + class Slot { + data: SlotData; + bone: Bone; + color: Color; + darkColor: Color; + private attachment; + private attachmentTime; + attachmentVertices: number[]; + constructor(data: SlotData, bone: Bone); + getAttachment(): Attachment; + setAttachment(attachment: Attachment): void; + setAttachmentTime(time: number): void; + getAttachmentTime(): number; + setToSetupPose(): void; + } } declare module spine { - class SlotData { - index: number; - name: string; - boneData: BoneData; - color: Color; - darkColor: Color; - attachmentName: string; - blendMode: BlendMode; - constructor(index: number, name: string, boneData: BoneData); - } + class SlotData { + index: number; + name: string; + boneData: BoneData; + color: Color; + darkColor: Color; + attachmentName: string; + blendMode: BlendMode; + constructor(index: number, name: string, boneData: BoneData); + } } declare module spine { - abstract class Texture { - protected _image: HTMLImageElement; - constructor(image: HTMLImageElement); - getImage(): HTMLImageElement; - abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - abstract dispose(): void; - static filterFromString(text: string): TextureFilter; - static wrapFromString(text: string): TextureWrap; - } - enum TextureFilter { - Nearest = 9728, - Linear = 9729, - MipMap = 9987, - MipMapNearestNearest = 9984, - MipMapLinearNearest = 9985, - MipMapNearestLinear = 9986, - MipMapLinearLinear = 9987, - } - enum TextureWrap { - MirroredRepeat = 33648, - ClampToEdge = 33071, - Repeat = 10497, - } - class TextureRegion { - renderObject: any; - u: number; - v: number; - u2: number; - v2: number; - width: number; - height: number; - rotate: boolean; - offsetX: number; - offsetY: number; - originalWidth: number; - originalHeight: number; - } + abstract class Texture { + protected _image: HTMLImageElement; + constructor(image: HTMLImageElement); + getImage(): HTMLImageElement; + abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + abstract dispose(): void; + static filterFromString(text: string): TextureFilter; + static wrapFromString(text: string): TextureWrap; + } + enum TextureFilter { + Nearest = 9728, + Linear = 9729, + MipMap = 9987, + MipMapNearestNearest = 9984, + MipMapLinearNearest = 9985, + MipMapNearestLinear = 9986, + MipMapLinearLinear = 9987, + } + enum TextureWrap { + MirroredRepeat = 33648, + ClampToEdge = 33071, + Repeat = 10497, + } + class TextureRegion { + renderObject: any; + u: number; + v: number; + u2: number; + v2: number; + width: number; + height: number; + rotate: boolean; + offsetX: number; + offsetY: number; + originalWidth: number; + originalHeight: number; + } } declare module spine { - class TextureAtlas implements Disposable { - pages: TextureAtlasPage[]; - regions: TextureAtlasRegion[]; - constructor(atlasText: string, textureLoader: (path: string) => any); - private load(atlasText, textureLoader); - findRegion(name: string): TextureAtlasRegion; - dispose(): void; - } - class TextureAtlasPage { - name: string; - minFilter: TextureFilter; - magFilter: TextureFilter; - uWrap: TextureWrap; - vWrap: TextureWrap; - texture: Texture; - width: number; - height: number; - } - class TextureAtlasRegion extends TextureRegion { - page: TextureAtlasPage; - name: string; - x: number; - y: number; - index: number; - rotate: boolean; - texture: Texture; - } + class TextureAtlas implements Disposable { + pages: TextureAtlasPage[]; + regions: TextureAtlasRegion[]; + constructor(atlasText: string, textureLoader: (path: string) => any); + private load(atlasText, textureLoader); + findRegion(name: string): TextureAtlasRegion; + dispose(): void; + } + class TextureAtlasPage { + name: string; + minFilter: TextureFilter; + magFilter: TextureFilter; + uWrap: TextureWrap; + vWrap: TextureWrap; + texture: Texture; + width: number; + height: number; + } + class TextureAtlasRegion extends TextureRegion { + page: TextureAtlasPage; + name: string; + x: number; + y: number; + index: number; + rotate: boolean; + texture: Texture; + } } declare module spine { - class TransformConstraint implements Constraint { - data: TransformConstraintData; - bones: Array; - target: Bone; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - temp: Vector2; - constructor(data: TransformConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - applyAbsoluteWorld(): void; - applyRelativeWorld(): void; - applyAbsoluteLocal(): void; - applyRelativeLocal(): void; - getOrder(): number; - } + class TransformConstraint implements Constraint { + data: TransformConstraintData; + bones: Array; + target: Bone; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + temp: Vector2; + constructor(data: TransformConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + applyAbsoluteWorld(): void; + applyRelativeWorld(): void; + applyAbsoluteLocal(): void; + applyRelativeLocal(): void; + getOrder(): number; + } } declare module spine { - class TransformConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - offsetRotation: number; - offsetX: number; - offsetY: number; - offsetScaleX: number; - offsetScaleY: number; - offsetShearY: number; - relative: boolean; - local: boolean; - constructor(name: string); - } + class TransformConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + offsetRotation: number; + offsetX: number; + offsetY: number; + offsetScaleX: number; + offsetScaleY: number; + offsetShearY: number; + relative: boolean; + local: boolean; + constructor(name: string); + } } declare module spine { - class Triangulator { - private convexPolygons; - private convexPolygonsIndices; - private indicesArray; - private isConcaveArray; - private triangles; - private polygonPool; - private polygonIndicesPool; - triangulate(verticesArray: ArrayLike): Array; - decompose(verticesArray: Array, triangles: Array): Array>; - private static isConcave(index, vertexCount, vertices, indices); - private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); - private static winding(p1x, p1y, p2x, p2y, p3x, p3y); - } + class Triangulator { + private convexPolygons; + private convexPolygonsIndices; + private indicesArray; + private isConcaveArray; + private triangles; + private polygonPool; + private polygonIndicesPool; + triangulate(verticesArray: ArrayLike): Array; + decompose(verticesArray: Array, triangles: Array): Array>; + private static isConcave(index, vertexCount, vertices, indices); + private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); + private static winding(p1x, p1y, p2x, p2y, p3x, p3y); + } } declare module spine { - interface Updatable { - update(): void; - } + interface Updatable { + update(): void; + } } declare module spine { - interface Map { - [key: string]: T; - } - class IntSet { - array: number[]; - add(value: number): boolean; - contains(value: number): boolean; - remove(value: number): void; - clear(): void; - } - interface Disposable { - dispose(): void; - } - interface Restorable { - restore(): void; - } - class Color { - r: number; - g: number; - b: number; - a: number; - static WHITE: Color; - static RED: Color; - static GREEN: Color; - static BLUE: Color; - static MAGENTA: Color; - constructor(r?: number, g?: number, b?: number, a?: number); - set(r: number, g: number, b: number, a: number): this; - setFromColor(c: Color): this; - setFromString(hex: string): this; - add(r: number, g: number, b: number, a: number): this; - clamp(): this; - } - class MathUtils { - static PI: number; - static PI2: number; - static radiansToDegrees: number; - static radDeg: number; - static degreesToRadians: number; - static degRad: number; - static clamp(value: number, min: number, max: number): number; - static cosDeg(degrees: number): number; - static sinDeg(degrees: number): number; - static signum(value: number): number; - static toInt(x: number): number; - static cbrt(x: number): number; - } - class Utils { - static SUPPORTS_TYPED_ARRAYS: boolean; - static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; - static setArraySize(array: Array, size: number, value?: any): Array; - static ensureArrayCapacity(array: Array, size: number, value?: any): Array; - static newArray(size: number, defaultValue: T): Array; - static newFloatArray(size: number): ArrayLike; - static newShortArray(size: number): ArrayLike; - static toFloatArray(array: Array): number[] | Float32Array; - } - class DebugUtils { - static logBones(skeleton: Skeleton): void; - } - class Pool { - private items; - private instantiator; - constructor(instantiator: () => T); - obtain(): T; - free(item: T): void; - freeAll(items: ArrayLike): void; - clear(): void; - } - class Vector2 { - x: number; - y: number; - constructor(x?: number, y?: number); - set(x: number, y: number): Vector2; - length(): number; - normalize(): this; - } - class TimeKeeper { - maxDelta: number; - framesPerSecond: number; - delta: number; - totalTime: number; - private lastTime; - private frameCount; - private frameTime; - update(): void; - } - interface ArrayLike { - length: number; - [n: number]: T; - } - class WindowedMean { - values: Array; - addedValues: number; - lastValue: number; - mean: number; - dirty: boolean; - constructor(windowSize?: number); - hasEnoughData(): boolean; - addValue(value: number): void; - getMean(): number; - } + interface Map { + [key: string]: T; + } + class IntSet { + array: number[]; + add(value: number): boolean; + contains(value: number): boolean; + remove(value: number): void; + clear(): void; + } + interface Disposable { + dispose(): void; + } + interface Restorable { + restore(): void; + } + class Color { + r: number; + g: number; + b: number; + a: number; + static WHITE: Color; + static RED: Color; + static GREEN: Color; + static BLUE: Color; + static MAGENTA: Color; + constructor(r?: number, g?: number, b?: number, a?: number); + set(r: number, g: number, b: number, a: number): this; + setFromColor(c: Color): this; + setFromString(hex: string): this; + add(r: number, g: number, b: number, a: number): this; + clamp(): this; + } + class MathUtils { + static PI: number; + static PI2: number; + static radiansToDegrees: number; + static radDeg: number; + static degreesToRadians: number; + static degRad: number; + static clamp(value: number, min: number, max: number): number; + static cosDeg(degrees: number): number; + static sinDeg(degrees: number): number; + static signum(value: number): number; + static toInt(x: number): number; + static cbrt(x: number): number; + } + class Utils { + static SUPPORTS_TYPED_ARRAYS: boolean; + static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; + static setArraySize(array: Array, size: number, value?: any): Array; + static ensureArrayCapacity(array: Array, size: number, value?: any): Array; + static newArray(size: number, defaultValue: T): Array; + static newFloatArray(size: number): ArrayLike; + static newShortArray(size: number): ArrayLike; + static toFloatArray(array: Array): number[] | Float32Array; + } + class DebugUtils { + static logBones(skeleton: Skeleton): void; + } + class Pool { + private items; + private instantiator; + constructor(instantiator: () => T); + obtain(): T; + free(item: T): void; + freeAll(items: ArrayLike): void; + clear(): void; + } + class Vector2 { + x: number; + y: number; + constructor(x?: number, y?: number); + set(x: number, y: number): Vector2; + length(): number; + normalize(): this; + } + class TimeKeeper { + maxDelta: number; + framesPerSecond: number; + delta: number; + totalTime: number; + private lastTime; + private frameCount; + private frameTime; + update(): void; + } + interface ArrayLike { + length: number; + [n: number]: T; + } + class WindowedMean { + values: Array; + addedValues: number; + lastValue: number; + mean: number; + dirty: boolean; + constructor(windowSize?: number); + hasEnoughData(): boolean; + addValue(value: number): void; + getMean(): number; + } } declare module spine.threejs { - class AssetManager extends spine.AssetManager { - constructor(pathPrefix?: string); - } + class AssetManager extends spine.AssetManager { + constructor(pathPrefix?: string); + } } declare module spine.threejs { - class MeshBatcher { - mesh: THREE.Mesh; - private static VERTEX_SIZE; - private vertexBuffer; - private vertices; - private verticesLength; - private indices; - private indicesLength; - constructor(mesh: THREE.Mesh, maxVertices?: number); - begin(): void; - batch(vertices: ArrayLike, verticesLength: number, indices: ArrayLike, indicesLength: number, z?: number): void; - end(): void; - } + class MeshBatcher { + mesh: THREE.Mesh; + private static VERTEX_SIZE; + private vertexBuffer; + private vertices; + private verticesLength; + private indices; + private indicesLength; + constructor(mesh: THREE.Mesh, maxVertices?: number); + begin(): void; + batch(vertices: ArrayLike, verticesLength: number, indices: ArrayLike, indicesLength: number, z?: number): void; + end(): void; + } } declare module spine.threejs { - class SkeletonMesh extends THREE.Mesh { - skeleton: Skeleton; - state: AnimationState; - zOffset: number; - private batcher; - private clipper; - static QUAD_TRIANGLES: number[]; - static VERTEX_SIZE: number; - private vertices; - private tempColor; - constructor(skeletonData: SkeletonData); - update(deltaTime: number): void; - private updateGeometry(); - } + class SkeletonMesh extends THREE.Mesh { + skeleton: Skeleton; + state: AnimationState; + zOffset: number; + private batcher; + private clipper; + static QUAD_TRIANGLES: number[]; + static VERTEX_SIZE: number; + private vertices; + private tempColor; + constructor(skeletonData: SkeletonData); + update(deltaTime: number): void; + private updateGeometry(); + } } declare module spine.threejs { - class ThreeJsTexture extends Texture { - texture: THREE.Texture; - constructor(image: HTMLImageElement); - setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - dispose(): void; - static toThreeJsTextureFilter(filter: TextureFilter): THREE.TextureFilter; - static toThreeJsTextureWrap(wrap: TextureWrap): THREE.Wrapping; - } + class ThreeJsTexture extends Texture { + texture: THREE.Texture; + constructor(image: HTMLImageElement); + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + dispose(): void; + static toThreeJsTextureFilter(filter: TextureFilter): THREE.TextureFilter; + static toThreeJsTextureWrap(wrap: TextureWrap): THREE.Wrapping; + } } diff --git a/spine-ts/build/spine-threejs.js b/spine-ts/build/spine-threejs.js index 7eadbca74..b5adf0960 100644 --- a/spine-ts/build/spine-threejs.js +++ b/spine-ts/build/spine-threejs.js @@ -1,6482 +1,6482 @@ var __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var spine; (function (spine) { - var Animation = (function () { - function Animation(name, timelines, duration) { - if (name == null) - throw new Error("name cannot be null."); - if (timelines == null) - throw new Error("timelines cannot be null."); - this.name = name; - this.timelines = timelines; - this.duration = duration; - } - Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (loop && this.duration != 0) { - time %= this.duration; - if (lastTime > 0) - lastTime %= this.duration; - } - var timelines = this.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); - }; - Animation.binarySearch = function (values, target, step) { - if (step === void 0) { step = 1; } - var low = 0; - var high = values.length / step - 2; - if (high == 0) - return step; - var current = high >>> 1; - while (true) { - if (values[(current + 1) * step] <= target) - low = current + 1; - else - high = current; - if (low == high) - return (low + 1) * step; - current = (low + high) >>> 1; - } - }; - Animation.linearSearch = function (values, target, step) { - for (var i = 0, last = values.length - step; i <= last; i += step) - if (values[i] > target) - return i; - return -1; - }; - return Animation; - }()); - spine.Animation = Animation; - (function (TimelineType) { - TimelineType[TimelineType["rotate"] = 0] = "rotate"; - TimelineType[TimelineType["translate"] = 1] = "translate"; - TimelineType[TimelineType["scale"] = 2] = "scale"; - TimelineType[TimelineType["shear"] = 3] = "shear"; - TimelineType[TimelineType["attachment"] = 4] = "attachment"; - TimelineType[TimelineType["color"] = 5] = "color"; - TimelineType[TimelineType["deform"] = 6] = "deform"; - TimelineType[TimelineType["event"] = 7] = "event"; - TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; - TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; - TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; - TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; - TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; - TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; - TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; - })(spine.TimelineType || (spine.TimelineType = {})); - var TimelineType = spine.TimelineType; - var CurveTimeline = (function () { - function CurveTimeline(frameCount) { - if (frameCount <= 0) - throw new Error("frameCount must be > 0: " + frameCount); - this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); - } - CurveTimeline.prototype.getFrameCount = function () { - return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; - }; - CurveTimeline.prototype.setLinear = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; - }; - CurveTimeline.prototype.setStepped = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; - }; - CurveTimeline.prototype.getCurveType = function (frameIndex) { - var index = frameIndex * CurveTimeline.BEZIER_SIZE; - if (index == this.curves.length) - return CurveTimeline.LINEAR; - var type = this.curves[index]; - if (type == CurveTimeline.LINEAR) - return CurveTimeline.LINEAR; - if (type == CurveTimeline.STEPPED) - return CurveTimeline.STEPPED; - return CurveTimeline.BEZIER; - }; - CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { - var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; - var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; - var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; - var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var curves = this.curves; - curves[i++] = CurveTimeline.BEZIER; - var x = dfx, y = dfy; - for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - curves[i] = x; - curves[i + 1] = y; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - x += dfx; - y += dfy; - } - }; - CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { - percent = spine.MathUtils.clamp(percent, 0, 1); - var curves = this.curves; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var type = curves[i]; - if (type == CurveTimeline.LINEAR) - return percent; - if (type == CurveTimeline.STEPPED) - return 0; - i++; - var x = 0; - for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - x = curves[i]; - if (x >= percent) { - var prevX = void 0, prevY = void 0; - if (i == start) { - prevX = 0; - prevY = 0; - } - else { - prevX = curves[i - 2]; - prevY = curves[i - 1]; - } - return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); - } - } - var y = curves[i - 1]; - return y + (1 - y) * (percent - x) / (1 - x); - }; - CurveTimeline.LINEAR = 0; - CurveTimeline.STEPPED = 1; - CurveTimeline.BEZIER = 2; - CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; - return CurveTimeline; - }()); - spine.CurveTimeline = CurveTimeline; - var RotateTimeline = (function (_super) { - __extends(RotateTimeline, _super); - function RotateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount << 1); - } - RotateTimeline.prototype.getPropertyId = function () { - return (TimelineType.rotate << 24) + this.boneIndex; - }; - RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { - frameIndex <<= 1; - this.frames[frameIndex] = time; - this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; - }; - RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { - if (setupPose) - bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; - else { - var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; - r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; - bone.rotation += r_1 * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); - var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); - var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - r = prevRotation + r * percent; - if (setupPose) { - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation = bone.data.rotation + r * alpha; - } - else { - r = bone.data.rotation + r - bone.rotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation += r * alpha; - } - }; - RotateTimeline.ENTRIES = 2; - RotateTimeline.PREV_TIME = -2; - RotateTimeline.PREV_ROTATION = -1; - RotateTimeline.ROTATION = 1; - return RotateTimeline; - }(CurveTimeline)); - spine.RotateTimeline = RotateTimeline; - var TranslateTimeline = (function (_super) { - __extends(TranslateTimeline, _super); - function TranslateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); - } - TranslateTimeline.prototype.getPropertyId = function () { - return (TimelineType.translate << 24) + this.boneIndex; - }; - TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { - frameIndex *= TranslateTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TranslateTimeline.X] = x; - this.frames[frameIndex + TranslateTimeline.Y] = y; - }; - TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.x = bone.data.x; - bone.y = bone.data.y; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { - x = frames[frames.length + TranslateTimeline.PREV_X]; - y = frames[frames.length + TranslateTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - x = frames[frame + TranslateTimeline.PREV_X]; - y = frames[frame + TranslateTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); - x += (frames[frame + TranslateTimeline.X] - x) * percent; - y += (frames[frame + TranslateTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.x = bone.data.x + x * alpha; - bone.y = bone.data.y + y * alpha; - } - else { - bone.x += (bone.data.x + x - bone.x) * alpha; - bone.y += (bone.data.y + y - bone.y) * alpha; - } - }; - TranslateTimeline.ENTRIES = 3; - TranslateTimeline.PREV_TIME = -3; - TranslateTimeline.PREV_X = -2; - TranslateTimeline.PREV_Y = -1; - TranslateTimeline.X = 1; - TranslateTimeline.Y = 2; - return TranslateTimeline; - }(CurveTimeline)); - spine.TranslateTimeline = TranslateTimeline; - var ScaleTimeline = (function (_super) { - __extends(ScaleTimeline, _super); - function ScaleTimeline(frameCount) { - _super.call(this, frameCount); - } - ScaleTimeline.prototype.getPropertyId = function () { - return (TimelineType.scale << 24) + this.boneIndex; - }; - ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.scaleX = bone.data.scaleX; - bone.scaleY = bone.data.scaleY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { - x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; - y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; - } - else { - var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - x = frames[frame + ScaleTimeline.PREV_X]; - y = frames[frame + ScaleTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); - x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; - y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; - } - if (alpha == 1) { - bone.scaleX = x; - bone.scaleY = y; - } - else { - var bx = 0, by = 0; - if (setupPose) { - bx = bone.data.scaleX; - by = bone.data.scaleY; - } - else { - bx = bone.scaleX; - by = bone.scaleY; - } - if (mixingOut) { - x = Math.abs(x) * spine.MathUtils.signum(bx); - y = Math.abs(y) * spine.MathUtils.signum(by); - } - else { - bx = Math.abs(bx) * spine.MathUtils.signum(x); - by = Math.abs(by) * spine.MathUtils.signum(y); - } - bone.scaleX = bx + (x - bx) * alpha; - bone.scaleY = by + (y - by) * alpha; - } - }; - return ScaleTimeline; - }(TranslateTimeline)); - spine.ScaleTimeline = ScaleTimeline; - var ShearTimeline = (function (_super) { - __extends(ShearTimeline, _super); - function ShearTimeline(frameCount) { - _super.call(this, frameCount); - } - ShearTimeline.prototype.getPropertyId = function () { - return (TimelineType.shear << 24) + this.boneIndex; - }; - ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.shearX = bone.data.shearX; - bone.shearY = bone.data.shearY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { - x = frames[frames.length + ShearTimeline.PREV_X]; - y = frames[frames.length + ShearTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - x = frames[frame + ShearTimeline.PREV_X]; - y = frames[frame + ShearTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); - x = x + (frames[frame + ShearTimeline.X] - x) * percent; - y = y + (frames[frame + ShearTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.shearX = bone.data.shearX + x * alpha; - bone.shearY = bone.data.shearY + y * alpha; - } - else { - bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; - } - }; - return ShearTimeline; - }(TranslateTimeline)); - spine.ShearTimeline = ShearTimeline; - var ColorTimeline = (function (_super) { - __extends(ColorTimeline, _super); - function ColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); - } - ColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.color << 24) + this.slotIndex; - }; - ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { - frameIndex *= ColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + ColorTimeline.R] = r; - this.frames[frameIndex + ColorTimeline.G] = g; - this.frames[frameIndex + ColorTimeline.B] = b; - this.frames[frameIndex + ColorTimeline.A] = a; - }; - ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - slot.color.setFromColor(slot.data.color); - return; - } - var r = 0, g = 0, b = 0, a = 0; - if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + ColorTimeline.PREV_R]; - g = frames[i + ColorTimeline.PREV_G]; - b = frames[i + ColorTimeline.PREV_B]; - a = frames[i + ColorTimeline.PREV_A]; - } - else { - var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); - r = frames[frame + ColorTimeline.PREV_R]; - g = frames[frame + ColorTimeline.PREV_G]; - b = frames[frame + ColorTimeline.PREV_B]; - a = frames[frame + ColorTimeline.PREV_A]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + ColorTimeline.R] - r) * percent; - g += (frames[frame + ColorTimeline.G] - g) * percent; - b += (frames[frame + ColorTimeline.B] - b) * percent; - a += (frames[frame + ColorTimeline.A] - a) * percent; - } - if (alpha == 1) - slot.color.set(r, g, b, a); - else { - var color = slot.color; - if (setupPose) - color.setFromColor(slot.data.color); - color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); - } - }; - ColorTimeline.ENTRIES = 5; - ColorTimeline.PREV_TIME = -5; - ColorTimeline.PREV_R = -4; - ColorTimeline.PREV_G = -3; - ColorTimeline.PREV_B = -2; - ColorTimeline.PREV_A = -1; - ColorTimeline.R = 1; - ColorTimeline.G = 2; - ColorTimeline.B = 3; - ColorTimeline.A = 4; - return ColorTimeline; - }(CurveTimeline)); - spine.ColorTimeline = ColorTimeline; - var TwoColorTimeline = (function (_super) { - __extends(TwoColorTimeline, _super); - function TwoColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); - } - TwoColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.twoColor << 24) + this.slotIndex; - }; - TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { - frameIndex *= TwoColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TwoColorTimeline.R] = r; - this.frames[frameIndex + TwoColorTimeline.G] = g; - this.frames[frameIndex + TwoColorTimeline.B] = b; - this.frames[frameIndex + TwoColorTimeline.A] = a; - this.frames[frameIndex + TwoColorTimeline.R2] = r2; - this.frames[frameIndex + TwoColorTimeline.G2] = g2; - this.frames[frameIndex + TwoColorTimeline.B2] = b2; - }; - TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - slot.color.setFromColor(slot.data.color); - slot.darkColor.setFromColor(slot.data.darkColor); - } - return; - } - var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; - if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + TwoColorTimeline.PREV_R]; - g = frames[i + TwoColorTimeline.PREV_G]; - b = frames[i + TwoColorTimeline.PREV_B]; - a = frames[i + TwoColorTimeline.PREV_A]; - r2 = frames[i + TwoColorTimeline.PREV_R2]; - g2 = frames[i + TwoColorTimeline.PREV_G2]; - b2 = frames[i + TwoColorTimeline.PREV_B2]; - } - else { - var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); - r = frames[frame + TwoColorTimeline.PREV_R]; - g = frames[frame + TwoColorTimeline.PREV_G]; - b = frames[frame + TwoColorTimeline.PREV_B]; - a = frames[frame + TwoColorTimeline.PREV_A]; - r2 = frames[frame + TwoColorTimeline.PREV_R2]; - g2 = frames[frame + TwoColorTimeline.PREV_G2]; - b2 = frames[frame + TwoColorTimeline.PREV_B2]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + TwoColorTimeline.R] - r) * percent; - g += (frames[frame + TwoColorTimeline.G] - g) * percent; - b += (frames[frame + TwoColorTimeline.B] - b) * percent; - a += (frames[frame + TwoColorTimeline.A] - a) * percent; - r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; - g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; - b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; - } - if (alpha == 1) { - slot.color.set(r, g, b, a); - slot.darkColor.set(r2, g2, b2, 1); - } - else { - var light = slot.color; - var dark = slot.darkColor; - if (setupPose) { - light.setFromColor(slot.data.color); - dark.setFromColor(slot.data.darkColor); - } - light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); - dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); - } - }; - TwoColorTimeline.ENTRIES = 8; - TwoColorTimeline.PREV_TIME = -8; - TwoColorTimeline.PREV_R = -7; - TwoColorTimeline.PREV_G = -6; - TwoColorTimeline.PREV_B = -5; - TwoColorTimeline.PREV_A = -4; - TwoColorTimeline.PREV_R2 = -3; - TwoColorTimeline.PREV_G2 = -2; - TwoColorTimeline.PREV_B2 = -1; - TwoColorTimeline.R = 1; - TwoColorTimeline.G = 2; - TwoColorTimeline.B = 3; - TwoColorTimeline.A = 4; - TwoColorTimeline.R2 = 5; - TwoColorTimeline.G2 = 6; - TwoColorTimeline.B2 = 7; - return TwoColorTimeline; - }(CurveTimeline)); - spine.TwoColorTimeline = TwoColorTimeline; - var AttachmentTimeline = (function () { - function AttachmentTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.attachmentNames = new Array(frameCount); - } - AttachmentTimeline.prototype.getPropertyId = function () { - return (TimelineType.attachment << 24) + this.slotIndex; - }; - AttachmentTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { - this.frames[frameIndex] = time; - this.attachmentNames[frameIndex] = attachmentName; - }; - AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - if (mixingOut && setupPose) { - var attachmentName_1 = slot.data.attachmentName; - slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - var attachmentName_2 = slot.data.attachmentName; - slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); - } - return; - } - var frameIndex = 0; - if (time >= frames[frames.length - 1]) - frameIndex = frames.length - 1; - else - frameIndex = Animation.binarySearch(frames, time, 1) - 1; - var attachmentName = this.attachmentNames[frameIndex]; - skeleton.slots[this.slotIndex] - .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); - }; - return AttachmentTimeline; - }()); - spine.AttachmentTimeline = AttachmentTimeline; - var DeformTimeline = (function (_super) { - __extends(DeformTimeline, _super); - function DeformTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount); - this.frameVertices = new Array(frameCount); - } - DeformTimeline.prototype.getPropertyId = function () { - return (TimelineType.deform << 24) + this.slotIndex; - }; - DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { - this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; - }; - DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var slotAttachment = slot.getAttachment(); - if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) - return; - var frames = this.frames; - var verticesArray = slot.attachmentVertices; - if (time < frames[0]) { - if (setupPose) - spine.Utils.setArraySize(verticesArray, 0); - return; - } - var frameVertices = this.frameVertices; - var vertexCount = frameVertices[0].length; - if (verticesArray.length != vertexCount && !setupPose) - alpha = 1; - var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); - if (time >= frames[frames.length - 1]) { - var lastVertices = frameVertices[frames.length - 1]; - if (alpha == 1) { - spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var setup = setupVertices[i]; - vertices[i] = setup + (lastVertices[i] - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] = lastVertices[i] * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time); - var prevVertices = frameVertices[frame - 1]; - var nextVertices = frameVertices[frame]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); - if (alpha == 1) { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i], setup = setupVertices[i]; - vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; - } - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; - } - } - }; - return DeformTimeline; - }(CurveTimeline)); - spine.DeformTimeline = DeformTimeline; - var EventTimeline = (function () { - function EventTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.events = new Array(frameCount); - } - EventTimeline.prototype.getPropertyId = function () { - return TimelineType.event << 24; - }; - EventTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - EventTimeline.prototype.setFrame = function (frameIndex, event) { - this.frames[frameIndex] = event.time; - this.events[frameIndex] = event; - }; - EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - if (firedEvents == null) - return; - var frames = this.frames; - var frameCount = this.frames.length; - if (lastTime > time) { - this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); - lastTime = -1; - } - else if (lastTime >= frames[frameCount - 1]) - return; - if (time < frames[0]) - return; - var frame = 0; - if (lastTime < frames[0]) - frame = 0; - else { - frame = Animation.binarySearch(frames, lastTime); - var frameTime = frames[frame]; - while (frame > 0) { - if (frames[frame - 1] != frameTime) - break; - frame--; - } - } - for (; frame < frameCount && time >= frames[frame]; frame++) - firedEvents.push(this.events[frame]); - }; - return EventTimeline; - }()); - spine.EventTimeline = EventTimeline; - var DrawOrderTimeline = (function () { - function DrawOrderTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.drawOrders = new Array(frameCount); - } - DrawOrderTimeline.prototype.getPropertyId = function () { - return TimelineType.drawOrder << 24; - }; - DrawOrderTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { - this.frames[frameIndex] = time; - this.drawOrders[frameIndex] = drawOrder; - }; - DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var drawOrder = skeleton.drawOrder; - var slots = skeleton.slots; - if (mixingOut && setupPose) { - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frame = 0; - if (time >= frames[frames.length - 1]) - frame = frames.length - 1; - else - frame = Animation.binarySearch(frames, time) - 1; - var drawOrderToSetupIndex = this.drawOrders[frame]; - if (drawOrderToSetupIndex == null) - spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); - else { - for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) - drawOrder[i] = slots[drawOrderToSetupIndex[i]]; - } - }; - return DrawOrderTimeline; - }()); - spine.DrawOrderTimeline = DrawOrderTimeline; - var IkConstraintTimeline = (function (_super) { - __extends(IkConstraintTimeline, _super); - function IkConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); - } - IkConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; - }; - IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { - frameIndex *= IkConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; - this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; - }; - IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.mix = constraint.data.mix; - constraint.bendDirection = constraint.data.bendDirection; - } - return; - } - if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { - if (setupPose) { - constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection - : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - return; - } - var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); - var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); - if (setupPose) { - constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - }; - IkConstraintTimeline.ENTRIES = 3; - IkConstraintTimeline.PREV_TIME = -3; - IkConstraintTimeline.PREV_MIX = -2; - IkConstraintTimeline.PREV_BEND_DIRECTION = -1; - IkConstraintTimeline.MIX = 1; - IkConstraintTimeline.BEND_DIRECTION = 2; - return IkConstraintTimeline; - }(CurveTimeline)); - spine.IkConstraintTimeline = IkConstraintTimeline; - var TransformConstraintTimeline = (function (_super) { - __extends(TransformConstraintTimeline, _super); - function TransformConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); - } - TransformConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; - }; - TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { - frameIndex *= TransformConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; - this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; - this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; - }; - TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.rotateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - return; - } - var rotate = 0, translate = 0, scale = 0, shear = 0; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { - var i = frames.length; - rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; - } - else { - var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; - scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; - shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; - } - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; - constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; - constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; - constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - constraint.scaleMix += (scale - constraint.scaleMix) * alpha; - constraint.shearMix += (shear - constraint.shearMix) * alpha; - } - }; - TransformConstraintTimeline.ENTRIES = 5; - TransformConstraintTimeline.PREV_TIME = -5; - TransformConstraintTimeline.PREV_ROTATE = -4; - TransformConstraintTimeline.PREV_TRANSLATE = -3; - TransformConstraintTimeline.PREV_SCALE = -2; - TransformConstraintTimeline.PREV_SHEAR = -1; - TransformConstraintTimeline.ROTATE = 1; - TransformConstraintTimeline.TRANSLATE = 2; - TransformConstraintTimeline.SCALE = 3; - TransformConstraintTimeline.SHEAR = 4; - return TransformConstraintTimeline; - }(CurveTimeline)); - spine.TransformConstraintTimeline = TransformConstraintTimeline; - var PathConstraintPositionTimeline = (function (_super) { - __extends(PathConstraintPositionTimeline, _super); - function PathConstraintPositionTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); - } - PathConstraintPositionTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; - }; - PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { - frameIndex *= PathConstraintPositionTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; - }; - PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.position = constraint.data.position; - return; - } - var position = 0; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) - position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); - position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; - } - if (setupPose) - constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; - else - constraint.position += (position - constraint.position) * alpha; - }; - PathConstraintPositionTimeline.ENTRIES = 2; - PathConstraintPositionTimeline.PREV_TIME = -2; - PathConstraintPositionTimeline.PREV_VALUE = -1; - PathConstraintPositionTimeline.VALUE = 1; - return PathConstraintPositionTimeline; - }(CurveTimeline)); - spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; - var PathConstraintSpacingTimeline = (function (_super) { - __extends(PathConstraintSpacingTimeline, _super); - function PathConstraintSpacingTimeline(frameCount) { - _super.call(this, frameCount); - } - PathConstraintSpacingTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; - }; - PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.spacing = constraint.data.spacing; - return; - } - var spacing = 0; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) - spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); - spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; - } - if (setupPose) - constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; - else - constraint.spacing += (spacing - constraint.spacing) * alpha; - }; - return PathConstraintSpacingTimeline; - }(PathConstraintPositionTimeline)); - spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; - var PathConstraintMixTimeline = (function (_super) { - __extends(PathConstraintMixTimeline, _super); - function PathConstraintMixTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); - } - PathConstraintMixTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; - }; - PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { - frameIndex *= PathConstraintMixTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; - }; - PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix; - constraint.translateMix = constraint.data.translateMix; - } - return; - } - var rotate = 0, translate = 0; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { - rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; - } - else { - var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; - } - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; - constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - } - }; - PathConstraintMixTimeline.ENTRIES = 3; - PathConstraintMixTimeline.PREV_TIME = -3; - PathConstraintMixTimeline.PREV_ROTATE = -2; - PathConstraintMixTimeline.PREV_TRANSLATE = -1; - PathConstraintMixTimeline.ROTATE = 1; - PathConstraintMixTimeline.TRANSLATE = 2; - return PathConstraintMixTimeline; - }(CurveTimeline)); - spine.PathConstraintMixTimeline = PathConstraintMixTimeline; + var Animation = (function () { + function Animation(name, timelines, duration) { + if (name == null) + throw new Error("name cannot be null."); + if (timelines == null) + throw new Error("timelines cannot be null."); + this.name = name; + this.timelines = timelines; + this.duration = duration; + } + Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (loop && this.duration != 0) { + time %= this.duration; + if (lastTime > 0) + lastTime %= this.duration; + } + var timelines = this.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); + }; + Animation.binarySearch = function (values, target, step) { + if (step === void 0) { step = 1; } + var low = 0; + var high = values.length / step - 2; + if (high == 0) + return step; + var current = high >>> 1; + while (true) { + if (values[(current + 1) * step] <= target) + low = current + 1; + else + high = current; + if (low == high) + return (low + 1) * step; + current = (low + high) >>> 1; + } + }; + Animation.linearSearch = function (values, target, step) { + for (var i = 0, last = values.length - step; i <= last; i += step) + if (values[i] > target) + return i; + return -1; + }; + return Animation; + }()); + spine.Animation = Animation; + (function (TimelineType) { + TimelineType[TimelineType["rotate"] = 0] = "rotate"; + TimelineType[TimelineType["translate"] = 1] = "translate"; + TimelineType[TimelineType["scale"] = 2] = "scale"; + TimelineType[TimelineType["shear"] = 3] = "shear"; + TimelineType[TimelineType["attachment"] = 4] = "attachment"; + TimelineType[TimelineType["color"] = 5] = "color"; + TimelineType[TimelineType["deform"] = 6] = "deform"; + TimelineType[TimelineType["event"] = 7] = "event"; + TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; + TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; + TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; + TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; + TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; + TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; + TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; + var CurveTimeline = (function () { + function CurveTimeline(frameCount) { + if (frameCount <= 0) + throw new Error("frameCount must be > 0: " + frameCount); + this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); + } + CurveTimeline.prototype.getFrameCount = function () { + return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; + }; + CurveTimeline.prototype.setLinear = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; + }; + CurveTimeline.prototype.setStepped = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; + }; + CurveTimeline.prototype.getCurveType = function (frameIndex) { + var index = frameIndex * CurveTimeline.BEZIER_SIZE; + if (index == this.curves.length) + return CurveTimeline.LINEAR; + var type = this.curves[index]; + if (type == CurveTimeline.LINEAR) + return CurveTimeline.LINEAR; + if (type == CurveTimeline.STEPPED) + return CurveTimeline.STEPPED; + return CurveTimeline.BEZIER; + }; + CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { + var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; + var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; + var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; + var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var curves = this.curves; + curves[i++] = CurveTimeline.BEZIER; + var x = dfx, y = dfy; + for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + curves[i] = x; + curves[i + 1] = y; + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + x += dfx; + y += dfy; + } + }; + CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { + percent = spine.MathUtils.clamp(percent, 0, 1); + var curves = this.curves; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var type = curves[i]; + if (type == CurveTimeline.LINEAR) + return percent; + if (type == CurveTimeline.STEPPED) + return 0; + i++; + var x = 0; + for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + x = curves[i]; + if (x >= percent) { + var prevX = void 0, prevY = void 0; + if (i == start) { + prevX = 0; + prevY = 0; + } + else { + prevX = curves[i - 2]; + prevY = curves[i - 1]; + } + return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); + } + } + var y = curves[i - 1]; + return y + (1 - y) * (percent - x) / (1 - x); + }; + CurveTimeline.LINEAR = 0; + CurveTimeline.STEPPED = 1; + CurveTimeline.BEZIER = 2; + CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; + return CurveTimeline; + }()); + spine.CurveTimeline = CurveTimeline; + var RotateTimeline = (function (_super) { + __extends(RotateTimeline, _super); + function RotateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount << 1); + } + RotateTimeline.prototype.getPropertyId = function () { + return (TimelineType.rotate << 24) + this.boneIndex; + }; + RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { + frameIndex <<= 1; + this.frames[frameIndex] = time; + this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; + }; + RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { + if (setupPose) + bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; + else { + var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; + r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; + bone.rotation += r_1 * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); + var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); + var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + r = prevRotation + r * percent; + if (setupPose) { + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation = bone.data.rotation + r * alpha; + } + else { + r = bone.data.rotation + r - bone.rotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation += r * alpha; + } + }; + RotateTimeline.ENTRIES = 2; + RotateTimeline.PREV_TIME = -2; + RotateTimeline.PREV_ROTATION = -1; + RotateTimeline.ROTATION = 1; + return RotateTimeline; + }(CurveTimeline)); + spine.RotateTimeline = RotateTimeline; + var TranslateTimeline = (function (_super) { + __extends(TranslateTimeline, _super); + function TranslateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); + } + TranslateTimeline.prototype.getPropertyId = function () { + return (TimelineType.translate << 24) + this.boneIndex; + }; + TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { + frameIndex *= TranslateTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TranslateTimeline.X] = x; + this.frames[frameIndex + TranslateTimeline.Y] = y; + }; + TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { + x = frames[frames.length + TranslateTimeline.PREV_X]; + y = frames[frames.length + TranslateTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); + x = frames[frame + TranslateTimeline.PREV_X]; + y = frames[frame + TranslateTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); + x += (frames[frame + TranslateTimeline.X] - x) * percent; + y += (frames[frame + TranslateTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.x = bone.data.x + x * alpha; + bone.y = bone.data.y + y * alpha; + } + else { + bone.x += (bone.data.x + x - bone.x) * alpha; + bone.y += (bone.data.y + y - bone.y) * alpha; + } + }; + TranslateTimeline.ENTRIES = 3; + TranslateTimeline.PREV_TIME = -3; + TranslateTimeline.PREV_X = -2; + TranslateTimeline.PREV_Y = -1; + TranslateTimeline.X = 1; + TranslateTimeline.Y = 2; + return TranslateTimeline; + }(CurveTimeline)); + spine.TranslateTimeline = TranslateTimeline; + var ScaleTimeline = (function (_super) { + __extends(ScaleTimeline, _super); + function ScaleTimeline(frameCount) { + _super.call(this, frameCount); + } + ScaleTimeline.prototype.getPropertyId = function () { + return (TimelineType.scale << 24) + this.boneIndex; + }; + ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { + x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; + y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; + } + else { + var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); + x = frames[frame + ScaleTimeline.PREV_X]; + y = frames[frame + ScaleTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); + x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; + y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; + } + if (alpha == 1) { + bone.scaleX = x; + bone.scaleY = y; + } + else { + var bx = 0, by = 0; + if (setupPose) { + bx = bone.data.scaleX; + by = bone.data.scaleY; + } + else { + bx = bone.scaleX; + by = bone.scaleY; + } + if (mixingOut) { + x = Math.abs(x) * spine.MathUtils.signum(bx); + y = Math.abs(y) * spine.MathUtils.signum(by); + } + else { + bx = Math.abs(bx) * spine.MathUtils.signum(x); + by = Math.abs(by) * spine.MathUtils.signum(y); + } + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + } + }; + return ScaleTimeline; + }(TranslateTimeline)); + spine.ScaleTimeline = ScaleTimeline; + var ShearTimeline = (function (_super) { + __extends(ShearTimeline, _super); + function ShearTimeline(frameCount) { + _super.call(this, frameCount); + } + ShearTimeline.prototype.getPropertyId = function () { + return (TimelineType.shear << 24) + this.boneIndex; + }; + ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { + x = frames[frames.length + ShearTimeline.PREV_X]; + y = frames[frames.length + ShearTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); + x = frames[frame + ShearTimeline.PREV_X]; + y = frames[frame + ShearTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); + x = x + (frames[frame + ShearTimeline.X] - x) * percent; + y = y + (frames[frame + ShearTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.shearX = bone.data.shearX + x * alpha; + bone.shearY = bone.data.shearY + y * alpha; + } + else { + bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; + bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; + } + }; + return ShearTimeline; + }(TranslateTimeline)); + spine.ShearTimeline = ShearTimeline; + var ColorTimeline = (function (_super) { + __extends(ColorTimeline, _super); + function ColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); + } + ColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.color << 24) + this.slotIndex; + }; + ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { + frameIndex *= ColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + ColorTimeline.R] = r; + this.frames[frameIndex + ColorTimeline.G] = g; + this.frames[frameIndex + ColorTimeline.B] = b; + this.frames[frameIndex + ColorTimeline.A] = a; + }; + ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + slot.color.setFromColor(slot.data.color); + return; + } + var r = 0, g = 0, b = 0, a = 0; + if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + ColorTimeline.PREV_R]; + g = frames[i + ColorTimeline.PREV_G]; + b = frames[i + ColorTimeline.PREV_B]; + a = frames[i + ColorTimeline.PREV_A]; + } + else { + var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); + r = frames[frame + ColorTimeline.PREV_R]; + g = frames[frame + ColorTimeline.PREV_G]; + b = frames[frame + ColorTimeline.PREV_B]; + a = frames[frame + ColorTimeline.PREV_A]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + ColorTimeline.R] - r) * percent; + g += (frames[frame + ColorTimeline.G] - g) * percent; + b += (frames[frame + ColorTimeline.B] - b) * percent; + a += (frames[frame + ColorTimeline.A] - a) * percent; + } + if (alpha == 1) + slot.color.set(r, g, b, a); + else { + var color = slot.color; + if (setupPose) + color.setFromColor(slot.data.color); + color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); + } + }; + ColorTimeline.ENTRIES = 5; + ColorTimeline.PREV_TIME = -5; + ColorTimeline.PREV_R = -4; + ColorTimeline.PREV_G = -3; + ColorTimeline.PREV_B = -2; + ColorTimeline.PREV_A = -1; + ColorTimeline.R = 1; + ColorTimeline.G = 2; + ColorTimeline.B = 3; + ColorTimeline.A = 4; + return ColorTimeline; + }(CurveTimeline)); + spine.ColorTimeline = ColorTimeline; + var TwoColorTimeline = (function (_super) { + __extends(TwoColorTimeline, _super); + function TwoColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); + } + TwoColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.twoColor << 24) + this.slotIndex; + }; + TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { + frameIndex *= TwoColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TwoColorTimeline.R] = r; + this.frames[frameIndex + TwoColorTimeline.G] = g; + this.frames[frameIndex + TwoColorTimeline.B] = b; + this.frames[frameIndex + TwoColorTimeline.A] = a; + this.frames[frameIndex + TwoColorTimeline.R2] = r2; + this.frames[frameIndex + TwoColorTimeline.G2] = g2; + this.frames[frameIndex + TwoColorTimeline.B2] = b2; + }; + TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + slot.color.setFromColor(slot.data.color); + slot.darkColor.setFromColor(slot.data.darkColor); + } + return; + } + var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; + if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + TwoColorTimeline.PREV_R]; + g = frames[i + TwoColorTimeline.PREV_G]; + b = frames[i + TwoColorTimeline.PREV_B]; + a = frames[i + TwoColorTimeline.PREV_A]; + r2 = frames[i + TwoColorTimeline.PREV_R2]; + g2 = frames[i + TwoColorTimeline.PREV_G2]; + b2 = frames[i + TwoColorTimeline.PREV_B2]; + } + else { + var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); + r = frames[frame + TwoColorTimeline.PREV_R]; + g = frames[frame + TwoColorTimeline.PREV_G]; + b = frames[frame + TwoColorTimeline.PREV_B]; + a = frames[frame + TwoColorTimeline.PREV_A]; + r2 = frames[frame + TwoColorTimeline.PREV_R2]; + g2 = frames[frame + TwoColorTimeline.PREV_G2]; + b2 = frames[frame + TwoColorTimeline.PREV_B2]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + TwoColorTimeline.R] - r) * percent; + g += (frames[frame + TwoColorTimeline.G] - g) * percent; + b += (frames[frame + TwoColorTimeline.B] - b) * percent; + a += (frames[frame + TwoColorTimeline.A] - a) * percent; + r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; + g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; + b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; + } + if (alpha == 1) { + slot.color.set(r, g, b, a); + slot.darkColor.set(r2, g2, b2, 1); + } + else { + var light = slot.color; + var dark = slot.darkColor; + if (setupPose) { + light.setFromColor(slot.data.color); + dark.setFromColor(slot.data.darkColor); + } + light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); + dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); + } + }; + TwoColorTimeline.ENTRIES = 8; + TwoColorTimeline.PREV_TIME = -8; + TwoColorTimeline.PREV_R = -7; + TwoColorTimeline.PREV_G = -6; + TwoColorTimeline.PREV_B = -5; + TwoColorTimeline.PREV_A = -4; + TwoColorTimeline.PREV_R2 = -3; + TwoColorTimeline.PREV_G2 = -2; + TwoColorTimeline.PREV_B2 = -1; + TwoColorTimeline.R = 1; + TwoColorTimeline.G = 2; + TwoColorTimeline.B = 3; + TwoColorTimeline.A = 4; + TwoColorTimeline.R2 = 5; + TwoColorTimeline.G2 = 6; + TwoColorTimeline.B2 = 7; + return TwoColorTimeline; + }(CurveTimeline)); + spine.TwoColorTimeline = TwoColorTimeline; + var AttachmentTimeline = (function () { + function AttachmentTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.attachmentNames = new Array(frameCount); + } + AttachmentTimeline.prototype.getPropertyId = function () { + return (TimelineType.attachment << 24) + this.slotIndex; + }; + AttachmentTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { + this.frames[frameIndex] = time; + this.attachmentNames[frameIndex] = attachmentName; + }; + AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + if (mixingOut && setupPose) { + var attachmentName_1 = slot.data.attachmentName; + slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + var attachmentName_2 = slot.data.attachmentName; + slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); + } + return; + } + var frameIndex = 0; + if (time >= frames[frames.length - 1]) + frameIndex = frames.length - 1; + else + frameIndex = Animation.binarySearch(frames, time, 1) - 1; + var attachmentName = this.attachmentNames[frameIndex]; + skeleton.slots[this.slotIndex] + .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); + }; + return AttachmentTimeline; + }()); + spine.AttachmentTimeline = AttachmentTimeline; + var DeformTimeline = (function (_super) { + __extends(DeformTimeline, _super); + function DeformTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount); + this.frameVertices = new Array(frameCount); + } + DeformTimeline.prototype.getPropertyId = function () { + return (TimelineType.deform << 24) + this.slotIndex; + }; + DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { + this.frames[frameIndex] = time; + this.frameVertices[frameIndex] = vertices; + }; + DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var slotAttachment = slot.getAttachment(); + if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) + return; + var frames = this.frames; + var verticesArray = slot.attachmentVertices; + if (time < frames[0]) { + if (setupPose) + spine.Utils.setArraySize(verticesArray, 0); + return; + } + var frameVertices = this.frameVertices; + var vertexCount = frameVertices[0].length; + if (verticesArray.length != vertexCount && !setupPose) + alpha = 1; + var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); + if (time >= frames[frames.length - 1]) { + var lastVertices = frameVertices[frames.length - 1]; + if (alpha == 1) { + spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var setup = setupVertices[i]; + vertices[i] = setup + (lastVertices[i] - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] = lastVertices[i] * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] += (lastVertices[i] - vertices[i]) * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time); + var prevVertices = frameVertices[frame - 1]; + var nextVertices = frameVertices[frame]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); + if (alpha == 1) { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = prev + (nextVertices[i] - prev) * percent; + } + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i], setup = setupVertices[i]; + vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; + } + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; + } + } + }; + return DeformTimeline; + }(CurveTimeline)); + spine.DeformTimeline = DeformTimeline; + var EventTimeline = (function () { + function EventTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.events = new Array(frameCount); + } + EventTimeline.prototype.getPropertyId = function () { + return TimelineType.event << 24; + }; + EventTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + EventTimeline.prototype.setFrame = function (frameIndex, event) { + this.frames[frameIndex] = event.time; + this.events[frameIndex] = event; + }; + EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + if (firedEvents == null) + return; + var frames = this.frames; + var frameCount = this.frames.length; + if (lastTime > time) { + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); + lastTime = -1; + } + else if (lastTime >= frames[frameCount - 1]) + return; + if (time < frames[0]) + return; + var frame = 0; + if (lastTime < frames[0]) + frame = 0; + else { + frame = Animation.binarySearch(frames, lastTime); + var frameTime = frames[frame]; + while (frame > 0) { + if (frames[frame - 1] != frameTime) + break; + frame--; + } + } + for (; frame < frameCount && time >= frames[frame]; frame++) + firedEvents.push(this.events[frame]); + }; + return EventTimeline; + }()); + spine.EventTimeline = EventTimeline; + var DrawOrderTimeline = (function () { + function DrawOrderTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.drawOrders = new Array(frameCount); + } + DrawOrderTimeline.prototype.getPropertyId = function () { + return TimelineType.drawOrder << 24; + }; + DrawOrderTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { + this.frames[frameIndex] = time; + this.drawOrders[frameIndex] = drawOrder; + }; + DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var drawOrder = skeleton.drawOrder; + var slots = skeleton.slots; + if (mixingOut && setupPose) { + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frame = 0; + if (time >= frames[frames.length - 1]) + frame = frames.length - 1; + else + frame = Animation.binarySearch(frames, time) - 1; + var drawOrderToSetupIndex = this.drawOrders[frame]; + if (drawOrderToSetupIndex == null) + spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); + else { + for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) + drawOrder[i] = slots[drawOrderToSetupIndex[i]]; + } + }; + return DrawOrderTimeline; + }()); + spine.DrawOrderTimeline = DrawOrderTimeline; + var IkConstraintTimeline = (function (_super) { + __extends(IkConstraintTimeline, _super); + function IkConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); + } + IkConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; + }; + IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { + frameIndex *= IkConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; + this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; + }; + IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.mix = constraint.data.mix; + constraint.bendDirection = constraint.data.bendDirection; + } + return; + } + if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { + if (setupPose) { + constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection + : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + return; + } + var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); + var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); + if (setupPose) { + constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + }; + IkConstraintTimeline.ENTRIES = 3; + IkConstraintTimeline.PREV_TIME = -3; + IkConstraintTimeline.PREV_MIX = -2; + IkConstraintTimeline.PREV_BEND_DIRECTION = -1; + IkConstraintTimeline.MIX = 1; + IkConstraintTimeline.BEND_DIRECTION = 2; + return IkConstraintTimeline; + }(CurveTimeline)); + spine.IkConstraintTimeline = IkConstraintTimeline; + var TransformConstraintTimeline = (function (_super) { + __extends(TransformConstraintTimeline, _super); + function TransformConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); + } + TransformConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; + }; + TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { + frameIndex *= TransformConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; + this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; + this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; + }; + TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.rotateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + return; + } + var rotate = 0, translate = 0, scale = 0, shear = 0; + if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { + var i = frames.length; + rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; + } + else { + var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); + rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; + scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; + shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; + } + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; + constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; + constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; + constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + constraint.scaleMix += (scale - constraint.scaleMix) * alpha; + constraint.shearMix += (shear - constraint.shearMix) * alpha; + } + }; + TransformConstraintTimeline.ENTRIES = 5; + TransformConstraintTimeline.PREV_TIME = -5; + TransformConstraintTimeline.PREV_ROTATE = -4; + TransformConstraintTimeline.PREV_TRANSLATE = -3; + TransformConstraintTimeline.PREV_SCALE = -2; + TransformConstraintTimeline.PREV_SHEAR = -1; + TransformConstraintTimeline.ROTATE = 1; + TransformConstraintTimeline.TRANSLATE = 2; + TransformConstraintTimeline.SCALE = 3; + TransformConstraintTimeline.SHEAR = 4; + return TransformConstraintTimeline; + }(CurveTimeline)); + spine.TransformConstraintTimeline = TransformConstraintTimeline; + var PathConstraintPositionTimeline = (function (_super) { + __extends(PathConstraintPositionTimeline, _super); + function PathConstraintPositionTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); + } + PathConstraintPositionTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; + }; + PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { + frameIndex *= PathConstraintPositionTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; + }; + PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.position = constraint.data.position; + return; + } + var position = 0; + if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) + position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); + position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); + position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; + } + if (setupPose) + constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; + else + constraint.position += (position - constraint.position) * alpha; + }; + PathConstraintPositionTimeline.ENTRIES = 2; + PathConstraintPositionTimeline.PREV_TIME = -2; + PathConstraintPositionTimeline.PREV_VALUE = -1; + PathConstraintPositionTimeline.VALUE = 1; + return PathConstraintPositionTimeline; + }(CurveTimeline)); + spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; + var PathConstraintSpacingTimeline = (function (_super) { + __extends(PathConstraintSpacingTimeline, _super); + function PathConstraintSpacingTimeline(frameCount) { + _super.call(this, frameCount); + } + PathConstraintSpacingTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; + }; + PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.spacing = constraint.data.spacing; + return; + } + var spacing = 0; + if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) + spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); + spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); + spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; + } + if (setupPose) + constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; + else + constraint.spacing += (spacing - constraint.spacing) * alpha; + }; + return PathConstraintSpacingTimeline; + }(PathConstraintPositionTimeline)); + spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; + var PathConstraintMixTimeline = (function (_super) { + __extends(PathConstraintMixTimeline, _super); + function PathConstraintMixTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); + } + PathConstraintMixTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; + }; + PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { + frameIndex *= PathConstraintMixTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; + }; + PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } + return; + } + var rotate = 0, translate = 0; + if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { + rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; + } + else { + var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); + rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; + } + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; + constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + } + }; + PathConstraintMixTimeline.ENTRIES = 3; + PathConstraintMixTimeline.PREV_TIME = -3; + PathConstraintMixTimeline.PREV_ROTATE = -2; + PathConstraintMixTimeline.PREV_TRANSLATE = -1; + PathConstraintMixTimeline.ROTATE = 1; + PathConstraintMixTimeline.TRANSLATE = 2; + return PathConstraintMixTimeline; + }(CurveTimeline)); + spine.PathConstraintMixTimeline = PathConstraintMixTimeline; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationState = (function () { - function AnimationState(data) { - this.tracks = new Array(); - this.events = new Array(); - this.listeners = new Array(); - this.queue = new EventQueue(this); - this.propertyIDs = new spine.IntSet(); - this.mixingTo = new Array(); - this.animationsChanged = false; - this.timeScale = 1; - this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); - this.data = data; - } - AnimationState.prototype.update = function (delta) { - delta *= this.timeScale; - var tracks = this.tracks; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null) - continue; - current.animationLast = current.nextAnimationLast; - current.trackLast = current.nextTrackLast; - var currentDelta = delta * current.timeScale; - if (current.delay > 0) { - current.delay -= currentDelta; - if (current.delay > 0) - continue; - currentDelta = -current.delay; - current.delay = 0; - } - var next = current.next; - if (next != null) { - var nextTime = current.trackLast - next.delay; - if (nextTime >= 0) { - next.delay = 0; - next.trackTime = nextTime + delta * next.timeScale; - current.trackTime += currentDelta; - this.setCurrent(i, next, true); - while (next.mixingFrom != null) { - next.mixTime += currentDelta; - next = next.mixingFrom; - } - continue; - } - } - else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { - tracks[i] = null; - this.queue.end(current); - this.disposeNext(current); - continue; - } - if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { - var from = current.mixingFrom; - current.mixingFrom = null; - while (from != null) { - this.queue.end(from); - from = from.mixingFrom; - } - } - current.trackTime += currentDelta; - } - this.queue.drain(); - }; - AnimationState.prototype.updateMixingFrom = function (to, delta) { - var from = to.mixingFrom; - if (from == null) - return true; - var finished = this.updateMixingFrom(from, delta); - if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { - if (from.totalAlpha == 0) { - to.mixingFrom = from.mixingFrom; - to.interruptAlpha = from.interruptAlpha; - this.queue.end(from); - } - return finished; - } - from.animationLast = from.nextAnimationLast; - from.trackLast = from.nextTrackLast; - from.trackTime += delta * from.timeScale; - to.mixTime += delta * to.timeScale; - return false; - }; - AnimationState.prototype.apply = function (skeleton) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (this.animationsChanged) - this._animationsChanged(); - var events = this.events; - var tracks = this.tracks; - var applied = false; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null || current.delay > 0) - continue; - applied = true; - var mix = current.alpha; - if (current.mixingFrom != null) - mix *= this.applyMixingFrom(current, skeleton); - else if (current.trackTime >= current.trackEnd && current.next == null) - mix = 0; - var animationLast = current.animationLast, animationTime = current.getAnimationTime(); - var timelineCount = current.animation.timelines.length; - var timelines = current.animation.timelines; - if (mix == 1) { - for (var ii = 0; ii < timelineCount; ii++) - timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); - } - else { - var timelineData = current.timelineData; - var firstFrame = current.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = current.timelinesRotation; - for (var ii = 0; ii < timelineCount; ii++) { - var timeline = timelines[ii]; - if (timeline instanceof spine.RotateTimeline) { - this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); - } - else - timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); - } - } - this.queueEvents(current, animationTime); - events.length = 0; - current.nextAnimationLast = animationTime; - current.nextTrackLast = current.trackTime; - } - this.queue.drain(); - return applied; - }; - AnimationState.prototype.applyMixingFrom = function (to, skeleton) { - var from = to.mixingFrom; - if (from.mixingFrom != null) - this.applyMixingFrom(from, skeleton); - var mix = 0; - if (to.mixDuration == 0) - mix = 1; - else { - mix = to.mixTime / to.mixDuration; - if (mix > 1) - mix = 1; - } - var events = mix < from.eventThreshold ? this.events : null; - var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; - var animationLast = from.animationLast, animationTime = from.getAnimationTime(); - var timelineCount = from.animation.timelines.length; - var timelines = from.animation.timelines; - var timelineData = from.timelineData; - var timelineDipMix = from.timelineDipMix; - var firstFrame = from.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = from.timelinesRotation; - var first = false; - var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; - from.totalAlpha = 0; - for (var i = 0; i < timelineCount; i++) { - var timeline = timelines[i]; - switch (timelineData[i]) { - case AnimationState.SUBSEQUENT: - first = false; - alpha = alphaMix; - break; - case AnimationState.FIRST: - first = true; - alpha = alphaMix; - break; - case AnimationState.DIP: - first = true; - alpha = alphaDip; - break; - default: - first = true; - alpha = alphaDip; - var dipMix = timelineDipMix[i]; - alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); - break; - } - from.totalAlpha += alpha; - if (timeline instanceof spine.RotateTimeline) - this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); - else { - if (!first) { - if (!attachments && timeline instanceof spine.AttachmentTimeline) - continue; - if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) - continue; - } - timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); - } - } - if (to.mixDuration > 0) - this.queueEvents(from, animationTime); - this.events.length = 0; - from.nextAnimationLast = animationTime; - from.nextTrackLast = from.trackTime; - return mix; - }; - AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { - if (firstFrame) - timelinesRotation[i] = 0; - if (alpha == 1) { - timeline.apply(skeleton, 0, time, null, 1, setupPose, false); - return; - } - var rotateTimeline = timeline; - var frames = rotateTimeline.frames; - var bone = skeleton.bones[rotateTimeline.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - var r2 = 0; - if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) - r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; - else { - var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); - var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); - r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - r2 = prevRotation + r2 * percent + bone.data.rotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - } - var r1 = setupPose ? bone.data.rotation : bone.rotation; - var total = 0, diff = r2 - r1; - if (diff == 0) { - total = timelinesRotation[i]; - } - else { - diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; - var lastTotal = 0, lastDiff = 0; - if (firstFrame) { - lastTotal = 0; - lastDiff = diff; - } - else { - lastTotal = timelinesRotation[i]; - lastDiff = timelinesRotation[i + 1]; - } - var current = diff > 0, dir = lastTotal >= 0; - if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { - if (Math.abs(lastTotal) > 180) - lastTotal += 360 * spine.MathUtils.signum(lastTotal); - dir = current; - } - total = diff + lastTotal - lastTotal % 360; - if (dir != current) - total += 360 * spine.MathUtils.signum(lastTotal); - timelinesRotation[i] = total; - } - timelinesRotation[i + 1] = diff; - r1 += total * alpha; - bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; - }; - AnimationState.prototype.queueEvents = function (entry, animationTime) { - var animationStart = entry.animationStart, animationEnd = entry.animationEnd; - var duration = animationEnd - animationStart; - var trackLastWrapped = entry.trackLast % duration; - var events = this.events; - var i = 0, n = events.length; - for (; i < n; i++) { - var event_1 = events[i]; - if (event_1.time < trackLastWrapped) - break; - if (event_1.time > animationEnd) - continue; - this.queue.event(entry, event_1); - } - if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) - : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { - this.queue.complete(entry); - } - for (; i < n; i++) { - var event_2 = events[i]; - if (event_2.time < animationStart) - continue; - this.queue.event(entry, events[i]); - } - }; - AnimationState.prototype.clearTracks = function () { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) - this.clearTrack(i); - this.tracks.length = 0; - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.clearTrack = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return; - var current = this.tracks[trackIndex]; - if (current == null) - return; - this.queue.end(current); - this.disposeNext(current); - var entry = current; - while (true) { - var from = entry.mixingFrom; - if (from == null) - break; - this.queue.end(from); - entry.mixingFrom = null; - entry = from; - } - this.tracks[current.trackIndex] = null; - this.queue.drain(); - }; - AnimationState.prototype.setCurrent = function (index, current, interrupt) { - var from = this.expandToIndex(index); - this.tracks[index] = current; - if (from != null) { - if (interrupt) - this.queue.interrupt(from); - current.mixingFrom = from; - current.mixTime = 0; - if (from.mixingFrom != null && from.mixDuration > 0) - current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); - from.timelinesRotation.length = 0; - } - this.queue.start(current); - }; - AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.setAnimationWith(trackIndex, animation, loop); - }; - AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { - if (animation == null) - throw new Error("animation cannot be null."); - var interrupt = true; - var current = this.expandToIndex(trackIndex); - if (current != null) { - if (current.nextTrackLast == -1) { - this.tracks[trackIndex] = current.mixingFrom; - this.queue.interrupt(current); - this.queue.end(current); - this.disposeNext(current); - current = current.mixingFrom; - interrupt = false; - } - else - this.disposeNext(current); - } - var entry = this.trackEntry(trackIndex, animation, loop, current); - this.setCurrent(trackIndex, entry, interrupt); - this.queue.drain(); - return entry; - }; - AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.addAnimationWith(trackIndex, animation, loop, delay); - }; - AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { - if (animation == null) - throw new Error("animation cannot be null."); - var last = this.expandToIndex(trackIndex); - if (last != null) { - while (last.next != null) - last = last.next; - } - var entry = this.trackEntry(trackIndex, animation, loop, last); - if (last == null) { - this.setCurrent(trackIndex, entry, true); - this.queue.drain(); - } - else { - last.next = entry; - if (delay <= 0) { - var duration = last.animationEnd - last.animationStart; - if (duration != 0) - delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); - else - delay = 0; - } - } - entry.delay = delay; - return entry; - }; - AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { - var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { - if (delay <= 0) - delay -= mixDuration; - var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.setEmptyAnimations = function (mixDuration) { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var current = this.tracks[i]; - if (current != null) - this.setEmptyAnimation(current.trackIndex, mixDuration); - } - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.expandToIndex = function (index) { - if (index < this.tracks.length) - return this.tracks[index]; - spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); - this.tracks.length = index + 1; - return null; - }; - AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { - var entry = this.trackEntryPool.obtain(); - entry.trackIndex = trackIndex; - entry.animation = animation; - entry.loop = loop; - entry.eventThreshold = 0; - entry.attachmentThreshold = 0; - entry.drawOrderThreshold = 0; - entry.animationStart = 0; - entry.animationEnd = animation.duration; - entry.animationLast = -1; - entry.nextAnimationLast = -1; - entry.delay = 0; - entry.trackTime = 0; - entry.trackLast = -1; - entry.nextTrackLast = -1; - entry.trackEnd = Number.MAX_VALUE; - entry.timeScale = 1; - entry.alpha = 1; - entry.interruptAlpha = 1; - entry.mixTime = 0; - entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); - return entry; - }; - AnimationState.prototype.disposeNext = function (entry) { - var next = entry.next; - while (next != null) { - this.queue.dispose(next); - next = next.next; - } - entry.next = null; - }; - AnimationState.prototype._animationsChanged = function () { - this.animationsChanged = false; - var propertyIDs = this.propertyIDs; - propertyIDs.clear(); - var mixingTo = this.mixingTo; - var lastEntry = null; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var entry = this.tracks[i]; - if (entry != null) { - entry.setTimelineData(lastEntry, mixingTo, propertyIDs); - lastEntry = entry; - } - } - }; - AnimationState.prototype.getCurrent = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return null; - return this.tracks[trackIndex]; - }; - AnimationState.prototype.addListener = function (listener) { - if (listener == null) - throw new Error("listener cannot be null."); - this.listeners.push(listener); - }; - AnimationState.prototype.removeListener = function (listener) { - var index = this.listeners.indexOf(listener); - if (index >= 0) - this.listeners.splice(index, 1); - }; - AnimationState.prototype.clearListeners = function () { - this.listeners.length = 0; - }; - AnimationState.prototype.clearListenerNotifications = function () { - this.queue.clear(); - }; - AnimationState.emptyAnimation = new spine.Animation("", [], 0); - AnimationState.SUBSEQUENT = 0; - AnimationState.FIRST = 1; - AnimationState.DIP = 2; - AnimationState.DIP_MIX = 3; - return AnimationState; - }()); - spine.AnimationState = AnimationState; - var TrackEntry = (function () { - function TrackEntry() { - this.timelineData = new Array(); - this.timelineDipMix = new Array(); - this.timelinesRotation = new Array(); - } - TrackEntry.prototype.reset = function () { - this.next = null; - this.mixingFrom = null; - this.animation = null; - this.listener = null; - this.timelineData.length = 0; - this.timelineDipMix.length = 0; - this.timelinesRotation.length = 0; - }; - TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { - if (to != null) - mixingToArray.push(to); - var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; - if (to != null) - mixingToArray.pop(); - var mixingTo = mixingToArray; - var mixingToLast = mixingToArray.length - 1; - var timelines = this.animation.timelines; - var timelinesCount = this.animation.timelines.length; - var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); - this.timelineDipMix.length = 0; - var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); - outer: for (var i = 0; i < timelinesCount; i++) { - var id = timelines[i].getPropertyId(); - if (!propertyIDs.add(id)) - timelineData[i] = AnimationState.SUBSEQUENT; - else if (to == null || !to.hasTimeline(id)) - timelineData[i] = AnimationState.FIRST; - else { - for (var ii = mixingToLast; ii >= 0; ii--) { - var entry = mixingTo[ii]; - if (!entry.hasTimeline(id)) { - if (entry.mixDuration > 0) { - timelineData[i] = AnimationState.DIP_MIX; - timelineDipMix[i] = entry; - continue outer; - } - } - } - timelineData[i] = AnimationState.DIP; - } - } - return lastEntry; - }; - TrackEntry.prototype.hasTimeline = function (id) { - var timelines = this.animation.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - if (timelines[i].getPropertyId() == id) - return true; - return false; - }; - TrackEntry.prototype.getAnimationTime = function () { - if (this.loop) { - var duration = this.animationEnd - this.animationStart; - if (duration == 0) - return this.animationStart; - return (this.trackTime % duration) + this.animationStart; - } - return Math.min(this.trackTime + this.animationStart, this.animationEnd); - }; - TrackEntry.prototype.setAnimationLast = function (animationLast) { - this.animationLast = animationLast; - this.nextAnimationLast = animationLast; - }; - TrackEntry.prototype.isComplete = function () { - return this.trackTime >= this.animationEnd - this.animationStart; - }; - TrackEntry.prototype.resetRotationDirections = function () { - this.timelinesRotation.length = 0; - }; - return TrackEntry; - }()); - spine.TrackEntry = TrackEntry; - var EventQueue = (function () { - function EventQueue(animState) { - this.objects = []; - this.drainDisabled = false; - this.animState = animState; - } - EventQueue.prototype.start = function (entry) { - this.objects.push(EventType.start); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.interrupt = function (entry) { - this.objects.push(EventType.interrupt); - this.objects.push(entry); - }; - EventQueue.prototype.end = function (entry) { - this.objects.push(EventType.end); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.dispose = function (entry) { - this.objects.push(EventType.dispose); - this.objects.push(entry); - }; - EventQueue.prototype.complete = function (entry) { - this.objects.push(EventType.complete); - this.objects.push(entry); - }; - EventQueue.prototype.event = function (entry, event) { - this.objects.push(EventType.event); - this.objects.push(entry); - this.objects.push(event); - }; - EventQueue.prototype.drain = function () { - if (this.drainDisabled) - return; - this.drainDisabled = true; - var objects = this.objects; - var listeners = this.animState.listeners; - for (var i = 0; i < objects.length; i += 2) { - var type = objects[i]; - var entry = objects[i + 1]; - switch (type) { - case EventType.start: - if (entry.listener != null && entry.listener.start) - entry.listener.start(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].start) - listeners[ii].start(entry); - break; - case EventType.interrupt: - if (entry.listener != null && entry.listener.interrupt) - entry.listener.interrupt(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].interrupt) - listeners[ii].interrupt(entry); - break; - case EventType.end: - if (entry.listener != null && entry.listener.end) - entry.listener.end(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].end) - listeners[ii].end(entry); - case EventType.dispose: - if (entry.listener != null && entry.listener.dispose) - entry.listener.dispose(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].dispose) - listeners[ii].dispose(entry); - this.animState.trackEntryPool.free(entry); - break; - case EventType.complete: - if (entry.listener != null && entry.listener.complete) - entry.listener.complete(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].complete) - listeners[ii].complete(entry); - break; - case EventType.event: - var event_3 = objects[i++ + 2]; - if (entry.listener != null && entry.listener.event) - entry.listener.event(entry, event_3); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].event) - listeners[ii].event(entry, event_3); - break; - } - } - this.clear(); - this.drainDisabled = false; - }; - EventQueue.prototype.clear = function () { - this.objects.length = 0; - }; - return EventQueue; - }()); - spine.EventQueue = EventQueue; - (function (EventType) { - EventType[EventType["start"] = 0] = "start"; - EventType[EventType["interrupt"] = 1] = "interrupt"; - EventType[EventType["end"] = 2] = "end"; - EventType[EventType["dispose"] = 3] = "dispose"; - EventType[EventType["complete"] = 4] = "complete"; - EventType[EventType["event"] = 5] = "event"; - })(spine.EventType || (spine.EventType = {})); - var EventType = spine.EventType; - var AnimationStateAdapter2 = (function () { - function AnimationStateAdapter2() { - } - AnimationStateAdapter2.prototype.start = function (entry) { - }; - AnimationStateAdapter2.prototype.interrupt = function (entry) { - }; - AnimationStateAdapter2.prototype.end = function (entry) { - }; - AnimationStateAdapter2.prototype.dispose = function (entry) { - }; - AnimationStateAdapter2.prototype.complete = function (entry) { - }; - AnimationStateAdapter2.prototype.event = function (entry, event) { - }; - return AnimationStateAdapter2; - }()); - spine.AnimationStateAdapter2 = AnimationStateAdapter2; + var AnimationState = (function () { + function AnimationState(data) { + this.tracks = new Array(); + this.events = new Array(); + this.listeners = new Array(); + this.queue = new EventQueue(this); + this.propertyIDs = new spine.IntSet(); + this.mixingTo = new Array(); + this.animationsChanged = false; + this.timeScale = 1; + this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); + this.data = data; + } + AnimationState.prototype.update = function (delta) { + delta *= this.timeScale; + var tracks = this.tracks; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null) + continue; + current.animationLast = current.nextAnimationLast; + current.trackLast = current.nextTrackLast; + var currentDelta = delta * current.timeScale; + if (current.delay > 0) { + current.delay -= currentDelta; + if (current.delay > 0) + continue; + currentDelta = -current.delay; + current.delay = 0; + } + var next = current.next; + if (next != null) { + var nextTime = current.trackLast - next.delay; + if (nextTime >= 0) { + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; + this.setCurrent(i, next, true); + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + } + else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; + } + if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { + var from = current.mixingFrom; + current.mixingFrom = null; + while (from != null) { + this.queue.end(from); + from = from.mixingFrom; + } + } + current.trackTime += currentDelta; + } + this.queue.drain(); + }; + AnimationState.prototype.updateMixingFrom = function (to, delta) { + var from = to.mixingFrom; + if (from == null) + return true; + var finished = this.updateMixingFrom(from, delta); + if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { + if (from.totalAlpha == 0) { + to.mixingFrom = from.mixingFrom; + to.interruptAlpha = from.interruptAlpha; + this.queue.end(from); + } + return finished; + } + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + from.trackTime += delta * from.timeScale; + to.mixTime += delta * to.timeScale; + return false; + }; + AnimationState.prototype.apply = function (skeleton) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (this.animationsChanged) + this._animationsChanged(); + var events = this.events; + var tracks = this.tracks; + var applied = false; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null || current.delay > 0) + continue; + applied = true; + var mix = current.alpha; + if (current.mixingFrom != null) + mix *= this.applyMixingFrom(current, skeleton); + else if (current.trackTime >= current.trackEnd && current.next == null) + mix = 0; + var animationLast = current.animationLast, animationTime = current.getAnimationTime(); + var timelineCount = current.animation.timelines.length; + var timelines = current.animation.timelines; + if (mix == 1) { + for (var ii = 0; ii < timelineCount; ii++) + timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); + } + else { + var timelineData = current.timelineData; + var firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = current.timelinesRotation; + for (var ii = 0; ii < timelineCount; ii++) { + var timeline = timelines[ii]; + if (timeline instanceof spine.RotateTimeline) { + this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); + } + else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); + } + } + this.queueEvents(current, animationTime); + events.length = 0; + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; + } + this.queue.drain(); + return applied; + }; + AnimationState.prototype.applyMixingFrom = function (to, skeleton) { + var from = to.mixingFrom; + if (from.mixingFrom != null) + this.applyMixingFrom(from, skeleton); + var mix = 0; + if (to.mixDuration == 0) + mix = 1; + else { + mix = to.mixTime / to.mixDuration; + if (mix > 1) + mix = 1; + } + var events = mix < from.eventThreshold ? this.events : null; + var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; + var animationLast = from.animationLast, animationTime = from.getAnimationTime(); + var timelineCount = from.animation.timelines.length; + var timelines = from.animation.timelines; + var timelineData = from.timelineData; + var timelineDipMix = from.timelineDipMix; + var firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = from.timelinesRotation; + var first = false; + var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; + from.totalAlpha = 0; + for (var i = 0; i < timelineCount; i++) { + var timeline = timelines[i]; + switch (timelineData[i]) { + case AnimationState.SUBSEQUENT: + first = false; + alpha = alphaMix; + break; + case AnimationState.FIRST: + first = true; + alpha = alphaMix; + break; + case AnimationState.DIP: + first = true; + alpha = alphaDip; + break; + default: + first = true; + alpha = alphaDip; + var dipMix = timelineDipMix[i]; + alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); + break; + } + from.totalAlpha += alpha; + if (timeline instanceof spine.RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); + else { + if (!first) { + if (!attachments && timeline instanceof spine.AttachmentTimeline) + continue; + if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) + continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); + } + } + if (to.mixDuration > 0) + this.queueEvents(from, animationTime); + this.events.length = 0; + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + }; + AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { + if (firstFrame) + timelinesRotation[i] = 0; + if (alpha == 1) { + timeline.apply(skeleton, 0, time, null, 1, setupPose, false); + return; + } + var rotateTimeline = timeline; + var frames = rotateTimeline.frames; + var bone = skeleton.bones[rotateTimeline.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + var r2 = 0; + if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) + r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; + else { + var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); + var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); + r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + r2 = prevRotation + r2 * percent + bone.data.rotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + } + var r1 = setupPose ? bone.data.rotation : bone.rotation; + var total = 0, diff = r2 - r1; + if (diff == 0) { + total = timelinesRotation[i]; + } + else { + diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; + var lastTotal = 0, lastDiff = 0; + if (firstFrame) { + lastTotal = 0; + lastDiff = diff; + } + else { + lastTotal = timelinesRotation[i]; + lastDiff = timelinesRotation[i + 1]; + } + var current = diff > 0, dir = lastTotal >= 0; + if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { + if (Math.abs(lastTotal) > 180) + lastTotal += 360 * spine.MathUtils.signum(lastTotal); + dir = current; + } + total = diff + lastTotal - lastTotal % 360; + if (dir != current) + total += 360 * spine.MathUtils.signum(lastTotal); + timelinesRotation[i] = total; + } + timelinesRotation[i + 1] = diff; + r1 += total * alpha; + bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; + }; + AnimationState.prototype.queueEvents = function (entry, animationTime) { + var animationStart = entry.animationStart, animationEnd = entry.animationEnd; + var duration = animationEnd - animationStart; + var trackLastWrapped = entry.trackLast % duration; + var events = this.events; + var i = 0, n = events.length; + for (; i < n; i++) { + var event_1 = events[i]; + if (event_1.time < trackLastWrapped) + break; + if (event_1.time > animationEnd) + continue; + this.queue.event(entry, event_1); + } + if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) + : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { + this.queue.complete(entry); + } + for (; i < n; i++) { + var event_2 = events[i]; + if (event_2.time < animationStart) + continue; + this.queue.event(entry, events[i]); + } + }; + AnimationState.prototype.clearTracks = function () { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) + this.clearTrack(i); + this.tracks.length = 0; + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.clearTrack = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return; + var current = this.tracks[trackIndex]; + if (current == null) + return; + this.queue.end(current); + this.disposeNext(current); + var entry = current; + while (true) { + var from = entry.mixingFrom; + if (from == null) + break; + this.queue.end(from); + entry.mixingFrom = null; + entry = from; + } + this.tracks[current.trackIndex] = null; + this.queue.drain(); + }; + AnimationState.prototype.setCurrent = function (index, current, interrupt) { + var from = this.expandToIndex(index); + this.tracks[index] = current; + if (from != null) { + if (interrupt) + this.queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + if (from.mixingFrom != null && from.mixDuration > 0) + current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); + from.timelinesRotation.length = 0; + } + this.queue.start(current); + }; + AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.setAnimationWith(trackIndex, animation, loop); + }; + AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { + if (animation == null) + throw new Error("animation cannot be null."); + var interrupt = true; + var current = this.expandToIndex(trackIndex); + if (current != null) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = current.mixingFrom; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = current.mixingFrom; + interrupt = false; + } + else + this.disposeNext(current); + } + var entry = this.trackEntry(trackIndex, animation, loop, current); + this.setCurrent(trackIndex, entry, interrupt); + this.queue.drain(); + return entry; + }; + AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.addAnimationWith(trackIndex, animation, loop, delay); + }; + AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { + if (animation == null) + throw new Error("animation cannot be null."); + var last = this.expandToIndex(trackIndex); + if (last != null) { + while (last.next != null) + last = last.next; + } + var entry = this.trackEntry(trackIndex, animation, loop, last); + if (last == null) { + this.setCurrent(trackIndex, entry, true); + this.queue.drain(); + } + else { + last.next = entry; + if (delay <= 0) { + var duration = last.animationEnd - last.animationStart; + if (duration != 0) + delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); + else + delay = 0; + } + } + entry.delay = delay; + return entry; + }; + AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { + var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { + if (delay <= 0) + delay -= mixDuration; + var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.setEmptyAnimations = function (mixDuration) { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var current = this.tracks[i]; + if (current != null) + this.setEmptyAnimation(current.trackIndex, mixDuration); + } + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.expandToIndex = function (index) { + if (index < this.tracks.length) + return this.tracks[index]; + spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); + this.tracks.length = index + 1; + return null; + }; + AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { + var entry = this.trackEntryPool.obtain(); + entry.trackIndex = trackIndex; + entry.animation = animation; + entry.loop = loop; + entry.eventThreshold = 0; + entry.attachmentThreshold = 0; + entry.drawOrderThreshold = 0; + entry.animationStart = 0; + entry.animationEnd = animation.duration; + entry.animationLast = -1; + entry.nextAnimationLast = -1; + entry.delay = 0; + entry.trackTime = 0; + entry.trackLast = -1; + entry.nextTrackLast = -1; + entry.trackEnd = Number.MAX_VALUE; + entry.timeScale = 1; + entry.alpha = 1; + entry.interruptAlpha = 1; + entry.mixTime = 0; + entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); + return entry; + }; + AnimationState.prototype.disposeNext = function (entry) { + var next = entry.next; + while (next != null) { + this.queue.dispose(next); + next = next.next; + } + entry.next = null; + }; + AnimationState.prototype._animationsChanged = function () { + this.animationsChanged = false; + var propertyIDs = this.propertyIDs; + propertyIDs.clear(); + var mixingTo = this.mixingTo; + var lastEntry = null; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var entry = this.tracks[i]; + if (entry != null) { + entry.setTimelineData(lastEntry, mixingTo, propertyIDs); + lastEntry = entry; + } + } + }; + AnimationState.prototype.getCurrent = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return null; + return this.tracks[trackIndex]; + }; + AnimationState.prototype.addListener = function (listener) { + if (listener == null) + throw new Error("listener cannot be null."); + this.listeners.push(listener); + }; + AnimationState.prototype.removeListener = function (listener) { + var index = this.listeners.indexOf(listener); + if (index >= 0) + this.listeners.splice(index, 1); + }; + AnimationState.prototype.clearListeners = function () { + this.listeners.length = 0; + }; + AnimationState.prototype.clearListenerNotifications = function () { + this.queue.clear(); + }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); + AnimationState.SUBSEQUENT = 0; + AnimationState.FIRST = 1; + AnimationState.DIP = 2; + AnimationState.DIP_MIX = 3; + return AnimationState; + }()); + spine.AnimationState = AnimationState; + var TrackEntry = (function () { + function TrackEntry() { + this.timelineData = new Array(); + this.timelineDipMix = new Array(); + this.timelinesRotation = new Array(); + } + TrackEntry.prototype.reset = function () { + this.next = null; + this.mixingFrom = null; + this.animation = null; + this.listener = null; + this.timelineData.length = 0; + this.timelineDipMix.length = 0; + this.timelinesRotation.length = 0; + }; + TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { + if (to != null) + mixingToArray.push(to); + var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; + if (to != null) + mixingToArray.pop(); + var mixingTo = mixingToArray; + var mixingToLast = mixingToArray.length - 1; + var timelines = this.animation.timelines; + var timelinesCount = this.animation.timelines.length; + var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); + this.timelineDipMix.length = 0; + var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); + outer: for (var i = 0; i < timelinesCount; i++) { + var id = timelines[i].getPropertyId(); + if (!propertyIDs.add(id)) + timelineData[i] = AnimationState.SUBSEQUENT; + else if (to == null || !to.hasTimeline(id)) + timelineData[i] = AnimationState.FIRST; + else { + for (var ii = mixingToLast; ii >= 0; ii--) { + var entry = mixingTo[ii]; + if (!entry.hasTimeline(id)) { + if (entry.mixDuration > 0) { + timelineData[i] = AnimationState.DIP_MIX; + timelineDipMix[i] = entry; + continue outer; + } + } + } + timelineData[i] = AnimationState.DIP; + } + } + return lastEntry; + }; + TrackEntry.prototype.hasTimeline = function (id) { + var timelines = this.animation.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + if (timelines[i].getPropertyId() == id) + return true; + return false; + }; + TrackEntry.prototype.getAnimationTime = function () { + if (this.loop) { + var duration = this.animationEnd - this.animationStart; + if (duration == 0) + return this.animationStart; + return (this.trackTime % duration) + this.animationStart; + } + return Math.min(this.trackTime + this.animationStart, this.animationEnd); + }; + TrackEntry.prototype.setAnimationLast = function (animationLast) { + this.animationLast = animationLast; + this.nextAnimationLast = animationLast; + }; + TrackEntry.prototype.isComplete = function () { + return this.trackTime >= this.animationEnd - this.animationStart; + }; + TrackEntry.prototype.resetRotationDirections = function () { + this.timelinesRotation.length = 0; + }; + return TrackEntry; + }()); + spine.TrackEntry = TrackEntry; + var EventQueue = (function () { + function EventQueue(animState) { + this.objects = []; + this.drainDisabled = false; + this.animState = animState; + } + EventQueue.prototype.start = function (entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.interrupt = function (entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); + }; + EventQueue.prototype.end = function (entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.dispose = function (entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); + }; + EventQueue.prototype.complete = function (entry) { + this.objects.push(EventType.complete); + this.objects.push(entry); + }; + EventQueue.prototype.event = function (entry, event) { + this.objects.push(EventType.event); + this.objects.push(entry); + this.objects.push(event); + }; + EventQueue.prototype.drain = function () { + if (this.drainDisabled) + return; + this.drainDisabled = true; + var objects = this.objects; + var listeners = this.animState.listeners; + for (var i = 0; i < objects.length; i += 2) { + var type = objects[i]; + var entry = objects[i + 1]; + switch (type) { + case EventType.start: + if (entry.listener != null && entry.listener.start) + entry.listener.start(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].start) + listeners[ii].start(entry); + break; + case EventType.interrupt: + if (entry.listener != null && entry.listener.interrupt) + entry.listener.interrupt(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].interrupt) + listeners[ii].interrupt(entry); + break; + case EventType.end: + if (entry.listener != null && entry.listener.end) + entry.listener.end(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].end) + listeners[ii].end(entry); + case EventType.dispose: + if (entry.listener != null && entry.listener.dispose) + entry.listener.dispose(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].dispose) + listeners[ii].dispose(entry); + this.animState.trackEntryPool.free(entry); + break; + case EventType.complete: + if (entry.listener != null && entry.listener.complete) + entry.listener.complete(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].complete) + listeners[ii].complete(entry); + break; + case EventType.event: + var event_3 = objects[i++ + 2]; + if (entry.listener != null && entry.listener.event) + entry.listener.event(entry, event_3); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].event) + listeners[ii].event(entry, event_3); + break; + } + } + this.clear(); + this.drainDisabled = false; + }; + EventQueue.prototype.clear = function () { + this.objects.length = 0; + }; + return EventQueue; + }()); + spine.EventQueue = EventQueue; + (function (EventType) { + EventType[EventType["start"] = 0] = "start"; + EventType[EventType["interrupt"] = 1] = "interrupt"; + EventType[EventType["end"] = 2] = "end"; + EventType[EventType["dispose"] = 3] = "dispose"; + EventType[EventType["complete"] = 4] = "complete"; + EventType[EventType["event"] = 5] = "event"; + })(spine.EventType || (spine.EventType = {})); + var EventType = spine.EventType; + var AnimationStateAdapter2 = (function () { + function AnimationStateAdapter2() { + } + AnimationStateAdapter2.prototype.start = function (entry) { + }; + AnimationStateAdapter2.prototype.interrupt = function (entry) { + }; + AnimationStateAdapter2.prototype.end = function (entry) { + }; + AnimationStateAdapter2.prototype.dispose = function (entry) { + }; + AnimationStateAdapter2.prototype.complete = function (entry) { + }; + AnimationStateAdapter2.prototype.event = function (entry, event) { + }; + return AnimationStateAdapter2; + }()); + spine.AnimationStateAdapter2 = AnimationStateAdapter2; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationStateData = (function () { - function AnimationStateData(skeletonData) { - this.animationToMixTime = {}; - this.defaultMix = 0; - if (skeletonData == null) - throw new Error("skeletonData cannot be null."); - this.skeletonData = skeletonData; - } - AnimationStateData.prototype.setMix = function (fromName, toName, duration) { - var from = this.skeletonData.findAnimation(fromName); - if (from == null) - throw new Error("Animation not found: " + fromName); - var to = this.skeletonData.findAnimation(toName); - if (to == null) - throw new Error("Animation not found: " + toName); - this.setMixWith(from, to, duration); - }; - AnimationStateData.prototype.setMixWith = function (from, to, duration) { - if (from == null) - throw new Error("from cannot be null."); - if (to == null) - throw new Error("to cannot be null."); - var key = from.name + to.name; - this.animationToMixTime[key] = duration; - }; - AnimationStateData.prototype.getMix = function (from, to) { - var key = from.name + to.name; - var value = this.animationToMixTime[key]; - return value === undefined ? this.defaultMix : value; - }; - return AnimationStateData; - }()); - spine.AnimationStateData = AnimationStateData; + var AnimationStateData = (function () { + function AnimationStateData(skeletonData) { + this.animationToMixTime = {}; + this.defaultMix = 0; + if (skeletonData == null) + throw new Error("skeletonData cannot be null."); + this.skeletonData = skeletonData; + } + AnimationStateData.prototype.setMix = function (fromName, toName, duration) { + var from = this.skeletonData.findAnimation(fromName); + if (from == null) + throw new Error("Animation not found: " + fromName); + var to = this.skeletonData.findAnimation(toName); + if (to == null) + throw new Error("Animation not found: " + toName); + this.setMixWith(from, to, duration); + }; + AnimationStateData.prototype.setMixWith = function (from, to, duration) { + if (from == null) + throw new Error("from cannot be null."); + if (to == null) + throw new Error("to cannot be null."); + var key = from.name + to.name; + this.animationToMixTime[key] = duration; + }; + AnimationStateData.prototype.getMix = function (from, to) { + var key = from.name + to.name; + var value = this.animationToMixTime[key]; + return value === undefined ? this.defaultMix : value; + }; + return AnimationStateData; + }()); + spine.AnimationStateData = AnimationStateData; })(spine || (spine = {})); var spine; (function (spine) { - var AssetManager = (function () { - function AssetManager(textureLoader, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.assets = {}; - this.errors = {}; - this.toLoad = 0; - this.loaded = 0; - this.textureLoader = textureLoader; - this.pathPrefix = pathPrefix; - } - AssetManager.prototype.loadText = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.assets[path] = request.responseText; - if (success) - success(path, request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - if (error) - error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); - } - _this.toLoad--; - _this.loaded++; - } - }; - request.open("GET", path, true); - request.send(); - }; - AssetManager.prototype.loadTexture = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = path; - }; - AssetManager.prototype.loadTextureData = function (path, data, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = data; - }; - AssetManager.prototype.get = function (path) { - path = this.pathPrefix + path; - return this.assets[path]; - }; - AssetManager.prototype.remove = function (path) { - path = this.pathPrefix + path; - var asset = this.assets[path]; - if (asset.dispose) - asset.dispose(); - this.assets[path] = null; - }; - AssetManager.prototype.removeAll = function () { - for (var key in this.assets) { - var asset = this.assets[key]; - if (asset.dispose) - asset.dispose(); - } - this.assets = {}; - }; - AssetManager.prototype.isLoadingComplete = function () { - return this.toLoad == 0; - }; - AssetManager.prototype.getToLoad = function () { - return this.toLoad; - }; - AssetManager.prototype.getLoaded = function () { - return this.loaded; - }; - AssetManager.prototype.dispose = function () { - this.removeAll(); - }; - AssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - AssetManager.prototype.getErrors = function () { - return this.errors; - }; - return AssetManager; - }()); - spine.AssetManager = AssetManager; + var AssetManager = (function () { + function AssetManager(textureLoader, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.assets = {}; + this.errors = {}; + this.toLoad = 0; + this.loaded = 0; + this.textureLoader = textureLoader; + this.pathPrefix = pathPrefix; + } + AssetManager.prototype.loadText = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.assets[path] = request.responseText; + if (success) + success(path, request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + if (error) + error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); + } + _this.toLoad--; + _this.loaded++; + } + }; + request.open("GET", path, true); + request.send(); + }; + AssetManager.prototype.loadTexture = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = path; + }; + AssetManager.prototype.loadTextureData = function (path, data, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = data; + }; + AssetManager.prototype.get = function (path) { + path = this.pathPrefix + path; + return this.assets[path]; + }; + AssetManager.prototype.remove = function (path) { + path = this.pathPrefix + path; + var asset = this.assets[path]; + if (asset.dispose) + asset.dispose(); + this.assets[path] = null; + }; + AssetManager.prototype.removeAll = function () { + for (var key in this.assets) { + var asset = this.assets[key]; + if (asset.dispose) + asset.dispose(); + } + this.assets = {}; + }; + AssetManager.prototype.isLoadingComplete = function () { + return this.toLoad == 0; + }; + AssetManager.prototype.getToLoad = function () { + return this.toLoad; + }; + AssetManager.prototype.getLoaded = function () { + return this.loaded; + }; + AssetManager.prototype.dispose = function () { + this.removeAll(); + }; + AssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + AssetManager.prototype.getErrors = function () { + return this.errors; + }; + return AssetManager; + }()); + spine.AssetManager = AssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var AtlasAttachmentLoader = (function () { - function AtlasAttachmentLoader(atlas) { - this.atlas = atlas; - } - AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.RegionAttachment(name); - attachment.setRegion(region); - return attachment; - }; - AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.MeshAttachment(name); - attachment.region = region; - return attachment; - }; - AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { - return new spine.BoundingBoxAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { - return new spine.PathAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { - return new spine.PointAttachment(name); - }; - AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { - return new spine.ClippingAttachment(name); - }; - return AtlasAttachmentLoader; - }()); - spine.AtlasAttachmentLoader = AtlasAttachmentLoader; + var AtlasAttachmentLoader = (function () { + function AtlasAttachmentLoader(atlas) { + this.atlas = atlas; + } + AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.RegionAttachment(name); + attachment.setRegion(region); + return attachment; + }; + AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.MeshAttachment(name); + attachment.region = region; + return attachment; + }; + AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { + return new spine.BoundingBoxAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { + return new spine.PathAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { + return new spine.PointAttachment(name); + }; + AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { + return new spine.ClippingAttachment(name); + }; + return AtlasAttachmentLoader; + }()); + spine.AtlasAttachmentLoader = AtlasAttachmentLoader; })(spine || (spine = {})); var spine; (function (spine) { - var Attachment = (function () { - function Attachment(name) { - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return Attachment; - }()); - spine.Attachment = Attachment; - var VertexAttachment = (function (_super) { - __extends(VertexAttachment, _super); - function VertexAttachment(name) { - _super.call(this, name); - this.worldVerticesLength = 0; - } - VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { - count = offset + (count >> 1) * stride; - var skeleton = slot.bone.skeleton; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices; - var bones = this.bones; - if (bones == null) { - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - var x = bone.worldX; - var y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { - var vx = vertices[v_1], vy = vertices[v_1 + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - } - return; - } - var v = 0, skip = 0; - for (var i = 0; i < start; i += 2) { - var n = bones[v]; - v += n + 1; - skip += n; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = offset, b = skip * 3; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - else { - var deform = deformArray; - for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3, f += 2) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - }; - VertexAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment; - }; - return VertexAttachment; - }(Attachment)); - spine.VertexAttachment = VertexAttachment; + var Attachment = (function () { + function Attachment(name) { + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return Attachment; + }()); + spine.Attachment = Attachment; + var VertexAttachment = (function (_super) { + __extends(VertexAttachment, _super); + function VertexAttachment(name) { + _super.call(this, name); + this.worldVerticesLength = 0; + } + VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { + count = offset + (count >> 1) * stride; + var skeleton = slot.bone.skeleton; + var deformArray = slot.attachmentVertices; + var vertices = this.vertices; + var bones = this.bones; + if (bones == null) { + if (deformArray.length > 0) + vertices = deformArray; + var bone = slot.bone; + var x = bone.worldX; + var y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { + var vx = vertices[v_1], vy = vertices[v_1 + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + } + return; + } + var v = 0, skip = 0; + for (var i = 0; i < start; i += 2) { + var n = bones[v]; + v += n + 1; + skip += n; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = offset, b = skip * 3; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + else { + var deform = deformArray; + for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3, f += 2) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + }; + VertexAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment; + }; + return VertexAttachment; + }(Attachment)); + spine.VertexAttachment = VertexAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (AttachmentType) { - AttachmentType[AttachmentType["Region"] = 0] = "Region"; - AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; - AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; - AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; - AttachmentType[AttachmentType["Path"] = 4] = "Path"; - AttachmentType[AttachmentType["Point"] = 5] = "Point"; - })(spine.AttachmentType || (spine.AttachmentType = {})); - var AttachmentType = spine.AttachmentType; + (function (AttachmentType) { + AttachmentType[AttachmentType["Region"] = 0] = "Region"; + AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; + AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; + AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; + AttachmentType[AttachmentType["Path"] = 4] = "Path"; + AttachmentType[AttachmentType["Point"] = 5] = "Point"; + })(spine.AttachmentType || (spine.AttachmentType = {})); + var AttachmentType = spine.AttachmentType; })(spine || (spine = {})); var spine; (function (spine) { - var BoundingBoxAttachment = (function (_super) { - __extends(BoundingBoxAttachment, _super); - function BoundingBoxAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - } - return BoundingBoxAttachment; - }(spine.VertexAttachment)); - spine.BoundingBoxAttachment = BoundingBoxAttachment; + var BoundingBoxAttachment = (function (_super) { + __extends(BoundingBoxAttachment, _super); + function BoundingBoxAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + } + return BoundingBoxAttachment; + }(spine.VertexAttachment)); + spine.BoundingBoxAttachment = BoundingBoxAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var ClippingAttachment = (function (_super) { - __extends(ClippingAttachment, _super); - function ClippingAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); - } - return ClippingAttachment; - }(spine.VertexAttachment)); - spine.ClippingAttachment = ClippingAttachment; + var ClippingAttachment = (function (_super) { + __extends(ClippingAttachment, _super); + function ClippingAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); + } + return ClippingAttachment; + }(spine.VertexAttachment)); + spine.ClippingAttachment = ClippingAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var MeshAttachment = (function (_super) { - __extends(MeshAttachment, _super); - function MeshAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - this.inheritDeform = false; - this.tempColor = new spine.Color(0, 0, 0, 0); - } - MeshAttachment.prototype.updateUVs = function () { - var u = 0, v = 0, width = 0, height = 0; - if (this.region == null) { - u = v = 0; - width = height = 1; - } - else { - u = this.region.u; - v = this.region.v; - width = this.region.u2 - u; - height = this.region.v2 - v; - } - var regionUVs = this.regionUVs; - if (this.uvs == null || this.uvs.length != regionUVs.length) - this.uvs = spine.Utils.newFloatArray(regionUVs.length); - var uvs = this.uvs; - if (this.region.rotate) { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i + 1] * width; - uvs[i + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i] * width; - uvs[i + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); - }; - MeshAttachment.prototype.getParentMesh = function () { - return this.parentMesh; - }; - MeshAttachment.prototype.setParentMesh = function (parentMesh) { - this.parentMesh = parentMesh; - if (parentMesh != null) { - this.bones = parentMesh.bones; - this.vertices = parentMesh.vertices; - this.worldVerticesLength = parentMesh.worldVerticesLength; - this.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - this.worldVerticesLength = parentMesh.worldVerticesLength; - } - }; - return MeshAttachment; - }(spine.VertexAttachment)); - spine.MeshAttachment = MeshAttachment; + var MeshAttachment = (function (_super) { + __extends(MeshAttachment, _super); + function MeshAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + this.inheritDeform = false; + this.tempColor = new spine.Color(0, 0, 0, 0); + } + MeshAttachment.prototype.updateUVs = function () { + var u = 0, v = 0, width = 0, height = 0; + if (this.region == null) { + u = v = 0; + width = height = 1; + } + else { + u = this.region.u; + v = this.region.v; + width = this.region.u2 - u; + height = this.region.v2 - v; + } + var regionUVs = this.regionUVs; + if (this.uvs == null || this.uvs.length != regionUVs.length) + this.uvs = spine.Utils.newFloatArray(regionUVs.length); + var uvs = this.uvs; + if (this.region.rotate) { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); + }; + MeshAttachment.prototype.getParentMesh = function () { + return this.parentMesh; + }; + MeshAttachment.prototype.setParentMesh = function (parentMesh) { + this.parentMesh = parentMesh; + if (parentMesh != null) { + this.bones = parentMesh.bones; + this.vertices = parentMesh.vertices; + this.worldVerticesLength = parentMesh.worldVerticesLength; + this.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + this.worldVerticesLength = parentMesh.worldVerticesLength; + } + }; + return MeshAttachment; + }(spine.VertexAttachment)); + spine.MeshAttachment = MeshAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PathAttachment = (function (_super) { - __extends(PathAttachment, _super); - function PathAttachment(name) { - _super.call(this, name); - this.closed = false; - this.constantSpeed = false; - this.color = new spine.Color(1, 1, 1, 1); - } - return PathAttachment; - }(spine.VertexAttachment)); - spine.PathAttachment = PathAttachment; + var PathAttachment = (function (_super) { + __extends(PathAttachment, _super); + function PathAttachment(name) { + _super.call(this, name); + this.closed = false; + this.constantSpeed = false; + this.color = new spine.Color(1, 1, 1, 1); + } + return PathAttachment; + }(spine.VertexAttachment)); + spine.PathAttachment = PathAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PointAttachment = (function (_super) { - __extends(PointAttachment, _super); - function PointAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.38, 0.94, 0, 1); - } - PointAttachment.prototype.computeWorldPosition = function (bone, point) { - point.x = this.x * bone.a + this.y * bone.b + bone.worldX; - point.y = this.x * bone.c + this.y * bone.d + bone.worldY; - return point; - }; - PointAttachment.prototype.computeWorldRotation = function (bone) { - var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); - var x = cos * bone.a + sin * bone.b; - var y = cos * bone.c + sin * bone.d; - return Math.atan2(y, x) * spine.MathUtils.radDeg; - }; - return PointAttachment; - }(spine.VertexAttachment)); - spine.PointAttachment = PointAttachment; + var PointAttachment = (function (_super) { + __extends(PointAttachment, _super); + function PointAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.38, 0.94, 0, 1); + } + PointAttachment.prototype.computeWorldPosition = function (bone, point) { + point.x = this.x * bone.a + this.y * bone.b + bone.worldX; + point.y = this.x * bone.c + this.y * bone.d + bone.worldY; + return point; + }; + PointAttachment.prototype.computeWorldRotation = function (bone) { + var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); + var x = cos * bone.a + sin * bone.b; + var y = cos * bone.c + sin * bone.d; + return Math.atan2(y, x) * spine.MathUtils.radDeg; + }; + return PointAttachment; + }(spine.VertexAttachment)); + spine.PointAttachment = PointAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var RegionAttachment = (function (_super) { - __extends(RegionAttachment, _super); - function RegionAttachment(name) { - _super.call(this, name); - this.x = 0; - this.y = 0; - this.scaleX = 1; - this.scaleY = 1; - this.rotation = 0; - this.width = 0; - this.height = 0; - this.color = new spine.Color(1, 1, 1, 1); - this.offset = spine.Utils.newFloatArray(8); - this.uvs = spine.Utils.newFloatArray(8); - this.tempColor = new spine.Color(1, 1, 1, 1); - } - RegionAttachment.prototype.updateOffset = function () { - var regionScaleX = this.width / this.region.originalWidth * this.scaleX; - var regionScaleY = this.height / this.region.originalHeight * this.scaleY; - var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; - var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; - var localX2 = localX + this.region.width * regionScaleX; - var localY2 = localY + this.region.height * regionScaleY; - var radians = this.rotation * Math.PI / 180; - var cos = Math.cos(radians); - var sin = Math.sin(radians); - var localXCos = localX * cos + this.x; - var localXSin = localX * sin; - var localYCos = localY * cos + this.y; - var localYSin = localY * sin; - var localX2Cos = localX2 * cos + this.x; - var localX2Sin = localX2 * sin; - var localY2Cos = localY2 * cos + this.y; - var localY2Sin = localY2 * sin; - var offset = this.offset; - offset[RegionAttachment.OX1] = localXCos - localYSin; - offset[RegionAttachment.OY1] = localYCos + localXSin; - offset[RegionAttachment.OX2] = localXCos - localY2Sin; - offset[RegionAttachment.OY2] = localY2Cos + localXSin; - offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; - offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; - offset[RegionAttachment.OX4] = localX2Cos - localYSin; - offset[RegionAttachment.OY4] = localYCos + localX2Sin; - }; - RegionAttachment.prototype.setRegion = function (region) { - this.region = region; - var uvs = this.uvs; - if (region.rotate) { - uvs[2] = region.u; - uvs[3] = region.v2; - uvs[4] = region.u; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v; - uvs[0] = region.u2; - uvs[1] = region.v2; - } - else { - uvs[0] = region.u; - uvs[1] = region.v2; - uvs[2] = region.u; - uvs[3] = region.v; - uvs[4] = region.u2; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v2; - } - }; - RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { - var vertexOffset = this.offset; - var x = bone.worldX, y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = vertexOffset[RegionAttachment.OX1]; - offsetY = vertexOffset[RegionAttachment.OY1]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX2]; - offsetY = vertexOffset[RegionAttachment.OY2]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX3]; - offsetY = vertexOffset[RegionAttachment.OY3]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX4]; - offsetY = vertexOffset[RegionAttachment.OY4]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - }; - RegionAttachment.OX1 = 0; - RegionAttachment.OY1 = 1; - RegionAttachment.OX2 = 2; - RegionAttachment.OY2 = 3; - RegionAttachment.OX3 = 4; - RegionAttachment.OY3 = 5; - RegionAttachment.OX4 = 6; - RegionAttachment.OY4 = 7; - RegionAttachment.X1 = 0; - RegionAttachment.Y1 = 1; - RegionAttachment.C1R = 2; - RegionAttachment.C1G = 3; - RegionAttachment.C1B = 4; - RegionAttachment.C1A = 5; - RegionAttachment.U1 = 6; - RegionAttachment.V1 = 7; - RegionAttachment.X2 = 8; - RegionAttachment.Y2 = 9; - RegionAttachment.C2R = 10; - RegionAttachment.C2G = 11; - RegionAttachment.C2B = 12; - RegionAttachment.C2A = 13; - RegionAttachment.U2 = 14; - RegionAttachment.V2 = 15; - RegionAttachment.X3 = 16; - RegionAttachment.Y3 = 17; - RegionAttachment.C3R = 18; - RegionAttachment.C3G = 19; - RegionAttachment.C3B = 20; - RegionAttachment.C3A = 21; - RegionAttachment.U3 = 22; - RegionAttachment.V3 = 23; - RegionAttachment.X4 = 24; - RegionAttachment.Y4 = 25; - RegionAttachment.C4R = 26; - RegionAttachment.C4G = 27; - RegionAttachment.C4B = 28; - RegionAttachment.C4A = 29; - RegionAttachment.U4 = 30; - RegionAttachment.V4 = 31; - return RegionAttachment; - }(spine.Attachment)); - spine.RegionAttachment = RegionAttachment; + var RegionAttachment = (function (_super) { + __extends(RegionAttachment, _super); + function RegionAttachment(name) { + _super.call(this, name); + this.x = 0; + this.y = 0; + this.scaleX = 1; + this.scaleY = 1; + this.rotation = 0; + this.width = 0; + this.height = 0; + this.color = new spine.Color(1, 1, 1, 1); + this.offset = spine.Utils.newFloatArray(8); + this.uvs = spine.Utils.newFloatArray(8); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.updateOffset = function () { + var regionScaleX = this.width / this.region.originalWidth * this.scaleX; + var regionScaleY = this.height / this.region.originalHeight * this.scaleY; + var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; + var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; + var localX2 = localX + this.region.width * regionScaleX; + var localY2 = localY + this.region.height * regionScaleY; + var radians = this.rotation * Math.PI / 180; + var cos = Math.cos(radians); + var sin = Math.sin(radians); + var localXCos = localX * cos + this.x; + var localXSin = localX * sin; + var localYCos = localY * cos + this.y; + var localYSin = localY * sin; + var localX2Cos = localX2 * cos + this.x; + var localX2Sin = localX2 * sin; + var localY2Cos = localY2 * cos + this.y; + var localY2Sin = localY2 * sin; + var offset = this.offset; + offset[RegionAttachment.OX1] = localXCos - localYSin; + offset[RegionAttachment.OY1] = localYCos + localXSin; + offset[RegionAttachment.OX2] = localXCos - localY2Sin; + offset[RegionAttachment.OY2] = localY2Cos + localXSin; + offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; + offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; + offset[RegionAttachment.OX4] = localX2Cos - localYSin; + offset[RegionAttachment.OY4] = localYCos + localX2Sin; + }; + RegionAttachment.prototype.setRegion = function (region) { + this.region = region; + var uvs = this.uvs; + if (region.rotate) { + uvs[2] = region.u; + uvs[3] = region.v2; + uvs[4] = region.u; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v; + uvs[0] = region.u2; + uvs[1] = region.v2; + } + else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; + } + }; + RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { + var vertexOffset = this.offset; + var x = bone.worldX, y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var offsetX = 0, offsetY = 0; + offsetX = vertexOffset[RegionAttachment.OX1]; + offsetY = vertexOffset[RegionAttachment.OY1]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX2]; + offsetY = vertexOffset[RegionAttachment.OY2]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX3]; + offsetY = vertexOffset[RegionAttachment.OY3]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX4]; + offsetY = vertexOffset[RegionAttachment.OY4]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + }; + RegionAttachment.OX1 = 0; + RegionAttachment.OY1 = 1; + RegionAttachment.OX2 = 2; + RegionAttachment.OY2 = 3; + RegionAttachment.OX3 = 4; + RegionAttachment.OY3 = 5; + RegionAttachment.OX4 = 6; + RegionAttachment.OY4 = 7; + RegionAttachment.X1 = 0; + RegionAttachment.Y1 = 1; + RegionAttachment.C1R = 2; + RegionAttachment.C1G = 3; + RegionAttachment.C1B = 4; + RegionAttachment.C1A = 5; + RegionAttachment.U1 = 6; + RegionAttachment.V1 = 7; + RegionAttachment.X2 = 8; + RegionAttachment.Y2 = 9; + RegionAttachment.C2R = 10; + RegionAttachment.C2G = 11; + RegionAttachment.C2B = 12; + RegionAttachment.C2A = 13; + RegionAttachment.U2 = 14; + RegionAttachment.V2 = 15; + RegionAttachment.X3 = 16; + RegionAttachment.Y3 = 17; + RegionAttachment.C3R = 18; + RegionAttachment.C3G = 19; + RegionAttachment.C3B = 20; + RegionAttachment.C3A = 21; + RegionAttachment.U3 = 22; + RegionAttachment.V3 = 23; + RegionAttachment.X4 = 24; + RegionAttachment.Y4 = 25; + RegionAttachment.C4R = 26; + RegionAttachment.C4G = 27; + RegionAttachment.C4B = 28; + RegionAttachment.C4A = 29; + RegionAttachment.U4 = 30; + RegionAttachment.V4 = 31; + return RegionAttachment; + }(spine.Attachment)); + spine.RegionAttachment = RegionAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (BlendMode) { - BlendMode[BlendMode["Normal"] = 0] = "Normal"; - BlendMode[BlendMode["Additive"] = 1] = "Additive"; - BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; - BlendMode[BlendMode["Screen"] = 3] = "Screen"; - })(spine.BlendMode || (spine.BlendMode = {})); - var BlendMode = spine.BlendMode; + (function (BlendMode) { + BlendMode[BlendMode["Normal"] = 0] = "Normal"; + BlendMode[BlendMode["Additive"] = 1] = "Additive"; + BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; + BlendMode[BlendMode["Screen"] = 3] = "Screen"; + })(spine.BlendMode || (spine.BlendMode = {})); + var BlendMode = spine.BlendMode; })(spine || (spine = {})); var spine; (function (spine) { - var Bone = (function () { - function Bone(data, skeleton, parent) { - this.children = new Array(); - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 0; - this.scaleY = 0; - this.shearX = 0; - this.shearY = 0; - this.ax = 0; - this.ay = 0; - this.arotation = 0; - this.ascaleX = 0; - this.ascaleY = 0; - this.ashearX = 0; - this.ashearY = 0; - this.appliedValid = false; - this.a = 0; - this.b = 0; - this.worldX = 0; - this.c = 0; - this.d = 0; - this.worldY = 0; - this.sorted = false; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.skeleton = skeleton; - this.parent = parent; - this.setToSetupPose(); - } - Bone.prototype.update = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransform = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { - this.ax = x; - this.ay = y; - this.arotation = rotation; - this.ascaleX = scaleX; - this.ascaleY = scaleY; - this.ashearX = shearX; - this.ashearY = shearY; - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - var skeleton = this.skeleton; - if (skeleton.flipX) { - x = -x; - la = -la; - lb = -lb; - } - if (skeleton.flipY) { - y = -y; - lc = -lc; - ld = -ld; - } - this.a = la; - this.b = lb; - this.c = lc; - this.d = ld; - this.worldX = x + skeleton.x; - this.worldY = y + skeleton.y; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - this.worldX = pa * x + pb * y + parent.worldX; - this.worldY = pc * x + pd * y + parent.worldY; - switch (this.data.transformMode) { - case spine.TransformMode.Normal: { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - return; - } - case spine.TransformMode.OnlyTranslation: { - var rotationY = rotation + 90 + shearY; - this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; - this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; - break; - } - case spine.TransformMode.NoRotationOrReflection: { - var s = pa * pa + pc * pc; - var prx = 0; - if (s > 0.0001) { - s = Math.abs(pa * pd - pb * pc) / s; - pb = pc * s; - pd = pa * s; - prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; - } - else { - pa = 0; - pc = 0; - prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; - } - var rx = rotation + shearX - prx; - var ry = rotation + shearY - prx + 90; - var la = spine.MathUtils.cosDeg(rx) * scaleX; - var lb = spine.MathUtils.cosDeg(ry) * scaleY; - var lc = spine.MathUtils.sinDeg(rx) * scaleX; - var ld = spine.MathUtils.sinDeg(ry) * scaleY; - this.a = pa * la - pb * lc; - this.b = pa * lb - pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - break; - } - case spine.TransformMode.NoScale: - case spine.TransformMode.NoScaleOrReflection: { - var cos = spine.MathUtils.cosDeg(rotation); - var sin = spine.MathUtils.sinDeg(rotation); - var za = pa * cos + pb * sin; - var zc = pc * cos + pd * sin; - var s = Math.sqrt(za * za + zc * zc); - if (s > 0.00001) - s = 1 / s; - za *= s; - zc *= s; - s = Math.sqrt(za * za + zc * zc); - var r = Math.PI / 2 + Math.atan2(zc, za); - var zb = Math.cos(r) * s; - var zd = Math.sin(r) * s; - var la = spine.MathUtils.cosDeg(shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; - var lc = spine.MathUtils.sinDeg(shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; - this.a = za * la + zb * lc; - this.b = za * lb + zb * ld; - this.c = zc * la + zd * lc; - this.d = zc * lb + zd * ld; - if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { - this.b = -this.b; - this.d = -this.d; - } - return; - } - } - if (this.skeleton.flipX) { - this.a = -this.a; - this.b = -this.b; - } - if (this.skeleton.flipY) { - this.c = -this.c; - this.d = -this.d; - } - }; - Bone.prototype.setToSetupPose = function () { - var data = this.data; - this.x = data.x; - this.y = data.y; - this.rotation = data.rotation; - this.scaleX = data.scaleX; - this.scaleY = data.scaleY; - this.shearX = data.shearX; - this.shearY = data.shearY; - }; - Bone.prototype.getWorldRotationX = function () { - return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldRotationY = function () { - return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldScaleX = function () { - return Math.sqrt(this.a * this.a + this.c * this.c); - }; - Bone.prototype.getWorldScaleY = function () { - return Math.sqrt(this.b * this.b + this.d * this.d); - }; - Bone.prototype.updateAppliedTransform = function () { - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - this.ax = this.worldX; - this.ay = this.worldY; - this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); - this.ashearX = 0; - this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - var pid = 1 / (pa * pd - pb * pc); - var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; - this.ax = (dx * pd * pid - dy * pb * pid); - this.ay = (dy * pa * pid - dx * pc * pid); - var ia = pid * pd; - var id = pid * pa; - var ib = pid * pb; - var ic = pid * pc; - var ra = ia * this.a - ib * this.c; - var rb = ia * this.b - ib * this.d; - var rc = id * this.c - ic * this.a; - var rd = id * this.d - ic * this.b; - this.ashearX = 0; - this.ascaleX = Math.sqrt(ra * ra + rc * rc); - if (this.ascaleX > 0.0001) { - var det = ra * rd - rb * rc; - this.ascaleY = det / this.ascaleX; - this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; - this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; - } - else { - this.ascaleX = 0; - this.ascaleY = Math.sqrt(rb * rb + rd * rd); - this.ashearY = 0; - this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; - } - }; - Bone.prototype.worldToLocal = function (world) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var invDet = 1 / (a * d - b * c); - var x = world.x - this.worldX, y = world.y - this.worldY; - world.x = (x * d * invDet - y * b * invDet); - world.y = (y * a * invDet - x * c * invDet); - return world; - }; - Bone.prototype.localToWorld = function (local) { - var x = local.x, y = local.y; - local.x = x * this.a + y * this.b + this.worldX; - local.y = x * this.c + y * this.d + this.worldY; - return local; - }; - Bone.prototype.worldToLocalRotation = function (worldRotation) { - var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); - return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; - }; - Bone.prototype.localToWorldRotation = function (localRotation) { - var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); - return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.rotateWorld = function (degrees) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); - this.a = cos * a - sin * c; - this.b = cos * b - sin * d; - this.c = sin * a + cos * c; - this.d = sin * b + cos * d; - this.appliedValid = false; - }; - return Bone; - }()); - spine.Bone = Bone; + var Bone = (function () { + function Bone(data, skeleton, parent) { + this.children = new Array(); + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 0; + this.scaleY = 0; + this.shearX = 0; + this.shearY = 0; + this.ax = 0; + this.ay = 0; + this.arotation = 0; + this.ascaleX = 0; + this.ascaleY = 0; + this.ashearX = 0; + this.ashearY = 0; + this.appliedValid = false; + this.a = 0; + this.b = 0; + this.worldX = 0; + this.c = 0; + this.d = 0; + this.worldY = 0; + this.sorted = false; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.skeleton = skeleton; + this.parent = parent; + this.setToSetupPose(); + } + Bone.prototype.update = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransform = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { + this.ax = x; + this.ay = y; + this.arotation = rotation; + this.ascaleX = scaleX; + this.ascaleY = scaleY; + this.ashearX = shearX; + this.ashearY = shearY; + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + var skeleton = this.skeleton; + if (skeleton.flipX) { + x = -x; + la = -la; + lb = -lb; + } + if (skeleton.flipY) { + y = -y; + lc = -lc; + ld = -ld; + } + this.a = la; + this.b = lb; + this.c = lc; + this.d = ld; + this.worldX = x + skeleton.x; + this.worldY = y + skeleton.y; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + this.worldX = pa * x + pb * y + parent.worldX; + this.worldY = pc * x + pd * y + parent.worldY; + switch (this.data.transformMode) { + case spine.TransformMode.Normal: { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + this.a = pa * la + pb * lc; + this.b = pa * lb + pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + return; + } + case spine.TransformMode.OnlyTranslation: { + var rotationY = rotation + 90 + shearY; + this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; + this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; + break; + } + case spine.TransformMode.NoRotationOrReflection: { + var s = pa * pa + pc * pc; + var prx = 0; + if (s > 0.0001) { + s = Math.abs(pa * pd - pb * pc) / s; + pb = pc * s; + pd = pa * s; + prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; + } + else { + pa = 0; + pc = 0; + prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; + } + var rx = rotation + shearX - prx; + var ry = rotation + shearY - prx + 90; + var la = spine.MathUtils.cosDeg(rx) * scaleX; + var lb = spine.MathUtils.cosDeg(ry) * scaleY; + var lc = spine.MathUtils.sinDeg(rx) * scaleX; + var ld = spine.MathUtils.sinDeg(ry) * scaleY; + this.a = pa * la - pb * lc; + this.b = pa * lb - pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + break; + } + case spine.TransformMode.NoScale: + case spine.TransformMode.NoScaleOrReflection: { + var cos = spine.MathUtils.cosDeg(rotation); + var sin = spine.MathUtils.sinDeg(rotation); + var za = pa * cos + pb * sin; + var zc = pc * cos + pd * sin; + var s = Math.sqrt(za * za + zc * zc); + if (s > 0.00001) + s = 1 / s; + za *= s; + zc *= s; + s = Math.sqrt(za * za + zc * zc); + var r = Math.PI / 2 + Math.atan2(zc, za); + var zb = Math.cos(r) * s; + var zd = Math.sin(r) * s; + var la = spine.MathUtils.cosDeg(shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; + var lc = spine.MathUtils.sinDeg(shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; + this.a = za * la + zb * lc; + this.b = za * lb + zb * ld; + this.c = zc * la + zd * lc; + this.d = zc * lb + zd * ld; + if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { + this.b = -this.b; + this.d = -this.d; + } + return; + } + } + if (this.skeleton.flipX) { + this.a = -this.a; + this.b = -this.b; + } + if (this.skeleton.flipY) { + this.c = -this.c; + this.d = -this.d; + } + }; + Bone.prototype.setToSetupPose = function () { + var data = this.data; + this.x = data.x; + this.y = data.y; + this.rotation = data.rotation; + this.scaleX = data.scaleX; + this.scaleY = data.scaleY; + this.shearX = data.shearX; + this.shearY = data.shearY; + }; + Bone.prototype.getWorldRotationX = function () { + return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldRotationY = function () { + return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldScaleX = function () { + return Math.sqrt(this.a * this.a + this.c * this.c); + }; + Bone.prototype.getWorldScaleY = function () { + return Math.sqrt(this.b * this.b + this.d * this.d); + }; + Bone.prototype.updateAppliedTransform = function () { + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + this.ax = this.worldX; + this.ay = this.worldY; + this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); + this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); + this.ashearX = 0; + this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + var pid = 1 / (pa * pd - pb * pc); + var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; + this.ax = (dx * pd * pid - dy * pb * pid); + this.ay = (dy * pa * pid - dx * pc * pid); + var ia = pid * pd; + var id = pid * pa; + var ib = pid * pb; + var ic = pid * pc; + var ra = ia * this.a - ib * this.c; + var rb = ia * this.b - ib * this.d; + var rc = id * this.c - ic * this.a; + var rd = id * this.d - ic * this.b; + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { + var det = ra * rd - rb * rc; + this.ascaleY = det / this.ascaleX; + this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; + this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; + } + else { + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; + } + }; + Bone.prototype.worldToLocal = function (world) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var invDet = 1 / (a * d - b * c); + var x = world.x - this.worldX, y = world.y - this.worldY; + world.x = (x * d * invDet - y * b * invDet); + world.y = (y * a * invDet - x * c * invDet); + return world; + }; + Bone.prototype.localToWorld = function (local) { + var x = local.x, y = local.y; + local.x = x * this.a + y * this.b + this.worldX; + local.y = x * this.c + y * this.d + this.worldY; + return local; + }; + Bone.prototype.worldToLocalRotation = function (worldRotation) { + var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); + return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; + }; + Bone.prototype.localToWorldRotation = function (localRotation) { + var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); + return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.rotateWorld = function (degrees) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); + this.a = cos * a - sin * c; + this.b = cos * b - sin * d; + this.c = sin * a + cos * c; + this.d = sin * b + cos * d; + this.appliedValid = false; + }; + return Bone; + }()); + spine.Bone = Bone; })(spine || (spine = {})); var spine; (function (spine) { - var BoneData = (function () { - function BoneData(index, name, parent) { - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 1; - this.scaleY = 1; - this.shearX = 0; - this.shearY = 0; - this.transformMode = TransformMode.Normal; - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - this.index = index; - this.name = name; - this.parent = parent; - } - return BoneData; - }()); - spine.BoneData = BoneData; - (function (TransformMode) { - TransformMode[TransformMode["Normal"] = 0] = "Normal"; - TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; - TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; - TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; - TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; - })(spine.TransformMode || (spine.TransformMode = {})); - var TransformMode = spine.TransformMode; + var BoneData = (function () { + function BoneData(index, name, parent) { + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 1; + this.scaleY = 1; + this.shearX = 0; + this.shearY = 0; + this.transformMode = TransformMode.Normal; + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + this.index = index; + this.name = name; + this.parent = parent; + } + return BoneData; + }()); + spine.BoneData = BoneData; + (function (TransformMode) { + TransformMode[TransformMode["Normal"] = 0] = "Normal"; + TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; + TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; + TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; + TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; + })(spine.TransformMode || (spine.TransformMode = {})); + var TransformMode = spine.TransformMode; })(spine || (spine = {})); var spine; (function (spine) { - var Event = (function () { - function Event(time, data) { - if (data == null) - throw new Error("data cannot be null."); - this.time = time; - this.data = data; - } - return Event; - }()); - spine.Event = Event; + var Event = (function () { + function Event(time, data) { + if (data == null) + throw new Error("data cannot be null."); + this.time = time; + this.data = data; + } + return Event; + }()); + spine.Event = Event; })(spine || (spine = {})); var spine; (function (spine) { - var EventData = (function () { - function EventData(name) { - this.name = name; - } - return EventData; - }()); - spine.EventData = EventData; + var EventData = (function () { + function EventData(name) { + this.name = name; + } + return EventData; + }()); + spine.EventData = EventData; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraint = (function () { - function IkConstraint(data, skeleton) { - this.mix = 1; - this.bendDirection = 0; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.mix = data.mix; - this.bendDirection = data.bendDirection; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - IkConstraint.prototype.getOrder = function () { - return this.data.order; - }; - IkConstraint.prototype.apply = function () { - this.update(); - }; - IkConstraint.prototype.update = function () { - var target = this.target; - var bones = this.bones; - switch (bones.length) { - case 1: - this.apply1(bones[0], target.worldX, target.worldY, this.mix); - break; - case 2: - this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); - break; - } - }; - IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var p = bone.parent; - var id = 1 / (p.a * p.d - p.b * p.c); - var x = targetX - p.worldX, y = targetY - p.worldY; - var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; - var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; - if (bone.ascaleX < 0) - rotationIK += 180; - if (rotationIK > 180) - rotationIK -= 360; - else if (rotationIK < -180) - rotationIK += 360; - bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); - }; - IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { - if (alpha == 0) { - child.updateWorldTransform(); - return; - } - if (!parent.appliedValid) - parent.updateAppliedTransform(); - if (!child.appliedValid) - child.updateAppliedTransform(); - var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; - var os1 = 0, os2 = 0, s2 = 0; - if (psx < 0) { - psx = -psx; - os1 = 180; - s2 = -1; - } - else { - os1 = 0; - s2 = 1; - } - if (psy < 0) { - psy = -psy; - s2 = -s2; - } - if (csx < 0) { - csx = -csx; - os2 = 180; - } - else - os2 = 0; - var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; - var u = Math.abs(psx - psy) <= 0.0001; - if (!u) { - cy = 0; - cwx = a * cx + parent.worldX; - cwy = c * cx + parent.worldY; - } - else { - cy = child.ay; - cwx = a * cx + b * cy + parent.worldX; - cwy = c * cx + d * cy + parent.worldY; - } - var pp = parent.parent; - a = pp.a; - b = pp.b; - c = pp.c; - d = pp.d; - var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; - var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; - x = cwx - pp.worldX; - y = cwy - pp.worldY; - var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; - var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; - outer: if (u) { - l2 *= psx; - var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); - if (cos < -1) - cos = -1; - else if (cos > 1) - cos = 1; - a2 = Math.acos(cos) * bendDir; - a = l1 + l2 * cos; - b = l2 * Math.sin(a2); - a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); - } - else { - a = psx * l2; - b = psy * l2; - var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); - c = bb * l1 * l1 + aa * dd - aa * bb; - var c1 = -2 * bb * l1, c2 = bb - aa; - d = c1 * c1 - 4 * c2 * c; - if (d >= 0) { - var q = Math.sqrt(d); - if (c1 < 0) - q = -q; - q = -(c1 + q) / 2; - var r0 = q / c2, r1 = c / q; - var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; - if (r * r <= dd) { - y = Math.sqrt(dd - r * r) * bendDir; - a1 = ta - Math.atan2(y, r); - a2 = Math.atan2(y / psy, (r - l1) / psx); - break outer; - } - } - var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; - var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; - c = -a * l1 / (aa - bb); - if (c >= -1 && c <= 1) { - c = Math.acos(c); - x = a * Math.cos(c) + l1; - y = b * Math.sin(c); - d = x * x + y * y; - if (d < minDist) { - minAngle = c; - minDist = d; - minX = x; - minY = y; - } - if (d > maxDist) { - maxAngle = c; - maxDist = d; - maxX = x; - maxY = y; - } - } - if (dd <= (minDist + maxDist) / 2) { - a1 = ta - Math.atan2(minY * bendDir, minX); - a2 = minAngle * bendDir; - } - else { - a1 = ta - Math.atan2(maxY * bendDir, maxX); - a2 = maxAngle * bendDir; - } - } - var os = Math.atan2(cy, cx) * s2; - var rotation = parent.arotation; - a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; - if (a1 > 180) - a1 -= 360; - else if (a1 < -180) - a1 += 360; - parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); - rotation = child.arotation; - a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; - if (a2 > 180) - a2 -= 360; - else if (a2 < -180) - a2 += 360; - child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); - }; - return IkConstraint; - }()); - spine.IkConstraint = IkConstraint; + var IkConstraint = (function () { + function IkConstraint(data, skeleton) { + this.mix = 1; + this.bendDirection = 0; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.mix = data.mix; + this.bendDirection = data.bendDirection; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + IkConstraint.prototype.getOrder = function () { + return this.data.order; + }; + IkConstraint.prototype.apply = function () { + this.update(); + }; + IkConstraint.prototype.update = function () { + var target = this.target; + var bones = this.bones; + switch (bones.length) { + case 1: + this.apply1(bones[0], target.worldX, target.worldY, this.mix); + break; + case 2: + this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); + break; + } + }; + IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var p = bone.parent; + var id = 1 / (p.a * p.d - p.b * p.c); + var x = targetX - p.worldX, y = targetY - p.worldY; + var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; + var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; + if (bone.ascaleX < 0) + rotationIK += 180; + if (rotationIK > 180) + rotationIK -= 360; + else if (rotationIK < -180) + rotationIK += 360; + bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); + }; + IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { + if (alpha == 0) { + child.updateWorldTransform(); + return; + } + if (!parent.appliedValid) + parent.updateAppliedTransform(); + if (!child.appliedValid) + child.updateAppliedTransform(); + var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; + var os1 = 0, os2 = 0, s2 = 0; + if (psx < 0) { + psx = -psx; + os1 = 180; + s2 = -1; + } + else { + os1 = 0; + s2 = 1; + } + if (psy < 0) { + psy = -psy; + s2 = -s2; + } + if (csx < 0) { + csx = -csx; + os2 = 180; + } + else + os2 = 0; + var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + var u = Math.abs(psx - psy) <= 0.0001; + if (!u) { + cy = 0; + cwx = a * cx + parent.worldX; + cwy = c * cx + parent.worldY; + } + else { + cy = child.ay; + cwx = a * cx + b * cy + parent.worldX; + cwy = c * cx + d * cy + parent.worldY; + } + var pp = parent.parent; + a = pp.a; + b = pp.b; + c = pp.c; + d = pp.d; + var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; + var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; + x = cwx - pp.worldX; + y = cwy - pp.worldY; + var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; + var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; + outer: if (u) { + l2 *= psx; + var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); + if (cos < -1) + cos = -1; + else if (cos > 1) + cos = 1; + a2 = Math.acos(cos) * bendDir; + a = l1 + l2 * cos; + b = l2 * Math.sin(a2); + a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); + } + else { + a = psx * l2; + b = psy * l2; + var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); + c = bb * l1 * l1 + aa * dd - aa * bb; + var c1 = -2 * bb * l1, c2 = bb - aa; + d = c1 * c1 - 4 * c2 * c; + if (d >= 0) { + var q = Math.sqrt(d); + if (c1 < 0) + q = -q; + q = -(c1 + q) / 2; + var r0 = q / c2, r1 = c / q; + var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; + if (r * r <= dd) { + y = Math.sqrt(dd - r * r) * bendDir; + a1 = ta - Math.atan2(y, r); + a2 = Math.atan2(y / psy, (r - l1) / psx); + break outer; + } + } + var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; + var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } + } + if (dd <= (minDist + maxDist) / 2) { + a1 = ta - Math.atan2(minY * bendDir, minX); + a2 = minAngle * bendDir; + } + else { + a1 = ta - Math.atan2(maxY * bendDir, maxX); + a2 = maxAngle * bendDir; + } + } + var os = Math.atan2(cy, cx) * s2; + var rotation = parent.arotation; + a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; + if (a1 > 180) + a1 -= 360; + else if (a1 < -180) + a1 += 360; + parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); + rotation = child.arotation; + a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; + if (a2 > 180) + a2 -= 360; + else if (a2 < -180) + a2 += 360; + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); + }; + return IkConstraint; + }()); + spine.IkConstraint = IkConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraintData = (function () { - function IkConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.bendDirection = 1; - this.mix = 1; - this.name = name; - } - return IkConstraintData; - }()); - spine.IkConstraintData = IkConstraintData; + var IkConstraintData = (function () { + function IkConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.bendDirection = 1; + this.mix = 1; + this.name = name; + } + return IkConstraintData; + }()); + spine.IkConstraintData = IkConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraint = (function () { - function PathConstraint(data, skeleton) { - this.position = 0; - this.spacing = 0; - this.rotateMix = 0; - this.translateMix = 0; - this.spaces = new Array(); - this.positions = new Array(); - this.world = new Array(); - this.curves = new Array(); - this.lengths = new Array(); - this.segments = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0, n = data.bones.length; i < n; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findSlot(data.target.name); - this.position = data.position; - this.spacing = data.spacing; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - } - PathConstraint.prototype.apply = function () { - this.update(); - }; - PathConstraint.prototype.update = function () { - var attachment = this.target.getAttachment(); - if (!(attachment instanceof spine.PathAttachment)) - return; - var rotateMix = this.rotateMix, translateMix = this.translateMix; - var translate = translateMix > 0, rotate = rotateMix > 0; - if (!translate && !rotate) - return; - var data = this.data; - var spacingMode = data.spacingMode; - var lengthSpacing = spacingMode == spine.SpacingMode.Length; - var rotateMode = data.rotateMode; - var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; - var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; - var bones = this.bones; - var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; - var spacing = this.spacing; - if (scale || lengthSpacing) { - if (scale) - lengths = spine.Utils.setArraySize(this.lengths, boneCount); - for (var i = 0, n = spacesCount - 1; i < n;) { - var bone = bones[i]; - var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; - var length_1 = Math.sqrt(x * x + y * y); - if (scale) - lengths[i] = length_1; - spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; - } - } - else { - for (var i = 1; i < spacesCount; i++) - spaces[i] = spacing; - } - var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); - var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - var tip = false; - if (offsetRotation == 0) - tip = rotateMode == spine.RotateMode.Chain; - else { - tip = false; - var p = this.target.bone; - offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - } - for (var i = 0, p = 3; i < boneCount; i++, p += 3) { - var bone = bones[i]; - bone.worldX += (boneX - bone.worldX) * translateMix; - bone.worldY += (boneY - bone.worldY) * translateMix; - var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; - if (scale) { - var length_2 = lengths[i]; - if (length_2 != 0) { - var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; - bone.a *= s; - bone.c *= s; - } - } - boneX = x; - boneY = y; - if (rotate) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; - if (tangents) - r = positions[p - 1]; - else if (spaces[i + 1] == 0) - r = positions[p + 2]; - else - r = Math.atan2(dy, dx); - r -= Math.atan2(c, a); - if (tip) { - cos = Math.cos(r); - sin = Math.sin(r); - var length_3 = bone.data.length; - boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; - boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; - } - else { - r += offsetRotation; - } - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - cos = Math.cos(r); - sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - } - bone.appliedValid = false; - } - }; - PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { - var target = this.target; - var position = this.position; - var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; - var closed = path.closed; - var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; - if (!path.constantSpeed) { - var lengths = path.lengths; - curveCount -= closed ? 1 : 2; - var pathLength_1 = lengths[curveCount]; - if (percentPosition) - position *= pathLength_1; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength_1; - } - world = spine.Utils.setArraySize(this.world, 8); - for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength_1; - if (p < 0) - p += pathLength_1; - curve = 0; - } - else if (p < 0) { - if (prevCurve != PathConstraint.BEFORE) { - prevCurve = PathConstraint.BEFORE; - path.computeWorldVertices(target, 2, 4, world, 0, 2); - } - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength_1) { - if (prevCurve != PathConstraint.AFTER) { - prevCurve = PathConstraint.AFTER; - path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); - } - this.addAfterPosition(p - pathLength_1, world, 0, out, o); - continue; - } - for (;; curve++) { - var length_4 = lengths[curve]; - if (p > length_4) - continue; - if (curve == 0) - p /= length_4; - else { - var prev = lengths[curve - 1]; - p = (p - prev) / (length_4 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - if (closed && curve == curveCount) { - path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); - path.computeWorldVertices(target, 0, 4, world, 4, 2); - } - else - path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); - } - this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); - } - return out; - } - if (closed) { - verticesLength += 2; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); - path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); - world[verticesLength - 2] = world[0]; - world[verticesLength - 1] = world[1]; - } - else { - curveCount--; - verticesLength -= 4; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); - } - var curves = spine.Utils.setArraySize(this.curves, curveCount); - var pathLength = 0; - var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; - var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; - for (var i = 0, w = 2; i < curveCount; i++, w += 6) { - cx1 = world[w]; - cy1 = world[w + 1]; - cx2 = world[w + 2]; - cy2 = world[w + 3]; - x2 = world[w + 4]; - y2 = world[w + 5]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; - tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - curves[i] = pathLength; - x1 = x2; - y1 = y2; - } - if (percentPosition) - position *= pathLength; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength; - } - var segments = this.segments; - var curveLength = 0; - for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength; - if (p < 0) - p += pathLength; - curve = 0; - } - else if (p < 0) { - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength) { - this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); - continue; - } - for (;; curve++) { - var length_5 = curves[curve]; - if (p > length_5) - continue; - if (curve == 0) - p /= length_5; - else { - var prev = curves[curve - 1]; - p = (p - prev) / (length_5 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - var ii = curve * 6; - x1 = world[ii]; - y1 = world[ii + 1]; - cx1 = world[ii + 2]; - cy1 = world[ii + 3]; - cx2 = world[ii + 4]; - cy2 = world[ii + 5]; - x2 = world[ii + 6]; - y2 = world[ii + 7]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.03; - tmpy = (y1 - cy1 * 2 + cy2) * 0.03; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; - curveLength = Math.sqrt(dfx * dfx + dfy * dfy); - segments[0] = curveLength; - for (ii = 1; ii < 8; ii++) { - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[ii] = curveLength; - } - dfx += ddfx; - dfy += ddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[8] = curveLength; - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[9] = curveLength; - segment = 0; - } - p *= curveLength; - for (;; segment++) { - var length_6 = segments[segment]; - if (p > length_6) - continue; - if (segment == 0) - p /= length_6; - else { - var prev = segments[segment - 1]; - p = segment + (p - prev) / (length_6 - prev); - } - break; - } - this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); - } - return out; - }; - PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { - var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { - var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { - if (p == 0 || isNaN(p)) - p = 0.0001; - var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; - var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; - var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; - out[o] = x; - out[o + 1] = y; - if (tangents) - out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); - }; - PathConstraint.prototype.getOrder = function () { - return this.data.order; - }; - PathConstraint.NONE = -1; - PathConstraint.BEFORE = -2; - PathConstraint.AFTER = -3; - return PathConstraint; - }()); - spine.PathConstraint = PathConstraint; + var PathConstraint = (function () { + function PathConstraint(data, skeleton) { + this.position = 0; + this.spacing = 0; + this.rotateMix = 0; + this.translateMix = 0; + this.spaces = new Array(); + this.positions = new Array(); + this.world = new Array(); + this.curves = new Array(); + this.lengths = new Array(); + this.segments = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0, n = data.bones.length; i < n; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findSlot(data.target.name); + this.position = data.position; + this.spacing = data.spacing; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + } + PathConstraint.prototype.apply = function () { + this.update(); + }; + PathConstraint.prototype.update = function () { + var attachment = this.target.getAttachment(); + if (!(attachment instanceof spine.PathAttachment)) + return; + var rotateMix = this.rotateMix, translateMix = this.translateMix; + var translate = translateMix > 0, rotate = rotateMix > 0; + if (!translate && !rotate) + return; + var data = this.data; + var spacingMode = data.spacingMode; + var lengthSpacing = spacingMode == spine.SpacingMode.Length; + var rotateMode = data.rotateMode; + var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; + var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; + var bones = this.bones; + var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; + var spacing = this.spacing; + if (scale || lengthSpacing) { + if (scale) + lengths = spine.Utils.setArraySize(this.lengths, boneCount); + for (var i = 0, n = spacesCount - 1; i < n;) { + var bone = bones[i]; + var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; + var length_1 = Math.sqrt(x * x + y * y); + if (scale) + lengths[i] = length_1; + spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; + } + } + else { + for (var i = 1; i < spacesCount; i++) + spaces[i] = spacing; + } + var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); + var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; + var tip = false; + if (offsetRotation == 0) + tip = rotateMode == spine.RotateMode.Chain; + else { + tip = false; + var p = this.target.bone; + offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + } + for (var i = 0, p = 3; i < boneCount; i++, p += 3) { + var bone = bones[i]; + bone.worldX += (boneX - bone.worldX) * translateMix; + bone.worldY += (boneY - bone.worldY) * translateMix; + var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; + if (scale) { + var length_2 = lengths[i]; + if (length_2 != 0) { + var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; + bone.a *= s; + bone.c *= s; + } + } + boneX = x; + boneY = y; + if (rotate) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; + if (tangents) + r = positions[p - 1]; + else if (spaces[i + 1] == 0) + r = positions[p + 2]; + else + r = Math.atan2(dy, dx); + r -= Math.atan2(c, a); + if (tip) { + cos = Math.cos(r); + sin = Math.sin(r); + var length_3 = bone.data.length; + boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; + boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; + } + else { + r += offsetRotation; + } + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + cos = Math.cos(r); + sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + bone.appliedValid = false; + } + }; + PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { + var target = this.target; + var position = this.position; + var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; + var closed = path.closed; + var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; + if (!path.constantSpeed) { + var lengths = path.lengths; + curveCount -= closed ? 1 : 2; + var pathLength_1 = lengths[curveCount]; + if (percentPosition) + position *= pathLength_1; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength_1; + } + world = spine.Utils.setArraySize(this.world, 8); + for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength_1; + if (p < 0) + p += pathLength_1; + curve = 0; + } + else if (p < 0) { + if (prevCurve != PathConstraint.BEFORE) { + prevCurve = PathConstraint.BEFORE; + path.computeWorldVertices(target, 2, 4, world, 0, 2); + } + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength_1) { + if (prevCurve != PathConstraint.AFTER) { + prevCurve = PathConstraint.AFTER; + path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); + } + this.addAfterPosition(p - pathLength_1, world, 0, out, o); + continue; + } + for (;; curve++) { + var length_4 = lengths[curve]; + if (p > length_4) + continue; + if (curve == 0) + p /= length_4; + else { + var prev = lengths[curve - 1]; + p = (p - prev) / (length_4 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + if (closed && curve == curveCount) { + path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); + path.computeWorldVertices(target, 0, 4, world, 4, 2); + } + else + path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); + } + this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); + } + return out; + } + if (closed) { + verticesLength += 2; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); + path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); + world[verticesLength - 2] = world[0]; + world[verticesLength - 1] = world[1]; + } + else { + curveCount--; + verticesLength -= 4; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); + } + var curves = spine.Utils.setArraySize(this.curves, curveCount); + var pathLength = 0; + var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; + var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; + for (var i = 0, w = 2; i < curveCount; i++, w += 6) { + cx1 = world[w]; + cy1 = world[w + 1]; + cx2 = world[w + 2]; + cy2 = world[w + 3]; + x2 = world[w + 4]; + y2 = world[w + 5]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; + tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + curves[i] = pathLength; + x1 = x2; + y1 = y2; + } + if (percentPosition) + position *= pathLength; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength; + } + var segments = this.segments; + var curveLength = 0; + for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength; + if (p < 0) + p += pathLength; + curve = 0; + } + else if (p < 0) { + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength) { + this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); + continue; + } + for (;; curve++) { + var length_5 = curves[curve]; + if (p > length_5) + continue; + if (curve == 0) + p /= length_5; + else { + var prev = curves[curve - 1]; + p = (p - prev) / (length_5 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + var ii = curve * 6; + x1 = world[ii]; + y1 = world[ii + 1]; + cx1 = world[ii + 2]; + cy1 = world[ii + 3]; + cx2 = world[ii + 4]; + cy2 = world[ii + 5]; + x2 = world[ii + 6]; + y2 = world[ii + 7]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.03; + tmpy = (y1 - cy1 * 2 + cy2) * 0.03; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; + curveLength = Math.sqrt(dfx * dfx + dfy * dfy); + segments[0] = curveLength; + for (ii = 1; ii < 8; ii++) { + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[ii] = curveLength; + } + dfx += ddfx; + dfy += ddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[8] = curveLength; + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[9] = curveLength; + segment = 0; + } + p *= curveLength; + for (;; segment++) { + var length_6 = segments[segment]; + if (p > length_6) + continue; + if (segment == 0) + p /= length_6; + else { + var prev = segments[segment - 1]; + p = segment + (p - prev) / (length_6 - prev); + } + break; + } + this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); + } + return out; + }; + PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { + var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { + var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { + if (p == 0 || isNaN(p)) + p = 0.0001; + var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; + var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; + var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; + out[o] = x; + out[o + 1] = y; + if (tangents) + out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); + }; + PathConstraint.prototype.getOrder = function () { + return this.data.order; + }; + PathConstraint.NONE = -1; + PathConstraint.BEFORE = -2; + PathConstraint.AFTER = -3; + return PathConstraint; + }()); + spine.PathConstraint = PathConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraintData = (function () { - function PathConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.name = name; - } - return PathConstraintData; - }()); - spine.PathConstraintData = PathConstraintData; - (function (PositionMode) { - PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; - PositionMode[PositionMode["Percent"] = 1] = "Percent"; - })(spine.PositionMode || (spine.PositionMode = {})); - var PositionMode = spine.PositionMode; - (function (SpacingMode) { - SpacingMode[SpacingMode["Length"] = 0] = "Length"; - SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; - SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; - })(spine.SpacingMode || (spine.SpacingMode = {})); - var SpacingMode = spine.SpacingMode; - (function (RotateMode) { - RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; - RotateMode[RotateMode["Chain"] = 1] = "Chain"; - RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; - })(spine.RotateMode || (spine.RotateMode = {})); - var RotateMode = spine.RotateMode; + var PathConstraintData = (function () { + function PathConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.name = name; + } + return PathConstraintData; + }()); + spine.PathConstraintData = PathConstraintData; + (function (PositionMode) { + PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; + PositionMode[PositionMode["Percent"] = 1] = "Percent"; + })(spine.PositionMode || (spine.PositionMode = {})); + var PositionMode = spine.PositionMode; + (function (SpacingMode) { + SpacingMode[SpacingMode["Length"] = 0] = "Length"; + SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; + SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; + })(spine.SpacingMode || (spine.SpacingMode = {})); + var SpacingMode = spine.SpacingMode; + (function (RotateMode) { + RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; + RotateMode[RotateMode["Chain"] = 1] = "Chain"; + RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; + })(spine.RotateMode || (spine.RotateMode = {})); + var RotateMode = spine.RotateMode; })(spine || (spine = {})); var spine; (function (spine) { - var Assets = (function () { - function Assets(clientId) { - this.toLoad = new Array(); - this.assets = {}; - this.clientId = clientId; - } - Assets.prototype.loaded = function () { - var i = 0; - for (var v in this.assets) - i++; - return i; - }; - return Assets; - }()); - var SharedAssetManager = (function () { - function SharedAssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.clientAssets = {}; - this.queuedAssets = {}; - this.rawAssets = {}; - this.errors = {}; - this.pathPrefix = pathPrefix; - } - SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) { - clientAssets = new Assets(clientId); - this.clientAssets[clientId] = clientAssets; - } - if (textureLoader !== null) - clientAssets.textureLoader = textureLoader; - clientAssets.toLoad.push(path); - if (this.queuedAssets[path] === path) { - return false; - } - else { - this.queuedAssets[path] = path; - return true; - } - }; - SharedAssetManager.prototype.loadText = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = request.responseText; - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadJson = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = JSON.parse(request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, textureLoader, path)) - return; - var img = new Image(); - img.src = path; - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - _this.rawAssets[path] = img; - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - }; - }; - SharedAssetManager.prototype.get = function (clientId, path) { - path = this.pathPrefix + path; - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - return clientAssets.assets[path]; - }; - SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { - for (var i = 0; i < clientAssets.toLoad.length; i++) { - var path = clientAssets.toLoad[i]; - var asset = clientAssets.assets[path]; - if (asset === null || asset === undefined) { - var rawAsset = this.rawAssets[path]; - if (rawAsset === null || rawAsset === undefined) - continue; - if (rawAsset instanceof HTMLImageElement) { - clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); - } - else { - clientAssets.assets[path] = rawAsset; - } - } - } - }; - SharedAssetManager.prototype.isLoadingComplete = function (clientId) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - this.updateClientAssets(clientAssets); - return clientAssets.toLoad.length == clientAssets.loaded(); - }; - SharedAssetManager.prototype.dispose = function () { - }; - SharedAssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - SharedAssetManager.prototype.getErrors = function () { - return this.errors; - }; - return SharedAssetManager; - }()); - spine.SharedAssetManager = SharedAssetManager; + var Assets = (function () { + function Assets(clientId) { + this.toLoad = new Array(); + this.assets = {}; + this.clientId = clientId; + } + Assets.prototype.loaded = function () { + var i = 0; + for (var v in this.assets) + i++; + return i; + }; + return Assets; + }()); + var SharedAssetManager = (function () { + function SharedAssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.clientAssets = {}; + this.queuedAssets = {}; + this.rawAssets = {}; + this.errors = {}; + this.pathPrefix = pathPrefix; + } + SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) { + clientAssets = new Assets(clientId); + this.clientAssets[clientId] = clientAssets; + } + if (textureLoader !== null) + clientAssets.textureLoader = textureLoader; + clientAssets.toLoad.push(path); + if (this.queuedAssets[path] === path) { + return false; + } + else { + this.queuedAssets[path] = path; + return true; + } + }; + SharedAssetManager.prototype.loadText = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = request.responseText; + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadJson = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = JSON.parse(request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, textureLoader, path)) + return; + var img = new Image(); + img.src = path; + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + _this.rawAssets[path] = img; + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + }; + }; + SharedAssetManager.prototype.get = function (clientId, path) { + path = this.pathPrefix + path; + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + return clientAssets.assets[path]; + }; + SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { + for (var i = 0; i < clientAssets.toLoad.length; i++) { + var path = clientAssets.toLoad[i]; + var asset = clientAssets.assets[path]; + if (asset === null || asset === undefined) { + var rawAsset = this.rawAssets[path]; + if (rawAsset === null || rawAsset === undefined) + continue; + if (rawAsset instanceof HTMLImageElement) { + clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); + } + else { + clientAssets.assets[path] = rawAsset; + } + } + } + }; + SharedAssetManager.prototype.isLoadingComplete = function (clientId) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + this.updateClientAssets(clientAssets); + return clientAssets.toLoad.length == clientAssets.loaded(); + }; + SharedAssetManager.prototype.dispose = function () { + }; + SharedAssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + SharedAssetManager.prototype.getErrors = function () { + return this.errors; + }; + return SharedAssetManager; + }()); + spine.SharedAssetManager = SharedAssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var Skeleton = (function () { - function Skeleton(data) { - this._updateCache = new Array(); - this.updateCacheReset = new Array(); - this.time = 0; - this.flipX = false; - this.flipY = false; - this.x = 0; - this.y = 0; - if (data == null) - throw new Error("data cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) { - var boneData = data.bones[i]; - var bone = void 0; - if (boneData.parent == null) - bone = new spine.Bone(boneData, this, null); - else { - var parent_1 = this.bones[boneData.parent.index]; - bone = new spine.Bone(boneData, this, parent_1); - parent_1.children.push(bone); - } - this.bones.push(bone); - } - this.slots = new Array(); - this.drawOrder = new Array(); - for (var i = 0; i < data.slots.length; i++) { - var slotData = data.slots[i]; - var bone = this.bones[slotData.boneData.index]; - var slot = new spine.Slot(slotData, bone); - this.slots.push(slot); - this.drawOrder.push(slot); - } - this.ikConstraints = new Array(); - for (var i = 0; i < data.ikConstraints.length; i++) { - var ikConstraintData = data.ikConstraints[i]; - this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); - } - this.transformConstraints = new Array(); - for (var i = 0; i < data.transformConstraints.length; i++) { - var transformConstraintData = data.transformConstraints[i]; - this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); - } - this.pathConstraints = new Array(); - for (var i = 0; i < data.pathConstraints.length; i++) { - var pathConstraintData = data.pathConstraints[i]; - this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); - } - this.color = new spine.Color(1, 1, 1, 1); - this.updateCache(); - } - Skeleton.prototype.updateCache = function () { - var updateCache = this._updateCache; - updateCache.length = 0; - this.updateCacheReset.length = 0; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].sorted = false; - var ikConstraints = this.ikConstraints; - var transformConstraints = this.transformConstraints; - var pathConstraints = this.pathConstraints; - var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; - var constraintCount = ikCount + transformCount + pathCount; - outer: for (var i = 0; i < constraintCount; i++) { - for (var ii = 0; ii < ikCount; ii++) { - var constraint = ikConstraints[ii]; - if (constraint.data.order == i) { - this.sortIkConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < transformCount; ii++) { - var constraint = transformConstraints[ii]; - if (constraint.data.order == i) { - this.sortTransformConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < pathCount; ii++) { - var constraint = pathConstraints[ii]; - if (constraint.data.order == i) { - this.sortPathConstraint(constraint); - continue outer; - } - } - } - for (var i = 0, n = bones.length; i < n; i++) - this.sortBone(bones[i]); - }; - Skeleton.prototype.sortIkConstraint = function (constraint) { - var target = constraint.target; - this.sortBone(target); - var constrained = constraint.bones; - var parent = constrained[0]; - this.sortBone(parent); - if (constrained.length > 1) { - var child = constrained[constrained.length - 1]; - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - this._updateCache.push(constraint); - this.sortReset(parent.children); - constrained[constrained.length - 1].sorted = true; - }; - Skeleton.prototype.sortPathConstraint = function (constraint) { - var slot = constraint.target; - var slotIndex = slot.data.index; - var slotBone = slot.bone; - if (this.skin != null) - this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); - if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) - this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); - for (var i = 0, n = this.data.skins.length; i < n; i++) - this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); - var attachment = slot.getAttachment(); - if (attachment instanceof spine.PathAttachment) - this.sortPathConstraintAttachmentWith(attachment, slotBone); - var constrained = constraint.bones; - var boneCount = constrained.length; - for (var i = 0; i < boneCount; i++) - this.sortBone(constrained[i]); - this._updateCache.push(constraint); - for (var i = 0; i < boneCount; i++) - this.sortReset(constrained[i].children); - for (var i = 0; i < boneCount; i++) - constrained[i].sorted = true; - }; - Skeleton.prototype.sortTransformConstraint = function (constraint) { - this.sortBone(constraint.target); - var constrained = constraint.bones; - var boneCount = constrained.length; - if (constraint.data.local) { - for (var i = 0; i < boneCount; i++) { - var child = constrained[i]; - this.sortBone(child.parent); - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - } - else { - for (var i = 0; i < boneCount; i++) { - this.sortBone(constrained[i]); - } - } - this._updateCache.push(constraint); - for (var ii = 0; ii < boneCount; ii++) - this.sortReset(constrained[ii].children); - for (var ii = 0; ii < boneCount; ii++) - constrained[ii].sorted = true; - }; - Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { - var attachments = skin.attachments[slotIndex]; - if (!attachments) - return; - for (var key in attachments) { - this.sortPathConstraintAttachmentWith(attachments[key], slotBone); - } - }; - Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { - if (!(attachment instanceof spine.PathAttachment)) - return; - var pathBones = attachment.bones; - if (pathBones == null) - this.sortBone(slotBone); - else { - var bones = this.bones; - var i = 0; - while (i < pathBones.length) { - var boneCount = pathBones[i++]; - for (var n = i + boneCount; i < n; i++) { - var boneIndex = pathBones[i]; - this.sortBone(bones[boneIndex]); - } - } - } - }; - Skeleton.prototype.sortBone = function (bone) { - if (bone.sorted) - return; - var parent = bone.parent; - if (parent != null) - this.sortBone(parent); - bone.sorted = true; - this._updateCache.push(bone); - }; - Skeleton.prototype.sortReset = function (bones) { - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.sorted) - this.sortReset(bone.children); - bone.sorted = false; - } - }; - Skeleton.prototype.updateWorldTransform = function () { - var updateCacheReset = this.updateCacheReset; - for (var i = 0, n = updateCacheReset.length; i < n; i++) { - var bone = updateCacheReset[i]; - bone.ax = bone.x; - bone.ay = bone.y; - bone.arotation = bone.rotation; - bone.ascaleX = bone.scaleX; - bone.ascaleY = bone.scaleY; - bone.ashearX = bone.shearX; - bone.ashearY = bone.shearY; - bone.appliedValid = true; - } - var updateCache = this._updateCache; - for (var i = 0, n = updateCache.length; i < n; i++) - updateCache[i].update(); - }; - Skeleton.prototype.setToSetupPose = function () { - this.setBonesToSetupPose(); - this.setSlotsToSetupPose(); - }; - Skeleton.prototype.setBonesToSetupPose = function () { - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].setToSetupPose(); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - constraint.bendDirection = constraint.data.bendDirection; - constraint.mix = constraint.data.mix; - } - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - var data = constraint.data; - constraint.position = data.position; - constraint.spacing = data.spacing; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - } - }; - Skeleton.prototype.setSlotsToSetupPose = function () { - var slots = this.slots; - spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); - for (var i = 0, n = slots.length; i < n; i++) - slots[i].setToSetupPose(); - }; - Skeleton.prototype.getRootBone = function () { - if (this.bones.length == 0) - return null; - return this.bones[0]; - }; - Skeleton.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.data.name == boneName) - return bone; - } - return null; - }; - Skeleton.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].data.name == boneName) - return i; - return -1; - }; - Skeleton.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) - return slot; - } - return null; - }; - Skeleton.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].data.name == slotName) - return i; - return -1; - }; - Skeleton.prototype.setSkinByName = function (skinName) { - var skin = this.data.findSkin(skinName); - if (skin == null) - throw new Error("Skin not found: " + skinName); - this.setSkin(skin); - }; - Skeleton.prototype.setSkin = function (newSkin) { - if (newSkin != null) { - if (this.skin != null) - newSkin.attachAll(this, this.skin); - else { - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var name_1 = slot.data.attachmentName; - if (name_1 != null) { - var attachment = newSkin.getAttachment(i, name_1); - if (attachment != null) - slot.setAttachment(attachment); - } - } - } - } - this.skin = newSkin; - }; - Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { - return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); - }; - Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { - if (attachmentName == null) - throw new Error("attachmentName cannot be null."); - if (this.skin != null) { - var attachment = this.skin.getAttachment(slotIndex, attachmentName); - if (attachment != null) - return attachment; - } - if (this.data.defaultSkin != null) - return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); - return null; - }; - Skeleton.prototype.setAttachment = function (slotName, attachmentName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) { - var attachment = null; - if (attachmentName != null) { - attachment = this.getAttachment(i, attachmentName); - if (attachment == null) - throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); - } - slot.setAttachment(attachment); - return; - } - } - throw new Error("Slot not found: " + slotName); - }; - Skeleton.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var ikConstraint = ikConstraints[i]; - if (ikConstraint.data.name == constraintName) - return ikConstraint; - } - return null; - }; - Skeleton.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.getBounds = function (offset, size, temp) { - if (offset == null) - throw new Error("offset cannot be null."); - if (size == null) - throw new Error("size cannot be null."); - var drawOrder = this.drawOrder; - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var verticesLength = 0; - var vertices = null; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.RegionAttachment) { - verticesLength = 8; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - attachment.computeWorldVertices(slot.bone, vertices, 0, 2); - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - verticesLength = mesh.worldVerticesLength; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); - } - if (vertices != null) { - for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { - var x = vertices[ii], y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - } - offset.set(minX, minY); - size.set(maxX - minX, maxY - minY); - }; - Skeleton.prototype.update = function (delta) { - this.time += delta; - }; - return Skeleton; - }()); - spine.Skeleton = Skeleton; + var Skeleton = (function () { + function Skeleton(data) { + this._updateCache = new Array(); + this.updateCacheReset = new Array(); + this.time = 0; + this.flipX = false; + this.flipY = false; + this.x = 0; + this.y = 0; + if (data == null) + throw new Error("data cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) { + var boneData = data.bones[i]; + var bone = void 0; + if (boneData.parent == null) + bone = new spine.Bone(boneData, this, null); + else { + var parent_1 = this.bones[boneData.parent.index]; + bone = new spine.Bone(boneData, this, parent_1); + parent_1.children.push(bone); + } + this.bones.push(bone); + } + this.slots = new Array(); + this.drawOrder = new Array(); + for (var i = 0; i < data.slots.length; i++) { + var slotData = data.slots[i]; + var bone = this.bones[slotData.boneData.index]; + var slot = new spine.Slot(slotData, bone); + this.slots.push(slot); + this.drawOrder.push(slot); + } + this.ikConstraints = new Array(); + for (var i = 0; i < data.ikConstraints.length; i++) { + var ikConstraintData = data.ikConstraints[i]; + this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); + } + this.transformConstraints = new Array(); + for (var i = 0; i < data.transformConstraints.length; i++) { + var transformConstraintData = data.transformConstraints[i]; + this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); + } + this.pathConstraints = new Array(); + for (var i = 0; i < data.pathConstraints.length; i++) { + var pathConstraintData = data.pathConstraints[i]; + this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); + } + this.color = new spine.Color(1, 1, 1, 1); + this.updateCache(); + } + Skeleton.prototype.updateCache = function () { + var updateCache = this._updateCache; + updateCache.length = 0; + this.updateCacheReset.length = 0; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].sorted = false; + var ikConstraints = this.ikConstraints; + var transformConstraints = this.transformConstraints; + var pathConstraints = this.pathConstraints; + var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; + var constraintCount = ikCount + transformCount + pathCount; + outer: for (var i = 0; i < constraintCount; i++) { + for (var ii = 0; ii < ikCount; ii++) { + var constraint = ikConstraints[ii]; + if (constraint.data.order == i) { + this.sortIkConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < transformCount; ii++) { + var constraint = transformConstraints[ii]; + if (constraint.data.order == i) { + this.sortTransformConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < pathCount; ii++) { + var constraint = pathConstraints[ii]; + if (constraint.data.order == i) { + this.sortPathConstraint(constraint); + continue outer; + } + } + } + for (var i = 0, n = bones.length; i < n; i++) + this.sortBone(bones[i]); + }; + Skeleton.prototype.sortIkConstraint = function (constraint) { + var target = constraint.target; + this.sortBone(target); + var constrained = constraint.bones; + var parent = constrained[0]; + this.sortBone(parent); + if (constrained.length > 1) { + var child = constrained[constrained.length - 1]; + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + this._updateCache.push(constraint); + this.sortReset(parent.children); + constrained[constrained.length - 1].sorted = true; + }; + Skeleton.prototype.sortPathConstraint = function (constraint) { + var slot = constraint.target; + var slotIndex = slot.data.index; + var slotBone = slot.bone; + if (this.skin != null) + this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); + if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) + this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); + for (var i = 0, n = this.data.skins.length; i < n; i++) + this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); + var attachment = slot.getAttachment(); + if (attachment instanceof spine.PathAttachment) + this.sortPathConstraintAttachmentWith(attachment, slotBone); + var constrained = constraint.bones; + var boneCount = constrained.length; + for (var i = 0; i < boneCount; i++) + this.sortBone(constrained[i]); + this._updateCache.push(constraint); + for (var i = 0; i < boneCount; i++) + this.sortReset(constrained[i].children); + for (var i = 0; i < boneCount; i++) + constrained[i].sorted = true; + }; + Skeleton.prototype.sortTransformConstraint = function (constraint) { + this.sortBone(constraint.target); + var constrained = constraint.bones; + var boneCount = constrained.length; + if (constraint.data.local) { + for (var i = 0; i < boneCount; i++) { + var child = constrained[i]; + this.sortBone(child.parent); + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + } + else { + for (var i = 0; i < boneCount; i++) { + this.sortBone(constrained[i]); + } + } + this._updateCache.push(constraint); + for (var ii = 0; ii < boneCount; ii++) + this.sortReset(constrained[ii].children); + for (var ii = 0; ii < boneCount; ii++) + constrained[ii].sorted = true; + }; + Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { + var attachments = skin.attachments[slotIndex]; + if (!attachments) + return; + for (var key in attachments) { + this.sortPathConstraintAttachmentWith(attachments[key], slotBone); + } + }; + Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { + if (!(attachment instanceof spine.PathAttachment)) + return; + var pathBones = attachment.bones; + if (pathBones == null) + this.sortBone(slotBone); + else { + var bones = this.bones; + var i = 0; + while (i < pathBones.length) { + var boneCount = pathBones[i++]; + for (var n = i + boneCount; i < n; i++) { + var boneIndex = pathBones[i]; + this.sortBone(bones[boneIndex]); + } + } + } + }; + Skeleton.prototype.sortBone = function (bone) { + if (bone.sorted) + return; + var parent = bone.parent; + if (parent != null) + this.sortBone(parent); + bone.sorted = true; + this._updateCache.push(bone); + }; + Skeleton.prototype.sortReset = function (bones) { + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.sorted) + this.sortReset(bone.children); + bone.sorted = false; + } + }; + Skeleton.prototype.updateWorldTransform = function () { + var updateCacheReset = this.updateCacheReset; + for (var i = 0, n = updateCacheReset.length; i < n; i++) { + var bone = updateCacheReset[i]; + bone.ax = bone.x; + bone.ay = bone.y; + bone.arotation = bone.rotation; + bone.ascaleX = bone.scaleX; + bone.ascaleY = bone.scaleY; + bone.ashearX = bone.shearX; + bone.ashearY = bone.shearY; + bone.appliedValid = true; + } + var updateCache = this._updateCache; + for (var i = 0, n = updateCache.length; i < n; i++) + updateCache[i].update(); + }; + Skeleton.prototype.setToSetupPose = function () { + this.setBonesToSetupPose(); + this.setSlotsToSetupPose(); + }; + Skeleton.prototype.setBonesToSetupPose = function () { + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].setToSetupPose(); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + constraint.bendDirection = constraint.data.bendDirection; + constraint.mix = constraint.data.mix; + } + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + var data = constraint.data; + constraint.position = data.position; + constraint.spacing = data.spacing; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + } + }; + Skeleton.prototype.setSlotsToSetupPose = function () { + var slots = this.slots; + spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); + for (var i = 0, n = slots.length; i < n; i++) + slots[i].setToSetupPose(); + }; + Skeleton.prototype.getRootBone = function () { + if (this.bones.length == 0) + return null; + return this.bones[0]; + }; + Skeleton.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.data.name == boneName) + return bone; + } + return null; + }; + Skeleton.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].data.name == boneName) + return i; + return -1; + }; + Skeleton.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) + return slot; + } + return null; + }; + Skeleton.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].data.name == slotName) + return i; + return -1; + }; + Skeleton.prototype.setSkinByName = function (skinName) { + var skin = this.data.findSkin(skinName); + if (skin == null) + throw new Error("Skin not found: " + skinName); + this.setSkin(skin); + }; + Skeleton.prototype.setSkin = function (newSkin) { + if (newSkin != null) { + if (this.skin != null) + newSkin.attachAll(this, this.skin); + else { + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var name_1 = slot.data.attachmentName; + if (name_1 != null) { + var attachment = newSkin.getAttachment(i, name_1); + if (attachment != null) + slot.setAttachment(attachment); + } + } + } + } + this.skin = newSkin; + }; + Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { + return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); + }; + Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { + if (attachmentName == null) + throw new Error("attachmentName cannot be null."); + if (this.skin != null) { + var attachment = this.skin.getAttachment(slotIndex, attachmentName); + if (attachment != null) + return attachment; + } + if (this.data.defaultSkin != null) + return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); + return null; + }; + Skeleton.prototype.setAttachment = function (slotName, attachmentName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) { + var attachment = null; + if (attachmentName != null) { + attachment = this.getAttachment(i, attachmentName); + if (attachment == null) + throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); + } + slot.setAttachment(attachment); + return; + } + } + throw new Error("Slot not found: " + slotName); + }; + Skeleton.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var ikConstraint = ikConstraints[i]; + if (ikConstraint.data.name == constraintName) + return ikConstraint; + } + return null; + }; + Skeleton.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.getBounds = function (offset, size, temp) { + if (offset == null) + throw new Error("offset cannot be null."); + if (size == null) + throw new Error("size cannot be null."); + var drawOrder = this.drawOrder; + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var verticesLength = 0; + var vertices = null; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.RegionAttachment) { + verticesLength = 8; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + attachment.computeWorldVertices(slot.bone, vertices, 0, 2); + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + verticesLength = mesh.worldVerticesLength; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); + } + if (vertices != null) { + for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { + var x = vertices[ii], y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + } + offset.set(minX, minY); + size.set(maxX - minX, maxY - minY); + }; + Skeleton.prototype.update = function (delta) { + this.time += delta; + }; + return Skeleton; + }()); + spine.Skeleton = Skeleton; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonBounds = (function () { - function SkeletonBounds() { - this.minX = 0; - this.minY = 0; - this.maxX = 0; - this.maxY = 0; - this.boundingBoxes = new Array(); - this.polygons = new Array(); - this.polygonPool = new spine.Pool(function () { - return spine.Utils.newFloatArray(16); - }); - } - SkeletonBounds.prototype.update = function (skeleton, updateAabb) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - var boundingBoxes = this.boundingBoxes; - var polygons = this.polygons; - var polygonPool = this.polygonPool; - var slots = skeleton.slots; - var slotCount = slots.length; - boundingBoxes.length = 0; - polygonPool.freeAll(polygons); - polygons.length = 0; - for (var i = 0; i < slotCount; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.BoundingBoxAttachment) { - var boundingBox = attachment; - boundingBoxes.push(boundingBox); - var polygon = polygonPool.obtain(); - if (polygon.length != boundingBox.worldVerticesLength) { - polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); - } - polygons.push(polygon); - boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); - } - } - if (updateAabb) { - this.aabbCompute(); - } - else { - this.minX = Number.POSITIVE_INFINITY; - this.minY = Number.POSITIVE_INFINITY; - this.maxX = Number.NEGATIVE_INFINITY; - this.maxY = Number.NEGATIVE_INFINITY; - } - }; - SkeletonBounds.prototype.aabbCompute = function () { - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) { - var polygon = polygons[i]; - var vertices = polygon; - for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { - var x = vertices[ii]; - var y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - this.minX = minX; - this.minY = minY; - this.maxX = maxX; - this.maxY = maxY; - }; - SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { - return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; - }; - SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { - var minX = this.minX; - var minY = this.minY; - var maxX = this.maxX; - var maxY = this.maxY; - if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) - return false; - var m = (y2 - y1) / (x2 - x1); - var y = m * (minX - x1) + y1; - if (y > minY && y < maxY) - return true; - y = m * (maxX - x1) + y1; - if (y > minY && y < maxY) - return true; - var x = (minY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - x = (maxY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - return false; - }; - SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { - return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; - }; - SkeletonBounds.prototype.containsPoint = function (x, y) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.containsPointPolygon(polygons[i], x, y)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { - var vertices = polygon; - var nn = polygon.length; - var prevIndex = nn - 2; - var inside = false; - for (var ii = 0; ii < nn; ii += 2) { - var vertexY = vertices[ii + 1]; - var prevY = vertices[prevIndex + 1]; - if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { - var vertexX = vertices[ii]; - if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) - inside = !inside; - } - prevIndex = ii; - } - return inside; - }; - SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { - var vertices = polygon; - var nn = polygon.length; - var width12 = x1 - x2, height12 = y1 - y2; - var det1 = x1 * y2 - y1 * x2; - var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; - for (var ii = 0; ii < nn; ii += 2) { - var x4 = vertices[ii], y4 = vertices[ii + 1]; - var det2 = x3 * y4 - y3 * x4; - var width34 = x3 - x4, height34 = y3 - y4; - var det3 = width12 * height34 - height12 * width34; - var x = (det1 * width34 - width12 * det2) / det3; - if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { - var y = (det1 * height34 - height12 * det2) / det3; - if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) - return true; - } - x3 = x4; - y3 = y4; - } - return false; - }; - SkeletonBounds.prototype.getPolygon = function (boundingBox) { - if (boundingBox == null) - throw new Error("boundingBox cannot be null."); - var index = this.boundingBoxes.indexOf(boundingBox); - return index == -1 ? null : this.polygons[index]; - }; - SkeletonBounds.prototype.getWidth = function () { - return this.maxX - this.minX; - }; - SkeletonBounds.prototype.getHeight = function () { - return this.maxY - this.minY; - }; - return SkeletonBounds; - }()); - spine.SkeletonBounds = SkeletonBounds; + var SkeletonBounds = (function () { + function SkeletonBounds() { + this.minX = 0; + this.minY = 0; + this.maxX = 0; + this.maxY = 0; + this.boundingBoxes = new Array(); + this.polygons = new Array(); + this.polygonPool = new spine.Pool(function () { + return spine.Utils.newFloatArray(16); + }); + } + SkeletonBounds.prototype.update = function (skeleton, updateAabb) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + var boundingBoxes = this.boundingBoxes; + var polygons = this.polygons; + var polygonPool = this.polygonPool; + var slots = skeleton.slots; + var slotCount = slots.length; + boundingBoxes.length = 0; + polygonPool.freeAll(polygons); + polygons.length = 0; + for (var i = 0; i < slotCount; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.BoundingBoxAttachment) { + var boundingBox = attachment; + boundingBoxes.push(boundingBox); + var polygon = polygonPool.obtain(); + if (polygon.length != boundingBox.worldVerticesLength) { + polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); + } + polygons.push(polygon); + boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); + } + } + if (updateAabb) { + this.aabbCompute(); + } + else { + this.minX = Number.POSITIVE_INFINITY; + this.minY = Number.POSITIVE_INFINITY; + this.maxX = Number.NEGATIVE_INFINITY; + this.maxY = Number.NEGATIVE_INFINITY; + } + }; + SkeletonBounds.prototype.aabbCompute = function () { + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) { + var polygon = polygons[i]; + var vertices = polygon; + for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { + var x = vertices[ii]; + var y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + this.minX = minX; + this.minY = minY; + this.maxX = maxX; + this.maxY = maxY; + }; + SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { + return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; + }; + SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { + var minX = this.minX; + var minY = this.minY; + var maxX = this.maxX; + var maxY = this.maxY; + if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) + return false; + var m = (y2 - y1) / (x2 - x1); + var y = m * (minX - x1) + y1; + if (y > minY && y < maxY) + return true; + y = m * (maxX - x1) + y1; + if (y > minY && y < maxY) + return true; + var x = (minY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + x = (maxY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + return false; + }; + SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { + return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; + }; + SkeletonBounds.prototype.containsPoint = function (x, y) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.containsPointPolygon(polygons[i], x, y)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { + var vertices = polygon; + var nn = polygon.length; + var prevIndex = nn - 2; + var inside = false; + for (var ii = 0; ii < nn; ii += 2) { + var vertexY = vertices[ii + 1]; + var prevY = vertices[prevIndex + 1]; + if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { + var vertexX = vertices[ii]; + if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) + inside = !inside; + } + prevIndex = ii; + } + return inside; + }; + SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { + var vertices = polygon; + var nn = polygon.length; + var width12 = x1 - x2, height12 = y1 - y2; + var det1 = x1 * y2 - y1 * x2; + var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; + for (var ii = 0; ii < nn; ii += 2) { + var x4 = vertices[ii], y4 = vertices[ii + 1]; + var det2 = x3 * y4 - y3 * x4; + var width34 = x3 - x4, height34 = y3 - y4; + var det3 = width12 * height34 - height12 * width34; + var x = (det1 * width34 - width12 * det2) / det3; + if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { + var y = (det1 * height34 - height12 * det2) / det3; + if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) + return true; + } + x3 = x4; + y3 = y4; + } + return false; + }; + SkeletonBounds.prototype.getPolygon = function (boundingBox) { + if (boundingBox == null) + throw new Error("boundingBox cannot be null."); + var index = this.boundingBoxes.indexOf(boundingBox); + return index == -1 ? null : this.polygons[index]; + }; + SkeletonBounds.prototype.getWidth = function () { + return this.maxX - this.minX; + }; + SkeletonBounds.prototype.getHeight = function () { + return this.maxY - this.minY; + }; + return SkeletonBounds; + }()); + spine.SkeletonBounds = SkeletonBounds; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonClipping = (function () { - function SkeletonClipping() { - this.triangulator = new spine.Triangulator(); - this.clippingPolygon = new Array(); - this.clipOutput = new Array(); - this.clippedVertices = new Array(); - this.clippedTriangles = new Array(); - this.scratch = new Array(); - } - SkeletonClipping.prototype.clipStart = function (slot, clip) { - if (this.clipAttachment != null) - return 0; - this.clipAttachment = clip; - var n = clip.worldVerticesLength; - var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); - clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); - var clippingPolygon = this.clippingPolygon; - SkeletonClipping.makeClockwise(clippingPolygon); - var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); - for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { - var polygon = clippingPolygons[i]; - SkeletonClipping.makeClockwise(polygon); - polygon.push(polygon[0]); - polygon.push(polygon[1]); - } - return clippingPolygons.length; - }; - SkeletonClipping.prototype.clipEndWithSlot = function (slot) { - if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) - this.clipEnd(); - }; - SkeletonClipping.prototype.clipEnd = function () { - if (this.clipAttachment == null) - return; - this.clipAttachment = null; - this.clippingPolygons = null; - this.clippedVertices.length = 0; - this.clippedTriangles.length = 0; - this.clippingPolygon.length = 0; - }; - SkeletonClipping.prototype.isClipping = function () { - return this.clipAttachment != null; - }; - SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { - var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; - var clippedTriangles = this.clippedTriangles; - var polygons = this.clippingPolygons; - var polygonsCount = this.clippingPolygons.length; - var vertexSize = twoColor ? 12 : 8; - var index = 0; - clippedVertices.length = 0; - clippedTriangles.length = 0; - outer: for (var i = 0; i < trianglesLength; i += 3) { - var vertexOffset = triangles[i] << 1; - var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; - var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 1] << 1; - var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; - var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 2] << 1; - var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; - var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; - for (var p = 0; p < polygonsCount; p++) { - var s = clippedVertices.length; - if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { - var clipOutputLength = clipOutput.length; - if (clipOutputLength == 0) - continue; - var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; - var d = 1 / (d0 * d2 + d1 * (y1 - y3)); - var clipOutputCount = clipOutputLength >> 1; - var clipOutputItems = this.clipOutput; - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); - for (var ii = 0; ii < clipOutputLength; ii += 2) { - var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; - clippedVerticesItems[s] = x; - clippedVerticesItems[s + 1] = y; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - var c0 = x - x3, c1 = y - y3; - var a = (d0 * c0 + d1 * c1) * d; - var b = (d4 * c0 + d2 * c1) * d; - var c = 1 - a - b; - clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; - clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; - if (twoColor) { - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 8] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - } - s += vertexSize; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); - clipOutputCount--; - for (var ii = 1; ii < clipOutputCount; ii++) { - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + ii); - clippedTrianglesItems[s + 2] = (index + ii + 1); - s += 3; - } - index += clipOutputCount + 1; - } - else { - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); - clippedVerticesItems[s] = x1; - clippedVerticesItems[s + 1] = y1; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - if (!twoColor) { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = x2; - clippedVerticesItems[s + 9] = y2; - clippedVerticesItems[s + 10] = light.r; - clippedVerticesItems[s + 11] = light.g; - clippedVerticesItems[s + 12] = light.b; - clippedVerticesItems[s + 13] = light.a; - clippedVerticesItems[s + 14] = u2; - clippedVerticesItems[s + 15] = v2; - clippedVerticesItems[s + 16] = x3; - clippedVerticesItems[s + 17] = y3; - clippedVerticesItems[s + 18] = light.r; - clippedVerticesItems[s + 19] = light.g; - clippedVerticesItems[s + 20] = light.b; - clippedVerticesItems[s + 21] = light.a; - clippedVerticesItems[s + 22] = u3; - clippedVerticesItems[s + 23] = v3; - } - else { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 9] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - clippedVerticesItems[s + 12] = x2; - clippedVerticesItems[s + 13] = y2; - clippedVerticesItems[s + 14] = light.r; - clippedVerticesItems[s + 15] = light.g; - clippedVerticesItems[s + 16] = light.b; - clippedVerticesItems[s + 17] = light.a; - clippedVerticesItems[s + 18] = u2; - clippedVerticesItems[s + 19] = v2; - clippedVerticesItems[s + 20] = dark.r; - clippedVerticesItems[s + 21] = dark.g; - clippedVerticesItems[s + 22] = dark.b; - clippedVerticesItems[s + 23] = dark.a; - clippedVerticesItems[s + 24] = x3; - clippedVerticesItems[s + 25] = y3; - clippedVerticesItems[s + 26] = light.r; - clippedVerticesItems[s + 27] = light.g; - clippedVerticesItems[s + 28] = light.b; - clippedVerticesItems[s + 29] = light.a; - clippedVerticesItems[s + 30] = u3; - clippedVerticesItems[s + 31] = v3; - clippedVerticesItems[s + 32] = dark.r; - clippedVerticesItems[s + 33] = dark.g; - clippedVerticesItems[s + 34] = dark.b; - clippedVerticesItems[s + 35] = dark.a; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + 1); - clippedTrianglesItems[s + 2] = (index + 2); - index += 3; - continue outer; - } - } - } - }; - SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { - var originalOutput = output; - var clipped = false; - var input = null; - if (clippingArea.length % 4 >= 2) { - input = output; - output = this.scratch; - } - else - input = this.scratch; - input.length = 0; - input.push(x1); - input.push(y1); - input.push(x2); - input.push(y2); - input.push(x3); - input.push(y3); - input.push(x1); - input.push(y1); - output.length = 0; - var clippingVertices = clippingArea; - var clippingVerticesLast = clippingArea.length - 4; - for (var i = 0;; i += 2) { - var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; - var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; - var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; - var inputVertices = input; - var inputVerticesLength = input.length - 2, outputStart = output.length; - for (var ii = 0; ii < inputVerticesLength; ii += 2) { - var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; - var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; - var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; - if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { - if (side2) { - output.push(inputX2); - output.push(inputY2); - continue; - } - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - } - else if (side2) { - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - output.push(inputX2); - output.push(inputY2); - } - clipped = true; - } - if (outputStart == output.length) { - originalOutput.length = 0; - return true; - } - output.push(output[0]); - output.push(output[1]); - if (i == clippingVerticesLast) - break; - var temp = output; - output = input; - output.length = 0; - input = temp; - } - if (originalOutput != output) { - originalOutput.length = 0; - for (var i = 0, n = output.length - 2; i < n; i++) - originalOutput[i] = output[i]; - } - else - originalOutput.length = originalOutput.length - 2; - return clipped; - }; - SkeletonClipping.makeClockwise = function (polygon) { - var vertices = polygon; - var verticeslength = polygon.length; - var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; - for (var i = 0, n = verticeslength - 3; i < n; i += 2) { - p1x = vertices[i]; - p1y = vertices[i + 1]; - p2x = vertices[i + 2]; - p2y = vertices[i + 3]; - area += p1x * p2y - p2x * p1y; - } - if (area < 0) - return; - for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { - var x = vertices[i], y = vertices[i + 1]; - var other = lastX - i; - vertices[i] = vertices[other]; - vertices[i + 1] = vertices[other + 1]; - vertices[other] = x; - vertices[other + 1] = y; - } - }; - return SkeletonClipping; - }()); - spine.SkeletonClipping = SkeletonClipping; + var SkeletonClipping = (function () { + function SkeletonClipping() { + this.triangulator = new spine.Triangulator(); + this.clippingPolygon = new Array(); + this.clipOutput = new Array(); + this.clippedVertices = new Array(); + this.clippedTriangles = new Array(); + this.scratch = new Array(); + } + SkeletonClipping.prototype.clipStart = function (slot, clip) { + if (this.clipAttachment != null) + return 0; + this.clipAttachment = clip; + var n = clip.worldVerticesLength; + var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); + clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); + var clippingPolygon = this.clippingPolygon; + SkeletonClipping.makeClockwise(clippingPolygon); + var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); + for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { + var polygon = clippingPolygons[i]; + SkeletonClipping.makeClockwise(polygon); + polygon.push(polygon[0]); + polygon.push(polygon[1]); + } + return clippingPolygons.length; + }; + SkeletonClipping.prototype.clipEndWithSlot = function (slot) { + if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) + this.clipEnd(); + }; + SkeletonClipping.prototype.clipEnd = function () { + if (this.clipAttachment == null) + return; + this.clipAttachment = null; + this.clippingPolygons = null; + this.clippedVertices.length = 0; + this.clippedTriangles.length = 0; + this.clippingPolygon.length = 0; + }; + SkeletonClipping.prototype.isClipping = function () { + return this.clipAttachment != null; + }; + SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { + var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; + var clippedTriangles = this.clippedTriangles; + var polygons = this.clippingPolygons; + var polygonsCount = this.clippingPolygons.length; + var vertexSize = twoColor ? 12 : 8; + var index = 0; + clippedVertices.length = 0; + clippedTriangles.length = 0; + outer: for (var i = 0; i < trianglesLength; i += 3) { + var vertexOffset = triangles[i] << 1; + var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; + var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 1] << 1; + var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; + var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 2] << 1; + var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; + var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; + for (var p = 0; p < polygonsCount; p++) { + var s = clippedVertices.length; + if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { + var clipOutputLength = clipOutput.length; + if (clipOutputLength == 0) + continue; + var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; + var d = 1 / (d0 * d2 + d1 * (y1 - y3)); + var clipOutputCount = clipOutputLength >> 1; + var clipOutputItems = this.clipOutput; + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); + for (var ii = 0; ii < clipOutputLength; ii += 2) { + var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; + clippedVerticesItems[s] = x; + clippedVerticesItems[s + 1] = y; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + var c0 = x - x3, c1 = y - y3; + var a = (d0 * c0 + d1 * c1) * d; + var b = (d4 * c0 + d2 * c1) * d; + var c = 1 - a - b; + clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; + clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; + if (twoColor) { + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 8] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + } + s += vertexSize; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); + clipOutputCount--; + for (var ii = 1; ii < clipOutputCount; ii++) { + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + ii); + clippedTrianglesItems[s + 2] = (index + ii + 1); + s += 3; + } + index += clipOutputCount + 1; + } + else { + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); + clippedVerticesItems[s] = x1; + clippedVerticesItems[s + 1] = y1; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + if (!twoColor) { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = x2; + clippedVerticesItems[s + 9] = y2; + clippedVerticesItems[s + 10] = light.r; + clippedVerticesItems[s + 11] = light.g; + clippedVerticesItems[s + 12] = light.b; + clippedVerticesItems[s + 13] = light.a; + clippedVerticesItems[s + 14] = u2; + clippedVerticesItems[s + 15] = v2; + clippedVerticesItems[s + 16] = x3; + clippedVerticesItems[s + 17] = y3; + clippedVerticesItems[s + 18] = light.r; + clippedVerticesItems[s + 19] = light.g; + clippedVerticesItems[s + 20] = light.b; + clippedVerticesItems[s + 21] = light.a; + clippedVerticesItems[s + 22] = u3; + clippedVerticesItems[s + 23] = v3; + } + else { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 9] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + clippedVerticesItems[s + 12] = x2; + clippedVerticesItems[s + 13] = y2; + clippedVerticesItems[s + 14] = light.r; + clippedVerticesItems[s + 15] = light.g; + clippedVerticesItems[s + 16] = light.b; + clippedVerticesItems[s + 17] = light.a; + clippedVerticesItems[s + 18] = u2; + clippedVerticesItems[s + 19] = v2; + clippedVerticesItems[s + 20] = dark.r; + clippedVerticesItems[s + 21] = dark.g; + clippedVerticesItems[s + 22] = dark.b; + clippedVerticesItems[s + 23] = dark.a; + clippedVerticesItems[s + 24] = x3; + clippedVerticesItems[s + 25] = y3; + clippedVerticesItems[s + 26] = light.r; + clippedVerticesItems[s + 27] = light.g; + clippedVerticesItems[s + 28] = light.b; + clippedVerticesItems[s + 29] = light.a; + clippedVerticesItems[s + 30] = u3; + clippedVerticesItems[s + 31] = v3; + clippedVerticesItems[s + 32] = dark.r; + clippedVerticesItems[s + 33] = dark.g; + clippedVerticesItems[s + 34] = dark.b; + clippedVerticesItems[s + 35] = dark.a; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + 1); + clippedTrianglesItems[s + 2] = (index + 2); + index += 3; + continue outer; + } + } + } + }; + SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { + var originalOutput = output; + var clipped = false; + var input = null; + if (clippingArea.length % 4 >= 2) { + input = output; + output = this.scratch; + } + else + input = this.scratch; + input.length = 0; + input.push(x1); + input.push(y1); + input.push(x2); + input.push(y2); + input.push(x3); + input.push(y3); + input.push(x1); + input.push(y1); + output.length = 0; + var clippingVertices = clippingArea; + var clippingVerticesLast = clippingArea.length - 4; + for (var i = 0;; i += 2) { + var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; + var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; + var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; + var inputVertices = input; + var inputVerticesLength = input.length - 2, outputStart = output.length; + for (var ii = 0; ii < inputVerticesLength; ii += 2) { + var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; + var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; + var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; + if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { + if (side2) { + output.push(inputX2); + output.push(inputY2); + continue; + } + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + } + else if (side2) { + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + output.push(inputX2); + output.push(inputY2); + } + clipped = true; + } + if (outputStart == output.length) { + originalOutput.length = 0; + return true; + } + output.push(output[0]); + output.push(output[1]); + if (i == clippingVerticesLast) + break; + var temp = output; + output = input; + output.length = 0; + input = temp; + } + if (originalOutput != output) { + originalOutput.length = 0; + for (var i = 0, n = output.length - 2; i < n; i++) + originalOutput[i] = output[i]; + } + else + originalOutput.length = originalOutput.length - 2; + return clipped; + }; + SkeletonClipping.makeClockwise = function (polygon) { + var vertices = polygon; + var verticeslength = polygon.length; + var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; + for (var i = 0, n = verticeslength - 3; i < n; i += 2) { + p1x = vertices[i]; + p1y = vertices[i + 1]; + p2x = vertices[i + 2]; + p2y = vertices[i + 3]; + area += p1x * p2y - p2x * p1y; + } + if (area < 0) + return; + for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { + var x = vertices[i], y = vertices[i + 1]; + var other = lastX - i; + vertices[i] = vertices[other]; + vertices[i + 1] = vertices[other + 1]; + vertices[other] = x; + vertices[other + 1] = y; + } + }; + return SkeletonClipping; + }()); + spine.SkeletonClipping = SkeletonClipping; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonData = (function () { - function SkeletonData() { - this.bones = new Array(); - this.slots = new Array(); - this.skins = new Array(); - this.events = new Array(); - this.animations = new Array(); - this.ikConstraints = new Array(); - this.transformConstraints = new Array(); - this.pathConstraints = new Array(); - this.fps = 0; - } - SkeletonData.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.name == boneName) - return bone; - } - return null; - }; - SkeletonData.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].name == boneName) - return i; - return -1; - }; - SkeletonData.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.name == slotName) - return slot; - } - return null; - }; - SkeletonData.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].name == slotName) - return i; - return -1; - }; - SkeletonData.prototype.findSkin = function (skinName) { - if (skinName == null) - throw new Error("skinName cannot be null."); - var skins = this.skins; - for (var i = 0, n = skins.length; i < n; i++) { - var skin = skins[i]; - if (skin.name == skinName) - return skin; - } - return null; - }; - SkeletonData.prototype.findEvent = function (eventDataName) { - if (eventDataName == null) - throw new Error("eventDataName cannot be null."); - var events = this.events; - for (var i = 0, n = events.length; i < n; i++) { - var event_4 = events[i]; - if (event_4.name == eventDataName) - return event_4; - } - return null; - }; - SkeletonData.prototype.findAnimation = function (animationName) { - if (animationName == null) - throw new Error("animationName cannot be null."); - var animations = this.animations; - for (var i = 0, n = animations.length; i < n; i++) { - var animation = animations[i]; - if (animation.name == animationName) - return animation; - } - return null; - }; - SkeletonData.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { - if (pathConstraintName == null) - throw new Error("pathConstraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) - if (pathConstraints[i].name == pathConstraintName) - return i; - return -1; - }; - return SkeletonData; - }()); - spine.SkeletonData = SkeletonData; + var SkeletonData = (function () { + function SkeletonData() { + this.bones = new Array(); + this.slots = new Array(); + this.skins = new Array(); + this.events = new Array(); + this.animations = new Array(); + this.ikConstraints = new Array(); + this.transformConstraints = new Array(); + this.pathConstraints = new Array(); + this.fps = 0; + } + SkeletonData.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.name == boneName) + return bone; + } + return null; + }; + SkeletonData.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].name == boneName) + return i; + return -1; + }; + SkeletonData.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.name == slotName) + return slot; + } + return null; + }; + SkeletonData.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].name == slotName) + return i; + return -1; + }; + SkeletonData.prototype.findSkin = function (skinName) { + if (skinName == null) + throw new Error("skinName cannot be null."); + var skins = this.skins; + for (var i = 0, n = skins.length; i < n; i++) { + var skin = skins[i]; + if (skin.name == skinName) + return skin; + } + return null; + }; + SkeletonData.prototype.findEvent = function (eventDataName) { + if (eventDataName == null) + throw new Error("eventDataName cannot be null."); + var events = this.events; + for (var i = 0, n = events.length; i < n; i++) { + var event_4 = events[i]; + if (event_4.name == eventDataName) + return event_4; + } + return null; + }; + SkeletonData.prototype.findAnimation = function (animationName) { + if (animationName == null) + throw new Error("animationName cannot be null."); + var animations = this.animations; + for (var i = 0, n = animations.length; i < n; i++) { + var animation = animations[i]; + if (animation.name == animationName) + return animation; + } + return null; + }; + SkeletonData.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { + if (pathConstraintName == null) + throw new Error("pathConstraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) + if (pathConstraints[i].name == pathConstraintName) + return i; + return -1; + }; + return SkeletonData; + }()); + spine.SkeletonData = SkeletonData; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonJson = (function () { - function SkeletonJson(attachmentLoader) { - this.scale = 1; - this.linkedMeshes = new Array(); - this.attachmentLoader = attachmentLoader; - } - SkeletonJson.prototype.readSkeletonData = function (json) { - var scale = this.scale; - var skeletonData = new spine.SkeletonData(); - var root = typeof (json) === "string" ? JSON.parse(json) : json; - var skeletonMap = root.skeleton; - if (skeletonMap != null) { - skeletonData.hash = skeletonMap.hash; - skeletonData.version = skeletonMap.spine; - skeletonData.width = skeletonMap.width; - skeletonData.height = skeletonMap.height; - skeletonData.fps = skeletonMap.fps; - skeletonData.imagesPath = skeletonMap.images; - } - if (root.bones) { - for (var i = 0; i < root.bones.length; i++) { - var boneMap = root.bones[i]; - var parent_2 = null; - var parentName = this.getValue(boneMap, "parent", null); - if (parentName != null) { - parent_2 = skeletonData.findBone(parentName); - if (parent_2 == null) - throw new Error("Parent bone not found: " + parentName); - } - var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); - data.length = this.getValue(boneMap, "length", 0) * scale; - data.x = this.getValue(boneMap, "x", 0) * scale; - data.y = this.getValue(boneMap, "y", 0) * scale; - data.rotation = this.getValue(boneMap, "rotation", 0); - data.scaleX = this.getValue(boneMap, "scaleX", 1); - data.scaleY = this.getValue(boneMap, "scaleY", 1); - data.shearX = this.getValue(boneMap, "shearX", 0); - data.shearY = this.getValue(boneMap, "shearY", 0); - data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); - skeletonData.bones.push(data); - } - } - if (root.slots) { - for (var i = 0; i < root.slots.length; i++) { - var slotMap = root.slots[i]; - var slotName = slotMap.name; - var boneName = slotMap.bone; - var boneData = skeletonData.findBone(boneName); - if (boneData == null) - throw new Error("Slot bone not found: " + boneName); - var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); - var color = this.getValue(slotMap, "color", null); - if (color != null) - data.color.setFromString(color); - var dark = this.getValue(slotMap, "dark", null); - if (dark != null) { - data.darkColor = new spine.Color(1, 1, 1, 1); - data.darkColor.setFromString(dark); - } - data.attachmentName = this.getValue(slotMap, "attachment", null); - data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); - skeletonData.slots.push(data); - } - } - if (root.ik) { - for (var i = 0; i < root.ik.length; i++) { - var constraintMap = root.ik[i]; - var data = new spine.IkConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("IK bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("IK target bone not found: " + targetName); - data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; - data.mix = this.getValue(constraintMap, "mix", 1); - skeletonData.ikConstraints.push(data); - } - } - if (root.transform) { - for (var i = 0; i < root.transform.length; i++) { - var constraintMap = root.transform[i]; - var data = new spine.TransformConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("Transform constraint target bone not found: " + targetName); - data.local = this.getValue(constraintMap, "local", false); - data.relative = this.getValue(constraintMap, "relative", false); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.offsetX = this.getValue(constraintMap, "x", 0) * scale; - data.offsetY = this.getValue(constraintMap, "y", 0) * scale; - data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); - data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); - data.offsetShearY = this.getValue(constraintMap, "shearY", 0); - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); - data.shearMix = this.getValue(constraintMap, "shearMix", 1); - skeletonData.transformConstraints.push(data); - } - } - if (root.path) { - for (var i = 0; i < root.path.length; i++) { - var constraintMap = root.path[i]; - var data = new spine.PathConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findSlot(targetName); - if (data.target == null) - throw new Error("Path target slot not found: " + targetName); - data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); - data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); - data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.position = this.getValue(constraintMap, "position", 0); - if (data.positionMode == spine.PositionMode.Fixed) - data.position *= scale; - data.spacing = this.getValue(constraintMap, "spacing", 0); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - data.spacing *= scale; - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - skeletonData.pathConstraints.push(data); - } - } - if (root.skins) { - for (var skinName in root.skins) { - var skinMap = root.skins[skinName]; - var skin = new spine.Skin(skinName); - for (var slotName in skinMap) { - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - var slotMap = skinMap[slotName]; - for (var entryName in slotMap) { - var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); - if (attachment != null) - skin.addAttachment(slotIndex, entryName, attachment); - } - } - skeletonData.skins.push(skin); - if (skin.name == "default") - skeletonData.defaultSkin = skin; - } - } - for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { - var linkedMesh = this.linkedMeshes[i]; - var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); - if (skin == null) - throw new Error("Skin not found: " + linkedMesh.skin); - var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_3 == null) - throw new Error("Parent mesh not found: " + linkedMesh.parent); - linkedMesh.mesh.setParentMesh(parent_3); - linkedMesh.mesh.updateUVs(); - } - this.linkedMeshes.length = 0; - if (root.events) { - for (var eventName in root.events) { - var eventMap = root.events[eventName]; - var data = new spine.EventData(eventName); - data.intValue = this.getValue(eventMap, "int", 0); - data.floatValue = this.getValue(eventMap, "float", 0); - data.stringValue = this.getValue(eventMap, "string", ""); - skeletonData.events.push(data); - } - } - if (root.animations) { - for (var animationName in root.animations) { - var animationMap = root.animations[animationName]; - this.readAnimation(animationMap, animationName, skeletonData); - } - } - return skeletonData; - }; - SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { - var scale = this.scale; - name = this.getValue(map, "name", name); - var type = this.getValue(map, "type", "region"); - switch (type) { - case "region": { - var path = this.getValue(map, "path", name); - var region = this.attachmentLoader.newRegionAttachment(skin, name, path); - if (region == null) - return null; - region.path = path; - region.x = this.getValue(map, "x", 0) * scale; - region.y = this.getValue(map, "y", 0) * scale; - region.scaleX = this.getValue(map, "scaleX", 1); - region.scaleY = this.getValue(map, "scaleY", 1); - region.rotation = this.getValue(map, "rotation", 0); - region.width = map.width * scale; - region.height = map.height * scale; - var color = this.getValue(map, "color", null); - if (color != null) - region.color.setFromString(color); - region.updateOffset(); - return region; - } - case "boundingbox": { - var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); - if (box == null) - return null; - this.readVertices(map, box, map.vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - box.color.setFromString(color); - return box; - } - case "mesh": - case "linkedmesh": { - var path = this.getValue(map, "path", name); - var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); - if (mesh == null) - return null; - mesh.path = path; - var color = this.getValue(map, "color", null); - if (color != null) - mesh.color.setFromString(color); - var parent_4 = this.getValue(map, "parent", null); - if (parent_4 != null) { - mesh.inheritDeform = this.getValue(map, "deform", true); - this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); - return mesh; - } - var uvs = map.uvs; - this.readVertices(map, mesh, uvs.length); - mesh.triangles = map.triangles; - mesh.regionUVs = uvs; - mesh.updateUVs(); - mesh.hullLength = this.getValue(map, "hull", 0) * 2; - return mesh; - } - case "path": { - var path = this.attachmentLoader.newPathAttachment(skin, name); - if (path == null) - return null; - path.closed = this.getValue(map, "closed", false); - path.constantSpeed = this.getValue(map, "constantSpeed", true); - var vertexCount = map.vertexCount; - this.readVertices(map, path, vertexCount << 1); - var lengths = spine.Utils.newArray(vertexCount / 3, 0); - for (var i = 0; i < map.lengths.length; i++) - lengths[i++] = map.lengths[i] * scale; - path.lengths = lengths; - var color = this.getValue(map, "color", null); - if (color != null) - path.color.setFromString(color); - return path; - } - case "point": { - var point = this.attachmentLoader.newPointAttachment(skin, name); - if (point == null) - return null; - point.x = this.getValue(map, "x", 0) * scale; - point.y = this.getValue(map, "y", 0) * scale; - point.rotation = this.getValue(map, "rotation", 0); - var color = this.getValue(map, "color", null); - if (color != null) - point.color.setFromString(color); - return point; - } - case "clipping": { - var clip = this.attachmentLoader.newClippingAttachment(skin, name); - if (clip == null) - return null; - var end = this.getValue(map, "end", null); - if (end != null) { - var slot = skeletonData.findSlot(end); - if (slot == null) - throw new Error("Clipping end slot not found: " + end); - clip.endSlot = slot; - } - var vertexCount = map.vertexCount; - this.readVertices(map, clip, vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - clip.color.setFromString(color); - return clip; - } - } - return null; - }; - SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { - var scale = this.scale; - attachment.worldVerticesLength = verticesLength; - var vertices = map.vertices; - if (verticesLength == vertices.length) { - var scaledVertices = spine.Utils.toFloatArray(vertices); - if (scale != 1) { - for (var i = 0, n = vertices.length; i < n; i++) - scaledVertices[i] *= scale; - } - attachment.vertices = scaledVertices; - return; - } - var weights = new Array(); - var bones = new Array(); - for (var i = 0, n = vertices.length; i < n;) { - var boneCount = vertices[i++]; - bones.push(boneCount); - for (var nn = i + boneCount * 4; i < nn; i += 4) { - bones.push(vertices[i]); - weights.push(vertices[i + 1] * scale); - weights.push(vertices[i + 2] * scale); - weights.push(vertices[i + 3]); - } - } - attachment.bones = bones; - attachment.vertices = spine.Utils.toFloatArray(weights); - }; - SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { - var scale = this.scale; - var timelines = new Array(); - var duration = 0; - if (map.slots) { - for (var slotName in map.slots) { - var slotMap = map.slots[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - if (timelineName == "attachment") { - var timeline = new spine.AttachmentTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - else if (timelineName == "color") { - var timeline = new spine.ColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var color = new spine.Color(); - color.setFromString(valueMap.color); - timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); - } - else if (timelineName == "twoColor") { - var timeline = new spine.TwoColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var light = new spine.Color(); - var dark = new spine.Color(); - light.setFromString(valueMap.light); - dark.setFromString(valueMap.dark); - timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); - } - } - } - if (map.bones) { - for (var boneName in map.bones) { - var boneMap = map.bones[boneName]; - var boneIndex = skeletonData.findBoneIndex(boneName); - if (boneIndex == -1) - throw new Error("Bone not found: " + boneName); - for (var timelineName in boneMap) { - var timelineMap = boneMap[timelineName]; - if (timelineName === "rotate") { - var timeline = new spine.RotateTimeline(timelineMap.length); - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); - } - else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "scale") - timeline = new spine.ScaleTimeline(timelineMap.length); - else if (timelineName === "shear") - timeline = new spine.ShearTimeline(timelineMap.length); - else { - timeline = new spine.TranslateTimeline(timelineMap.length); - timelineScale = scale; - } - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); - timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); - } - } - } - if (map.ik) { - for (var constraintName in map.ik) { - var constraintMap = map.ik[constraintName]; - var constraint = skeletonData.findIkConstraint(constraintName); - var timeline = new spine.IkConstraintTimeline(constraintMap.length); - timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); - } - } - if (map.transform) { - for (var constraintName in map.transform) { - var constraintMap = map.transform[constraintName]; - var constraint = skeletonData.findTransformConstraint(constraintName); - var timeline = new spine.TransformConstraintTimeline(constraintMap.length); - timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); - } - } - if (map.paths) { - for (var constraintName in map.paths) { - var constraintMap = map.paths[constraintName]; - var index = skeletonData.findPathConstraintIndex(constraintName); - if (index == -1) - throw new Error("Path constraint not found: " + constraintName); - var data = skeletonData.pathConstraints[index]; - for (var timelineName in constraintMap) { - var timelineMap = constraintMap[timelineName]; - if (timelineName === "position" || timelineName === "spacing") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "spacing") { - timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - timelineScale = scale; - } - else { - timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); - if (data.positionMode == spine.PositionMode.Fixed) - timelineScale = scale; - } - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); - } - else if (timelineName === "mix") { - var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); - } - } - } - } - if (map.deform) { - for (var deformName in map.deform) { - var deformMap = map.deform[deformName]; - var skin = skeletonData.findSkin(deformName); - if (skin == null) - throw new Error("Skin not found: " + deformName); - for (var slotName in deformMap) { - var slotMap = deformMap[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotMap.name); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - var attachment = skin.getAttachment(slotIndex, timelineName); - if (attachment == null) - throw new Error("Deform attachment not found: " + timelineMap.name); - var weighted = attachment.bones != null; - var vertices = attachment.vertices; - var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; - var timeline = new spine.DeformTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - timeline.attachment = attachment; - var frameIndex = 0; - for (var j = 0; j < timelineMap.length; j++) { - var valueMap = timelineMap[j]; - var deform = void 0; - var verticesValue = this.getValue(valueMap, "vertices", null); - if (verticesValue == null) - deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; - else { - deform = spine.Utils.newFloatArray(deformLength); - var start = this.getValue(valueMap, "offset", 0); - spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); - if (scale != 1) { - for (var i = start, n = i + verticesValue.length; i < n; i++) - deform[i] *= scale; - } - if (!weighted) { - for (var i = 0; i < deformLength; i++) - deform[i] += vertices[i]; - } - } - timeline.setFrame(frameIndex, valueMap.time, deform); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - } - } - } - var drawOrderNode = map.drawOrder; - if (drawOrderNode == null) - drawOrderNode = map.draworder; - if (drawOrderNode != null) { - var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); - var slotCount = skeletonData.slots.length; - var frameIndex = 0; - for (var j = 0; j < drawOrderNode.length; j++) { - var drawOrderMap = drawOrderNode[j]; - var drawOrder = null; - var offsets = this.getValue(drawOrderMap, "offsets", null); - if (offsets != null) { - drawOrder = spine.Utils.newArray(slotCount, -1); - var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); - var originalIndex = 0, unchangedIndex = 0; - for (var i = 0; i < offsets.length; i++) { - var offsetMap = offsets[i]; - var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); - if (slotIndex == -1) - throw new Error("Slot not found: " + offsetMap.slot); - while (originalIndex != slotIndex) - unchanged[unchangedIndex++] = originalIndex++; - drawOrder[originalIndex + offsetMap.offset] = originalIndex++; - } - while (originalIndex < slotCount) - unchanged[unchangedIndex++] = originalIndex++; - for (var i = slotCount - 1; i >= 0; i--) - if (drawOrder[i] == -1) - drawOrder[i] = unchanged[--unchangedIndex]; - } - timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (map.events) { - var timeline = new spine.EventTimeline(map.events.length); - var frameIndex = 0; - for (var i = 0; i < map.events.length; i++) { - var eventMap = map.events[i]; - var eventData = skeletonData.findEvent(eventMap.name); - if (eventData == null) - throw new Error("Event not found: " + eventMap.name); - var event_5 = new spine.Event(eventMap.time, eventData); - event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); - event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); - event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); - timeline.setFrame(frameIndex++, event_5); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (isNaN(duration)) { - throw new Error("Error while parsing animation, duration is NaN"); - } - skeletonData.animations.push(new spine.Animation(name, timelines, duration)); - }; - SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { - if (!map.curve) - return; - if (map.curve === "stepped") - timeline.setStepped(frameIndex); - else if (Object.prototype.toString.call(map.curve) === '[object Array]') { - var curve = map.curve; - timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); - } - }; - SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { - return map[prop] !== undefined ? map[prop] : defaultValue; - }; - SkeletonJson.blendModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.BlendMode.Normal; - if (str == "additive") - return spine.BlendMode.Additive; - if (str == "multiply") - return spine.BlendMode.Multiply; - if (str == "screen") - return spine.BlendMode.Screen; - throw new Error("Unknown blend mode: " + str); - }; - SkeletonJson.positionModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "fixed") - return spine.PositionMode.Fixed; - if (str == "percent") - return spine.PositionMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.spacingModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "length") - return spine.SpacingMode.Length; - if (str == "fixed") - return spine.SpacingMode.Fixed; - if (str == "percent") - return spine.SpacingMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.rotateModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "tangent") - return spine.RotateMode.Tangent; - if (str == "chain") - return spine.RotateMode.Chain; - if (str == "chainscale") - return spine.RotateMode.ChainScale; - throw new Error("Unknown rotate mode: " + str); - }; - SkeletonJson.transformModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.TransformMode.Normal; - if (str == "onlytranslation") - return spine.TransformMode.OnlyTranslation; - if (str == "norotationorreflection") - return spine.TransformMode.NoRotationOrReflection; - if (str == "noscale") - return spine.TransformMode.NoScale; - if (str == "noscaleorreflection") - return spine.TransformMode.NoScaleOrReflection; - throw new Error("Unknown transform mode: " + str); - }; - return SkeletonJson; - }()); - spine.SkeletonJson = SkeletonJson; - var LinkedMesh = (function () { - function LinkedMesh(mesh, skin, slotIndex, parent) { - this.mesh = mesh; - this.skin = skin; - this.slotIndex = slotIndex; - this.parent = parent; - } - return LinkedMesh; - }()); + var SkeletonJson = (function () { + function SkeletonJson(attachmentLoader) { + this.scale = 1; + this.linkedMeshes = new Array(); + this.attachmentLoader = attachmentLoader; + } + SkeletonJson.prototype.readSkeletonData = function (json) { + var scale = this.scale; + var skeletonData = new spine.SkeletonData(); + var root = typeof (json) === "string" ? JSON.parse(json) : json; + var skeletonMap = root.skeleton; + if (skeletonMap != null) { + skeletonData.hash = skeletonMap.hash; + skeletonData.version = skeletonMap.spine; + skeletonData.width = skeletonMap.width; + skeletonData.height = skeletonMap.height; + skeletonData.fps = skeletonMap.fps; + skeletonData.imagesPath = skeletonMap.images; + } + if (root.bones) { + for (var i = 0; i < root.bones.length; i++) { + var boneMap = root.bones[i]; + var parent_2 = null; + var parentName = this.getValue(boneMap, "parent", null); + if (parentName != null) { + parent_2 = skeletonData.findBone(parentName); + if (parent_2 == null) + throw new Error("Parent bone not found: " + parentName); + } + var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); + data.length = this.getValue(boneMap, "length", 0) * scale; + data.x = this.getValue(boneMap, "x", 0) * scale; + data.y = this.getValue(boneMap, "y", 0) * scale; + data.rotation = this.getValue(boneMap, "rotation", 0); + data.scaleX = this.getValue(boneMap, "scaleX", 1); + data.scaleY = this.getValue(boneMap, "scaleY", 1); + data.shearX = this.getValue(boneMap, "shearX", 0); + data.shearY = this.getValue(boneMap, "shearY", 0); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); + skeletonData.bones.push(data); + } + } + if (root.slots) { + for (var i = 0; i < root.slots.length; i++) { + var slotMap = root.slots[i]; + var slotName = slotMap.name; + var boneName = slotMap.bone; + var boneData = skeletonData.findBone(boneName); + if (boneData == null) + throw new Error("Slot bone not found: " + boneName); + var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); + var color = this.getValue(slotMap, "color", null); + if (color != null) + data.color.setFromString(color); + var dark = this.getValue(slotMap, "dark", null); + if (dark != null) { + data.darkColor = new spine.Color(1, 1, 1, 1); + data.darkColor.setFromString(dark); + } + data.attachmentName = this.getValue(slotMap, "attachment", null); + data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); + skeletonData.slots.push(data); + } + } + if (root.ik) { + for (var i = 0; i < root.ik.length; i++) { + var constraintMap = root.ik[i]; + var data = new spine.IkConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("IK bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("IK target bone not found: " + targetName); + data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; + data.mix = this.getValue(constraintMap, "mix", 1); + skeletonData.ikConstraints.push(data); + } + } + if (root.transform) { + for (var i = 0; i < root.transform.length; i++) { + var constraintMap = root.transform[i]; + var data = new spine.TransformConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("Transform constraint target bone not found: " + targetName); + data.local = this.getValue(constraintMap, "local", false); + data.relative = this.getValue(constraintMap, "relative", false); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.offsetX = this.getValue(constraintMap, "x", 0) * scale; + data.offsetY = this.getValue(constraintMap, "y", 0) * scale; + data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); + data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); + data.offsetShearY = this.getValue(constraintMap, "shearY", 0); + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); + data.shearMix = this.getValue(constraintMap, "shearMix", 1); + skeletonData.transformConstraints.push(data); + } + } + if (root.path) { + for (var i = 0; i < root.path.length; i++) { + var constraintMap = root.path[i]; + var data = new spine.PathConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findSlot(targetName); + if (data.target == null) + throw new Error("Path target slot not found: " + targetName); + data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); + data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); + data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.position = this.getValue(constraintMap, "position", 0); + if (data.positionMode == spine.PositionMode.Fixed) + data.position *= scale; + data.spacing = this.getValue(constraintMap, "spacing", 0); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + data.spacing *= scale; + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + skeletonData.pathConstraints.push(data); + } + } + if (root.skins) { + for (var skinName in root.skins) { + var skinMap = root.skins[skinName]; + var skin = new spine.Skin(skinName); + for (var slotName in skinMap) { + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + var slotMap = skinMap[slotName]; + for (var entryName in slotMap) { + var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); + if (attachment != null) + skin.addAttachment(slotIndex, entryName, attachment); + } + } + skeletonData.skins.push(skin); + if (skin.name == "default") + skeletonData.defaultSkin = skin; + } + } + for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { + var linkedMesh = this.linkedMeshes[i]; + var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); + if (skin == null) + throw new Error("Skin not found: " + linkedMesh.skin); + var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); + if (parent_3 == null) + throw new Error("Parent mesh not found: " + linkedMesh.parent); + linkedMesh.mesh.setParentMesh(parent_3); + linkedMesh.mesh.updateUVs(); + } + this.linkedMeshes.length = 0; + if (root.events) { + for (var eventName in root.events) { + var eventMap = root.events[eventName]; + var data = new spine.EventData(eventName); + data.intValue = this.getValue(eventMap, "int", 0); + data.floatValue = this.getValue(eventMap, "float", 0); + data.stringValue = this.getValue(eventMap, "string", ""); + skeletonData.events.push(data); + } + } + if (root.animations) { + for (var animationName in root.animations) { + var animationMap = root.animations[animationName]; + this.readAnimation(animationMap, animationName, skeletonData); + } + } + return skeletonData; + }; + SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { + var scale = this.scale; + name = this.getValue(map, "name", name); + var type = this.getValue(map, "type", "region"); + switch (type) { + case "region": { + var path = this.getValue(map, "path", name); + var region = this.attachmentLoader.newRegionAttachment(skin, name, path); + if (region == null) + return null; + region.path = path; + region.x = this.getValue(map, "x", 0) * scale; + region.y = this.getValue(map, "y", 0) * scale; + region.scaleX = this.getValue(map, "scaleX", 1); + region.scaleY = this.getValue(map, "scaleY", 1); + region.rotation = this.getValue(map, "rotation", 0); + region.width = map.width * scale; + region.height = map.height * scale; + var color = this.getValue(map, "color", null); + if (color != null) + region.color.setFromString(color); + region.updateOffset(); + return region; + } + case "boundingbox": { + var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); + if (box == null) + return null; + this.readVertices(map, box, map.vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + box.color.setFromString(color); + return box; + } + case "mesh": + case "linkedmesh": { + var path = this.getValue(map, "path", name); + var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); + if (mesh == null) + return null; + mesh.path = path; + var color = this.getValue(map, "color", null); + if (color != null) + mesh.color.setFromString(color); + var parent_4 = this.getValue(map, "parent", null); + if (parent_4 != null) { + mesh.inheritDeform = this.getValue(map, "deform", true); + this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); + return mesh; + } + var uvs = map.uvs; + this.readVertices(map, mesh, uvs.length); + mesh.triangles = map.triangles; + mesh.regionUVs = uvs; + mesh.updateUVs(); + mesh.hullLength = this.getValue(map, "hull", 0) * 2; + return mesh; + } + case "path": { + var path = this.attachmentLoader.newPathAttachment(skin, name); + if (path == null) + return null; + path.closed = this.getValue(map, "closed", false); + path.constantSpeed = this.getValue(map, "constantSpeed", true); + var vertexCount = map.vertexCount; + this.readVertices(map, path, vertexCount << 1); + var lengths = spine.Utils.newArray(vertexCount / 3, 0); + for (var i = 0; i < map.lengths.length; i++) + lengths[i++] = map.lengths[i] * scale; + path.lengths = lengths; + var color = this.getValue(map, "color", null); + if (color != null) + path.color.setFromString(color); + return path; + } + case "point": { + var point = this.attachmentLoader.newPointAttachment(skin, name); + if (point == null) + return null; + point.x = this.getValue(map, "x", 0) * scale; + point.y = this.getValue(map, "y", 0) * scale; + point.rotation = this.getValue(map, "rotation", 0); + var color = this.getValue(map, "color", null); + if (color != null) + point.color.setFromString(color); + return point; + } + case "clipping": { + var clip = this.attachmentLoader.newClippingAttachment(skin, name); + if (clip == null) + return null; + var end = this.getValue(map, "end", null); + if (end != null) { + var slot = skeletonData.findSlot(end); + if (slot == null) + throw new Error("Clipping end slot not found: " + end); + clip.endSlot = slot; + } + var vertexCount = map.vertexCount; + this.readVertices(map, clip, vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + clip.color.setFromString(color); + return clip; + } + } + return null; + }; + SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { + var scale = this.scale; + attachment.worldVerticesLength = verticesLength; + var vertices = map.vertices; + if (verticesLength == vertices.length) { + var scaledVertices = spine.Utils.toFloatArray(vertices); + if (scale != 1) { + for (var i = 0, n = vertices.length; i < n; i++) + scaledVertices[i] *= scale; + } + attachment.vertices = scaledVertices; + return; + } + var weights = new Array(); + var bones = new Array(); + for (var i = 0, n = vertices.length; i < n;) { + var boneCount = vertices[i++]; + bones.push(boneCount); + for (var nn = i + boneCount * 4; i < nn; i += 4) { + bones.push(vertices[i]); + weights.push(vertices[i + 1] * scale); + weights.push(vertices[i + 2] * scale); + weights.push(vertices[i + 3]); + } + } + attachment.bones = bones; + attachment.vertices = spine.Utils.toFloatArray(weights); + }; + SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { + var scale = this.scale; + var timelines = new Array(); + var duration = 0; + if (map.slots) { + for (var slotName in map.slots) { + var slotMap = map.slots[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + if (timelineName == "attachment") { + var timeline = new spine.AttachmentTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + else if (timelineName == "color") { + var timeline = new spine.ColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var color = new spine.Color(); + color.setFromString(valueMap.color); + timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); + } + else if (timelineName == "twoColor") { + var timeline = new spine.TwoColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var light = new spine.Color(); + var dark = new spine.Color(); + light.setFromString(valueMap.light); + dark.setFromString(valueMap.dark); + timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); + } + } + } + if (map.bones) { + for (var boneName in map.bones) { + var boneMap = map.bones[boneName]; + var boneIndex = skeletonData.findBoneIndex(boneName); + if (boneIndex == -1) + throw new Error("Bone not found: " + boneName); + for (var timelineName in boneMap) { + var timelineMap = boneMap[timelineName]; + if (timelineName === "rotate") { + var timeline = new spine.RotateTimeline(timelineMap.length); + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); + } + else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "scale") + timeline = new spine.ScaleTimeline(timelineMap.length); + else if (timelineName === "shear") + timeline = new spine.ShearTimeline(timelineMap.length); + else { + timeline = new spine.TranslateTimeline(timelineMap.length); + timelineScale = scale; + } + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); + timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); + } + } + } + if (map.ik) { + for (var constraintName in map.ik) { + var constraintMap = map.ik[constraintName]; + var constraint = skeletonData.findIkConstraint(constraintName); + var timeline = new spine.IkConstraintTimeline(constraintMap.length); + timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); + } + } + if (map.transform) { + for (var constraintName in map.transform) { + var constraintMap = map.transform[constraintName]; + var constraint = skeletonData.findTransformConstraint(constraintName); + var timeline = new spine.TransformConstraintTimeline(constraintMap.length); + timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); + } + } + if (map.paths) { + for (var constraintName in map.paths) { + var constraintMap = map.paths[constraintName]; + var index = skeletonData.findPathConstraintIndex(constraintName); + if (index == -1) + throw new Error("Path constraint not found: " + constraintName); + var data = skeletonData.pathConstraints[index]; + for (var timelineName in constraintMap) { + var timelineMap = constraintMap[timelineName]; + if (timelineName === "position" || timelineName === "spacing") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "spacing") { + timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + timelineScale = scale; + } + else { + timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); + if (data.positionMode == spine.PositionMode.Fixed) + timelineScale = scale; + } + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); + } + else if (timelineName === "mix") { + var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); + } + } + } + } + if (map.deform) { + for (var deformName in map.deform) { + var deformMap = map.deform[deformName]; + var skin = skeletonData.findSkin(deformName); + if (skin == null) + throw new Error("Skin not found: " + deformName); + for (var slotName in deformMap) { + var slotMap = deformMap[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotMap.name); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + var attachment = skin.getAttachment(slotIndex, timelineName); + if (attachment == null) + throw new Error("Deform attachment not found: " + timelineMap.name); + var weighted = attachment.bones != null; + var vertices = attachment.vertices; + var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; + var timeline = new spine.DeformTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + timeline.attachment = attachment; + var frameIndex = 0; + for (var j = 0; j < timelineMap.length; j++) { + var valueMap = timelineMap[j]; + var deform = void 0; + var verticesValue = this.getValue(valueMap, "vertices", null); + if (verticesValue == null) + deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; + else { + deform = spine.Utils.newFloatArray(deformLength); + var start = this.getValue(valueMap, "offset", 0); + spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); + if (scale != 1) { + for (var i = start, n = i + verticesValue.length; i < n; i++) + deform[i] *= scale; + } + if (!weighted) { + for (var i = 0; i < deformLength; i++) + deform[i] += vertices[i]; + } + } + timeline.setFrame(frameIndex, valueMap.time, deform); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + } + } + } + var drawOrderNode = map.drawOrder; + if (drawOrderNode == null) + drawOrderNode = map.draworder; + if (drawOrderNode != null) { + var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); + var slotCount = skeletonData.slots.length; + var frameIndex = 0; + for (var j = 0; j < drawOrderNode.length; j++) { + var drawOrderMap = drawOrderNode[j]; + var drawOrder = null; + var offsets = this.getValue(drawOrderMap, "offsets", null); + if (offsets != null) { + drawOrder = spine.Utils.newArray(slotCount, -1); + var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); + var originalIndex = 0, unchangedIndex = 0; + for (var i = 0; i < offsets.length; i++) { + var offsetMap = offsets[i]; + var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); + if (slotIndex == -1) + throw new Error("Slot not found: " + offsetMap.slot); + while (originalIndex != slotIndex) + unchanged[unchangedIndex++] = originalIndex++; + drawOrder[originalIndex + offsetMap.offset] = originalIndex++; + } + while (originalIndex < slotCount) + unchanged[unchangedIndex++] = originalIndex++; + for (var i = slotCount - 1; i >= 0; i--) + if (drawOrder[i] == -1) + drawOrder[i] = unchanged[--unchangedIndex]; + } + timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (map.events) { + var timeline = new spine.EventTimeline(map.events.length); + var frameIndex = 0; + for (var i = 0; i < map.events.length; i++) { + var eventMap = map.events[i]; + var eventData = skeletonData.findEvent(eventMap.name); + if (eventData == null) + throw new Error("Event not found: " + eventMap.name); + var event_5 = new spine.Event(eventMap.time, eventData); + event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); + event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); + event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); + timeline.setFrame(frameIndex++, event_5); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (isNaN(duration)) { + throw new Error("Error while parsing animation, duration is NaN"); + } + skeletonData.animations.push(new spine.Animation(name, timelines, duration)); + }; + SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { + if (!map.curve) + return; + if (map.curve === "stepped") + timeline.setStepped(frameIndex); + else if (Object.prototype.toString.call(map.curve) === '[object Array]') { + var curve = map.curve; + timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); + } + }; + SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { + return map[prop] !== undefined ? map[prop] : defaultValue; + }; + SkeletonJson.blendModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.BlendMode.Normal; + if (str == "additive") + return spine.BlendMode.Additive; + if (str == "multiply") + return spine.BlendMode.Multiply; + if (str == "screen") + return spine.BlendMode.Screen; + throw new Error("Unknown blend mode: " + str); + }; + SkeletonJson.positionModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "fixed") + return spine.PositionMode.Fixed; + if (str == "percent") + return spine.PositionMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.spacingModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "length") + return spine.SpacingMode.Length; + if (str == "fixed") + return spine.SpacingMode.Fixed; + if (str == "percent") + return spine.SpacingMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.rotateModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "tangent") + return spine.RotateMode.Tangent; + if (str == "chain") + return spine.RotateMode.Chain; + if (str == "chainscale") + return spine.RotateMode.ChainScale; + throw new Error("Unknown rotate mode: " + str); + }; + SkeletonJson.transformModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.TransformMode.Normal; + if (str == "onlytranslation") + return spine.TransformMode.OnlyTranslation; + if (str == "norotationorreflection") + return spine.TransformMode.NoRotationOrReflection; + if (str == "noscale") + return spine.TransformMode.NoScale; + if (str == "noscaleorreflection") + return spine.TransformMode.NoScaleOrReflection; + throw new Error("Unknown transform mode: " + str); + }; + return SkeletonJson; + }()); + spine.SkeletonJson = SkeletonJson; + var LinkedMesh = (function () { + function LinkedMesh(mesh, skin, slotIndex, parent) { + this.mesh = mesh; + this.skin = skin; + this.slotIndex = slotIndex; + this.parent = parent; + } + return LinkedMesh; + }()); })(spine || (spine = {})); var spine; (function (spine) { - var Skin = (function () { - function Skin(name) { - this.attachments = new Array(); - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - Skin.prototype.addAttachment = function (slotIndex, name, attachment) { - if (attachment == null) - throw new Error("attachment cannot be null."); - var attachments = this.attachments; - if (slotIndex >= attachments.length) - attachments.length = slotIndex + 1; - if (!attachments[slotIndex]) - attachments[slotIndex] = {}; - attachments[slotIndex][name] = attachment; - }; - Skin.prototype.getAttachment = function (slotIndex, name) { - var dictionary = this.attachments[slotIndex]; - return dictionary ? dictionary[name] : null; - }; - Skin.prototype.attachAll = function (skeleton, oldSkin) { - var slotIndex = 0; - for (var i = 0; i < skeleton.slots.length; i++) { - var slot = skeleton.slots[i]; - var slotAttachment = slot.getAttachment(); - if (slotAttachment && slotIndex < oldSkin.attachments.length) { - var dictionary = oldSkin.attachments[slotIndex]; - for (var key in dictionary) { - var skinAttachment = dictionary[key]; - if (slotAttachment == skinAttachment) { - var attachment = this.getAttachment(slotIndex, key); - if (attachment != null) - slot.setAttachment(attachment); - break; - } - } - } - slotIndex++; - } - }; - return Skin; - }()); - spine.Skin = Skin; + var Skin = (function () { + function Skin(name) { + this.attachments = new Array(); + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + Skin.prototype.addAttachment = function (slotIndex, name, attachment) { + if (attachment == null) + throw new Error("attachment cannot be null."); + var attachments = this.attachments; + if (slotIndex >= attachments.length) + attachments.length = slotIndex + 1; + if (!attachments[slotIndex]) + attachments[slotIndex] = {}; + attachments[slotIndex][name] = attachment; + }; + Skin.prototype.getAttachment = function (slotIndex, name) { + var dictionary = this.attachments[slotIndex]; + return dictionary ? dictionary[name] : null; + }; + Skin.prototype.attachAll = function (skeleton, oldSkin) { + var slotIndex = 0; + for (var i = 0; i < skeleton.slots.length; i++) { + var slot = skeleton.slots[i]; + var slotAttachment = slot.getAttachment(); + if (slotAttachment && slotIndex < oldSkin.attachments.length) { + var dictionary = oldSkin.attachments[slotIndex]; + for (var key in dictionary) { + var skinAttachment = dictionary[key]; + if (slotAttachment == skinAttachment) { + var attachment = this.getAttachment(slotIndex, key); + if (attachment != null) + slot.setAttachment(attachment); + break; + } + } + } + slotIndex++; + } + }; + return Skin; + }()); + spine.Skin = Skin; })(spine || (spine = {})); var spine; (function (spine) { - var Slot = (function () { - function Slot(data, bone) { - this.attachmentVertices = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (bone == null) - throw new Error("bone cannot be null."); - this.data = data; - this.bone = bone; - this.color = new spine.Color(); - this.darkColor = data.darkColor == null ? null : new spine.Color(); - this.setToSetupPose(); - } - Slot.prototype.getAttachment = function () { - return this.attachment; - }; - Slot.prototype.setAttachment = function (attachment) { - if (this.attachment == attachment) - return; - this.attachment = attachment; - this.attachmentTime = this.bone.skeleton.time; - this.attachmentVertices.length = 0; - }; - Slot.prototype.setAttachmentTime = function (time) { - this.attachmentTime = this.bone.skeleton.time - time; - }; - Slot.prototype.getAttachmentTime = function () { - return this.bone.skeleton.time - this.attachmentTime; - }; - Slot.prototype.setToSetupPose = function () { - this.color.setFromColor(this.data.color); - if (this.darkColor != null) - this.darkColor.setFromColor(this.data.darkColor); - if (this.data.attachmentName == null) - this.attachment = null; - else { - this.attachment = null; - this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); - } - }; - return Slot; - }()); - spine.Slot = Slot; + var Slot = (function () { + function Slot(data, bone) { + this.attachmentVertices = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (bone == null) + throw new Error("bone cannot be null."); + this.data = data; + this.bone = bone; + this.color = new spine.Color(); + this.darkColor = data.darkColor == null ? null : new spine.Color(); + this.setToSetupPose(); + } + Slot.prototype.getAttachment = function () { + return this.attachment; + }; + Slot.prototype.setAttachment = function (attachment) { + if (this.attachment == attachment) + return; + this.attachment = attachment; + this.attachmentTime = this.bone.skeleton.time; + this.attachmentVertices.length = 0; + }; + Slot.prototype.setAttachmentTime = function (time) { + this.attachmentTime = this.bone.skeleton.time - time; + }; + Slot.prototype.getAttachmentTime = function () { + return this.bone.skeleton.time - this.attachmentTime; + }; + Slot.prototype.setToSetupPose = function () { + this.color.setFromColor(this.data.color); + if (this.darkColor != null) + this.darkColor.setFromColor(this.data.darkColor); + if (this.data.attachmentName == null) + this.attachment = null; + else { + this.attachment = null; + this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); + } + }; + return Slot; + }()); + spine.Slot = Slot; })(spine || (spine = {})); var spine; (function (spine) { - var SlotData = (function () { - function SlotData(index, name, boneData) { - this.color = new spine.Color(1, 1, 1, 1); - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - if (boneData == null) - throw new Error("boneData cannot be null."); - this.index = index; - this.name = name; - this.boneData = boneData; - } - return SlotData; - }()); - spine.SlotData = SlotData; + var SlotData = (function () { + function SlotData(index, name, boneData) { + this.color = new spine.Color(1, 1, 1, 1); + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + if (boneData == null) + throw new Error("boneData cannot be null."); + this.index = index; + this.name = name; + this.boneData = boneData; + } + return SlotData; + }()); + spine.SlotData = SlotData; })(spine || (spine = {})); var spine; (function (spine) { - var Texture = (function () { - function Texture(image) { - this._image = image; - } - Texture.prototype.getImage = function () { - return this._image; - }; - Texture.filterFromString = function (text) { - switch (text.toLowerCase()) { - case "nearest": return TextureFilter.Nearest; - case "linear": return TextureFilter.Linear; - case "mipmap": return TextureFilter.MipMap; - case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; - case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; - case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; - case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; - default: throw new Error("Unknown texture filter " + text); - } - }; - Texture.wrapFromString = function (text) { - switch (text.toLowerCase()) { - case "mirroredtepeat": return TextureWrap.MirroredRepeat; - case "clamptoedge": return TextureWrap.ClampToEdge; - case "repeat": return TextureWrap.Repeat; - default: throw new Error("Unknown texture wrap " + text); - } - }; - return Texture; - }()); - spine.Texture = Texture; - (function (TextureFilter) { - TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; - TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; - TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; - TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; - TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; - TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; - TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; - })(spine.TextureFilter || (spine.TextureFilter = {})); - var TextureFilter = spine.TextureFilter; - (function (TextureWrap) { - TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; - TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; - TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; - })(spine.TextureWrap || (spine.TextureWrap = {})); - var TextureWrap = spine.TextureWrap; - var TextureRegion = (function () { - function TextureRegion() { - this.u = 0; - this.v = 0; - this.u2 = 0; - this.v2 = 0; - this.width = 0; - this.height = 0; - this.rotate = false; - this.offsetX = 0; - this.offsetY = 0; - this.originalWidth = 0; - this.originalHeight = 0; - } - return TextureRegion; - }()); - spine.TextureRegion = TextureRegion; + var Texture = (function () { + function Texture(image) { + this._image = image; + } + Texture.prototype.getImage = function () { + return this._image; + }; + Texture.filterFromString = function (text) { + switch (text.toLowerCase()) { + case "nearest": return TextureFilter.Nearest; + case "linear": return TextureFilter.Linear; + case "mipmap": return TextureFilter.MipMap; + case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; + case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; + case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; + case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; + default: throw new Error("Unknown texture filter " + text); + } + }; + Texture.wrapFromString = function (text) { + switch (text.toLowerCase()) { + case "mirroredtepeat": return TextureWrap.MirroredRepeat; + case "clamptoedge": return TextureWrap.ClampToEdge; + case "repeat": return TextureWrap.Repeat; + default: throw new Error("Unknown texture wrap " + text); + } + }; + return Texture; + }()); + spine.Texture = Texture; + (function (TextureFilter) { + TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; + TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; + TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; + TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; + TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; + TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; + TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; + })(spine.TextureFilter || (spine.TextureFilter = {})); + var TextureFilter = spine.TextureFilter; + (function (TextureWrap) { + TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; + TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; + TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; + })(spine.TextureWrap || (spine.TextureWrap = {})); + var TextureWrap = spine.TextureWrap; + var TextureRegion = (function () { + function TextureRegion() { + this.u = 0; + this.v = 0; + this.u2 = 0; + this.v2 = 0; + this.width = 0; + this.height = 0; + this.rotate = false; + this.offsetX = 0; + this.offsetY = 0; + this.originalWidth = 0; + this.originalHeight = 0; + } + return TextureRegion; + }()); + spine.TextureRegion = TextureRegion; })(spine || (spine = {})); var spine; (function (spine) { - var TextureAtlas = (function () { - function TextureAtlas(atlasText, textureLoader) { - this.pages = new Array(); - this.regions = new Array(); - this.load(atlasText, textureLoader); - } - TextureAtlas.prototype.load = function (atlasText, textureLoader) { - if (textureLoader == null) - throw new Error("textureLoader cannot be null."); - var reader = new TextureAtlasReader(atlasText); - var tuple = new Array(4); - var page = null; - while (true) { - var line = reader.readLine(); - if (line == null) - break; - line = line.trim(); - if (line.length == 0) - page = null; - else if (!page) { - page = new TextureAtlasPage(); - page.name = line; - if (reader.readTuple(tuple) == 2) { - page.width = parseInt(tuple[0]); - page.height = parseInt(tuple[1]); - reader.readTuple(tuple); - } - reader.readTuple(tuple); - page.minFilter = spine.Texture.filterFromString(tuple[0]); - page.magFilter = spine.Texture.filterFromString(tuple[1]); - var direction = reader.readValue(); - page.uWrap = spine.TextureWrap.ClampToEdge; - page.vWrap = spine.TextureWrap.ClampToEdge; - if (direction == "x") - page.uWrap = spine.TextureWrap.Repeat; - else if (direction == "y") - page.vWrap = spine.TextureWrap.Repeat; - else if (direction == "xy") - page.uWrap = page.vWrap = spine.TextureWrap.Repeat; - page.texture = textureLoader(line); - page.texture.setFilters(page.minFilter, page.magFilter); - page.texture.setWraps(page.uWrap, page.vWrap); - page.width = page.texture.getImage().width; - page.height = page.texture.getImage().height; - this.pages.push(page); - } - else { - var region = new TextureAtlasRegion(); - region.name = line; - region.page = page; - region.rotate = reader.readValue() == "true"; - reader.readTuple(tuple); - var x = parseInt(tuple[0]); - var y = parseInt(tuple[1]); - reader.readTuple(tuple); - var width = parseInt(tuple[0]); - var height = parseInt(tuple[1]); - region.u = x / page.width; - region.v = y / page.height; - if (region.rotate) { - region.u2 = (x + height) / page.width; - region.v2 = (y + width) / page.height; - } - else { - region.u2 = (x + width) / page.width; - region.v2 = (y + height) / page.height; - } - region.x = x; - region.y = y; - region.width = Math.abs(width); - region.height = Math.abs(height); - if (reader.readTuple(tuple) == 4) { - if (reader.readTuple(tuple) == 4) { - reader.readTuple(tuple); - } - } - region.originalWidth = parseInt(tuple[0]); - region.originalHeight = parseInt(tuple[1]); - reader.readTuple(tuple); - region.offsetX = parseInt(tuple[0]); - region.offsetY = parseInt(tuple[1]); - region.index = parseInt(reader.readValue()); - region.texture = page.texture; - this.regions.push(region); - } - } - }; - TextureAtlas.prototype.findRegion = function (name) { - for (var i = 0; i < this.regions.length; i++) { - if (this.regions[i].name == name) { - return this.regions[i]; - } - } - return null; - }; - TextureAtlas.prototype.dispose = function () { - for (var i = 0; i < this.pages.length; i++) { - this.pages[i].texture.dispose(); - } - }; - return TextureAtlas; - }()); - spine.TextureAtlas = TextureAtlas; - var TextureAtlasReader = (function () { - function TextureAtlasReader(text) { - this.index = 0; - this.lines = text.split(/\r\n|\r|\n/); - } - TextureAtlasReader.prototype.readLine = function () { - if (this.index >= this.lines.length) - return null; - return this.lines[this.index++]; - }; - TextureAtlasReader.prototype.readValue = function () { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - return line.substring(colon + 1).trim(); - }; - TextureAtlasReader.prototype.readTuple = function (tuple) { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - var i = 0, lastMatch = colon + 1; - for (; i < 3; i++) { - var comma = line.indexOf(",", lastMatch); - if (comma == -1) - break; - tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); - lastMatch = comma + 1; - } - tuple[i] = line.substring(lastMatch).trim(); - return i + 1; - }; - return TextureAtlasReader; - }()); - var TextureAtlasPage = (function () { - function TextureAtlasPage() { - } - return TextureAtlasPage; - }()); - spine.TextureAtlasPage = TextureAtlasPage; - var TextureAtlasRegion = (function (_super) { - __extends(TextureAtlasRegion, _super); - function TextureAtlasRegion() { - _super.apply(this, arguments); - } - return TextureAtlasRegion; - }(spine.TextureRegion)); - spine.TextureAtlasRegion = TextureAtlasRegion; + var TextureAtlas = (function () { + function TextureAtlas(atlasText, textureLoader) { + this.pages = new Array(); + this.regions = new Array(); + this.load(atlasText, textureLoader); + } + TextureAtlas.prototype.load = function (atlasText, textureLoader) { + if (textureLoader == null) + throw new Error("textureLoader cannot be null."); + var reader = new TextureAtlasReader(atlasText); + var tuple = new Array(4); + var page = null; + while (true) { + var line = reader.readLine(); + if (line == null) + break; + line = line.trim(); + if (line.length == 0) + page = null; + else if (!page) { + page = new TextureAtlasPage(); + page.name = line; + if (reader.readTuple(tuple) == 2) { + page.width = parseInt(tuple[0]); + page.height = parseInt(tuple[1]); + reader.readTuple(tuple); + } + reader.readTuple(tuple); + page.minFilter = spine.Texture.filterFromString(tuple[0]); + page.magFilter = spine.Texture.filterFromString(tuple[1]); + var direction = reader.readValue(); + page.uWrap = spine.TextureWrap.ClampToEdge; + page.vWrap = spine.TextureWrap.ClampToEdge; + if (direction == "x") + page.uWrap = spine.TextureWrap.Repeat; + else if (direction == "y") + page.vWrap = spine.TextureWrap.Repeat; + else if (direction == "xy") + page.uWrap = page.vWrap = spine.TextureWrap.Repeat; + page.texture = textureLoader(line); + page.texture.setFilters(page.minFilter, page.magFilter); + page.texture.setWraps(page.uWrap, page.vWrap); + page.width = page.texture.getImage().width; + page.height = page.texture.getImage().height; + this.pages.push(page); + } + else { + var region = new TextureAtlasRegion(); + region.name = line; + region.page = page; + region.rotate = reader.readValue() == "true"; + reader.readTuple(tuple); + var x = parseInt(tuple[0]); + var y = parseInt(tuple[1]); + reader.readTuple(tuple); + var width = parseInt(tuple[0]); + var height = parseInt(tuple[1]); + region.u = x / page.width; + region.v = y / page.height; + if (region.rotate) { + region.u2 = (x + height) / page.width; + region.v2 = (y + width) / page.height; + } + else { + region.u2 = (x + width) / page.width; + region.v2 = (y + height) / page.height; + } + region.x = x; + region.y = y; + region.width = Math.abs(width); + region.height = Math.abs(height); + if (reader.readTuple(tuple) == 4) { + if (reader.readTuple(tuple) == 4) { + reader.readTuple(tuple); + } + } + region.originalWidth = parseInt(tuple[0]); + region.originalHeight = parseInt(tuple[1]); + reader.readTuple(tuple); + region.offsetX = parseInt(tuple[0]); + region.offsetY = parseInt(tuple[1]); + region.index = parseInt(reader.readValue()); + region.texture = page.texture; + this.regions.push(region); + } + } + }; + TextureAtlas.prototype.findRegion = function (name) { + for (var i = 0; i < this.regions.length; i++) { + if (this.regions[i].name == name) { + return this.regions[i]; + } + } + return null; + }; + TextureAtlas.prototype.dispose = function () { + for (var i = 0; i < this.pages.length; i++) { + this.pages[i].texture.dispose(); + } + }; + return TextureAtlas; + }()); + spine.TextureAtlas = TextureAtlas; + var TextureAtlasReader = (function () { + function TextureAtlasReader(text) { + this.index = 0; + this.lines = text.split(/\r\n|\r|\n/); + } + TextureAtlasReader.prototype.readLine = function () { + if (this.index >= this.lines.length) + return null; + return this.lines[this.index++]; + }; + TextureAtlasReader.prototype.readValue = function () { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + return line.substring(colon + 1).trim(); + }; + TextureAtlasReader.prototype.readTuple = function (tuple) { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + var i = 0, lastMatch = colon + 1; + for (; i < 3; i++) { + var comma = line.indexOf(",", lastMatch); + if (comma == -1) + break; + tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); + lastMatch = comma + 1; + } + tuple[i] = line.substring(lastMatch).trim(); + return i + 1; + }; + return TextureAtlasReader; + }()); + var TextureAtlasPage = (function () { + function TextureAtlasPage() { + } + return TextureAtlasPage; + }()); + spine.TextureAtlasPage = TextureAtlasPage; + var TextureAtlasRegion = (function (_super) { + __extends(TextureAtlasRegion, _super); + function TextureAtlasRegion() { + _super.apply(this, arguments); + } + return TextureAtlasRegion; + }(spine.TextureRegion)); + spine.TextureAtlasRegion = TextureAtlasRegion; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraint = (function () { - function TransformConstraint(data, skeleton) { - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.temp = new spine.Vector2(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - this.scaleMix = data.scaleMix; - this.shearMix = data.shearMix; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - TransformConstraint.prototype.apply = function () { - this.update(); - }; - TransformConstraint.prototype.update = function () { - if (this.data.local) { - if (this.data.relative) - this.applyRelativeLocal(); - else - this.applyAbsoluteLocal(); - } - else { - if (this.data.relative) - this.applyRelativeWorld(); - else - this.applyAbsoluteWorld(); - } - }; - TransformConstraint.prototype.applyAbsoluteWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect; - var offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += (temp.x - bone.worldX) * translateMix; - bone.worldY += (temp.y - bone.worldY) * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); - var ts = Math.sqrt(ta * ta + tc * tc); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; - bone.a *= s; - bone.c *= s; - s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); - ts = Math.sqrt(tb * tb + td * td); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var b = bone.b, d = bone.d; - var by = Math.atan2(d, b); - var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r = by + (r + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyRelativeWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += temp.x * translateMix; - bone.worldY += temp.y * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; - bone.a *= s; - bone.c *= s; - s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var r = Math.atan2(td, tb) - Math.atan2(tc, ta); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - var b = bone.b, d = bone.d; - r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyAbsoluteLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) { - var r = target.arotation - rotation + this.data.offsetRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - rotation += r * rotateMix; - } - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax - x + this.data.offsetX) * translateMix; - y += (target.ay - y + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; - if (scaleY > 0.00001) - scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; - } - var shearY = bone.ashearY; - if (shearMix > 0) { - var r = target.ashearY - shearY + this.data.offsetShearY; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.shearY += r * shearMix; - } - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.applyRelativeLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) - rotation += (target.arotation + this.data.offsetRotation) * rotateMix; - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax + this.data.offsetX) * translateMix; - y += (target.ay + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; - if (scaleY > 0.00001) - scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; - } - var shearY = bone.ashearY; - if (shearMix > 0) - shearY += (target.ashearY + this.data.offsetShearY) * shearMix; - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.getOrder = function () { - return this.data.order; - }; - return TransformConstraint; - }()); - spine.TransformConstraint = TransformConstraint; + var TransformConstraint = (function () { + function TransformConstraint(data, skeleton) { + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.temp = new spine.Vector2(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + this.scaleMix = data.scaleMix; + this.shearMix = data.shearMix; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + TransformConstraint.prototype.apply = function () { + this.update(); + }; + TransformConstraint.prototype.update = function () { + if (this.data.local) { + if (this.data.relative) + this.applyRelativeLocal(); + else + this.applyAbsoluteLocal(); + } + else { + if (this.data.relative) + this.applyRelativeWorld(); + else + this.applyAbsoluteWorld(); + } + }; + TransformConstraint.prototype.applyAbsoluteWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect; + var offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += (temp.x - bone.worldX) * translateMix; + bone.worldY += (temp.y - bone.worldY) * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var ts = Math.sqrt(ta * ta + tc * tc); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; + bone.a *= s; + bone.c *= s; + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + ts = Math.sqrt(tb * tb + td * td); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var b = bone.b, d = bone.d; + var by = Math.atan2(d, b); + var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r = by + (r + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyRelativeWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += temp.x * translateMix; + bone.worldY += temp.y * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; + bone.a *= s; + bone.c *= s; + s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var r = Math.atan2(td, tb) - Math.atan2(tc, ta); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + var b = bone.b, d = bone.d; + r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyAbsoluteLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) { + var r = target.arotation - rotation + this.data.offsetRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + rotation += r * rotateMix; + } + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax - x + this.data.offsetX) * translateMix; + y += (target.ay - y + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; + if (scaleY > 0.00001) + scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; + } + var shearY = bone.ashearY; + if (shearMix > 0) { + var r = target.ashearY - shearY + this.data.offsetShearY; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.shearY += r * shearMix; + } + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.applyRelativeLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) + rotation += (target.arotation + this.data.offsetRotation) * rotateMix; + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax + this.data.offsetX) * translateMix; + y += (target.ay + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; + if (scaleY > 0.00001) + scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; + } + var shearY = bone.ashearY; + if (shearMix > 0) + shearY += (target.ashearY + this.data.offsetShearY) * shearMix; + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.getOrder = function () { + return this.data.order; + }; + return TransformConstraint; + }()); + spine.TransformConstraint = TransformConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraintData = (function () { - function TransformConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.offsetRotation = 0; - this.offsetX = 0; - this.offsetY = 0; - this.offsetScaleX = 0; - this.offsetScaleY = 0; - this.offsetShearY = 0; - this.relative = false; - this.local = false; - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return TransformConstraintData; - }()); - spine.TransformConstraintData = TransformConstraintData; + var TransformConstraintData = (function () { + function TransformConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.offsetRotation = 0; + this.offsetX = 0; + this.offsetY = 0; + this.offsetScaleX = 0; + this.offsetScaleY = 0; + this.offsetShearY = 0; + this.relative = false; + this.local = false; + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return TransformConstraintData; + }()); + spine.TransformConstraintData = TransformConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var Triangulator = (function () { - function Triangulator() { - this.convexPolygons = new Array(); - this.convexPolygonsIndices = new Array(); - this.indicesArray = new Array(); - this.isConcaveArray = new Array(); - this.triangles = new Array(); - this.polygonPool = new spine.Pool(function () { - return new Array(); - }); - this.polygonIndicesPool = new spine.Pool(function () { - return new Array(); - }); - } - Triangulator.prototype.triangulate = function (verticesArray) { - var vertices = verticesArray; - var vertexCount = verticesArray.length >> 1; - var indices = this.indicesArray; - indices.length = 0; - for (var i = 0; i < vertexCount; i++) - indices[i] = i; - var isConcave = this.isConcaveArray; - isConcave.length = 0; - for (var i = 0, n = vertexCount; i < n; ++i) - isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); - var triangles = this.triangles; - triangles.length = 0; - while (vertexCount > 3) { - var previous = vertexCount - 1, i = 0, next = 1; - while (true) { - outer: if (!isConcave[i]) { - var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; - var p1x = vertices[p1], p1y = vertices[p1 + 1]; - var p2x = vertices[p2], p2y = vertices[p2 + 1]; - var p3x = vertices[p3], p3y = vertices[p3 + 1]; - for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { - if (!isConcave[ii]) - continue; - var v = indices[ii] << 1; - var vx = vertices[v], vy = vertices[v + 1]; - if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { - if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { - if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) - break outer; - } - } - } - break; - } - if (next == 0) { - do { - if (!isConcave[i]) - break; - i--; - } while (i > 0); - break; - } - previous = i; - i = next; - next = (next + 1) % vertexCount; - } - triangles.push(indices[(vertexCount + i - 1) % vertexCount]); - triangles.push(indices[i]); - triangles.push(indices[(i + 1) % vertexCount]); - indices.splice(i, 1); - isConcave.splice(i, 1); - vertexCount--; - var previousIndex = (vertexCount + i - 1) % vertexCount; - var nextIndex = i == vertexCount ? 0 : i; - isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); - isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); - } - if (vertexCount == 3) { - triangles.push(indices[2]); - triangles.push(indices[0]); - triangles.push(indices[1]); - } - return triangles; - }; - Triangulator.prototype.decompose = function (verticesArray, triangles) { - var vertices = verticesArray; - var convexPolygons = this.convexPolygons; - this.polygonPool.freeAll(convexPolygons); - convexPolygons.length = 0; - var convexPolygonsIndices = this.convexPolygonsIndices; - this.polygonIndicesPool.freeAll(convexPolygonsIndices); - convexPolygonsIndices.length = 0; - var polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - var polygon = this.polygonPool.obtain(); - polygon.length = 0; - var fanBaseIndex = -1, lastWinding = 0; - for (var i = 0, n = triangles.length; i < n; i += 3) { - var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; - var x1 = vertices[t1], y1 = vertices[t1 + 1]; - var x2 = vertices[t2], y2 = vertices[t2 + 1]; - var x3 = vertices[t3], y3 = vertices[t3 + 1]; - var merged = false; - if (fanBaseIndex == t1) { - var o = polygon.length - 4; - var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); - var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); - if (winding1 == lastWinding && winding2 == lastWinding) { - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(t3); - merged = true; - } - } - if (!merged) { - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - else { - this.polygonPool.free(polygon); - this.polygonIndicesPool.free(polygonIndices); - } - polygon = this.polygonPool.obtain(); - polygon.length = 0; - polygon.push(x1); - polygon.push(y1); - polygon.push(x2); - polygon.push(y2); - polygon.push(x3); - polygon.push(y3); - polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - polygonIndices.push(t1); - polygonIndices.push(t2); - polygonIndices.push(t3); - lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); - fanBaseIndex = t1; - } - } - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - for (var i = 0, n = convexPolygons.length; i < n; i++) { - polygonIndices = convexPolygonsIndices[i]; - if (polygonIndices.length == 0) - continue; - var firstIndex = polygonIndices[0]; - var lastIndex = polygonIndices[polygonIndices.length - 1]; - polygon = convexPolygons[i]; - var o = polygon.length - 4; - var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; - var prevX = polygon[o + 2], prevY = polygon[o + 3]; - var firstX = polygon[0], firstY = polygon[1]; - var secondX = polygon[2], secondY = polygon[3]; - var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); - for (var ii = 0; ii < n; ii++) { - if (ii == i) - continue; - var otherIndices = convexPolygonsIndices[ii]; - if (otherIndices.length != 3) - continue; - var otherFirstIndex = otherIndices[0]; - var otherSecondIndex = otherIndices[1]; - var otherLastIndex = otherIndices[2]; - var otherPoly = convexPolygons[ii]; - var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; - if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) - continue; - var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); - var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); - if (winding1 == winding && winding2 == winding) { - otherPoly.length = 0; - otherIndices.length = 0; - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(otherLastIndex); - prevPrevX = prevX; - prevPrevY = prevY; - prevX = x3; - prevY = y3; - ii = 0; - } - } - } - for (var i = convexPolygons.length - 1; i >= 0; i--) { - polygon = convexPolygons[i]; - if (polygon.length == 0) { - convexPolygons.splice(i, 1); - this.polygonPool.free(polygon); - polygonIndices = convexPolygonsIndices[i]; - convexPolygonsIndices.splice(i, 1); - this.polygonIndicesPool.free(polygonIndices); - } - } - return convexPolygons; - }; - Triangulator.isConcave = function (index, vertexCount, vertices, indices) { - var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; - var current = indices[index] << 1; - var next = indices[(index + 1) % vertexCount] << 1; - return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); - }; - Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { - return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; - }; - Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { - var px = p2x - p1x, py = p2y - p1y; - return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; - }; - return Triangulator; - }()); - spine.Triangulator = Triangulator; + var Triangulator = (function () { + function Triangulator() { + this.convexPolygons = new Array(); + this.convexPolygonsIndices = new Array(); + this.indicesArray = new Array(); + this.isConcaveArray = new Array(); + this.triangles = new Array(); + this.polygonPool = new spine.Pool(function () { + return new Array(); + }); + this.polygonIndicesPool = new spine.Pool(function () { + return new Array(); + }); + } + Triangulator.prototype.triangulate = function (verticesArray) { + var vertices = verticesArray; + var vertexCount = verticesArray.length >> 1; + var indices = this.indicesArray; + indices.length = 0; + for (var i = 0; i < vertexCount; i++) + indices[i] = i; + var isConcave = this.isConcaveArray; + isConcave.length = 0; + for (var i = 0, n = vertexCount; i < n; ++i) + isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); + var triangles = this.triangles; + triangles.length = 0; + while (vertexCount > 3) { + var previous = vertexCount - 1, i = 0, next = 1; + while (true) { + outer: if (!isConcave[i]) { + var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; + var p1x = vertices[p1], p1y = vertices[p1 + 1]; + var p2x = vertices[p2], p2y = vertices[p2 + 1]; + var p3x = vertices[p3], p3y = vertices[p3 + 1]; + for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { + if (!isConcave[ii]) + continue; + var v = indices[ii] << 1; + var vx = vertices[v], vy = vertices[v + 1]; + if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { + if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { + if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) + break outer; + } + } + } + break; + } + if (next == 0) { + do { + if (!isConcave[i]) + break; + i--; + } while (i > 0); + break; + } + previous = i; + i = next; + next = (next + 1) % vertexCount; + } + triangles.push(indices[(vertexCount + i - 1) % vertexCount]); + triangles.push(indices[i]); + triangles.push(indices[(i + 1) % vertexCount]); + indices.splice(i, 1); + isConcave.splice(i, 1); + vertexCount--; + var previousIndex = (vertexCount + i - 1) % vertexCount; + var nextIndex = i == vertexCount ? 0 : i; + isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); + isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); + } + if (vertexCount == 3) { + triangles.push(indices[2]); + triangles.push(indices[0]); + triangles.push(indices[1]); + } + return triangles; + }; + Triangulator.prototype.decompose = function (verticesArray, triangles) { + var vertices = verticesArray; + var convexPolygons = this.convexPolygons; + this.polygonPool.freeAll(convexPolygons); + convexPolygons.length = 0; + var convexPolygonsIndices = this.convexPolygonsIndices; + this.polygonIndicesPool.freeAll(convexPolygonsIndices); + convexPolygonsIndices.length = 0; + var polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + var polygon = this.polygonPool.obtain(); + polygon.length = 0; + var fanBaseIndex = -1, lastWinding = 0; + for (var i = 0, n = triangles.length; i < n; i += 3) { + var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; + var x1 = vertices[t1], y1 = vertices[t1 + 1]; + var x2 = vertices[t2], y2 = vertices[t2 + 1]; + var x3 = vertices[t3], y3 = vertices[t3 + 1]; + var merged = false; + if (fanBaseIndex == t1) { + var o = polygon.length - 4; + var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); + var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); + if (winding1 == lastWinding && winding2 == lastWinding) { + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(t3); + merged = true; + } + } + if (!merged) { + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + else { + this.polygonPool.free(polygon); + this.polygonIndicesPool.free(polygonIndices); + } + polygon = this.polygonPool.obtain(); + polygon.length = 0; + polygon.push(x1); + polygon.push(y1); + polygon.push(x2); + polygon.push(y2); + polygon.push(x3); + polygon.push(y3); + polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + polygonIndices.push(t1); + polygonIndices.push(t2); + polygonIndices.push(t3); + lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); + fanBaseIndex = t1; + } + } + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + for (var i = 0, n = convexPolygons.length; i < n; i++) { + polygonIndices = convexPolygonsIndices[i]; + if (polygonIndices.length == 0) + continue; + var firstIndex = polygonIndices[0]; + var lastIndex = polygonIndices[polygonIndices.length - 1]; + polygon = convexPolygons[i]; + var o = polygon.length - 4; + var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; + var prevX = polygon[o + 2], prevY = polygon[o + 3]; + var firstX = polygon[0], firstY = polygon[1]; + var secondX = polygon[2], secondY = polygon[3]; + var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); + for (var ii = 0; ii < n; ii++) { + if (ii == i) + continue; + var otherIndices = convexPolygonsIndices[ii]; + if (otherIndices.length != 3) + continue; + var otherFirstIndex = otherIndices[0]; + var otherSecondIndex = otherIndices[1]; + var otherLastIndex = otherIndices[2]; + var otherPoly = convexPolygons[ii]; + var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; + if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) + continue; + var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); + var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); + if (winding1 == winding && winding2 == winding) { + otherPoly.length = 0; + otherIndices.length = 0; + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(otherLastIndex); + prevPrevX = prevX; + prevPrevY = prevY; + prevX = x3; + prevY = y3; + ii = 0; + } + } + } + for (var i = convexPolygons.length - 1; i >= 0; i--) { + polygon = convexPolygons[i]; + if (polygon.length == 0) { + convexPolygons.splice(i, 1); + this.polygonPool.free(polygon); + polygonIndices = convexPolygonsIndices[i]; + convexPolygonsIndices.splice(i, 1); + this.polygonIndicesPool.free(polygonIndices); + } + } + return convexPolygons; + }; + Triangulator.isConcave = function (index, vertexCount, vertices, indices) { + var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; + var current = indices[index] << 1; + var next = indices[(index + 1) % vertexCount] << 1; + return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); + }; + Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { + return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; + }; + Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { + var px = p2x - p1x, py = p2y - p1y; + return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; + }; + return Triangulator; + }()); + spine.Triangulator = Triangulator; })(spine || (spine = {})); var spine; (function (spine) { - var IntSet = (function () { - function IntSet() { - this.array = new Array(); - } - IntSet.prototype.add = function (value) { - var contains = this.contains(value); - this.array[value | 0] = value | 0; - return !contains; - }; - IntSet.prototype.contains = function (value) { - return this.array[value | 0] != undefined; - }; - IntSet.prototype.remove = function (value) { - this.array[value | 0] = undefined; - }; - IntSet.prototype.clear = function () { - this.array.length = 0; - }; - return IntSet; - }()); - spine.IntSet = IntSet; - var Color = (function () { - function Color(r, g, b, a) { - if (r === void 0) { r = 0; } - if (g === void 0) { g = 0; } - if (b === void 0) { b = 0; } - if (a === void 0) { a = 0; } - this.r = r; - this.g = g; - this.b = b; - this.a = a; - } - Color.prototype.set = function (r, g, b, a) { - this.r = r; - this.g = g; - this.b = b; - this.a = a; - this.clamp(); - return this; - }; - Color.prototype.setFromColor = function (c) { - this.r = c.r; - this.g = c.g; - this.b = c.b; - this.a = c.a; - return this; - }; - Color.prototype.setFromString = function (hex) { - hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; - this.r = parseInt(hex.substr(0, 2), 16) / 255.0; - this.g = parseInt(hex.substr(2, 2), 16) / 255.0; - this.b = parseInt(hex.substr(4, 2), 16) / 255.0; - this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; - return this; - }; - Color.prototype.add = function (r, g, b, a) { - this.r += r; - this.g += g; - this.b += b; - this.a += a; - this.clamp(); - return this; - }; - Color.prototype.clamp = function () { - if (this.r < 0) - this.r = 0; - else if (this.r > 1) - this.r = 1; - if (this.g < 0) - this.g = 0; - else if (this.g > 1) - this.g = 1; - if (this.b < 0) - this.b = 0; - else if (this.b > 1) - this.b = 1; - if (this.a < 0) - this.a = 0; - else if (this.a > 1) - this.a = 1; - return this; - }; - Color.WHITE = new Color(1, 1, 1, 1); - Color.RED = new Color(1, 0, 0, 1); - Color.GREEN = new Color(0, 1, 0, 1); - Color.BLUE = new Color(0, 0, 1, 1); - Color.MAGENTA = new Color(1, 0, 1, 1); - return Color; - }()); - spine.Color = Color; - var MathUtils = (function () { - function MathUtils() { - } - MathUtils.clamp = function (value, min, max) { - if (value < min) - return min; - if (value > max) - return max; - return value; - }; - MathUtils.cosDeg = function (degrees) { - return Math.cos(degrees * MathUtils.degRad); - }; - MathUtils.sinDeg = function (degrees) { - return Math.sin(degrees * MathUtils.degRad); - }; - MathUtils.signum = function (value) { - return value > 0 ? 1 : value < 0 ? -1 : 0; - }; - MathUtils.toInt = function (x) { - return x > 0 ? Math.floor(x) : Math.ceil(x); - }; - MathUtils.cbrt = function (x) { - var y = Math.pow(Math.abs(x), 1 / 3); - return x < 0 ? -y : y; - }; - MathUtils.PI = 3.1415927; - MathUtils.PI2 = MathUtils.PI * 2; - MathUtils.radiansToDegrees = 180 / MathUtils.PI; - MathUtils.radDeg = MathUtils.radiansToDegrees; - MathUtils.degreesToRadians = MathUtils.PI / 180; - MathUtils.degRad = MathUtils.degreesToRadians; - return MathUtils; - }()); - spine.MathUtils = MathUtils; - var Utils = (function () { - function Utils() { - } - Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { - for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { - dest[j] = source[i]; - } - }; - Utils.setArraySize = function (array, size, value) { - if (value === void 0) { value = 0; } - var oldSize = array.length; - if (oldSize == size) - return array; - array.length = size; - if (oldSize < size) { - for (var i = oldSize; i < size; i++) - array[i] = value; - } - return array; - }; - Utils.ensureArrayCapacity = function (array, size, value) { - if (value === void 0) { value = 0; } - if (array.length >= size) - return array; - return Utils.setArraySize(array, size, value); - }; - Utils.newArray = function (size, defaultValue) { - var array = new Array(size); - for (var i = 0; i < size; i++) - array[i] = defaultValue; - return array; - }; - Utils.newFloatArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Float32Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.newShortArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Int16Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.toFloatArray = function (array) { - return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; - }; - Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; - return Utils; - }()); - spine.Utils = Utils; - var DebugUtils = (function () { - function DebugUtils() { - } - DebugUtils.logBones = function (skeleton) { - for (var i = 0; i < skeleton.bones.length; i++) { - var bone = skeleton.bones[i]; - console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); - } - }; - return DebugUtils; - }()); - spine.DebugUtils = DebugUtils; - var Pool = (function () { - function Pool(instantiator) { - this.items = new Array(); - this.instantiator = instantiator; - } - Pool.prototype.obtain = function () { - return this.items.length > 0 ? this.items.pop() : this.instantiator(); - }; - Pool.prototype.free = function (item) { - if (item.reset) - item.reset(); - this.items.push(item); - }; - Pool.prototype.freeAll = function (items) { - for (var i = 0; i < items.length; i++) { - if (items[i].reset) - items[i].reset(); - this.items[i] = items[i]; - } - }; - Pool.prototype.clear = function () { - this.items.length = 0; - }; - return Pool; - }()); - spine.Pool = Pool; - var Vector2 = (function () { - function Vector2(x, y) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - this.x = x; - this.y = y; - } - Vector2.prototype.set = function (x, y) { - this.x = x; - this.y = y; - return this; - }; - Vector2.prototype.length = function () { - var x = this.x; - var y = this.y; - return Math.sqrt(x * x + y * y); - }; - Vector2.prototype.normalize = function () { - var len = this.length(); - if (len != 0) { - this.x /= len; - this.y /= len; - } - return this; - }; - return Vector2; - }()); - spine.Vector2 = Vector2; - var TimeKeeper = (function () { - function TimeKeeper() { - this.maxDelta = 0.064; - this.framesPerSecond = 0; - this.delta = 0; - this.totalTime = 0; - this.lastTime = Date.now() / 1000; - this.frameCount = 0; - this.frameTime = 0; - } - TimeKeeper.prototype.update = function () { - var now = Date.now() / 1000; - this.delta = now - this.lastTime; - this.frameTime += this.delta; - this.totalTime += this.delta; - if (this.delta > this.maxDelta) - this.delta = this.maxDelta; - this.lastTime = now; - this.frameCount++; - if (this.frameTime > 1) { - this.framesPerSecond = this.frameCount / this.frameTime; - this.frameTime = 0; - this.frameCount = 0; - } - }; - return TimeKeeper; - }()); - spine.TimeKeeper = TimeKeeper; - var WindowedMean = (function () { - function WindowedMean(windowSize) { - if (windowSize === void 0) { windowSize = 32; } - this.addedValues = 0; - this.lastValue = 0; - this.mean = 0; - this.dirty = true; - this.values = new Array(windowSize); - } - WindowedMean.prototype.hasEnoughData = function () { - return this.addedValues >= this.values.length; - }; - WindowedMean.prototype.addValue = function (value) { - if (this.addedValues < this.values.length) - this.addedValues++; - this.values[this.lastValue++] = value; - if (this.lastValue > this.values.length - 1) - this.lastValue = 0; - this.dirty = true; - }; - WindowedMean.prototype.getMean = function () { - if (this.hasEnoughData()) { - if (this.dirty) { - var mean = 0; - for (var i = 0; i < this.values.length; i++) { - mean += this.values[i]; - } - this.mean = mean / this.values.length; - this.dirty = false; - } - return this.mean; - } - else { - return 0; - } - }; - return WindowedMean; - }()); - spine.WindowedMean = WindowedMean; + var IntSet = (function () { + function IntSet() { + this.array = new Array(); + } + IntSet.prototype.add = function (value) { + var contains = this.contains(value); + this.array[value | 0] = value | 0; + return !contains; + }; + IntSet.prototype.contains = function (value) { + return this.array[value | 0] != undefined; + }; + IntSet.prototype.remove = function (value) { + this.array[value | 0] = undefined; + }; + IntSet.prototype.clear = function () { + this.array.length = 0; + }; + return IntSet; + }()); + spine.IntSet = IntSet; + var Color = (function () { + function Color(r, g, b, a) { + if (r === void 0) { r = 0; } + if (g === void 0) { g = 0; } + if (b === void 0) { b = 0; } + if (a === void 0) { a = 0; } + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + Color.prototype.set = function (r, g, b, a) { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + this.clamp(); + return this; + }; + Color.prototype.setFromColor = function (c) { + this.r = c.r; + this.g = c.g; + this.b = c.b; + this.a = c.a; + return this; + }; + Color.prototype.setFromString = function (hex) { + hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; + this.r = parseInt(hex.substr(0, 2), 16) / 255.0; + this.g = parseInt(hex.substr(2, 2), 16) / 255.0; + this.b = parseInt(hex.substr(4, 2), 16) / 255.0; + this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; + return this; + }; + Color.prototype.add = function (r, g, b, a) { + this.r += r; + this.g += g; + this.b += b; + this.a += a; + this.clamp(); + return this; + }; + Color.prototype.clamp = function () { + if (this.r < 0) + this.r = 0; + else if (this.r > 1) + this.r = 1; + if (this.g < 0) + this.g = 0; + else if (this.g > 1) + this.g = 1; + if (this.b < 0) + this.b = 0; + else if (this.b > 1) + this.b = 1; + if (this.a < 0) + this.a = 0; + else if (this.a > 1) + this.a = 1; + return this; + }; + Color.WHITE = new Color(1, 1, 1, 1); + Color.RED = new Color(1, 0, 0, 1); + Color.GREEN = new Color(0, 1, 0, 1); + Color.BLUE = new Color(0, 0, 1, 1); + Color.MAGENTA = new Color(1, 0, 1, 1); + return Color; + }()); + spine.Color = Color; + var MathUtils = (function () { + function MathUtils() { + } + MathUtils.clamp = function (value, min, max) { + if (value < min) + return min; + if (value > max) + return max; + return value; + }; + MathUtils.cosDeg = function (degrees) { + return Math.cos(degrees * MathUtils.degRad); + }; + MathUtils.sinDeg = function (degrees) { + return Math.sin(degrees * MathUtils.degRad); + }; + MathUtils.signum = function (value) { + return value > 0 ? 1 : value < 0 ? -1 : 0; + }; + MathUtils.toInt = function (x) { + return x > 0 ? Math.floor(x) : Math.ceil(x); + }; + MathUtils.cbrt = function (x) { + var y = Math.pow(Math.abs(x), 1 / 3); + return x < 0 ? -y : y; + }; + MathUtils.PI = 3.1415927; + MathUtils.PI2 = MathUtils.PI * 2; + MathUtils.radiansToDegrees = 180 / MathUtils.PI; + MathUtils.radDeg = MathUtils.radiansToDegrees; + MathUtils.degreesToRadians = MathUtils.PI / 180; + MathUtils.degRad = MathUtils.degreesToRadians; + return MathUtils; + }()); + spine.MathUtils = MathUtils; + var Utils = (function () { + function Utils() { + } + Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { + for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { + dest[j] = source[i]; + } + }; + Utils.setArraySize = function (array, size, value) { + if (value === void 0) { value = 0; } + var oldSize = array.length; + if (oldSize == size) + return array; + array.length = size; + if (oldSize < size) { + for (var i = oldSize; i < size; i++) + array[i] = value; + } + return array; + }; + Utils.ensureArrayCapacity = function (array, size, value) { + if (value === void 0) { value = 0; } + if (array.length >= size) + return array; + return Utils.setArraySize(array, size, value); + }; + Utils.newArray = function (size, defaultValue) { + var array = new Array(size); + for (var i = 0; i < size; i++) + array[i] = defaultValue; + return array; + }; + Utils.newFloatArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Float32Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.newShortArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Int16Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.toFloatArray = function (array) { + return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; + }; + Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; + return Utils; + }()); + spine.Utils = Utils; + var DebugUtils = (function () { + function DebugUtils() { + } + DebugUtils.logBones = function (skeleton) { + for (var i = 0; i < skeleton.bones.length; i++) { + var bone = skeleton.bones[i]; + console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); + } + }; + return DebugUtils; + }()); + spine.DebugUtils = DebugUtils; + var Pool = (function () { + function Pool(instantiator) { + this.items = new Array(); + this.instantiator = instantiator; + } + Pool.prototype.obtain = function () { + return this.items.length > 0 ? this.items.pop() : this.instantiator(); + }; + Pool.prototype.free = function (item) { + if (item.reset) + item.reset(); + this.items.push(item); + }; + Pool.prototype.freeAll = function (items) { + for (var i = 0; i < items.length; i++) { + if (items[i].reset) + items[i].reset(); + this.items[i] = items[i]; + } + }; + Pool.prototype.clear = function () { + this.items.length = 0; + }; + return Pool; + }()); + spine.Pool = Pool; + var Vector2 = (function () { + function Vector2(x, y) { + if (x === void 0) { x = 0; } + if (y === void 0) { y = 0; } + this.x = x; + this.y = y; + } + Vector2.prototype.set = function (x, y) { + this.x = x; + this.y = y; + return this; + }; + Vector2.prototype.length = function () { + var x = this.x; + var y = this.y; + return Math.sqrt(x * x + y * y); + }; + Vector2.prototype.normalize = function () { + var len = this.length(); + if (len != 0) { + this.x /= len; + this.y /= len; + } + return this; + }; + return Vector2; + }()); + spine.Vector2 = Vector2; + var TimeKeeper = (function () { + function TimeKeeper() { + this.maxDelta = 0.064; + this.framesPerSecond = 0; + this.delta = 0; + this.totalTime = 0; + this.lastTime = Date.now() / 1000; + this.frameCount = 0; + this.frameTime = 0; + } + TimeKeeper.prototype.update = function () { + var now = Date.now() / 1000; + this.delta = now - this.lastTime; + this.frameTime += this.delta; + this.totalTime += this.delta; + if (this.delta > this.maxDelta) + this.delta = this.maxDelta; + this.lastTime = now; + this.frameCount++; + if (this.frameTime > 1) { + this.framesPerSecond = this.frameCount / this.frameTime; + this.frameTime = 0; + this.frameCount = 0; + } + }; + return TimeKeeper; + }()); + spine.TimeKeeper = TimeKeeper; + var WindowedMean = (function () { + function WindowedMean(windowSize) { + if (windowSize === void 0) { windowSize = 32; } + this.addedValues = 0; + this.lastValue = 0; + this.mean = 0; + this.dirty = true; + this.values = new Array(windowSize); + } + WindowedMean.prototype.hasEnoughData = function () { + return this.addedValues >= this.values.length; + }; + WindowedMean.prototype.addValue = function (value) { + if (this.addedValues < this.values.length) + this.addedValues++; + this.values[this.lastValue++] = value; + if (this.lastValue > this.values.length - 1) + this.lastValue = 0; + this.dirty = true; + }; + WindowedMean.prototype.getMean = function () { + if (this.hasEnoughData()) { + if (this.dirty) { + var mean = 0; + for (var i = 0; i < this.values.length; i++) { + mean += this.values[i]; + } + this.mean = mean / this.values.length; + this.dirty = false; + } + return this.mean; + } + else { + return 0; + } + }; + return WindowedMean; + }()); + spine.WindowedMean = WindowedMean; })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var AssetManager = (function (_super) { - __extends(AssetManager, _super); - function AssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - _super.call(this, function (image) { - return new threejs.ThreeJsTexture(image); - }, pathPrefix); - } - return AssetManager; - }(spine.AssetManager)); - threejs.AssetManager = AssetManager; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var AssetManager = (function (_super) { + __extends(AssetManager, _super); + function AssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + _super.call(this, function (image) { + return new threejs.ThreeJsTexture(image); + }, pathPrefix); + } + return AssetManager; + }(spine.AssetManager)); + threejs.AssetManager = AssetManager; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var MeshBatcher = (function () { - function MeshBatcher(mesh, maxVertices) { - if (maxVertices === void 0) { maxVertices = 10920; } - this.verticesLength = 0; - this.indicesLength = 0; - if (maxVertices > 10920) - throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); - var vertices = this.vertices = new Float32Array(maxVertices * MeshBatcher.VERTEX_SIZE); - var indices = this.indices = new Uint16Array(maxVertices * 3); - this.mesh = mesh; - var geo = new THREE.BufferGeometry(); - var vertexBuffer = this.vertexBuffer = new THREE.InterleavedBuffer(vertices, MeshBatcher.VERTEX_SIZE); - vertexBuffer.dynamic = true; - geo.addAttribute("position", new THREE.InterleavedBufferAttribute(vertexBuffer, 3, 0, false)); - geo.addAttribute("color", new THREE.InterleavedBufferAttribute(vertexBuffer, 4, 3, false)); - geo.addAttribute("uv", new THREE.InterleavedBufferAttribute(vertexBuffer, 2, 7, false)); - geo.setIndex(new THREE.BufferAttribute(indices, 1)); - geo.getIndex().dynamic = true; - geo.drawRange.start = 0; - geo.drawRange.count = 0; - mesh.geometry = geo; - } - MeshBatcher.prototype.begin = function () { - this.verticesLength = 0; - this.indicesLength = 0; - }; - MeshBatcher.prototype.batch = function (vertices, verticesLength, indices, indicesLength, z) { - if (z === void 0) { z = 0; } - var indexStart = this.verticesLength / MeshBatcher.VERTEX_SIZE; - var vertexBuffer = this.vertices; - var i = this.verticesLength; - var j = 0; - for (; j < verticesLength;) { - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = z; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - } - this.verticesLength = i; - var indicesArray = this.indices; - for (i = this.indicesLength, j = 0; j < indicesLength; i++, j++) - indicesArray[i] = indices[j] + indexStart; - this.indicesLength += indicesLength; - }; - MeshBatcher.prototype.end = function () { - this.vertexBuffer.needsUpdate = true; - this.vertexBuffer.updateRange.offset = 0; - this.vertexBuffer.updateRange.count = this.verticesLength; - var geo = this.mesh.geometry; - geo.getIndex().needsUpdate = true; - geo.getIndex().updateRange.offset = 0; - geo.getIndex().updateRange.count = this.indicesLength; - geo.drawRange.start = 0; - geo.drawRange.count = this.indicesLength; - }; - MeshBatcher.VERTEX_SIZE = 9; - return MeshBatcher; - }()); - threejs.MeshBatcher = MeshBatcher; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var MeshBatcher = (function () { + function MeshBatcher(mesh, maxVertices) { + if (maxVertices === void 0) { maxVertices = 10920; } + this.verticesLength = 0; + this.indicesLength = 0; + if (maxVertices > 10920) + throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); + var vertices = this.vertices = new Float32Array(maxVertices * MeshBatcher.VERTEX_SIZE); + var indices = this.indices = new Uint16Array(maxVertices * 3); + this.mesh = mesh; + var geo = new THREE.BufferGeometry(); + var vertexBuffer = this.vertexBuffer = new THREE.InterleavedBuffer(vertices, MeshBatcher.VERTEX_SIZE); + vertexBuffer.dynamic = true; + geo.addAttribute("position", new THREE.InterleavedBufferAttribute(vertexBuffer, 3, 0, false)); + geo.addAttribute("color", new THREE.InterleavedBufferAttribute(vertexBuffer, 4, 3, false)); + geo.addAttribute("uv", new THREE.InterleavedBufferAttribute(vertexBuffer, 2, 7, false)); + geo.setIndex(new THREE.BufferAttribute(indices, 1)); + geo.getIndex().dynamic = true; + geo.drawRange.start = 0; + geo.drawRange.count = 0; + mesh.geometry = geo; + } + MeshBatcher.prototype.begin = function () { + this.verticesLength = 0; + this.indicesLength = 0; + }; + MeshBatcher.prototype.batch = function (vertices, verticesLength, indices, indicesLength, z) { + if (z === void 0) { z = 0; } + var indexStart = this.verticesLength / MeshBatcher.VERTEX_SIZE; + var vertexBuffer = this.vertices; + var i = this.verticesLength; + var j = 0; + for (; j < verticesLength;) { + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = z; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + } + this.verticesLength = i; + var indicesArray = this.indices; + for (i = this.indicesLength, j = 0; j < indicesLength; i++, j++) + indicesArray[i] = indices[j] + indexStart; + this.indicesLength += indicesLength; + }; + MeshBatcher.prototype.end = function () { + this.vertexBuffer.needsUpdate = true; + this.vertexBuffer.updateRange.offset = 0; + this.vertexBuffer.updateRange.count = this.verticesLength; + var geo = this.mesh.geometry; + geo.getIndex().needsUpdate = true; + geo.getIndex().updateRange.offset = 0; + geo.getIndex().updateRange.count = this.indicesLength; + geo.drawRange.start = 0; + geo.drawRange.count = this.indicesLength; + }; + MeshBatcher.VERTEX_SIZE = 9; + return MeshBatcher; + }()); + threejs.MeshBatcher = MeshBatcher; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var SkeletonMesh = (function (_super) { - __extends(SkeletonMesh, _super); - function SkeletonMesh(skeletonData) { - _super.call(this); - this.zOffset = 0.1; - this.clipper = new spine.SkeletonClipping(); - this.vertices = spine.Utils.newFloatArray(1024); - this.tempColor = new spine.Color(); - this.skeleton = new spine.Skeleton(skeletonData); - var animData = new spine.AnimationStateData(skeletonData); - this.state = new spine.AnimationState(animData); - var material = this.material = new THREE.MeshBasicMaterial(); - material.side = THREE.DoubleSide; - material.transparent = true; - material.alphaTest = 0.5; - this.batcher = new threejs.MeshBatcher(this); - } - SkeletonMesh.prototype.update = function (deltaTime) { - var state = this.state; - var skeleton = this.skeleton; - state.update(deltaTime); - state.apply(skeleton); - skeleton.updateWorldTransform(); - this.updateGeometry(); - }; - SkeletonMesh.prototype.updateGeometry = function () { - var geometry = this.geometry; - var numVertices = 0; - var verticesLength = 0; - var indicesLength = 0; - var blendMode = null; - var clipper = this.clipper; - var vertices = this.vertices; - var triangles = null; - var uvs = null; - var drawOrder = this.skeleton.drawOrder; - var batcher = this.batcher; - batcher.begin(); - var z = 0; - var zOffset = this.zOffset; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var vertexSize = clipper.isClipping() ? 2 : SkeletonMesh.VERTEX_SIZE; - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var attachmentColor = null; - var texture = null; - var numFloats = 0; - if (attachment instanceof spine.RegionAttachment) { - var region = attachment; - attachmentColor = region.color; - vertices = this.vertices; - numFloats = vertexSize * 4; - region.computeWorldVertices(slot.bone, vertices, 0, vertexSize); - triangles = SkeletonMesh.QUAD_TRIANGLES; - uvs = region.uvs; - texture = region.region.renderObject.texture; - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - attachmentColor = mesh.color; - vertices = this.vertices; - numFloats = (mesh.worldVerticesLength >> 1) * vertexSize; - if (numFloats > vertices.length) { - vertices = this.vertices = spine.Utils.newFloatArray(numFloats); - } - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, vertexSize); - triangles = mesh.triangles; - uvs = mesh.uvs; - texture = mesh.region.renderObject.texture; - } - else if (attachment instanceof spine.ClippingAttachment) { - var clip = (attachment); - clipper.clipStart(slot, clip); - continue; - } - else - continue; - if (texture != null) { - if (!this.material.map) { - var mat = this.material; - mat.map = texture.texture; - mat.needsUpdate = true; - } - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var alpha = skeletonColor.a * slotColor.a * attachmentColor.a; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * attachmentColor.r, skeletonColor.g * slotColor.g * attachmentColor.g, skeletonColor.b * slotColor.b * attachmentColor.b, alpha); - if (clipper.isClipping()) { - clipper.clipTriangles(vertices, numFloats, triangles, triangles.length, uvs, color, null, false); - var clippedVertices = clipper.clippedVertices; - var clippedTriangles = clipper.clippedTriangles; - batcher.batch(clippedVertices, clippedVertices.length, clippedTriangles, clippedTriangles.length, z); - } - else { - var verts = vertices; - for (var v = 2, u = 0, n_2 = numFloats; v < n_2; v += vertexSize, u += 2) { - verts[v] = color.r; - verts[v + 1] = color.g; - verts[v + 2] = color.b; - verts[v + 3] = color.a; - verts[v + 4] = uvs[u]; - verts[v + 5] = uvs[u + 1]; - } - batcher.batch(vertices, numFloats, triangles, triangles.length, z); - } - z += zOffset; - } - } - batcher.end(); - }; - SkeletonMesh.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - SkeletonMesh.VERTEX_SIZE = 2 + 2 + 4; - return SkeletonMesh; - }(THREE.Mesh)); - threejs.SkeletonMesh = SkeletonMesh; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var SkeletonMesh = (function (_super) { + __extends(SkeletonMesh, _super); + function SkeletonMesh(skeletonData) { + _super.call(this); + this.zOffset = 0.1; + this.clipper = new spine.SkeletonClipping(); + this.vertices = spine.Utils.newFloatArray(1024); + this.tempColor = new spine.Color(); + this.skeleton = new spine.Skeleton(skeletonData); + var animData = new spine.AnimationStateData(skeletonData); + this.state = new spine.AnimationState(animData); + var material = this.material = new THREE.MeshBasicMaterial(); + material.side = THREE.DoubleSide; + material.transparent = true; + material.alphaTest = 0.5; + this.batcher = new threejs.MeshBatcher(this); + } + SkeletonMesh.prototype.update = function (deltaTime) { + var state = this.state; + var skeleton = this.skeleton; + state.update(deltaTime); + state.apply(skeleton); + skeleton.updateWorldTransform(); + this.updateGeometry(); + }; + SkeletonMesh.prototype.updateGeometry = function () { + var geometry = this.geometry; + var numVertices = 0; + var verticesLength = 0; + var indicesLength = 0; + var blendMode = null; + var clipper = this.clipper; + var vertices = this.vertices; + var triangles = null; + var uvs = null; + var drawOrder = this.skeleton.drawOrder; + var batcher = this.batcher; + batcher.begin(); + var z = 0; + var zOffset = this.zOffset; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var vertexSize = clipper.isClipping() ? 2 : SkeletonMesh.VERTEX_SIZE; + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var attachmentColor = null; + var texture = null; + var numFloats = 0; + if (attachment instanceof spine.RegionAttachment) { + var region = attachment; + attachmentColor = region.color; + vertices = this.vertices; + numFloats = vertexSize * 4; + region.computeWorldVertices(slot.bone, vertices, 0, vertexSize); + triangles = SkeletonMesh.QUAD_TRIANGLES; + uvs = region.uvs; + texture = region.region.renderObject.texture; + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + attachmentColor = mesh.color; + vertices = this.vertices; + numFloats = (mesh.worldVerticesLength >> 1) * vertexSize; + if (numFloats > vertices.length) { + vertices = this.vertices = spine.Utils.newFloatArray(numFloats); + } + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, vertexSize); + triangles = mesh.triangles; + uvs = mesh.uvs; + texture = mesh.region.renderObject.texture; + } + else if (attachment instanceof spine.ClippingAttachment) { + var clip = (attachment); + clipper.clipStart(slot, clip); + continue; + } + else + continue; + if (texture != null) { + if (!this.material.map) { + var mat = this.material; + mat.map = texture.texture; + mat.needsUpdate = true; + } + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var alpha = skeletonColor.a * slotColor.a * attachmentColor.a; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * attachmentColor.r, skeletonColor.g * slotColor.g * attachmentColor.g, skeletonColor.b * slotColor.b * attachmentColor.b, alpha); + if (clipper.isClipping()) { + clipper.clipTriangles(vertices, numFloats, triangles, triangles.length, uvs, color, null, false); + var clippedVertices = clipper.clippedVertices; + var clippedTriangles = clipper.clippedTriangles; + batcher.batch(clippedVertices, clippedVertices.length, clippedTriangles, clippedTriangles.length, z); + } + else { + var verts = vertices; + for (var v = 2, u = 0, n_2 = numFloats; v < n_2; v += vertexSize, u += 2) { + verts[v] = color.r; + verts[v + 1] = color.g; + verts[v + 2] = color.b; + verts[v + 3] = color.a; + verts[v + 4] = uvs[u]; + verts[v + 5] = uvs[u + 1]; + } + batcher.batch(vertices, numFloats, triangles, triangles.length, z); + } + z += zOffset; + } + } + batcher.end(); + }; + SkeletonMesh.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + SkeletonMesh.VERTEX_SIZE = 2 + 2 + 4; + return SkeletonMesh; + }(THREE.Mesh)); + threejs.SkeletonMesh = SkeletonMesh; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var ThreeJsTexture = (function (_super) { - __extends(ThreeJsTexture, _super); - function ThreeJsTexture(image) { - _super.call(this, image); - this.texture = new THREE.Texture(image); - this.texture.flipY = false; - this.texture.needsUpdate = true; - } - ThreeJsTexture.prototype.setFilters = function (minFilter, magFilter) { - this.texture.minFilter = ThreeJsTexture.toThreeJsTextureFilter(minFilter); - this.texture.magFilter = ThreeJsTexture.toThreeJsTextureFilter(magFilter); - }; - ThreeJsTexture.prototype.setWraps = function (uWrap, vWrap) { - this.texture.wrapS = ThreeJsTexture.toThreeJsTextureWrap(uWrap); - this.texture.wrapT = ThreeJsTexture.toThreeJsTextureWrap(vWrap); - }; - ThreeJsTexture.prototype.dispose = function () { - this.texture.dispose(); - }; - ThreeJsTexture.toThreeJsTextureFilter = function (filter) { - if (filter === spine.TextureFilter.Linear) - return THREE.LinearFilter; - else if (filter === spine.TextureFilter.MipMap) - return THREE.LinearMipMapLinearFilter; - else if (filter === spine.TextureFilter.MipMapLinearNearest) - return THREE.LinearMipMapNearestFilter; - else if (filter === spine.TextureFilter.MipMapNearestLinear) - return THREE.NearestMipMapLinearFilter; - else if (filter === spine.TextureFilter.MipMapNearestNearest) - return THREE.NearestMipMapNearestFilter; - else if (filter === spine.TextureFilter.Nearest) - return THREE.NearestFilter; - else - throw new Error("Unknown texture filter: " + filter); - }; - ThreeJsTexture.toThreeJsTextureWrap = function (wrap) { - if (wrap === spine.TextureWrap.ClampToEdge) - return THREE.ClampToEdgeWrapping; - else if (wrap === spine.TextureWrap.MirroredRepeat) - return THREE.MirroredRepeatWrapping; - else if (wrap === spine.TextureWrap.Repeat) - return THREE.RepeatWrapping; - else - throw new Error("Unknown texture wrap: " + wrap); - }; - return ThreeJsTexture; - }(spine.Texture)); - threejs.ThreeJsTexture = ThreeJsTexture; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var ThreeJsTexture = (function (_super) { + __extends(ThreeJsTexture, _super); + function ThreeJsTexture(image) { + _super.call(this, image); + this.texture = new THREE.Texture(image); + this.texture.flipY = false; + this.texture.needsUpdate = true; + } + ThreeJsTexture.prototype.setFilters = function (minFilter, magFilter) { + this.texture.minFilter = ThreeJsTexture.toThreeJsTextureFilter(minFilter); + this.texture.magFilter = ThreeJsTexture.toThreeJsTextureFilter(magFilter); + }; + ThreeJsTexture.prototype.setWraps = function (uWrap, vWrap) { + this.texture.wrapS = ThreeJsTexture.toThreeJsTextureWrap(uWrap); + this.texture.wrapT = ThreeJsTexture.toThreeJsTextureWrap(vWrap); + }; + ThreeJsTexture.prototype.dispose = function () { + this.texture.dispose(); + }; + ThreeJsTexture.toThreeJsTextureFilter = function (filter) { + if (filter === spine.TextureFilter.Linear) + return THREE.LinearFilter; + else if (filter === spine.TextureFilter.MipMap) + return THREE.LinearMipMapLinearFilter; + else if (filter === spine.TextureFilter.MipMapLinearNearest) + return THREE.LinearMipMapNearestFilter; + else if (filter === spine.TextureFilter.MipMapNearestLinear) + return THREE.NearestMipMapLinearFilter; + else if (filter === spine.TextureFilter.MipMapNearestNearest) + return THREE.NearestMipMapNearestFilter; + else if (filter === spine.TextureFilter.Nearest) + return THREE.NearestFilter; + else + throw new Error("Unknown texture filter: " + filter); + }; + ThreeJsTexture.toThreeJsTextureWrap = function (wrap) { + if (wrap === spine.TextureWrap.ClampToEdge) + return THREE.ClampToEdgeWrapping; + else if (wrap === spine.TextureWrap.MirroredRepeat) + return THREE.MirroredRepeatWrapping; + else if (wrap === spine.TextureWrap.Repeat) + return THREE.RepeatWrapping; + else + throw new Error("Unknown texture wrap: " + wrap); + }; + return ThreeJsTexture; + }(spine.Texture)); + threejs.ThreeJsTexture = ThreeJsTexture; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); //# sourceMappingURL=spine-threejs.js.map \ No newline at end of file diff --git a/spine-ts/build/spine-webgl.d.ts b/spine-ts/build/spine-webgl.d.ts index abf0d7da3..d0a848017 100644 --- a/spine-ts/build/spine-webgl.d.ts +++ b/spine-ts/build/spine-webgl.d.ts @@ -1,1585 +1,1585 @@ declare module spine { - class Animation { - name: string; - timelines: Array; - duration: number; - constructor(name: string, timelines: Array, duration: number); - apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - static binarySearch(values: ArrayLike, target: number, step?: number): number; - static linearSearch(values: ArrayLike, target: number, step: number): number; - } - interface Timeline { - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - getPropertyId(): number; - } - enum TimelineType { - rotate = 0, - translate = 1, - scale = 2, - shear = 3, - attachment = 4, - color = 5, - deform = 6, - event = 7, - drawOrder = 8, - ikConstraint = 9, - transformConstraint = 10, - pathConstraintPosition = 11, - pathConstraintSpacing = 12, - pathConstraintMix = 13, - twoColor = 14, - } - abstract class CurveTimeline implements Timeline { - static LINEAR: number; - static STEPPED: number; - static BEZIER: number; - static BEZIER_SIZE: number; - private curves; - abstract getPropertyId(): number; - constructor(frameCount: number); - getFrameCount(): number; - setLinear(frameIndex: number): void; - setStepped(frameIndex: number): void; - getCurveType(frameIndex: number): number; - setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; - getCurvePercent(frameIndex: number, percent: number): number; - abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class RotateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATION: number; - static ROTATION: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, degrees: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TranslateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_X: number; - static PREV_Y: number; - static X: number; - static Y: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, x: number, y: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ScaleTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ShearTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class ColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static R: number; - static G: number; - static B: number; - static A: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TwoColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static PREV_R2: number; - static PREV_G2: number; - static PREV_B2: number; - static R: number; - static G: number; - static B: number; - static A: number; - static R2: number; - static G2: number; - static B2: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class AttachmentTimeline implements Timeline { - slotIndex: number; - frames: ArrayLike; - attachmentNames: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, attachmentName: string): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DeformTimeline extends CurveTimeline { - slotIndex: number; - attachment: VertexAttachment; - frames: ArrayLike; - frameVertices: Array>; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class EventTimeline implements Timeline { - frames: ArrayLike; - events: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, event: Event): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class DrawOrderTimeline implements Timeline { - frames: ArrayLike; - drawOrders: Array>; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, drawOrder: Array): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class IkConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_MIX: number; - static PREV_BEND_DIRECTION: number; - static MIX: number; - static BEND_DIRECTION: number; - ikConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class TransformConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static PREV_SCALE: number; - static PREV_SHEAR: number; - static ROTATE: number; - static TRANSLATE: number; - static SCALE: number; - static SHEAR: number; - transformConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintPositionTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_VALUE: number; - static VALUE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, value: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } - class PathConstraintMixTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static ROTATE: number; - static TRANSLATE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; - } + class Animation { + name: string; + timelines: Array; + duration: number; + constructor(name: string, timelines: Array, duration: number); + apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + static binarySearch(values: ArrayLike, target: number, step?: number): number; + static linearSearch(values: ArrayLike, target: number, step: number): number; + } + interface Timeline { + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + getPropertyId(): number; + } + enum TimelineType { + rotate = 0, + translate = 1, + scale = 2, + shear = 3, + attachment = 4, + color = 5, + deform = 6, + event = 7, + drawOrder = 8, + ikConstraint = 9, + transformConstraint = 10, + pathConstraintPosition = 11, + pathConstraintSpacing = 12, + pathConstraintMix = 13, + twoColor = 14, + } + abstract class CurveTimeline implements Timeline { + static LINEAR: number; + static STEPPED: number; + static BEZIER: number; + static BEZIER_SIZE: number; + private curves; + abstract getPropertyId(): number; + constructor(frameCount: number); + getFrameCount(): number; + setLinear(frameIndex: number): void; + setStepped(frameIndex: number): void; + getCurveType(frameIndex: number): number; + setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; + getCurvePercent(frameIndex: number, percent: number): number; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class RotateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATION: number; + static ROTATION: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, degrees: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TranslateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_X: number; + static PREV_Y: number; + static X: number; + static Y: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, x: number, y: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ScaleTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ShearTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class ColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static R: number; + static G: number; + static B: number; + static A: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TwoColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static PREV_R2: number; + static PREV_G2: number; + static PREV_B2: number; + static R: number; + static G: number; + static B: number; + static A: number; + static R2: number; + static G2: number; + static B2: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class AttachmentTimeline implements Timeline { + slotIndex: number; + frames: ArrayLike; + attachmentNames: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, attachmentName: string): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DeformTimeline extends CurveTimeline { + slotIndex: number; + attachment: VertexAttachment; + frames: ArrayLike; + frameVertices: Array>; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class EventTimeline implements Timeline { + frames: ArrayLike; + events: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, event: Event): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class DrawOrderTimeline implements Timeline { + frames: ArrayLike; + drawOrders: Array>; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, drawOrder: Array): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class IkConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_MIX: number; + static PREV_BEND_DIRECTION: number; + static MIX: number; + static BEND_DIRECTION: number; + ikConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, mix: number, bendDirection: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class TransformConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static PREV_SCALE: number; + static PREV_SHEAR: number; + static ROTATE: number; + static TRANSLATE: number; + static SCALE: number; + static SHEAR: number; + transformConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintPositionTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_VALUE: number; + static VALUE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, value: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } + class PathConstraintMixTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static ROTATE: number; + static TRANSLATE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + } } declare module spine { - class AnimationState { - static emptyAnimation: Animation; - static SUBSEQUENT: number; - static FIRST: number; - static DIP: number; - static DIP_MIX: number; - data: AnimationStateData; - tracks: TrackEntry[]; - events: Event[]; - listeners: AnimationStateListener2[]; - queue: EventQueue; - propertyIDs: IntSet; - mixingTo: TrackEntry[]; - animationsChanged: boolean; - timeScale: number; - trackEntryPool: Pool; - constructor(data: AnimationStateData); - update(delta: number): void; - updateMixingFrom(to: TrackEntry, delta: number): boolean; - apply(skeleton: Skeleton): boolean; - applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; - applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; - queueEvents(entry: TrackEntry, animationTime: number): void; - clearTracks(): void; - clearTrack(trackIndex: number): void; - setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; - setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; - setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; - addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; - addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; - setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; - addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; - setEmptyAnimations(mixDuration: number): void; - expandToIndex(index: number): TrackEntry; - trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; - disposeNext(entry: TrackEntry): void; - _animationsChanged(): void; - getCurrent(trackIndex: number): TrackEntry; - addListener(listener: AnimationStateListener2): void; - removeListener(listener: AnimationStateListener2): void; - clearListeners(): void; - clearListenerNotifications(): void; - } - class TrackEntry { - animation: Animation; - next: TrackEntry; - mixingFrom: TrackEntry; - listener: AnimationStateListener2; - trackIndex: number; - loop: boolean; - eventThreshold: number; - attachmentThreshold: number; - drawOrderThreshold: number; - animationStart: number; - animationEnd: number; - animationLast: number; - nextAnimationLast: number; - delay: number; - trackTime: number; - trackLast: number; - nextTrackLast: number; - trackEnd: number; - timeScale: number; - alpha: number; - mixTime: number; - mixDuration: number; - interruptAlpha: number; - totalAlpha: number; - timelineData: number[]; - timelineDipMix: TrackEntry[]; - timelinesRotation: number[]; - reset(): void; - setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; - hasTimeline(id: number): boolean; - getAnimationTime(): number; - setAnimationLast(animationLast: number): void; - isComplete(): boolean; - resetRotationDirections(): void; - } - class EventQueue { - objects: Array; - drainDisabled: boolean; - animState: AnimationState; - constructor(animState: AnimationState); - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - drain(): void; - clear(): void; - } - enum EventType { - start = 0, - interrupt = 1, - end = 2, - dispose = 3, - complete = 4, - event = 5, - } - interface AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } - abstract class AnimationStateAdapter2 implements AnimationStateListener2 { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } + class AnimationState { + static emptyAnimation: Animation; + static SUBSEQUENT: number; + static FIRST: number; + static DIP: number; + static DIP_MIX: number; + data: AnimationStateData; + tracks: TrackEntry[]; + events: Event[]; + listeners: AnimationStateListener2[]; + queue: EventQueue; + propertyIDs: IntSet; + mixingTo: TrackEntry[]; + animationsChanged: boolean; + timeScale: number; + trackEntryPool: Pool; + constructor(data: AnimationStateData); + update(delta: number): void; + updateMixingFrom(to: TrackEntry, delta: number): boolean; + apply(skeleton: Skeleton): boolean; + applyMixingFrom(to: TrackEntry, skeleton: Skeleton): number; + applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array, i: number, firstFrame: boolean): void; + queueEvents(entry: TrackEntry, animationTime: number): void; + clearTracks(): void; + clearTrack(trackIndex: number): void; + setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; + setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; + setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; + addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; + addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; + setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; + addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; + setEmptyAnimations(mixDuration: number): void; + expandToIndex(index: number): TrackEntry; + trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; + disposeNext(entry: TrackEntry): void; + _animationsChanged(): void; + getCurrent(trackIndex: number): TrackEntry; + addListener(listener: AnimationStateListener2): void; + removeListener(listener: AnimationStateListener2): void; + clearListeners(): void; + clearListenerNotifications(): void; + } + class TrackEntry { + animation: Animation; + next: TrackEntry; + mixingFrom: TrackEntry; + listener: AnimationStateListener2; + trackIndex: number; + loop: boolean; + eventThreshold: number; + attachmentThreshold: number; + drawOrderThreshold: number; + animationStart: number; + animationEnd: number; + animationLast: number; + nextAnimationLast: number; + delay: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; + timeScale: number; + alpha: number; + mixTime: number; + mixDuration: number; + interruptAlpha: number; + totalAlpha: number; + timelineData: number[]; + timelineDipMix: TrackEntry[]; + timelinesRotation: number[]; + reset(): void; + setTimelineData(to: TrackEntry, mixingToArray: Array, propertyIDs: IntSet): TrackEntry; + hasTimeline(id: number): boolean; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; + isComplete(): boolean; + resetRotationDirections(): void; + } + class EventQueue { + objects: Array; + drainDisabled: boolean; + animState: AnimationState; + constructor(animState: AnimationState); + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + drain(): void; + clear(): void; + } + enum EventType { + start = 0, + interrupt = 1, + end = 2, + dispose = 3, + complete = 4, + event = 5, + } + interface AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } + abstract class AnimationStateAdapter2 implements AnimationStateListener2 { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } } declare module spine { - class AnimationStateData { - skeletonData: SkeletonData; - animationToMixTime: Map; - defaultMix: number; - constructor(skeletonData: SkeletonData); - setMix(fromName: string, toName: string, duration: number): void; - setMixWith(from: Animation, to: Animation, duration: number): void; - getMix(from: Animation, to: Animation): number; - } + class AnimationStateData { + skeletonData: SkeletonData; + animationToMixTime: Map; + defaultMix: number; + constructor(skeletonData: SkeletonData); + setMix(fromName: string, toName: string, duration: number): void; + setMixWith(from: Animation, to: Animation, duration: number): void; + getMix(from: Animation, to: Animation): number; + } } declare module spine { - class AssetManager implements Disposable { - private pathPrefix; - private textureLoader; - private assets; - private errors; - private toLoad; - private loaded; - constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); - loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; - loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - get(path: string): any; - remove(path: string): void; - removeAll(): void; - isLoadingComplete(): boolean; - getToLoad(): number; - getLoaded(): number; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class AssetManager implements Disposable { + private pathPrefix; + private textureLoader; + private assets; + private errors; + private toLoad; + private loaded; + constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); + loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; + loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + get(path: string): any; + remove(path: string): void; + removeAll(): void; + isLoadingComplete(): boolean; + getToLoad(): number; + getLoaded(): number; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class AtlasAttachmentLoader implements AttachmentLoader { - atlas: TextureAtlas; - constructor(atlas: TextureAtlas); - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + class AtlasAttachmentLoader implements AttachmentLoader { + atlas: TextureAtlas; + constructor(atlas: TextureAtlas); + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - abstract class Attachment { - name: string; - constructor(name: string); - } - abstract class VertexAttachment extends Attachment { - bones: Array; - vertices: ArrayLike; - worldVerticesLength: number; - constructor(name: string); - computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - } + abstract class Attachment { + name: string; + constructor(name: string); + } + abstract class VertexAttachment extends Attachment { + bones: Array; + vertices: ArrayLike; + worldVerticesLength: number; + constructor(name: string); + computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + } } declare module spine { - interface AttachmentLoader { - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + interface AttachmentLoader { + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - enum AttachmentType { - Region = 0, - BoundingBox = 1, - Mesh = 2, - LinkedMesh = 3, - Path = 4, - Point = 5, - } + enum AttachmentType { + Region = 0, + BoundingBox = 1, + Mesh = 2, + LinkedMesh = 3, + Path = 4, + Point = 5, + } } declare module spine { - class BoundingBoxAttachment extends VertexAttachment { - color: Color; - constructor(name: string); - } + class BoundingBoxAttachment extends VertexAttachment { + color: Color; + constructor(name: string); + } } declare module spine { - class ClippingAttachment extends VertexAttachment { - endSlot: SlotData; - color: Color; - constructor(name: string); - } + class ClippingAttachment extends VertexAttachment { + endSlot: SlotData; + color: Color; + constructor(name: string); + } } declare module spine { - class MeshAttachment extends VertexAttachment { - region: TextureRegion; - path: string; - regionUVs: ArrayLike; - uvs: ArrayLike; - triangles: Array; - color: Color; - hullLength: number; - private parentMesh; - inheritDeform: boolean; - tempColor: Color; - constructor(name: string); - updateUVs(): void; - applyDeform(sourceAttachment: VertexAttachment): boolean; - getParentMesh(): MeshAttachment; - setParentMesh(parentMesh: MeshAttachment): void; - } + class MeshAttachment extends VertexAttachment { + region: TextureRegion; + path: string; + regionUVs: ArrayLike; + uvs: ArrayLike; + triangles: Array; + color: Color; + hullLength: number; + private parentMesh; + inheritDeform: boolean; + tempColor: Color; + constructor(name: string); + updateUVs(): void; + applyDeform(sourceAttachment: VertexAttachment): boolean; + getParentMesh(): MeshAttachment; + setParentMesh(parentMesh: MeshAttachment): void; + } } declare module spine { - class PathAttachment extends VertexAttachment { - lengths: Array; - closed: boolean; - constantSpeed: boolean; - color: Color; - constructor(name: string); - } + class PathAttachment extends VertexAttachment { + lengths: Array; + closed: boolean; + constantSpeed: boolean; + color: Color; + constructor(name: string); + } } declare module spine { - class PointAttachment extends VertexAttachment { - x: number; - y: number; - rotation: number; - color: Color; - constructor(name: string); - computeWorldPosition(bone: Bone, point: Vector2): Vector2; - computeWorldRotation(bone: Bone): number; - } + class PointAttachment extends VertexAttachment { + x: number; + y: number; + rotation: number; + color: Color; + constructor(name: string); + computeWorldPosition(bone: Bone, point: Vector2): Vector2; + computeWorldRotation(bone: Bone): number; + } } declare module spine { - class RegionAttachment extends Attachment { - static OX1: number; - static OY1: number; - static OX2: number; - static OY2: number; - static OX3: number; - static OY3: number; - static OX4: number; - static OY4: number; - static X1: number; - static Y1: number; - static C1R: number; - static C1G: number; - static C1B: number; - static C1A: number; - static U1: number; - static V1: number; - static X2: number; - static Y2: number; - static C2R: number; - static C2G: number; - static C2B: number; - static C2A: number; - static U2: number; - static V2: number; - static X3: number; - static Y3: number; - static C3R: number; - static C3G: number; - static C3B: number; - static C3A: number; - static U3: number; - static V3: number; - static X4: number; - static Y4: number; - static C4R: number; - static C4G: number; - static C4B: number; - static C4A: number; - static U4: number; - static V4: number; - x: number; - y: number; - scaleX: number; - scaleY: number; - rotation: number; - width: number; - height: number; - color: Color; - path: string; - rendererObject: any; - region: TextureRegion; - offset: ArrayLike; - uvs: ArrayLike; - tempColor: Color; - constructor(name: string); - updateOffset(): void; - setRegion(region: TextureRegion): void; - computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; - } + class RegionAttachment extends Attachment { + static OX1: number; + static OY1: number; + static OX2: number; + static OY2: number; + static OX3: number; + static OY3: number; + static OX4: number; + static OY4: number; + static X1: number; + static Y1: number; + static C1R: number; + static C1G: number; + static C1B: number; + static C1A: number; + static U1: number; + static V1: number; + static X2: number; + static Y2: number; + static C2R: number; + static C2G: number; + static C2B: number; + static C2A: number; + static U2: number; + static V2: number; + static X3: number; + static Y3: number; + static C3R: number; + static C3G: number; + static C3B: number; + static C3A: number; + static U3: number; + static V3: number; + static X4: number; + static Y4: number; + static C4R: number; + static C4G: number; + static C4B: number; + static C4A: number; + static U4: number; + static V4: number; + x: number; + y: number; + scaleX: number; + scaleY: number; + rotation: number; + width: number; + height: number; + color: Color; + path: string; + rendererObject: any; + region: TextureRegion; + offset: ArrayLike; + uvs: ArrayLike; + tempColor: Color; + constructor(name: string); + updateOffset(): void; + setRegion(region: TextureRegion): void; + computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; + } } declare module spine { - enum BlendMode { - Normal = 0, - Additive = 1, - Multiply = 2, - Screen = 3, - } + enum BlendMode { + Normal = 0, + Additive = 1, + Multiply = 2, + Screen = 3, + } } declare module spine { - class Bone implements Updatable { - data: BoneData; - skeleton: Skeleton; - parent: Bone; - children: Bone[]; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - ax: number; - ay: number; - arotation: number; - ascaleX: number; - ascaleY: number; - ashearX: number; - ashearY: number; - appliedValid: boolean; - a: number; - b: number; - worldX: number; - c: number; - d: number; - worldY: number; - sorted: boolean; - constructor(data: BoneData, skeleton: Skeleton, parent: Bone); - update(): void; - updateWorldTransform(): void; - updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; - setToSetupPose(): void; - getWorldRotationX(): number; - getWorldRotationY(): number; - getWorldScaleX(): number; - getWorldScaleY(): number; - updateAppliedTransform(): void; - worldToLocal(world: Vector2): Vector2; - localToWorld(local: Vector2): Vector2; - worldToLocalRotation(worldRotation: number): number; - localToWorldRotation(localRotation: number): number; - rotateWorld(degrees: number): void; - } + class Bone implements Updatable { + data: BoneData; + skeleton: Skeleton; + parent: Bone; + children: Bone[]; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + ax: number; + ay: number; + arotation: number; + ascaleX: number; + ascaleY: number; + ashearX: number; + ashearY: number; + appliedValid: boolean; + a: number; + b: number; + worldX: number; + c: number; + d: number; + worldY: number; + sorted: boolean; + constructor(data: BoneData, skeleton: Skeleton, parent: Bone); + update(): void; + updateWorldTransform(): void; + updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; + setToSetupPose(): void; + getWorldRotationX(): number; + getWorldRotationY(): number; + getWorldScaleX(): number; + getWorldScaleY(): number; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + worldToLocalRotation(worldRotation: number): number; + localToWorldRotation(localRotation: number): number; + rotateWorld(degrees: number): void; + } } declare module spine { - class BoneData { - index: number; - name: string; - parent: BoneData; - length: number; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - transformMode: TransformMode; - constructor(index: number, name: string, parent: BoneData); - } - enum TransformMode { - Normal = 0, - OnlyTranslation = 1, - NoRotationOrReflection = 2, - NoScale = 3, - NoScaleOrReflection = 4, - } + class BoneData { + index: number; + name: string; + parent: BoneData; + length: number; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + transformMode: TransformMode; + constructor(index: number, name: string, parent: BoneData); + } + enum TransformMode { + Normal = 0, + OnlyTranslation = 1, + NoRotationOrReflection = 2, + NoScale = 3, + NoScaleOrReflection = 4, + } } declare module spine { - interface Constraint extends Updatable { - getOrder(): number; - } + interface Constraint extends Updatable { + getOrder(): number; + } } declare module spine { - class Event { - data: EventData; - intValue: number; - floatValue: number; - stringValue: string; - time: number; - constructor(time: number, data: EventData); - } + class Event { + data: EventData; + intValue: number; + floatValue: number; + stringValue: string; + time: number; + constructor(time: number, data: EventData); + } } declare module spine { - class EventData { - name: string; - intValue: number; - floatValue: number; - stringValue: string; - constructor(name: string); - } + class EventData { + name: string; + intValue: number; + floatValue: number; + stringValue: string; + constructor(name: string); + } } declare module spine { - class IkConstraint implements Constraint { - data: IkConstraintData; - bones: Array; - target: Bone; - mix: number; - bendDirection: number; - constructor(data: IkConstraintData, skeleton: Skeleton); - getOrder(): number; - apply(): void; - update(): void; - apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; - apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; - } + class IkConstraint implements Constraint { + data: IkConstraintData; + bones: Array; + target: Bone; + mix: number; + bendDirection: number; + constructor(data: IkConstraintData, skeleton: Skeleton); + getOrder(): number; + apply(): void; + update(): void; + apply1(bone: Bone, targetX: number, targetY: number, alpha: number): void; + apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, alpha: number): void; + } } declare module spine { - class IkConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - bendDirection: number; - mix: number; - constructor(name: string); - } + class IkConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + bendDirection: number; + mix: number; + constructor(name: string); + } } declare module spine { - class PathConstraint implements Constraint { - static NONE: number; - static BEFORE: number; - static AFTER: number; - data: PathConstraintData; - bones: Array; - target: Slot; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - spaces: number[]; - positions: number[]; - world: number[]; - curves: number[]; - lengths: number[]; - segments: number[]; - constructor(data: PathConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; - addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; - getOrder(): number; - } + class PathConstraint implements Constraint { + static NONE: number; + static BEFORE: number; + static AFTER: number; + data: PathConstraintData; + bones: Array; + target: Slot; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + spaces: number[]; + positions: number[]; + world: number[]; + curves: number[]; + lengths: number[]; + segments: number[]; + constructor(data: PathConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; + addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; + getOrder(): number; + } } declare module spine { - class PathConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: SlotData; - positionMode: PositionMode; - spacingMode: SpacingMode; - rotateMode: RotateMode; - offsetRotation: number; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - constructor(name: string); - } - enum PositionMode { - Fixed = 0, - Percent = 1, - } - enum SpacingMode { - Length = 0, - Fixed = 1, - Percent = 2, - } - enum RotateMode { - Tangent = 0, - Chain = 1, - ChainScale = 2, - } + class PathConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: SlotData; + positionMode: PositionMode; + spacingMode: SpacingMode; + rotateMode: RotateMode; + offsetRotation: number; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + constructor(name: string); + } + enum PositionMode { + Fixed = 0, + Percent = 1, + } + enum SpacingMode { + Length = 0, + Fixed = 1, + Percent = 2, + } + enum RotateMode { + Tangent = 0, + Chain = 1, + ChainScale = 2, + } } declare module spine { - class SharedAssetManager implements Disposable { - private pathPrefix; - private clientAssets; - private queuedAssets; - private rawAssets; - private errors; - constructor(pathPrefix?: string); - private queueAsset(clientId, textureLoader, path); - loadText(clientId: string, path: string): void; - loadJson(clientId: string, path: string): void; - loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; - get(clientId: string, path: string): any; - private updateClientAssets(clientAssets); - isLoadingComplete(clientId: string): boolean; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class SharedAssetManager implements Disposable { + private pathPrefix; + private clientAssets; + private queuedAssets; + private rawAssets; + private errors; + constructor(pathPrefix?: string); + private queueAsset(clientId, textureLoader, path); + loadText(clientId: string, path: string): void; + loadJson(clientId: string, path: string): void; + loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; + get(clientId: string, path: string): any; + private updateClientAssets(clientAssets); + isLoadingComplete(clientId: string): boolean; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class Skeleton { - data: SkeletonData; - bones: Array; - slots: Array; - drawOrder: Array; - ikConstraints: Array; - transformConstraints: Array; - pathConstraints: Array; - _updateCache: Updatable[]; - updateCacheReset: Updatable[]; - skin: Skin; - color: Color; - time: number; - flipX: boolean; - flipY: boolean; - x: number; - y: number; - constructor(data: SkeletonData); - updateCache(): void; - sortIkConstraint(constraint: IkConstraint): void; - sortPathConstraint(constraint: PathConstraint): void; - sortTransformConstraint(constraint: TransformConstraint): void; - sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; - sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; - sortBone(bone: Bone): void; - sortReset(bones: Array): void; - updateWorldTransform(): void; - setToSetupPose(): void; - setBonesToSetupPose(): void; - setSlotsToSetupPose(): void; - getRootBone(): Bone; - findBone(boneName: string): Bone; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): Slot; - findSlotIndex(slotName: string): number; - setSkinByName(skinName: string): void; - setSkin(newSkin: Skin): void; - getAttachmentByName(slotName: string, attachmentName: string): Attachment; - getAttachment(slotIndex: number, attachmentName: string): Attachment; - setAttachment(slotName: string, attachmentName: string): void; - findIkConstraint(constraintName: string): IkConstraint; - findTransformConstraint(constraintName: string): TransformConstraint; - findPathConstraint(constraintName: string): PathConstraint; - getBounds(offset: Vector2, size: Vector2, temp: Array): void; - update(delta: number): void; - } + class Skeleton { + data: SkeletonData; + bones: Array; + slots: Array; + drawOrder: Array; + ikConstraints: Array; + transformConstraints: Array; + pathConstraints: Array; + _updateCache: Updatable[]; + updateCacheReset: Updatable[]; + skin: Skin; + color: Color; + time: number; + flipX: boolean; + flipY: boolean; + x: number; + y: number; + constructor(data: SkeletonData); + updateCache(): void; + sortIkConstraint(constraint: IkConstraint): void; + sortPathConstraint(constraint: PathConstraint): void; + sortTransformConstraint(constraint: TransformConstraint): void; + sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; + sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; + sortBone(bone: Bone): void; + sortReset(bones: Array): void; + updateWorldTransform(): void; + setToSetupPose(): void; + setBonesToSetupPose(): void; + setSlotsToSetupPose(): void; + getRootBone(): Bone; + findBone(boneName: string): Bone; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): Slot; + findSlotIndex(slotName: string): number; + setSkinByName(skinName: string): void; + setSkin(newSkin: Skin): void; + getAttachmentByName(slotName: string, attachmentName: string): Attachment; + getAttachment(slotIndex: number, attachmentName: string): Attachment; + setAttachment(slotName: string, attachmentName: string): void; + findIkConstraint(constraintName: string): IkConstraint; + findTransformConstraint(constraintName: string): TransformConstraint; + findPathConstraint(constraintName: string): PathConstraint; + getBounds(offset: Vector2, size: Vector2, temp: Array): void; + update(delta: number): void; + } } declare module spine { - class SkeletonBounds { - minX: number; - minY: number; - maxX: number; - maxY: number; - boundingBoxes: BoundingBoxAttachment[]; - polygons: ArrayLike[]; - private polygonPool; - update(skeleton: Skeleton, updateAabb: boolean): void; - aabbCompute(): void; - aabbContainsPoint(x: number, y: number): boolean; - aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; - aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; - containsPoint(x: number, y: number): BoundingBoxAttachment; - containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; - intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; - intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; - getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; - getWidth(): number; - getHeight(): number; - } + class SkeletonBounds { + minX: number; + minY: number; + maxX: number; + maxY: number; + boundingBoxes: BoundingBoxAttachment[]; + polygons: ArrayLike[]; + private polygonPool; + update(skeleton: Skeleton, updateAabb: boolean): void; + aabbCompute(): void; + aabbContainsPoint(x: number, y: number): boolean; + aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; + aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; + containsPoint(x: number, y: number): BoundingBoxAttachment; + containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; + intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; + intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; + getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; + getWidth(): number; + getHeight(): number; + } } declare module spine { - class SkeletonClipping { - private triangulator; - private clippingPolygon; - private clipOutput; - clippedVertices: number[]; - clippedTriangles: number[]; - private scratch; - private clipAttachment; - private clippingPolygons; - clipStart(slot: Slot, clip: ClippingAttachment): number; - clipEndWithSlot(slot: Slot): void; - clipEnd(): void; - isClipping(): boolean; - clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; - clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; - static makeClockwise(polygon: ArrayLike): void; - } + class SkeletonClipping { + private triangulator; + private clippingPolygon; + private clipOutput; + clippedVertices: number[]; + clippedTriangles: number[]; + private scratch; + private clipAttachment; + private clippingPolygons; + clipStart(slot: Slot, clip: ClippingAttachment): number; + clipEndWithSlot(slot: Slot): void; + clipEnd(): void; + isClipping(): boolean; + clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; + clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; + static makeClockwise(polygon: ArrayLike): void; + } } declare module spine { - class SkeletonData { - name: string; - bones: BoneData[]; - slots: SlotData[]; - skins: Skin[]; - defaultSkin: Skin; - events: EventData[]; - animations: Animation[]; - ikConstraints: IkConstraintData[]; - transformConstraints: TransformConstraintData[]; - pathConstraints: PathConstraintData[]; - width: number; - height: number; - version: string; - hash: string; - fps: number; - imagesPath: string; - findBone(boneName: string): BoneData; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): SlotData; - findSlotIndex(slotName: string): number; - findSkin(skinName: string): Skin; - findEvent(eventDataName: string): EventData; - findAnimation(animationName: string): Animation; - findIkConstraint(constraintName: string): IkConstraintData; - findTransformConstraint(constraintName: string): TransformConstraintData; - findPathConstraint(constraintName: string): PathConstraintData; - findPathConstraintIndex(pathConstraintName: string): number; - } + class SkeletonData { + name: string; + bones: BoneData[]; + slots: SlotData[]; + skins: Skin[]; + defaultSkin: Skin; + events: EventData[]; + animations: Animation[]; + ikConstraints: IkConstraintData[]; + transformConstraints: TransformConstraintData[]; + pathConstraints: PathConstraintData[]; + width: number; + height: number; + version: string; + hash: string; + fps: number; + imagesPath: string; + findBone(boneName: string): BoneData; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): SlotData; + findSlotIndex(slotName: string): number; + findSkin(skinName: string): Skin; + findEvent(eventDataName: string): EventData; + findAnimation(animationName: string): Animation; + findIkConstraint(constraintName: string): IkConstraintData; + findTransformConstraint(constraintName: string): TransformConstraintData; + findPathConstraint(constraintName: string): PathConstraintData; + findPathConstraintIndex(pathConstraintName: string): number; + } } declare module spine { - class SkeletonJson { - attachmentLoader: AttachmentLoader; - scale: number; - private linkedMeshes; - constructor(attachmentLoader: AttachmentLoader); - readSkeletonData(json: string | any): SkeletonData; - readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; - readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; - readAnimation(map: any, name: string, skeletonData: SkeletonData): void; - readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; - getValue(map: any, prop: string, defaultValue: any): any; - static blendModeFromString(str: string): BlendMode; - static positionModeFromString(str: string): PositionMode; - static spacingModeFromString(str: string): SpacingMode; - static rotateModeFromString(str: string): RotateMode; - static transformModeFromString(str: string): TransformMode; - } + class SkeletonJson { + attachmentLoader: AttachmentLoader; + scale: number; + private linkedMeshes; + constructor(attachmentLoader: AttachmentLoader); + readSkeletonData(json: string | any): SkeletonData; + readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; + readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; + readAnimation(map: any, name: string, skeletonData: SkeletonData): void; + readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; + getValue(map: any, prop: string, defaultValue: any): any; + static blendModeFromString(str: string): BlendMode; + static positionModeFromString(str: string): PositionMode; + static spacingModeFromString(str: string): SpacingMode; + static rotateModeFromString(str: string): RotateMode; + static transformModeFromString(str: string): TransformMode; + } } declare module spine { - class Skin { - name: string; - attachments: Map[]; - constructor(name: string); - addAttachment(slotIndex: number, name: string, attachment: Attachment): void; - getAttachment(slotIndex: number, name: string): Attachment; - attachAll(skeleton: Skeleton, oldSkin: Skin): void; - } + class Skin { + name: string; + attachments: Map[]; + constructor(name: string); + addAttachment(slotIndex: number, name: string, attachment: Attachment): void; + getAttachment(slotIndex: number, name: string): Attachment; + attachAll(skeleton: Skeleton, oldSkin: Skin): void; + } } declare module spine { - class Slot { - data: SlotData; - bone: Bone; - color: Color; - darkColor: Color; - private attachment; - private attachmentTime; - attachmentVertices: number[]; - constructor(data: SlotData, bone: Bone); - getAttachment(): Attachment; - setAttachment(attachment: Attachment): void; - setAttachmentTime(time: number): void; - getAttachmentTime(): number; - setToSetupPose(): void; - } + class Slot { + data: SlotData; + bone: Bone; + color: Color; + darkColor: Color; + private attachment; + private attachmentTime; + attachmentVertices: number[]; + constructor(data: SlotData, bone: Bone); + getAttachment(): Attachment; + setAttachment(attachment: Attachment): void; + setAttachmentTime(time: number): void; + getAttachmentTime(): number; + setToSetupPose(): void; + } } declare module spine { - class SlotData { - index: number; - name: string; - boneData: BoneData; - color: Color; - darkColor: Color; - attachmentName: string; - blendMode: BlendMode; - constructor(index: number, name: string, boneData: BoneData); - } + class SlotData { + index: number; + name: string; + boneData: BoneData; + color: Color; + darkColor: Color; + attachmentName: string; + blendMode: BlendMode; + constructor(index: number, name: string, boneData: BoneData); + } } declare module spine { - abstract class Texture { - protected _image: HTMLImageElement; - constructor(image: HTMLImageElement); - getImage(): HTMLImageElement; - abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - abstract dispose(): void; - static filterFromString(text: string): TextureFilter; - static wrapFromString(text: string): TextureWrap; - } - enum TextureFilter { - Nearest = 9728, - Linear = 9729, - MipMap = 9987, - MipMapNearestNearest = 9984, - MipMapLinearNearest = 9985, - MipMapNearestLinear = 9986, - MipMapLinearLinear = 9987, - } - enum TextureWrap { - MirroredRepeat = 33648, - ClampToEdge = 33071, - Repeat = 10497, - } - class TextureRegion { - renderObject: any; - u: number; - v: number; - u2: number; - v2: number; - width: number; - height: number; - rotate: boolean; - offsetX: number; - offsetY: number; - originalWidth: number; - originalHeight: number; - } + abstract class Texture { + protected _image: HTMLImageElement; + constructor(image: HTMLImageElement); + getImage(): HTMLImageElement; + abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + abstract dispose(): void; + static filterFromString(text: string): TextureFilter; + static wrapFromString(text: string): TextureWrap; + } + enum TextureFilter { + Nearest = 9728, + Linear = 9729, + MipMap = 9987, + MipMapNearestNearest = 9984, + MipMapLinearNearest = 9985, + MipMapNearestLinear = 9986, + MipMapLinearLinear = 9987, + } + enum TextureWrap { + MirroredRepeat = 33648, + ClampToEdge = 33071, + Repeat = 10497, + } + class TextureRegion { + renderObject: any; + u: number; + v: number; + u2: number; + v2: number; + width: number; + height: number; + rotate: boolean; + offsetX: number; + offsetY: number; + originalWidth: number; + originalHeight: number; + } } declare module spine { - class TextureAtlas implements Disposable { - pages: TextureAtlasPage[]; - regions: TextureAtlasRegion[]; - constructor(atlasText: string, textureLoader: (path: string) => any); - private load(atlasText, textureLoader); - findRegion(name: string): TextureAtlasRegion; - dispose(): void; - } - class TextureAtlasPage { - name: string; - minFilter: TextureFilter; - magFilter: TextureFilter; - uWrap: TextureWrap; - vWrap: TextureWrap; - texture: Texture; - width: number; - height: number; - } - class TextureAtlasRegion extends TextureRegion { - page: TextureAtlasPage; - name: string; - x: number; - y: number; - index: number; - rotate: boolean; - texture: Texture; - } + class TextureAtlas implements Disposable { + pages: TextureAtlasPage[]; + regions: TextureAtlasRegion[]; + constructor(atlasText: string, textureLoader: (path: string) => any); + private load(atlasText, textureLoader); + findRegion(name: string): TextureAtlasRegion; + dispose(): void; + } + class TextureAtlasPage { + name: string; + minFilter: TextureFilter; + magFilter: TextureFilter; + uWrap: TextureWrap; + vWrap: TextureWrap; + texture: Texture; + width: number; + height: number; + } + class TextureAtlasRegion extends TextureRegion { + page: TextureAtlasPage; + name: string; + x: number; + y: number; + index: number; + rotate: boolean; + texture: Texture; + } } declare module spine { - class TransformConstraint implements Constraint { - data: TransformConstraintData; - bones: Array; - target: Bone; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - temp: Vector2; - constructor(data: TransformConstraintData, skeleton: Skeleton); - apply(): void; - update(): void; - applyAbsoluteWorld(): void; - applyRelativeWorld(): void; - applyAbsoluteLocal(): void; - applyRelativeLocal(): void; - getOrder(): number; - } + class TransformConstraint implements Constraint { + data: TransformConstraintData; + bones: Array; + target: Bone; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + temp: Vector2; + constructor(data: TransformConstraintData, skeleton: Skeleton); + apply(): void; + update(): void; + applyAbsoluteWorld(): void; + applyRelativeWorld(): void; + applyAbsoluteLocal(): void; + applyRelativeLocal(): void; + getOrder(): number; + } } declare module spine { - class TransformConstraintData { - name: string; - order: number; - bones: BoneData[]; - target: BoneData; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - offsetRotation: number; - offsetX: number; - offsetY: number; - offsetScaleX: number; - offsetScaleY: number; - offsetShearY: number; - relative: boolean; - local: boolean; - constructor(name: string); - } + class TransformConstraintData { + name: string; + order: number; + bones: BoneData[]; + target: BoneData; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + offsetRotation: number; + offsetX: number; + offsetY: number; + offsetScaleX: number; + offsetScaleY: number; + offsetShearY: number; + relative: boolean; + local: boolean; + constructor(name: string); + } } declare module spine { - class Triangulator { - private convexPolygons; - private convexPolygonsIndices; - private indicesArray; - private isConcaveArray; - private triangles; - private polygonPool; - private polygonIndicesPool; - triangulate(verticesArray: ArrayLike): Array; - decompose(verticesArray: Array, triangles: Array): Array>; - private static isConcave(index, vertexCount, vertices, indices); - private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); - private static winding(p1x, p1y, p2x, p2y, p3x, p3y); - } + class Triangulator { + private convexPolygons; + private convexPolygonsIndices; + private indicesArray; + private isConcaveArray; + private triangles; + private polygonPool; + private polygonIndicesPool; + triangulate(verticesArray: ArrayLike): Array; + decompose(verticesArray: Array, triangles: Array): Array>; + private static isConcave(index, vertexCount, vertices, indices); + private static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y); + private static winding(p1x, p1y, p2x, p2y, p3x, p3y); + } } declare module spine { - interface Updatable { - update(): void; - } + interface Updatable { + update(): void; + } } declare module spine { - interface Map { - [key: string]: T; - } - class IntSet { - array: number[]; - add(value: number): boolean; - contains(value: number): boolean; - remove(value: number): void; - clear(): void; - } - interface Disposable { - dispose(): void; - } - interface Restorable { - restore(): void; - } - class Color { - r: number; - g: number; - b: number; - a: number; - static WHITE: Color; - static RED: Color; - static GREEN: Color; - static BLUE: Color; - static MAGENTA: Color; - constructor(r?: number, g?: number, b?: number, a?: number); - set(r: number, g: number, b: number, a: number): this; - setFromColor(c: Color): this; - setFromString(hex: string): this; - add(r: number, g: number, b: number, a: number): this; - clamp(): this; - } - class MathUtils { - static PI: number; - static PI2: number; - static radiansToDegrees: number; - static radDeg: number; - static degreesToRadians: number; - static degRad: number; - static clamp(value: number, min: number, max: number): number; - static cosDeg(degrees: number): number; - static sinDeg(degrees: number): number; - static signum(value: number): number; - static toInt(x: number): number; - static cbrt(x: number): number; - } - class Utils { - static SUPPORTS_TYPED_ARRAYS: boolean; - static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; - static setArraySize(array: Array, size: number, value?: any): Array; - static ensureArrayCapacity(array: Array, size: number, value?: any): Array; - static newArray(size: number, defaultValue: T): Array; - static newFloatArray(size: number): ArrayLike; - static newShortArray(size: number): ArrayLike; - static toFloatArray(array: Array): number[] | Float32Array; - } - class DebugUtils { - static logBones(skeleton: Skeleton): void; - } - class Pool { - private items; - private instantiator; - constructor(instantiator: () => T); - obtain(): T; - free(item: T): void; - freeAll(items: ArrayLike): void; - clear(): void; - } - class Vector2 { - x: number; - y: number; - constructor(x?: number, y?: number); - set(x: number, y: number): Vector2; - length(): number; - normalize(): this; - } - class TimeKeeper { - maxDelta: number; - framesPerSecond: number; - delta: number; - totalTime: number; - private lastTime; - private frameCount; - private frameTime; - update(): void; - } - interface ArrayLike { - length: number; - [n: number]: T; - } - class WindowedMean { - values: Array; - addedValues: number; - lastValue: number; - mean: number; - dirty: boolean; - constructor(windowSize?: number); - hasEnoughData(): boolean; - addValue(value: number): void; - getMean(): number; - } + interface Map { + [key: string]: T; + } + class IntSet { + array: number[]; + add(value: number): boolean; + contains(value: number): boolean; + remove(value: number): void; + clear(): void; + } + interface Disposable { + dispose(): void; + } + interface Restorable { + restore(): void; + } + class Color { + r: number; + g: number; + b: number; + a: number; + static WHITE: Color; + static RED: Color; + static GREEN: Color; + static BLUE: Color; + static MAGENTA: Color; + constructor(r?: number, g?: number, b?: number, a?: number); + set(r: number, g: number, b: number, a: number): this; + setFromColor(c: Color): this; + setFromString(hex: string): this; + add(r: number, g: number, b: number, a: number): this; + clamp(): this; + } + class MathUtils { + static PI: number; + static PI2: number; + static radiansToDegrees: number; + static radDeg: number; + static degreesToRadians: number; + static degRad: number; + static clamp(value: number, min: number, max: number): number; + static cosDeg(degrees: number): number; + static sinDeg(degrees: number): number; + static signum(value: number): number; + static toInt(x: number): number; + static cbrt(x: number): number; + } + class Utils { + static SUPPORTS_TYPED_ARRAYS: boolean; + static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; + static setArraySize(array: Array, size: number, value?: any): Array; + static ensureArrayCapacity(array: Array, size: number, value?: any): Array; + static newArray(size: number, defaultValue: T): Array; + static newFloatArray(size: number): ArrayLike; + static newShortArray(size: number): ArrayLike; + static toFloatArray(array: Array): number[] | Float32Array; + } + class DebugUtils { + static logBones(skeleton: Skeleton): void; + } + class Pool { + private items; + private instantiator; + constructor(instantiator: () => T); + obtain(): T; + free(item: T): void; + freeAll(items: ArrayLike): void; + clear(): void; + } + class Vector2 { + x: number; + y: number; + constructor(x?: number, y?: number); + set(x: number, y: number): Vector2; + length(): number; + normalize(): this; + } + class TimeKeeper { + maxDelta: number; + framesPerSecond: number; + delta: number; + totalTime: number; + private lastTime; + private frameCount; + private frameTime; + update(): void; + } + interface ArrayLike { + length: number; + [n: number]: T; + } + class WindowedMean { + values: Array; + addedValues: number; + lastValue: number; + mean: number; + dirty: boolean; + constructor(windowSize?: number); + hasEnoughData(): boolean; + addValue(value: number): void; + getMean(): number; + } } declare module spine.webgl { - class AssetManager extends spine.AssetManager { - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, pathPrefix?: string); - } + class AssetManager extends spine.AssetManager { + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, pathPrefix?: string); + } } declare module spine.webgl { - class OrthoCamera { - position: Vector3; - direction: Vector3; - up: Vector3; - near: number; - far: number; - zoom: number; - viewportWidth: number; - viewportHeight: number; - projectionView: Matrix4; - inverseProjectionView: Matrix4; - projection: Matrix4; - view: Matrix4; - private tmp; - constructor(viewportWidth: number, viewportHeight: number); - update(): void; - screenToWorld(screenCoords: Vector3, screenWidth: number, screenHeight: number): Vector3; - setViewport(viewportWidth: number, viewportHeight: number): void; - } + class OrthoCamera { + position: Vector3; + direction: Vector3; + up: Vector3; + near: number; + far: number; + zoom: number; + viewportWidth: number; + viewportHeight: number; + projectionView: Matrix4; + inverseProjectionView: Matrix4; + projection: Matrix4; + view: Matrix4; + private tmp; + constructor(viewportWidth: number, viewportHeight: number); + update(): void; + screenToWorld(screenCoords: Vector3, screenWidth: number, screenHeight: number): Vector3; + setViewport(viewportWidth: number, viewportHeight: number): void; + } } declare module spine.webgl { - class GLTexture extends Texture implements Disposable, Restorable { - private context; - private texture; - private boundUnit; - private useMipMaps; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, image: HTMLImageElement, useMipMaps?: boolean); - setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - update(useMipMaps: boolean): void; - restore(): void; - bind(unit?: number): void; - unbind(): void; - dispose(): void; - } + class GLTexture extends Texture implements Disposable, Restorable { + private context; + private texture; + private boundUnit; + private useMipMaps; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, image: HTMLImageElement, useMipMaps?: boolean); + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + update(useMipMaps: boolean): void; + restore(): void; + bind(unit?: number): void; + unbind(): void; + dispose(): void; + } } declare module spine.webgl { - class Input { - element: HTMLElement; - lastX: number; - lastY: number; - buttonDown: boolean; - currTouch: Touch; - touchesPool: Pool; - private listeners; - constructor(element: HTMLElement); - private setupCallbacks(element); - addListener(listener: InputListener): void; - removeListener(listener: InputListener): void; - } - class Touch { - identifier: number; - x: number; - y: number; - constructor(identifier: number, x: number, y: number); - } - interface InputListener { - down(x: number, y: number): void; - up(x: number, y: number): void; - moved(x: number, y: number): void; - dragged(x: number, y: number): void; - } + class Input { + element: HTMLElement; + lastX: number; + lastY: number; + buttonDown: boolean; + currTouch: Touch; + touchesPool: Pool; + private listeners; + constructor(element: HTMLElement); + private setupCallbacks(element); + addListener(listener: InputListener): void; + removeListener(listener: InputListener): void; + } + class Touch { + identifier: number; + x: number; + y: number; + constructor(identifier: number, x: number, y: number); + } + interface InputListener { + down(x: number, y: number): void; + up(x: number, y: number): void; + moved(x: number, y: number): void; + dragged(x: number, y: number): void; + } } declare module spine.webgl { - class LoadingScreen { - static FADE_SECONDS: number; - private static loaded; - private static spinnerImg; - private static logoImg; - private renderer; - private logo; - private spinner; - private angle; - private fadeOut; - private timeKeeper; - backgroundColor: Color; - private tempColor; - private firstDraw; - private static SPINNER_DATA; - private static SPINE_LOGO_DATA; - constructor(renderer: SceneRenderer); - draw(complete?: boolean): void; - } + class LoadingScreen { + static FADE_SECONDS: number; + private static loaded; + private static spinnerImg; + private static logoImg; + private renderer; + private logo; + private spinner; + private angle; + private fadeOut; + private timeKeeper; + backgroundColor: Color; + private tempColor; + private firstDraw; + private static SPINNER_DATA; + private static SPINE_LOGO_DATA; + constructor(renderer: SceneRenderer); + draw(complete?: boolean): void; + } } declare module spine.webgl { - const M00: number; - const M01: number; - const M02: number; - const M03: number; - const M10: number; - const M11: number; - const M12: number; - const M13: number; - const M20: number; - const M21: number; - const M22: number; - const M23: number; - const M30: number; - const M31: number; - const M32: number; - const M33: number; - class Matrix4 { - temp: Float32Array; - values: Float32Array; - private static xAxis; - private static yAxis; - private static zAxis; - private static tmpMatrix; - constructor(); - set(values: ArrayLike): Matrix4; - transpose(): Matrix4; - identity(): Matrix4; - invert(): Matrix4; - determinant(): number; - translate(x: number, y: number, z: number): Matrix4; - copy(): Matrix4; - projection(near: number, far: number, fovy: number, aspectRatio: number): Matrix4; - ortho2d(x: number, y: number, width: number, height: number): Matrix4; - ortho(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4; - multiply(matrix: Matrix4): Matrix4; - multiplyLeft(matrix: Matrix4): Matrix4; - lookAt(position: Vector3, direction: Vector3, up: Vector3): this; - static initTemps(): void; - } + const M00: number; + const M01: number; + const M02: number; + const M03: number; + const M10: number; + const M11: number; + const M12: number; + const M13: number; + const M20: number; + const M21: number; + const M22: number; + const M23: number; + const M30: number; + const M31: number; + const M32: number; + const M33: number; + class Matrix4 { + temp: Float32Array; + values: Float32Array; + private static xAxis; + private static yAxis; + private static zAxis; + private static tmpMatrix; + constructor(); + set(values: ArrayLike): Matrix4; + transpose(): Matrix4; + identity(): Matrix4; + invert(): Matrix4; + determinant(): number; + translate(x: number, y: number, z: number): Matrix4; + copy(): Matrix4; + projection(near: number, far: number, fovy: number, aspectRatio: number): Matrix4; + ortho2d(x: number, y: number, width: number, height: number): Matrix4; + ortho(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4; + multiply(matrix: Matrix4): Matrix4; + multiplyLeft(matrix: Matrix4): Matrix4; + lookAt(position: Vector3, direction: Vector3, up: Vector3): this; + static initTemps(): void; + } } declare module spine.webgl { - class Mesh implements Disposable, Restorable { - private attributes; - private context; - private vertices; - private verticesBuffer; - private verticesLength; - private dirtyVertices; - private indices; - private indicesBuffer; - private indicesLength; - private dirtyIndices; - private elementsPerVertex; - getAttributes(): VertexAttribute[]; - maxVertices(): number; - numVertices(): number; - setVerticesLength(length: number): void; - getVertices(): Float32Array; - maxIndices(): number; - numIndices(): number; - setIndicesLength(length: number): void; - getIndices(): Uint16Array; - getVertexSizeInFloats(): number; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, attributes: VertexAttribute[], maxVertices: number, maxIndices: number); - setVertices(vertices: Array): void; - setIndices(indices: Array): void; - draw(shader: Shader, primitiveType: number): void; - drawWithOffset(shader: Shader, primitiveType: number, offset: number, count: number): void; - bind(shader: Shader): void; - unbind(shader: Shader): void; - private update(); - restore(): void; - dispose(): void; - } - class VertexAttribute { - name: string; - type: VertexAttributeType; - numElements: number; - constructor(name: string, type: VertexAttributeType, numElements: number); - } - class Position2Attribute extends VertexAttribute { - constructor(); - } - class Position3Attribute extends VertexAttribute { - constructor(); - } - class TexCoordAttribute extends VertexAttribute { - constructor(unit?: number); - } - class ColorAttribute extends VertexAttribute { - constructor(); - } - class Color2Attribute extends VertexAttribute { - constructor(); - } - enum VertexAttributeType { - Float = 0, - } + class Mesh implements Disposable, Restorable { + private attributes; + private context; + private vertices; + private verticesBuffer; + private verticesLength; + private dirtyVertices; + private indices; + private indicesBuffer; + private indicesLength; + private dirtyIndices; + private elementsPerVertex; + getAttributes(): VertexAttribute[]; + maxVertices(): number; + numVertices(): number; + setVerticesLength(length: number): void; + getVertices(): Float32Array; + maxIndices(): number; + numIndices(): number; + setIndicesLength(length: number): void; + getIndices(): Uint16Array; + getVertexSizeInFloats(): number; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, attributes: VertexAttribute[], maxVertices: number, maxIndices: number); + setVertices(vertices: Array): void; + setIndices(indices: Array): void; + draw(shader: Shader, primitiveType: number): void; + drawWithOffset(shader: Shader, primitiveType: number, offset: number, count: number): void; + bind(shader: Shader): void; + unbind(shader: Shader): void; + private update(); + restore(): void; + dispose(): void; + } + class VertexAttribute { + name: string; + type: VertexAttributeType; + numElements: number; + constructor(name: string, type: VertexAttributeType, numElements: number); + } + class Position2Attribute extends VertexAttribute { + constructor(); + } + class Position3Attribute extends VertexAttribute { + constructor(); + } + class TexCoordAttribute extends VertexAttribute { + constructor(unit?: number); + } + class ColorAttribute extends VertexAttribute { + constructor(); + } + class Color2Attribute extends VertexAttribute { + constructor(); + } + enum VertexAttributeType { + Float = 0, + } } declare module spine.webgl { - class PolygonBatcher implements Disposable { - private context; - private drawCalls; - private isDrawing; - private mesh; - private shader; - private lastTexture; - private verticesLength; - private indicesLength; - private srcBlend; - private dstBlend; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean, maxVertices?: number); - begin(shader: Shader): void; - setBlendMode(srcBlend: number, dstBlend: number): void; - draw(texture: GLTexture, vertices: ArrayLike, indices: Array): void; - private flush(); - end(): void; - getDrawCalls(): number; - dispose(): void; - } + class PolygonBatcher implements Disposable { + private context; + private drawCalls; + private isDrawing; + private mesh; + private shader; + private lastTexture; + private verticesLength; + private indicesLength; + private srcBlend; + private dstBlend; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean, maxVertices?: number); + begin(shader: Shader): void; + setBlendMode(srcBlend: number, dstBlend: number): void; + draw(texture: GLTexture, vertices: ArrayLike, indices: Array): void; + private flush(); + end(): void; + getDrawCalls(): number; + dispose(): void; + } } declare module spine.webgl { - class SceneRenderer implements Disposable { - context: ManagedWebGLRenderingContext; - canvas: HTMLCanvasElement; - camera: OrthoCamera; - batcher: PolygonBatcher; - private twoColorTint; - private batcherShader; - private shapes; - private shapesShader; - private activeRenderer; - private skeletonRenderer; - private skeletonDebugRenderer; - private QUAD; - private QUAD_TRIANGLES; - private WHITE; - constructor(canvas: HTMLCanvasElement, context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean); - begin(): void; - drawSkeleton(skeleton: Skeleton, premultipliedAlpha?: boolean): void; - drawSkeletonDebug(skeleton: Skeleton, premultipliedAlpha?: boolean, ignoredBones?: Array): void; - drawTexture(texture: GLTexture, x: number, y: number, width: number, height: number, color?: Color): void; - drawTextureRotated(texture: GLTexture, x: number, y: number, width: number, height: number, pivotX: number, pivotY: number, angle: number, color?: Color, premultipliedAlpha?: boolean): void; - drawRegion(region: TextureAtlasRegion, x: number, y: number, width: number, height: number, color?: Color, premultipliedAlpha?: boolean): void; - line(x: number, y: number, x2: number, y2: number, color?: Color, color2?: Color): void; - triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; - quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; - rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; - rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; - polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; - circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; - curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; - end(): void; - resize(resizeMode: ResizeMode): void; - private enableRenderer(renderer); - dispose(): void; - } - enum ResizeMode { - Stretch = 0, - Expand = 1, - Fit = 2, - } + class SceneRenderer implements Disposable { + context: ManagedWebGLRenderingContext; + canvas: HTMLCanvasElement; + camera: OrthoCamera; + batcher: PolygonBatcher; + private twoColorTint; + private batcherShader; + private shapes; + private shapesShader; + private activeRenderer; + private skeletonRenderer; + private skeletonDebugRenderer; + private QUAD; + private QUAD_TRIANGLES; + private WHITE; + constructor(canvas: HTMLCanvasElement, context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean); + begin(): void; + drawSkeleton(skeleton: Skeleton, premultipliedAlpha?: boolean): void; + drawSkeletonDebug(skeleton: Skeleton, premultipliedAlpha?: boolean, ignoredBones?: Array): void; + drawTexture(texture: GLTexture, x: number, y: number, width: number, height: number, color?: Color): void; + drawTextureRotated(texture: GLTexture, x: number, y: number, width: number, height: number, pivotX: number, pivotY: number, angle: number, color?: Color, premultipliedAlpha?: boolean): void; + drawRegion(region: TextureAtlasRegion, x: number, y: number, width: number, height: number, color?: Color, premultipliedAlpha?: boolean): void; + line(x: number, y: number, x2: number, y2: number, color?: Color, color2?: Color): void; + triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; + quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; + rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; + rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; + polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; + circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; + curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; + end(): void; + resize(resizeMode: ResizeMode): void; + private enableRenderer(renderer); + dispose(): void; + } + enum ResizeMode { + Stretch = 0, + Expand = 1, + Fit = 2, + } } declare module spine.webgl { - class Shader implements Disposable, Restorable { - private vertexShader; - private fragmentShader; - static MVP_MATRIX: string; - static POSITION: string; - static COLOR: string; - static COLOR2: string; - static TEXCOORDS: string; - static SAMPLER: string; - private context; - private vs; - private fs; - private program; - private tmp2x2; - private tmp3x3; - private tmp4x4; - getProgram(): WebGLProgram; - getVertexShader(): string; - getFragmentShader(): string; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, vertexShader: string, fragmentShader: string); - private compile(); - private compileShader(type, source); - private compileProgram(vs, fs); - restore(): void; - bind(): void; - unbind(): void; - setUniformi(uniform: string, value: number): void; - setUniformf(uniform: string, value: number): void; - setUniform2f(uniform: string, value: number, value2: number): void; - setUniform3f(uniform: string, value: number, value2: number, value3: number): void; - setUniform4f(uniform: string, value: number, value2: number, value3: number, value4: number): void; - setUniform2x2f(uniform: string, value: ArrayLike): void; - setUniform3x3f(uniform: string, value: ArrayLike): void; - setUniform4x4f(uniform: string, value: ArrayLike): void; - getUniformLocation(uniform: string): WebGLUniformLocation; - getAttributeLocation(attribute: string): number; - dispose(): void; - static newColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; - static newTwoColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; - static newColored(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; - } + class Shader implements Disposable, Restorable { + private vertexShader; + private fragmentShader; + static MVP_MATRIX: string; + static POSITION: string; + static COLOR: string; + static COLOR2: string; + static TEXCOORDS: string; + static SAMPLER: string; + private context; + private vs; + private fs; + private program; + private tmp2x2; + private tmp3x3; + private tmp4x4; + getProgram(): WebGLProgram; + getVertexShader(): string; + getFragmentShader(): string; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, vertexShader: string, fragmentShader: string); + private compile(); + private compileShader(type, source); + private compileProgram(vs, fs); + restore(): void; + bind(): void; + unbind(): void; + setUniformi(uniform: string, value: number): void; + setUniformf(uniform: string, value: number): void; + setUniform2f(uniform: string, value: number, value2: number): void; + setUniform3f(uniform: string, value: number, value2: number, value3: number): void; + setUniform4f(uniform: string, value: number, value2: number, value3: number, value4: number): void; + setUniform2x2f(uniform: string, value: ArrayLike): void; + setUniform3x3f(uniform: string, value: ArrayLike): void; + setUniform4x4f(uniform: string, value: ArrayLike): void; + getUniformLocation(uniform: string): WebGLUniformLocation; + getAttributeLocation(attribute: string): number; + dispose(): void; + static newColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; + static newTwoColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; + static newColored(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; + } } declare module spine.webgl { - class ShapeRenderer implements Disposable { - private context; - private isDrawing; - private mesh; - private shapeType; - private color; - private shader; - private vertexIndex; - private tmp; - private srcBlend; - private dstBlend; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, maxVertices?: number); - begin(shader: Shader): void; - setBlendMode(srcBlend: number, dstBlend: number): void; - setColor(color: Color): void; - setColorWith(r: number, g: number, b: number, a: number): void; - point(x: number, y: number, color?: Color): void; - line(x: number, y: number, x2: number, y2: number, color?: Color): void; - triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; - quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; - rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; - rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; - x(x: number, y: number, size: number): void; - polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; - circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; - curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; - private vertex(x, y, color); - end(): void; - private flush(); - private check(shapeType, numVertices); - dispose(): void; - } - enum ShapeType { - Point = 0, - Line = 1, - Filled = 4, - } + class ShapeRenderer implements Disposable { + private context; + private isDrawing; + private mesh; + private shapeType; + private color; + private shader; + private vertexIndex; + private tmp; + private srcBlend; + private dstBlend; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, maxVertices?: number); + begin(shader: Shader): void; + setBlendMode(srcBlend: number, dstBlend: number): void; + setColor(color: Color): void; + setColorWith(r: number, g: number, b: number, a: number): void; + point(x: number, y: number, color?: Color): void; + line(x: number, y: number, x2: number, y2: number, color?: Color): void; + triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void; + quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void; + rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; + rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; + x(x: number, y: number, size: number): void; + polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; + circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void; + curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void; + private vertex(x, y, color); + end(): void; + private flush(); + private check(shapeType, numVertices); + dispose(): void; + } + enum ShapeType { + Point = 0, + Line = 1, + Filled = 4, + } } declare module spine.webgl { - class SkeletonDebugRenderer implements Disposable { - boneLineColor: Color; - boneOriginColor: Color; - attachmentLineColor: Color; - triangleLineColor: Color; - pathColor: Color; - clipColor: Color; - aabbColor: Color; - drawBones: boolean; - drawRegionAttachments: boolean; - drawBoundingBoxes: boolean; - drawMeshHull: boolean; - drawMeshTriangles: boolean; - drawPaths: boolean; - drawSkeletonXY: boolean; - drawClipping: boolean; - premultipliedAlpha: boolean; - scale: number; - boneWidth: number; - private context; - private bounds; - private temp; - private vertices; - private static LIGHT_GRAY; - private static GREEN; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext); - draw(shapes: ShapeRenderer, skeleton: Skeleton, ignoredBones?: Array): void; - dispose(): void; - } + class SkeletonDebugRenderer implements Disposable { + boneLineColor: Color; + boneOriginColor: Color; + attachmentLineColor: Color; + triangleLineColor: Color; + pathColor: Color; + clipColor: Color; + aabbColor: Color; + drawBones: boolean; + drawRegionAttachments: boolean; + drawBoundingBoxes: boolean; + drawMeshHull: boolean; + drawMeshTriangles: boolean; + drawPaths: boolean; + drawSkeletonXY: boolean; + drawClipping: boolean; + premultipliedAlpha: boolean; + scale: number; + boneWidth: number; + private context; + private bounds; + private temp; + private vertices; + private static LIGHT_GRAY; + private static GREEN; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext); + draw(shapes: ShapeRenderer, skeleton: Skeleton, ignoredBones?: Array): void; + dispose(): void; + } } declare module spine.webgl { - class SkeletonRenderer { - static QUAD_TRIANGLES: number[]; - premultipliedAlpha: boolean; - private tempColor; - private tempColor2; - private vertices; - private vertexSize; - private twoColorTint; - private renderable; - private clipper; - constructor(context: ManagedWebGLRenderingContext, twoColorTint?: boolean); - draw(batcher: PolygonBatcher, skeleton: Skeleton): void; - } + class SkeletonRenderer { + static QUAD_TRIANGLES: number[]; + premultipliedAlpha: boolean; + private tempColor; + private tempColor2; + private vertices; + private vertexSize; + private twoColorTint; + private renderable; + private clipper; + constructor(context: ManagedWebGLRenderingContext, twoColorTint?: boolean); + draw(batcher: PolygonBatcher, skeleton: Skeleton): void; + } } declare module spine.webgl { - class Vector3 { - x: number; - y: number; - z: number; - constructor(x?: number, y?: number, z?: number); - setFrom(v: Vector3): Vector3; - set(x: number, y: number, z: number): Vector3; - add(v: Vector3): Vector3; - sub(v: Vector3): Vector3; - scale(s: number): Vector3; - normalize(): Vector3; - cross(v: Vector3): Vector3; - multiply(matrix: Matrix4): Vector3; - project(matrix: Matrix4): Vector3; - dot(v: Vector3): number; - length(): number; - distance(v: Vector3): number; - } + class Vector3 { + x: number; + y: number; + z: number; + constructor(x?: number, y?: number, z?: number); + setFrom(v: Vector3): Vector3; + set(x: number, y: number, z: number): Vector3; + add(v: Vector3): Vector3; + sub(v: Vector3): Vector3; + scale(s: number): Vector3; + normalize(): Vector3; + cross(v: Vector3): Vector3; + multiply(matrix: Matrix4): Vector3; + project(matrix: Matrix4): Vector3; + dot(v: Vector3): number; + length(): number; + distance(v: Vector3): number; + } } declare module spine.webgl { - class ManagedWebGLRenderingContext { - canvas: HTMLCanvasElement; - gl: WebGLRenderingContext; - private restorables; - constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext, contextConfig?: any); - addRestorable(restorable: Restorable): void; - removeRestorable(restorable: Restorable): void; - } - class WebGLBlendModeConverter { - static ZERO: number; - static ONE: number; - static SRC_COLOR: number; - static ONE_MINUS_SRC_COLOR: number; - static SRC_ALPHA: number; - static ONE_MINUS_SRC_ALPHA: number; - static DST_ALPHA: number; - static ONE_MINUS_DST_ALPHA: number; - static DST_COLOR: number; - static getDestGLBlendMode(blendMode: BlendMode): number; - static getSourceGLBlendMode(blendMode: BlendMode, premultipliedAlpha?: boolean): number; - } + class ManagedWebGLRenderingContext { + canvas: HTMLCanvasElement; + gl: WebGLRenderingContext; + private restorables; + constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext, contextConfig?: any); + addRestorable(restorable: Restorable): void; + removeRestorable(restorable: Restorable): void; + } + class WebGLBlendModeConverter { + static ZERO: number; + static ONE: number; + static SRC_COLOR: number; + static ONE_MINUS_SRC_COLOR: number; + static SRC_ALPHA: number; + static ONE_MINUS_SRC_ALPHA: number; + static DST_ALPHA: number; + static ONE_MINUS_DST_ALPHA: number; + static DST_COLOR: number; + static getDestGLBlendMode(blendMode: BlendMode): number; + static getSourceGLBlendMode(blendMode: BlendMode, premultipliedAlpha?: boolean): number; + } } diff --git a/spine-ts/build/spine-webgl.js b/spine-ts/build/spine-webgl.js index 0b5a7c4a7..6a05b82e7 100644 --- a/spine-ts/build/spine-webgl.js +++ b/spine-ts/build/spine-webgl.js @@ -1,8611 +1,8611 @@ var __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var spine; (function (spine) { - var Animation = (function () { - function Animation(name, timelines, duration) { - if (name == null) - throw new Error("name cannot be null."); - if (timelines == null) - throw new Error("timelines cannot be null."); - this.name = name; - this.timelines = timelines; - this.duration = duration; - } - Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (loop && this.duration != 0) { - time %= this.duration; - if (lastTime > 0) - lastTime %= this.duration; - } - var timelines = this.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); - }; - Animation.binarySearch = function (values, target, step) { - if (step === void 0) { step = 1; } - var low = 0; - var high = values.length / step - 2; - if (high == 0) - return step; - var current = high >>> 1; - while (true) { - if (values[(current + 1) * step] <= target) - low = current + 1; - else - high = current; - if (low == high) - return (low + 1) * step; - current = (low + high) >>> 1; - } - }; - Animation.linearSearch = function (values, target, step) { - for (var i = 0, last = values.length - step; i <= last; i += step) - if (values[i] > target) - return i; - return -1; - }; - return Animation; - }()); - spine.Animation = Animation; - (function (TimelineType) { - TimelineType[TimelineType["rotate"] = 0] = "rotate"; - TimelineType[TimelineType["translate"] = 1] = "translate"; - TimelineType[TimelineType["scale"] = 2] = "scale"; - TimelineType[TimelineType["shear"] = 3] = "shear"; - TimelineType[TimelineType["attachment"] = 4] = "attachment"; - TimelineType[TimelineType["color"] = 5] = "color"; - TimelineType[TimelineType["deform"] = 6] = "deform"; - TimelineType[TimelineType["event"] = 7] = "event"; - TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; - TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; - TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; - TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; - TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; - TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; - TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; - })(spine.TimelineType || (spine.TimelineType = {})); - var TimelineType = spine.TimelineType; - var CurveTimeline = (function () { - function CurveTimeline(frameCount) { - if (frameCount <= 0) - throw new Error("frameCount must be > 0: " + frameCount); - this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); - } - CurveTimeline.prototype.getFrameCount = function () { - return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; - }; - CurveTimeline.prototype.setLinear = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; - }; - CurveTimeline.prototype.setStepped = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; - }; - CurveTimeline.prototype.getCurveType = function (frameIndex) { - var index = frameIndex * CurveTimeline.BEZIER_SIZE; - if (index == this.curves.length) - return CurveTimeline.LINEAR; - var type = this.curves[index]; - if (type == CurveTimeline.LINEAR) - return CurveTimeline.LINEAR; - if (type == CurveTimeline.STEPPED) - return CurveTimeline.STEPPED; - return CurveTimeline.BEZIER; - }; - CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { - var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; - var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; - var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; - var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var curves = this.curves; - curves[i++] = CurveTimeline.BEZIER; - var x = dfx, y = dfy; - for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - curves[i] = x; - curves[i + 1] = y; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - x += dfx; - y += dfy; - } - }; - CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { - percent = spine.MathUtils.clamp(percent, 0, 1); - var curves = this.curves; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var type = curves[i]; - if (type == CurveTimeline.LINEAR) - return percent; - if (type == CurveTimeline.STEPPED) - return 0; - i++; - var x = 0; - for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - x = curves[i]; - if (x >= percent) { - var prevX = void 0, prevY = void 0; - if (i == start) { - prevX = 0; - prevY = 0; - } - else { - prevX = curves[i - 2]; - prevY = curves[i - 1]; - } - return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); - } - } - var y = curves[i - 1]; - return y + (1 - y) * (percent - x) / (1 - x); - }; - CurveTimeline.LINEAR = 0; - CurveTimeline.STEPPED = 1; - CurveTimeline.BEZIER = 2; - CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; - return CurveTimeline; - }()); - spine.CurveTimeline = CurveTimeline; - var RotateTimeline = (function (_super) { - __extends(RotateTimeline, _super); - function RotateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount << 1); - } - RotateTimeline.prototype.getPropertyId = function () { - return (TimelineType.rotate << 24) + this.boneIndex; - }; - RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { - frameIndex <<= 1; - this.frames[frameIndex] = time; - this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; - }; - RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { - if (setupPose) - bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; - else { - var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; - r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; - bone.rotation += r_1 * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); - var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); - var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - r = prevRotation + r * percent; - if (setupPose) { - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation = bone.data.rotation + r * alpha; - } - else { - r = bone.data.rotation + r - bone.rotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.rotation += r * alpha; - } - }; - RotateTimeline.ENTRIES = 2; - RotateTimeline.PREV_TIME = -2; - RotateTimeline.PREV_ROTATION = -1; - RotateTimeline.ROTATION = 1; - return RotateTimeline; - }(CurveTimeline)); - spine.RotateTimeline = RotateTimeline; - var TranslateTimeline = (function (_super) { - __extends(TranslateTimeline, _super); - function TranslateTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); - } - TranslateTimeline.prototype.getPropertyId = function () { - return (TimelineType.translate << 24) + this.boneIndex; - }; - TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { - frameIndex *= TranslateTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TranslateTimeline.X] = x; - this.frames[frameIndex + TranslateTimeline.Y] = y; - }; - TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.x = bone.data.x; - bone.y = bone.data.y; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { - x = frames[frames.length + TranslateTimeline.PREV_X]; - y = frames[frames.length + TranslateTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - x = frames[frame + TranslateTimeline.PREV_X]; - y = frames[frame + TranslateTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); - x += (frames[frame + TranslateTimeline.X] - x) * percent; - y += (frames[frame + TranslateTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.x = bone.data.x + x * alpha; - bone.y = bone.data.y + y * alpha; - } - else { - bone.x += (bone.data.x + x - bone.x) * alpha; - bone.y += (bone.data.y + y - bone.y) * alpha; - } - }; - TranslateTimeline.ENTRIES = 3; - TranslateTimeline.PREV_TIME = -3; - TranslateTimeline.PREV_X = -2; - TranslateTimeline.PREV_Y = -1; - TranslateTimeline.X = 1; - TranslateTimeline.Y = 2; - return TranslateTimeline; - }(CurveTimeline)); - spine.TranslateTimeline = TranslateTimeline; - var ScaleTimeline = (function (_super) { - __extends(ScaleTimeline, _super); - function ScaleTimeline(frameCount) { - _super.call(this, frameCount); - } - ScaleTimeline.prototype.getPropertyId = function () { - return (TimelineType.scale << 24) + this.boneIndex; - }; - ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.scaleX = bone.data.scaleX; - bone.scaleY = bone.data.scaleY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { - x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; - y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; - } - else { - var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - x = frames[frame + ScaleTimeline.PREV_X]; - y = frames[frame + ScaleTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); - x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; - y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; - } - if (alpha == 1) { - bone.scaleX = x; - bone.scaleY = y; - } - else { - var bx = 0, by = 0; - if (setupPose) { - bx = bone.data.scaleX; - by = bone.data.scaleY; - } - else { - bx = bone.scaleX; - by = bone.scaleY; - } - if (mixingOut) { - x = Math.abs(x) * spine.MathUtils.signum(bx); - y = Math.abs(y) * spine.MathUtils.signum(by); - } - else { - bx = Math.abs(bx) * spine.MathUtils.signum(x); - by = Math.abs(by) * spine.MathUtils.signum(y); - } - bone.scaleX = bx + (x - bx) * alpha; - bone.scaleY = by + (y - by) * alpha; - } - }; - return ScaleTimeline; - }(TranslateTimeline)); - spine.ScaleTimeline = ScaleTimeline; - var ShearTimeline = (function (_super) { - __extends(ShearTimeline, _super); - function ShearTimeline(frameCount) { - _super.call(this, frameCount); - } - ShearTimeline.prototype.getPropertyId = function () { - return (TimelineType.shear << 24) + this.boneIndex; - }; - ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (time < frames[0]) { - if (setupPose) { - bone.shearX = bone.data.shearX; - bone.shearY = bone.data.shearY; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { - x = frames[frames.length + ShearTimeline.PREV_X]; - y = frames[frames.length + ShearTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - x = frames[frame + ShearTimeline.PREV_X]; - y = frames[frame + ShearTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); - x = x + (frames[frame + ShearTimeline.X] - x) * percent; - y = y + (frames[frame + ShearTimeline.Y] - y) * percent; - } - if (setupPose) { - bone.shearX = bone.data.shearX + x * alpha; - bone.shearY = bone.data.shearY + y * alpha; - } - else { - bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; - } - }; - return ShearTimeline; - }(TranslateTimeline)); - spine.ShearTimeline = ShearTimeline; - var ColorTimeline = (function (_super) { - __extends(ColorTimeline, _super); - function ColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); - } - ColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.color << 24) + this.slotIndex; - }; - ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { - frameIndex *= ColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + ColorTimeline.R] = r; - this.frames[frameIndex + ColorTimeline.G] = g; - this.frames[frameIndex + ColorTimeline.B] = b; - this.frames[frameIndex + ColorTimeline.A] = a; - }; - ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - slot.color.setFromColor(slot.data.color); - return; - } - var r = 0, g = 0, b = 0, a = 0; - if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + ColorTimeline.PREV_R]; - g = frames[i + ColorTimeline.PREV_G]; - b = frames[i + ColorTimeline.PREV_B]; - a = frames[i + ColorTimeline.PREV_A]; - } - else { - var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); - r = frames[frame + ColorTimeline.PREV_R]; - g = frames[frame + ColorTimeline.PREV_G]; - b = frames[frame + ColorTimeline.PREV_B]; - a = frames[frame + ColorTimeline.PREV_A]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + ColorTimeline.R] - r) * percent; - g += (frames[frame + ColorTimeline.G] - g) * percent; - b += (frames[frame + ColorTimeline.B] - b) * percent; - a += (frames[frame + ColorTimeline.A] - a) * percent; - } - if (alpha == 1) - slot.color.set(r, g, b, a); - else { - var color = slot.color; - if (setupPose) - color.setFromColor(slot.data.color); - color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); - } - }; - ColorTimeline.ENTRIES = 5; - ColorTimeline.PREV_TIME = -5; - ColorTimeline.PREV_R = -4; - ColorTimeline.PREV_G = -3; - ColorTimeline.PREV_B = -2; - ColorTimeline.PREV_A = -1; - ColorTimeline.R = 1; - ColorTimeline.G = 2; - ColorTimeline.B = 3; - ColorTimeline.A = 4; - return ColorTimeline; - }(CurveTimeline)); - spine.ColorTimeline = ColorTimeline; - var TwoColorTimeline = (function (_super) { - __extends(TwoColorTimeline, _super); - function TwoColorTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); - } - TwoColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.twoColor << 24) + this.slotIndex; - }; - TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { - frameIndex *= TwoColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TwoColorTimeline.R] = r; - this.frames[frameIndex + TwoColorTimeline.G] = g; - this.frames[frameIndex + TwoColorTimeline.B] = b; - this.frames[frameIndex + TwoColorTimeline.A] = a; - this.frames[frameIndex + TwoColorTimeline.R2] = r2; - this.frames[frameIndex + TwoColorTimeline.G2] = g2; - this.frames[frameIndex + TwoColorTimeline.B2] = b2; - }; - TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - slot.color.setFromColor(slot.data.color); - slot.darkColor.setFromColor(slot.data.darkColor); - } - return; - } - var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; - if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + TwoColorTimeline.PREV_R]; - g = frames[i + TwoColorTimeline.PREV_G]; - b = frames[i + TwoColorTimeline.PREV_B]; - a = frames[i + TwoColorTimeline.PREV_A]; - r2 = frames[i + TwoColorTimeline.PREV_R2]; - g2 = frames[i + TwoColorTimeline.PREV_G2]; - b2 = frames[i + TwoColorTimeline.PREV_B2]; - } - else { - var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); - r = frames[frame + TwoColorTimeline.PREV_R]; - g = frames[frame + TwoColorTimeline.PREV_G]; - b = frames[frame + TwoColorTimeline.PREV_B]; - a = frames[frame + TwoColorTimeline.PREV_A]; - r2 = frames[frame + TwoColorTimeline.PREV_R2]; - g2 = frames[frame + TwoColorTimeline.PREV_G2]; - b2 = frames[frame + TwoColorTimeline.PREV_B2]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + TwoColorTimeline.R] - r) * percent; - g += (frames[frame + TwoColorTimeline.G] - g) * percent; - b += (frames[frame + TwoColorTimeline.B] - b) * percent; - a += (frames[frame + TwoColorTimeline.A] - a) * percent; - r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; - g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; - b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; - } - if (alpha == 1) { - slot.color.set(r, g, b, a); - slot.darkColor.set(r2, g2, b2, 1); - } - else { - var light = slot.color; - var dark = slot.darkColor; - if (setupPose) { - light.setFromColor(slot.data.color); - dark.setFromColor(slot.data.darkColor); - } - light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); - dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); - } - }; - TwoColorTimeline.ENTRIES = 8; - TwoColorTimeline.PREV_TIME = -8; - TwoColorTimeline.PREV_R = -7; - TwoColorTimeline.PREV_G = -6; - TwoColorTimeline.PREV_B = -5; - TwoColorTimeline.PREV_A = -4; - TwoColorTimeline.PREV_R2 = -3; - TwoColorTimeline.PREV_G2 = -2; - TwoColorTimeline.PREV_B2 = -1; - TwoColorTimeline.R = 1; - TwoColorTimeline.G = 2; - TwoColorTimeline.B = 3; - TwoColorTimeline.A = 4; - TwoColorTimeline.R2 = 5; - TwoColorTimeline.G2 = 6; - TwoColorTimeline.B2 = 7; - return TwoColorTimeline; - }(CurveTimeline)); - spine.TwoColorTimeline = TwoColorTimeline; - var AttachmentTimeline = (function () { - function AttachmentTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.attachmentNames = new Array(frameCount); - } - AttachmentTimeline.prototype.getPropertyId = function () { - return (TimelineType.attachment << 24) + this.slotIndex; - }; - AttachmentTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { - this.frames[frameIndex] = time; - this.attachmentNames[frameIndex] = attachmentName; - }; - AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - if (mixingOut && setupPose) { - var attachmentName_1 = slot.data.attachmentName; - slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) { - var attachmentName_2 = slot.data.attachmentName; - slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); - } - return; - } - var frameIndex = 0; - if (time >= frames[frames.length - 1]) - frameIndex = frames.length - 1; - else - frameIndex = Animation.binarySearch(frames, time, 1) - 1; - var attachmentName = this.attachmentNames[frameIndex]; - skeleton.slots[this.slotIndex] - .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); - }; - return AttachmentTimeline; - }()); - spine.AttachmentTimeline = AttachmentTimeline; - var DeformTimeline = (function (_super) { - __extends(DeformTimeline, _super); - function DeformTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount); - this.frameVertices = new Array(frameCount); - } - DeformTimeline.prototype.getPropertyId = function () { - return (TimelineType.deform << 24) + this.slotIndex; - }; - DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { - this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; - }; - DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var slot = skeleton.slots[this.slotIndex]; - var slotAttachment = slot.getAttachment(); - if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) - return; - var frames = this.frames; - var verticesArray = slot.attachmentVertices; - if (time < frames[0]) { - if (setupPose) - spine.Utils.setArraySize(verticesArray, 0); - return; - } - var frameVertices = this.frameVertices; - var vertexCount = frameVertices[0].length; - if (verticesArray.length != vertexCount && !setupPose) - alpha = 1; - var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); - if (time >= frames[frames.length - 1]) { - var lastVertices = frameVertices[frames.length - 1]; - if (alpha == 1) { - spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var setup = setupVertices[i]; - vertices[i] = setup + (lastVertices[i] - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] = lastVertices[i] * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) - vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time); - var prevVertices = frameVertices[frame - 1]; - var nextVertices = frameVertices[frame]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); - if (alpha == 1) { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - else if (setupPose) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i], setup = setupVertices[i]; - vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; - } - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; - } - } - }; - return DeformTimeline; - }(CurveTimeline)); - spine.DeformTimeline = DeformTimeline; - var EventTimeline = (function () { - function EventTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.events = new Array(frameCount); - } - EventTimeline.prototype.getPropertyId = function () { - return TimelineType.event << 24; - }; - EventTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - EventTimeline.prototype.setFrame = function (frameIndex, event) { - this.frames[frameIndex] = event.time; - this.events[frameIndex] = event; - }; - EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - if (firedEvents == null) - return; - var frames = this.frames; - var frameCount = this.frames.length; - if (lastTime > time) { - this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); - lastTime = -1; - } - else if (lastTime >= frames[frameCount - 1]) - return; - if (time < frames[0]) - return; - var frame = 0; - if (lastTime < frames[0]) - frame = 0; - else { - frame = Animation.binarySearch(frames, lastTime); - var frameTime = frames[frame]; - while (frame > 0) { - if (frames[frame - 1] != frameTime) - break; - frame--; - } - } - for (; frame < frameCount && time >= frames[frame]; frame++) - firedEvents.push(this.events[frame]); - }; - return EventTimeline; - }()); - spine.EventTimeline = EventTimeline; - var DrawOrderTimeline = (function () { - function DrawOrderTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.drawOrders = new Array(frameCount); - } - DrawOrderTimeline.prototype.getPropertyId = function () { - return TimelineType.drawOrder << 24; - }; - DrawOrderTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { - this.frames[frameIndex] = time; - this.drawOrders[frameIndex] = drawOrder; - }; - DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var drawOrder = skeleton.drawOrder; - var slots = skeleton.slots; - if (mixingOut && setupPose) { - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (setupPose) - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frame = 0; - if (time >= frames[frames.length - 1]) - frame = frames.length - 1; - else - frame = Animation.binarySearch(frames, time) - 1; - var drawOrderToSetupIndex = this.drawOrders[frame]; - if (drawOrderToSetupIndex == null) - spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); - else { - for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) - drawOrder[i] = slots[drawOrderToSetupIndex[i]]; - } - }; - return DrawOrderTimeline; - }()); - spine.DrawOrderTimeline = DrawOrderTimeline; - var IkConstraintTimeline = (function (_super) { - __extends(IkConstraintTimeline, _super); - function IkConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); - } - IkConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; - }; - IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { - frameIndex *= IkConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; - this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; - }; - IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.mix = constraint.data.mix; - constraint.bendDirection = constraint.data.bendDirection; - } - return; - } - if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { - if (setupPose) { - constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection - : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - return; - } - var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); - var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); - if (setupPose) { - constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; - constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - else { - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - if (!mixingOut) - constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - } - }; - IkConstraintTimeline.ENTRIES = 3; - IkConstraintTimeline.PREV_TIME = -3; - IkConstraintTimeline.PREV_MIX = -2; - IkConstraintTimeline.PREV_BEND_DIRECTION = -1; - IkConstraintTimeline.MIX = 1; - IkConstraintTimeline.BEND_DIRECTION = 2; - return IkConstraintTimeline; - }(CurveTimeline)); - spine.IkConstraintTimeline = IkConstraintTimeline; - var TransformConstraintTimeline = (function (_super) { - __extends(TransformConstraintTimeline, _super); - function TransformConstraintTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); - } - TransformConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; - }; - TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { - frameIndex *= TransformConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; - this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; - this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; - }; - TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.rotateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - return; - } - var rotate = 0, translate = 0, scale = 0, shear = 0; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { - var i = frames.length; - rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; - } - else { - var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; - scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; - shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; - } - if (setupPose) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; - constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; - constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; - constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - constraint.scaleMix += (scale - constraint.scaleMix) * alpha; - constraint.shearMix += (shear - constraint.shearMix) * alpha; - } - }; - TransformConstraintTimeline.ENTRIES = 5; - TransformConstraintTimeline.PREV_TIME = -5; - TransformConstraintTimeline.PREV_ROTATE = -4; - TransformConstraintTimeline.PREV_TRANSLATE = -3; - TransformConstraintTimeline.PREV_SCALE = -2; - TransformConstraintTimeline.PREV_SHEAR = -1; - TransformConstraintTimeline.ROTATE = 1; - TransformConstraintTimeline.TRANSLATE = 2; - TransformConstraintTimeline.SCALE = 3; - TransformConstraintTimeline.SHEAR = 4; - return TransformConstraintTimeline; - }(CurveTimeline)); - spine.TransformConstraintTimeline = TransformConstraintTimeline; - var PathConstraintPositionTimeline = (function (_super) { - __extends(PathConstraintPositionTimeline, _super); - function PathConstraintPositionTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); - } - PathConstraintPositionTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; - }; - PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { - frameIndex *= PathConstraintPositionTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; - }; - PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.position = constraint.data.position; - return; - } - var position = 0; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) - position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); - position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; - } - if (setupPose) - constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; - else - constraint.position += (position - constraint.position) * alpha; - }; - PathConstraintPositionTimeline.ENTRIES = 2; - PathConstraintPositionTimeline.PREV_TIME = -2; - PathConstraintPositionTimeline.PREV_VALUE = -1; - PathConstraintPositionTimeline.VALUE = 1; - return PathConstraintPositionTimeline; - }(CurveTimeline)); - spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; - var PathConstraintSpacingTimeline = (function (_super) { - __extends(PathConstraintSpacingTimeline, _super); - function PathConstraintSpacingTimeline(frameCount) { - _super.call(this, frameCount); - } - PathConstraintSpacingTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; - }; - PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) - constraint.spacing = constraint.data.spacing; - return; - } - var spacing = 0; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) - spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); - spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; - } - if (setupPose) - constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; - else - constraint.spacing += (spacing - constraint.spacing) * alpha; - }; - return PathConstraintSpacingTimeline; - }(PathConstraintPositionTimeline)); - spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; - var PathConstraintMixTimeline = (function (_super) { - __extends(PathConstraintMixTimeline, _super); - function PathConstraintMixTimeline(frameCount) { - _super.call(this, frameCount); - this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); - } - PathConstraintMixTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; - }; - PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { - frameIndex *= PathConstraintMixTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; - }; - PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time < frames[0]) { - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix; - constraint.translateMix = constraint.data.translateMix; - } - return; - } - var rotate = 0, translate = 0; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { - rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; - } - else { - var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; - } - if (setupPose) { - constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; - constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - } - }; - PathConstraintMixTimeline.ENTRIES = 3; - PathConstraintMixTimeline.PREV_TIME = -3; - PathConstraintMixTimeline.PREV_ROTATE = -2; - PathConstraintMixTimeline.PREV_TRANSLATE = -1; - PathConstraintMixTimeline.ROTATE = 1; - PathConstraintMixTimeline.TRANSLATE = 2; - return PathConstraintMixTimeline; - }(CurveTimeline)); - spine.PathConstraintMixTimeline = PathConstraintMixTimeline; + var Animation = (function () { + function Animation(name, timelines, duration) { + if (name == null) + throw new Error("name cannot be null."); + if (timelines == null) + throw new Error("timelines cannot be null."); + this.name = name; + this.timelines = timelines; + this.duration = duration; + } + Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (loop && this.duration != 0) { + time %= this.duration; + if (lastTime > 0) + lastTime %= this.duration; + } + var timelines = this.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); + }; + Animation.binarySearch = function (values, target, step) { + if (step === void 0) { step = 1; } + var low = 0; + var high = values.length / step - 2; + if (high == 0) + return step; + var current = high >>> 1; + while (true) { + if (values[(current + 1) * step] <= target) + low = current + 1; + else + high = current; + if (low == high) + return (low + 1) * step; + current = (low + high) >>> 1; + } + }; + Animation.linearSearch = function (values, target, step) { + for (var i = 0, last = values.length - step; i <= last; i += step) + if (values[i] > target) + return i; + return -1; + }; + return Animation; + }()); + spine.Animation = Animation; + (function (TimelineType) { + TimelineType[TimelineType["rotate"] = 0] = "rotate"; + TimelineType[TimelineType["translate"] = 1] = "translate"; + TimelineType[TimelineType["scale"] = 2] = "scale"; + TimelineType[TimelineType["shear"] = 3] = "shear"; + TimelineType[TimelineType["attachment"] = 4] = "attachment"; + TimelineType[TimelineType["color"] = 5] = "color"; + TimelineType[TimelineType["deform"] = 6] = "deform"; + TimelineType[TimelineType["event"] = 7] = "event"; + TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; + TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; + TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; + TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; + TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; + TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; + TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; + var CurveTimeline = (function () { + function CurveTimeline(frameCount) { + if (frameCount <= 0) + throw new Error("frameCount must be > 0: " + frameCount); + this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); + } + CurveTimeline.prototype.getFrameCount = function () { + return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; + }; + CurveTimeline.prototype.setLinear = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; + }; + CurveTimeline.prototype.setStepped = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; + }; + CurveTimeline.prototype.getCurveType = function (frameIndex) { + var index = frameIndex * CurveTimeline.BEZIER_SIZE; + if (index == this.curves.length) + return CurveTimeline.LINEAR; + var type = this.curves[index]; + if (type == CurveTimeline.LINEAR) + return CurveTimeline.LINEAR; + if (type == CurveTimeline.STEPPED) + return CurveTimeline.STEPPED; + return CurveTimeline.BEZIER; + }; + CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { + var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; + var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; + var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; + var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var curves = this.curves; + curves[i++] = CurveTimeline.BEZIER; + var x = dfx, y = dfy; + for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + curves[i] = x; + curves[i + 1] = y; + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + x += dfx; + y += dfy; + } + }; + CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { + percent = spine.MathUtils.clamp(percent, 0, 1); + var curves = this.curves; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var type = curves[i]; + if (type == CurveTimeline.LINEAR) + return percent; + if (type == CurveTimeline.STEPPED) + return 0; + i++; + var x = 0; + for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + x = curves[i]; + if (x >= percent) { + var prevX = void 0, prevY = void 0; + if (i == start) { + prevX = 0; + prevY = 0; + } + else { + prevX = curves[i - 2]; + prevY = curves[i - 1]; + } + return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); + } + } + var y = curves[i - 1]; + return y + (1 - y) * (percent - x) / (1 - x); + }; + CurveTimeline.LINEAR = 0; + CurveTimeline.STEPPED = 1; + CurveTimeline.BEZIER = 2; + CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; + return CurveTimeline; + }()); + spine.CurveTimeline = CurveTimeline; + var RotateTimeline = (function (_super) { + __extends(RotateTimeline, _super); + function RotateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount << 1); + } + RotateTimeline.prototype.getPropertyId = function () { + return (TimelineType.rotate << 24) + this.boneIndex; + }; + RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { + frameIndex <<= 1; + this.frames[frameIndex] = time; + this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; + }; + RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { + if (setupPose) + bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; + else { + var r_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; + r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360; + bone.rotation += r_1 * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); + var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); + var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + r = prevRotation + r * percent; + if (setupPose) { + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation = bone.data.rotation + r * alpha; + } + else { + r = bone.data.rotation + r - bone.rotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.rotation += r * alpha; + } + }; + RotateTimeline.ENTRIES = 2; + RotateTimeline.PREV_TIME = -2; + RotateTimeline.PREV_ROTATION = -1; + RotateTimeline.ROTATION = 1; + return RotateTimeline; + }(CurveTimeline)); + spine.RotateTimeline = RotateTimeline; + var TranslateTimeline = (function (_super) { + __extends(TranslateTimeline, _super); + function TranslateTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); + } + TranslateTimeline.prototype.getPropertyId = function () { + return (TimelineType.translate << 24) + this.boneIndex; + }; + TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { + frameIndex *= TranslateTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TranslateTimeline.X] = x; + this.frames[frameIndex + TranslateTimeline.Y] = y; + }; + TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { + x = frames[frames.length + TranslateTimeline.PREV_X]; + y = frames[frames.length + TranslateTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); + x = frames[frame + TranslateTimeline.PREV_X]; + y = frames[frame + TranslateTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); + x += (frames[frame + TranslateTimeline.X] - x) * percent; + y += (frames[frame + TranslateTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.x = bone.data.x + x * alpha; + bone.y = bone.data.y + y * alpha; + } + else { + bone.x += (bone.data.x + x - bone.x) * alpha; + bone.y += (bone.data.y + y - bone.y) * alpha; + } + }; + TranslateTimeline.ENTRIES = 3; + TranslateTimeline.PREV_TIME = -3; + TranslateTimeline.PREV_X = -2; + TranslateTimeline.PREV_Y = -1; + TranslateTimeline.X = 1; + TranslateTimeline.Y = 2; + return TranslateTimeline; + }(CurveTimeline)); + spine.TranslateTimeline = TranslateTimeline; + var ScaleTimeline = (function (_super) { + __extends(ScaleTimeline, _super); + function ScaleTimeline(frameCount) { + _super.call(this, frameCount); + } + ScaleTimeline.prototype.getPropertyId = function () { + return (TimelineType.scale << 24) + this.boneIndex; + }; + ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { + x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; + y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; + } + else { + var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); + x = frames[frame + ScaleTimeline.PREV_X]; + y = frames[frame + ScaleTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); + x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; + y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; + } + if (alpha == 1) { + bone.scaleX = x; + bone.scaleY = y; + } + else { + var bx = 0, by = 0; + if (setupPose) { + bx = bone.data.scaleX; + by = bone.data.scaleY; + } + else { + bx = bone.scaleX; + by = bone.scaleY; + } + if (mixingOut) { + x = Math.abs(x) * spine.MathUtils.signum(bx); + y = Math.abs(y) * spine.MathUtils.signum(by); + } + else { + bx = Math.abs(bx) * spine.MathUtils.signum(x); + by = Math.abs(by) * spine.MathUtils.signum(y); + } + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + } + }; + return ScaleTimeline; + }(TranslateTimeline)); + spine.ScaleTimeline = ScaleTimeline; + var ShearTimeline = (function (_super) { + __extends(ShearTimeline, _super); + function ShearTimeline(frameCount) { + _super.call(this, frameCount); + } + ShearTimeline.prototype.getPropertyId = function () { + return (TimelineType.shear << 24) + this.boneIndex; + }; + ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { + x = frames[frames.length + ShearTimeline.PREV_X]; + y = frames[frames.length + ShearTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); + x = frames[frame + ShearTimeline.PREV_X]; + y = frames[frame + ShearTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); + x = x + (frames[frame + ShearTimeline.X] - x) * percent; + y = y + (frames[frame + ShearTimeline.Y] - y) * percent; + } + if (setupPose) { + bone.shearX = bone.data.shearX + x * alpha; + bone.shearY = bone.data.shearY + y * alpha; + } + else { + bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; + bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; + } + }; + return ShearTimeline; + }(TranslateTimeline)); + spine.ShearTimeline = ShearTimeline; + var ColorTimeline = (function (_super) { + __extends(ColorTimeline, _super); + function ColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); + } + ColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.color << 24) + this.slotIndex; + }; + ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { + frameIndex *= ColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + ColorTimeline.R] = r; + this.frames[frameIndex + ColorTimeline.G] = g; + this.frames[frameIndex + ColorTimeline.B] = b; + this.frames[frameIndex + ColorTimeline.A] = a; + }; + ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + slot.color.setFromColor(slot.data.color); + return; + } + var r = 0, g = 0, b = 0, a = 0; + if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + ColorTimeline.PREV_R]; + g = frames[i + ColorTimeline.PREV_G]; + b = frames[i + ColorTimeline.PREV_B]; + a = frames[i + ColorTimeline.PREV_A]; + } + else { + var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); + r = frames[frame + ColorTimeline.PREV_R]; + g = frames[frame + ColorTimeline.PREV_G]; + b = frames[frame + ColorTimeline.PREV_B]; + a = frames[frame + ColorTimeline.PREV_A]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + ColorTimeline.R] - r) * percent; + g += (frames[frame + ColorTimeline.G] - g) * percent; + b += (frames[frame + ColorTimeline.B] - b) * percent; + a += (frames[frame + ColorTimeline.A] - a) * percent; + } + if (alpha == 1) + slot.color.set(r, g, b, a); + else { + var color = slot.color; + if (setupPose) + color.setFromColor(slot.data.color); + color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); + } + }; + ColorTimeline.ENTRIES = 5; + ColorTimeline.PREV_TIME = -5; + ColorTimeline.PREV_R = -4; + ColorTimeline.PREV_G = -3; + ColorTimeline.PREV_B = -2; + ColorTimeline.PREV_A = -1; + ColorTimeline.R = 1; + ColorTimeline.G = 2; + ColorTimeline.B = 3; + ColorTimeline.A = 4; + return ColorTimeline; + }(CurveTimeline)); + spine.ColorTimeline = ColorTimeline; + var TwoColorTimeline = (function (_super) { + __extends(TwoColorTimeline, _super); + function TwoColorTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); + } + TwoColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.twoColor << 24) + this.slotIndex; + }; + TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { + frameIndex *= TwoColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TwoColorTimeline.R] = r; + this.frames[frameIndex + TwoColorTimeline.G] = g; + this.frames[frameIndex + TwoColorTimeline.B] = b; + this.frames[frameIndex + TwoColorTimeline.A] = a; + this.frames[frameIndex + TwoColorTimeline.R2] = r2; + this.frames[frameIndex + TwoColorTimeline.G2] = g2; + this.frames[frameIndex + TwoColorTimeline.B2] = b2; + }; + TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + slot.color.setFromColor(slot.data.color); + slot.darkColor.setFromColor(slot.data.darkColor); + } + return; + } + var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; + if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + TwoColorTimeline.PREV_R]; + g = frames[i + TwoColorTimeline.PREV_G]; + b = frames[i + TwoColorTimeline.PREV_B]; + a = frames[i + TwoColorTimeline.PREV_A]; + r2 = frames[i + TwoColorTimeline.PREV_R2]; + g2 = frames[i + TwoColorTimeline.PREV_G2]; + b2 = frames[i + TwoColorTimeline.PREV_B2]; + } + else { + var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); + r = frames[frame + TwoColorTimeline.PREV_R]; + g = frames[frame + TwoColorTimeline.PREV_G]; + b = frames[frame + TwoColorTimeline.PREV_B]; + a = frames[frame + TwoColorTimeline.PREV_A]; + r2 = frames[frame + TwoColorTimeline.PREV_R2]; + g2 = frames[frame + TwoColorTimeline.PREV_G2]; + b2 = frames[frame + TwoColorTimeline.PREV_B2]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + TwoColorTimeline.R] - r) * percent; + g += (frames[frame + TwoColorTimeline.G] - g) * percent; + b += (frames[frame + TwoColorTimeline.B] - b) * percent; + a += (frames[frame + TwoColorTimeline.A] - a) * percent; + r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; + g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; + b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; + } + if (alpha == 1) { + slot.color.set(r, g, b, a); + slot.darkColor.set(r2, g2, b2, 1); + } + else { + var light = slot.color; + var dark = slot.darkColor; + if (setupPose) { + light.setFromColor(slot.data.color); + dark.setFromColor(slot.data.darkColor); + } + light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); + dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); + } + }; + TwoColorTimeline.ENTRIES = 8; + TwoColorTimeline.PREV_TIME = -8; + TwoColorTimeline.PREV_R = -7; + TwoColorTimeline.PREV_G = -6; + TwoColorTimeline.PREV_B = -5; + TwoColorTimeline.PREV_A = -4; + TwoColorTimeline.PREV_R2 = -3; + TwoColorTimeline.PREV_G2 = -2; + TwoColorTimeline.PREV_B2 = -1; + TwoColorTimeline.R = 1; + TwoColorTimeline.G = 2; + TwoColorTimeline.B = 3; + TwoColorTimeline.A = 4; + TwoColorTimeline.R2 = 5; + TwoColorTimeline.G2 = 6; + TwoColorTimeline.B2 = 7; + return TwoColorTimeline; + }(CurveTimeline)); + spine.TwoColorTimeline = TwoColorTimeline; + var AttachmentTimeline = (function () { + function AttachmentTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.attachmentNames = new Array(frameCount); + } + AttachmentTimeline.prototype.getPropertyId = function () { + return (TimelineType.attachment << 24) + this.slotIndex; + }; + AttachmentTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { + this.frames[frameIndex] = time; + this.attachmentNames[frameIndex] = attachmentName; + }; + AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + if (mixingOut && setupPose) { + var attachmentName_1 = slot.data.attachmentName; + slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1)); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + var attachmentName_2 = slot.data.attachmentName; + slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); + } + return; + } + var frameIndex = 0; + if (time >= frames[frames.length - 1]) + frameIndex = frames.length - 1; + else + frameIndex = Animation.binarySearch(frames, time, 1) - 1; + var attachmentName = this.attachmentNames[frameIndex]; + skeleton.slots[this.slotIndex] + .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); + }; + return AttachmentTimeline; + }()); + spine.AttachmentTimeline = AttachmentTimeline; + var DeformTimeline = (function (_super) { + __extends(DeformTimeline, _super); + function DeformTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount); + this.frameVertices = new Array(frameCount); + } + DeformTimeline.prototype.getPropertyId = function () { + return (TimelineType.deform << 24) + this.slotIndex; + }; + DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { + this.frames[frameIndex] = time; + this.frameVertices[frameIndex] = vertices; + }; + DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var slot = skeleton.slots[this.slotIndex]; + var slotAttachment = slot.getAttachment(); + if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) + return; + var frames = this.frames; + var verticesArray = slot.attachmentVertices; + if (time < frames[0]) { + if (setupPose) + spine.Utils.setArraySize(verticesArray, 0); + return; + } + var frameVertices = this.frameVertices; + var vertexCount = frameVertices[0].length; + if (verticesArray.length != vertexCount && !setupPose) + alpha = 1; + var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); + if (time >= frames[frames.length - 1]) { + var lastVertices = frameVertices[frames.length - 1]; + if (alpha == 1) { + spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var setup = setupVertices[i]; + vertices[i] = setup + (lastVertices[i] - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] = lastVertices[i] * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) + vertices[i] += (lastVertices[i] - vertices[i]) * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time); + var prevVertices = frameVertices[frame - 1]; + var nextVertices = frameVertices[frame]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); + if (alpha == 1) { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = prev + (nextVertices[i] - prev) * percent; + } + } + else if (setupPose) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i], setup = setupVertices[i]; + vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; + } + } + } + else { + for (var i = 0; i < vertexCount; i++) { + var prev = prevVertices[i]; + vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; + } + } + }; + return DeformTimeline; + }(CurveTimeline)); + spine.DeformTimeline = DeformTimeline; + var EventTimeline = (function () { + function EventTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.events = new Array(frameCount); + } + EventTimeline.prototype.getPropertyId = function () { + return TimelineType.event << 24; + }; + EventTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + EventTimeline.prototype.setFrame = function (frameIndex, event) { + this.frames[frameIndex] = event.time; + this.events[frameIndex] = event; + }; + EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + if (firedEvents == null) + return; + var frames = this.frames; + var frameCount = this.frames.length; + if (lastTime > time) { + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); + lastTime = -1; + } + else if (lastTime >= frames[frameCount - 1]) + return; + if (time < frames[0]) + return; + var frame = 0; + if (lastTime < frames[0]) + frame = 0; + else { + frame = Animation.binarySearch(frames, lastTime); + var frameTime = frames[frame]; + while (frame > 0) { + if (frames[frame - 1] != frameTime) + break; + frame--; + } + } + for (; frame < frameCount && time >= frames[frame]; frame++) + firedEvents.push(this.events[frame]); + }; + return EventTimeline; + }()); + spine.EventTimeline = EventTimeline; + var DrawOrderTimeline = (function () { + function DrawOrderTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.drawOrders = new Array(frameCount); + } + DrawOrderTimeline.prototype.getPropertyId = function () { + return TimelineType.drawOrder << 24; + }; + DrawOrderTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { + this.frames[frameIndex] = time; + this.drawOrders[frameIndex] = drawOrder; + }; + DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var drawOrder = skeleton.drawOrder; + var slots = skeleton.slots; + if (mixingOut && setupPose) { + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (setupPose) + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frame = 0; + if (time >= frames[frames.length - 1]) + frame = frames.length - 1; + else + frame = Animation.binarySearch(frames, time) - 1; + var drawOrderToSetupIndex = this.drawOrders[frame]; + if (drawOrderToSetupIndex == null) + spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); + else { + for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) + drawOrder[i] = slots[drawOrderToSetupIndex[i]]; + } + }; + return DrawOrderTimeline; + }()); + spine.DrawOrderTimeline = DrawOrderTimeline; + var IkConstraintTimeline = (function (_super) { + __extends(IkConstraintTimeline, _super); + function IkConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); + } + IkConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; + }; + IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) { + frameIndex *= IkConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; + this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; + }; + IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.mix = constraint.data.mix; + constraint.bendDirection = constraint.data.bendDirection; + } + return; + } + if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { + if (setupPose) { + constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection + : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + return; + } + var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); + var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); + if (setupPose) { + constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + else { + constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; + if (!mixingOut) + constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + } + }; + IkConstraintTimeline.ENTRIES = 3; + IkConstraintTimeline.PREV_TIME = -3; + IkConstraintTimeline.PREV_MIX = -2; + IkConstraintTimeline.PREV_BEND_DIRECTION = -1; + IkConstraintTimeline.MIX = 1; + IkConstraintTimeline.BEND_DIRECTION = 2; + return IkConstraintTimeline; + }(CurveTimeline)); + spine.IkConstraintTimeline = IkConstraintTimeline; + var TransformConstraintTimeline = (function (_super) { + __extends(TransformConstraintTimeline, _super); + function TransformConstraintTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); + } + TransformConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; + }; + TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { + frameIndex *= TransformConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; + this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; + this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; + }; + TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.rotateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + return; + } + var rotate = 0, translate = 0, scale = 0, shear = 0; + if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { + var i = frames.length; + rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; + } + else { + var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); + rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; + scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; + shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; + } + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; + constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; + constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; + constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + constraint.scaleMix += (scale - constraint.scaleMix) * alpha; + constraint.shearMix += (shear - constraint.shearMix) * alpha; + } + }; + TransformConstraintTimeline.ENTRIES = 5; + TransformConstraintTimeline.PREV_TIME = -5; + TransformConstraintTimeline.PREV_ROTATE = -4; + TransformConstraintTimeline.PREV_TRANSLATE = -3; + TransformConstraintTimeline.PREV_SCALE = -2; + TransformConstraintTimeline.PREV_SHEAR = -1; + TransformConstraintTimeline.ROTATE = 1; + TransformConstraintTimeline.TRANSLATE = 2; + TransformConstraintTimeline.SCALE = 3; + TransformConstraintTimeline.SHEAR = 4; + return TransformConstraintTimeline; + }(CurveTimeline)); + spine.TransformConstraintTimeline = TransformConstraintTimeline; + var PathConstraintPositionTimeline = (function (_super) { + __extends(PathConstraintPositionTimeline, _super); + function PathConstraintPositionTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); + } + PathConstraintPositionTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; + }; + PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { + frameIndex *= PathConstraintPositionTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; + }; + PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.position = constraint.data.position; + return; + } + var position = 0; + if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) + position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); + position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); + position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; + } + if (setupPose) + constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; + else + constraint.position += (position - constraint.position) * alpha; + }; + PathConstraintPositionTimeline.ENTRIES = 2; + PathConstraintPositionTimeline.PREV_TIME = -2; + PathConstraintPositionTimeline.PREV_VALUE = -1; + PathConstraintPositionTimeline.VALUE = 1; + return PathConstraintPositionTimeline; + }(CurveTimeline)); + spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; + var PathConstraintSpacingTimeline = (function (_super) { + __extends(PathConstraintSpacingTimeline, _super); + function PathConstraintSpacingTimeline(frameCount) { + _super.call(this, frameCount); + } + PathConstraintSpacingTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; + }; + PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) + constraint.spacing = constraint.data.spacing; + return; + } + var spacing = 0; + if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) + spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); + spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); + spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; + } + if (setupPose) + constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; + else + constraint.spacing += (spacing - constraint.spacing) * alpha; + }; + return PathConstraintSpacingTimeline; + }(PathConstraintPositionTimeline)); + spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; + var PathConstraintMixTimeline = (function (_super) { + __extends(PathConstraintMixTimeline, _super); + function PathConstraintMixTimeline(frameCount) { + _super.call(this, frameCount); + this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); + } + PathConstraintMixTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; + }; + PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { + frameIndex *= PathConstraintMixTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; + }; + PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } + return; + } + var rotate = 0, translate = 0; + if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { + rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; + } + else { + var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); + rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; + } + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; + constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + } + }; + PathConstraintMixTimeline.ENTRIES = 3; + PathConstraintMixTimeline.PREV_TIME = -3; + PathConstraintMixTimeline.PREV_ROTATE = -2; + PathConstraintMixTimeline.PREV_TRANSLATE = -1; + PathConstraintMixTimeline.ROTATE = 1; + PathConstraintMixTimeline.TRANSLATE = 2; + return PathConstraintMixTimeline; + }(CurveTimeline)); + spine.PathConstraintMixTimeline = PathConstraintMixTimeline; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationState = (function () { - function AnimationState(data) { - this.tracks = new Array(); - this.events = new Array(); - this.listeners = new Array(); - this.queue = new EventQueue(this); - this.propertyIDs = new spine.IntSet(); - this.mixingTo = new Array(); - this.animationsChanged = false; - this.timeScale = 1; - this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); - this.data = data; - } - AnimationState.prototype.update = function (delta) { - delta *= this.timeScale; - var tracks = this.tracks; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null) - continue; - current.animationLast = current.nextAnimationLast; - current.trackLast = current.nextTrackLast; - var currentDelta = delta * current.timeScale; - if (current.delay > 0) { - current.delay -= currentDelta; - if (current.delay > 0) - continue; - currentDelta = -current.delay; - current.delay = 0; - } - var next = current.next; - if (next != null) { - var nextTime = current.trackLast - next.delay; - if (nextTime >= 0) { - next.delay = 0; - next.trackTime = nextTime + delta * next.timeScale; - current.trackTime += currentDelta; - this.setCurrent(i, next, true); - while (next.mixingFrom != null) { - next.mixTime += currentDelta; - next = next.mixingFrom; - } - continue; - } - } - else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { - tracks[i] = null; - this.queue.end(current); - this.disposeNext(current); - continue; - } - if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { - var from = current.mixingFrom; - current.mixingFrom = null; - while (from != null) { - this.queue.end(from); - from = from.mixingFrom; - } - } - current.trackTime += currentDelta; - } - this.queue.drain(); - }; - AnimationState.prototype.updateMixingFrom = function (to, delta) { - var from = to.mixingFrom; - if (from == null) - return true; - var finished = this.updateMixingFrom(from, delta); - if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { - if (from.totalAlpha == 0) { - to.mixingFrom = from.mixingFrom; - to.interruptAlpha = from.interruptAlpha; - this.queue.end(from); - } - return finished; - } - from.animationLast = from.nextAnimationLast; - from.trackLast = from.nextTrackLast; - from.trackTime += delta * from.timeScale; - to.mixTime += delta * to.timeScale; - return false; - }; - AnimationState.prototype.apply = function (skeleton) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (this.animationsChanged) - this._animationsChanged(); - var events = this.events; - var tracks = this.tracks; - var applied = false; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null || current.delay > 0) - continue; - applied = true; - var mix = current.alpha; - if (current.mixingFrom != null) - mix *= this.applyMixingFrom(current, skeleton); - else if (current.trackTime >= current.trackEnd && current.next == null) - mix = 0; - var animationLast = current.animationLast, animationTime = current.getAnimationTime(); - var timelineCount = current.animation.timelines.length; - var timelines = current.animation.timelines; - if (mix == 1) { - for (var ii = 0; ii < timelineCount; ii++) - timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); - } - else { - var timelineData = current.timelineData; - var firstFrame = current.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = current.timelinesRotation; - for (var ii = 0; ii < timelineCount; ii++) { - var timeline = timelines[ii]; - if (timeline instanceof spine.RotateTimeline) { - this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); - } - else - timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); - } - } - this.queueEvents(current, animationTime); - events.length = 0; - current.nextAnimationLast = animationTime; - current.nextTrackLast = current.trackTime; - } - this.queue.drain(); - return applied; - }; - AnimationState.prototype.applyMixingFrom = function (to, skeleton) { - var from = to.mixingFrom; - if (from.mixingFrom != null) - this.applyMixingFrom(from, skeleton); - var mix = 0; - if (to.mixDuration == 0) - mix = 1; - else { - mix = to.mixTime / to.mixDuration; - if (mix > 1) - mix = 1; - } - var events = mix < from.eventThreshold ? this.events : null; - var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; - var animationLast = from.animationLast, animationTime = from.getAnimationTime(); - var timelineCount = from.animation.timelines.length; - var timelines = from.animation.timelines; - var timelineData = from.timelineData; - var timelineDipMix = from.timelineDipMix; - var firstFrame = from.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = from.timelinesRotation; - var first = false; - var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; - from.totalAlpha = 0; - for (var i = 0; i < timelineCount; i++) { - var timeline = timelines[i]; - switch (timelineData[i]) { - case AnimationState.SUBSEQUENT: - first = false; - alpha = alphaMix; - break; - case AnimationState.FIRST: - first = true; - alpha = alphaMix; - break; - case AnimationState.DIP: - first = true; - alpha = alphaDip; - break; - default: - first = true; - alpha = alphaDip; - var dipMix = timelineDipMix[i]; - alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); - break; - } - from.totalAlpha += alpha; - if (timeline instanceof spine.RotateTimeline) - this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); - else { - if (!first) { - if (!attachments && timeline instanceof spine.AttachmentTimeline) - continue; - if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) - continue; - } - timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); - } - } - if (to.mixDuration > 0) - this.queueEvents(from, animationTime); - this.events.length = 0; - from.nextAnimationLast = animationTime; - from.nextTrackLast = from.trackTime; - return mix; - }; - AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { - if (firstFrame) - timelinesRotation[i] = 0; - if (alpha == 1) { - timeline.apply(skeleton, 0, time, null, 1, setupPose, false); - return; - } - var rotateTimeline = timeline; - var frames = rotateTimeline.frames; - var bone = skeleton.bones[rotateTimeline.boneIndex]; - if (time < frames[0]) { - if (setupPose) - bone.rotation = bone.data.rotation; - return; - } - var r2 = 0; - if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) - r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; - else { - var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); - var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); - r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - r2 = prevRotation + r2 * percent + bone.data.rotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - } - var r1 = setupPose ? bone.data.rotation : bone.rotation; - var total = 0, diff = r2 - r1; - if (diff == 0) { - total = timelinesRotation[i]; - } - else { - diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; - var lastTotal = 0, lastDiff = 0; - if (firstFrame) { - lastTotal = 0; - lastDiff = diff; - } - else { - lastTotal = timelinesRotation[i]; - lastDiff = timelinesRotation[i + 1]; - } - var current = diff > 0, dir = lastTotal >= 0; - if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { - if (Math.abs(lastTotal) > 180) - lastTotal += 360 * spine.MathUtils.signum(lastTotal); - dir = current; - } - total = diff + lastTotal - lastTotal % 360; - if (dir != current) - total += 360 * spine.MathUtils.signum(lastTotal); - timelinesRotation[i] = total; - } - timelinesRotation[i + 1] = diff; - r1 += total * alpha; - bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; - }; - AnimationState.prototype.queueEvents = function (entry, animationTime) { - var animationStart = entry.animationStart, animationEnd = entry.animationEnd; - var duration = animationEnd - animationStart; - var trackLastWrapped = entry.trackLast % duration; - var events = this.events; - var i = 0, n = events.length; - for (; i < n; i++) { - var event_1 = events[i]; - if (event_1.time < trackLastWrapped) - break; - if (event_1.time > animationEnd) - continue; - this.queue.event(entry, event_1); - } - if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) - : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { - this.queue.complete(entry); - } - for (; i < n; i++) { - var event_2 = events[i]; - if (event_2.time < animationStart) - continue; - this.queue.event(entry, events[i]); - } - }; - AnimationState.prototype.clearTracks = function () { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) - this.clearTrack(i); - this.tracks.length = 0; - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.clearTrack = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return; - var current = this.tracks[trackIndex]; - if (current == null) - return; - this.queue.end(current); - this.disposeNext(current); - var entry = current; - while (true) { - var from = entry.mixingFrom; - if (from == null) - break; - this.queue.end(from); - entry.mixingFrom = null; - entry = from; - } - this.tracks[current.trackIndex] = null; - this.queue.drain(); - }; - AnimationState.prototype.setCurrent = function (index, current, interrupt) { - var from = this.expandToIndex(index); - this.tracks[index] = current; - if (from != null) { - if (interrupt) - this.queue.interrupt(from); - current.mixingFrom = from; - current.mixTime = 0; - if (from.mixingFrom != null && from.mixDuration > 0) - current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); - from.timelinesRotation.length = 0; - } - this.queue.start(current); - }; - AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.setAnimationWith(trackIndex, animation, loop); - }; - AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { - if (animation == null) - throw new Error("animation cannot be null."); - var interrupt = true; - var current = this.expandToIndex(trackIndex); - if (current != null) { - if (current.nextTrackLast == -1) { - this.tracks[trackIndex] = current.mixingFrom; - this.queue.interrupt(current); - this.queue.end(current); - this.disposeNext(current); - current = current.mixingFrom; - interrupt = false; - } - else - this.disposeNext(current); - } - var entry = this.trackEntry(trackIndex, animation, loop, current); - this.setCurrent(trackIndex, entry, interrupt); - this.queue.drain(); - return entry; - }; - AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.addAnimationWith(trackIndex, animation, loop, delay); - }; - AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { - if (animation == null) - throw new Error("animation cannot be null."); - var last = this.expandToIndex(trackIndex); - if (last != null) { - while (last.next != null) - last = last.next; - } - var entry = this.trackEntry(trackIndex, animation, loop, last); - if (last == null) { - this.setCurrent(trackIndex, entry, true); - this.queue.drain(); - } - else { - last.next = entry; - if (delay <= 0) { - var duration = last.animationEnd - last.animationStart; - if (duration != 0) - delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); - else - delay = 0; - } - } - entry.delay = delay; - return entry; - }; - AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { - var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { - if (delay <= 0) - delay -= mixDuration; - var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.setEmptyAnimations = function (mixDuration) { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var current = this.tracks[i]; - if (current != null) - this.setEmptyAnimation(current.trackIndex, mixDuration); - } - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.expandToIndex = function (index) { - if (index < this.tracks.length) - return this.tracks[index]; - spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); - this.tracks.length = index + 1; - return null; - }; - AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { - var entry = this.trackEntryPool.obtain(); - entry.trackIndex = trackIndex; - entry.animation = animation; - entry.loop = loop; - entry.eventThreshold = 0; - entry.attachmentThreshold = 0; - entry.drawOrderThreshold = 0; - entry.animationStart = 0; - entry.animationEnd = animation.duration; - entry.animationLast = -1; - entry.nextAnimationLast = -1; - entry.delay = 0; - entry.trackTime = 0; - entry.trackLast = -1; - entry.nextTrackLast = -1; - entry.trackEnd = Number.MAX_VALUE; - entry.timeScale = 1; - entry.alpha = 1; - entry.interruptAlpha = 1; - entry.mixTime = 0; - entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); - return entry; - }; - AnimationState.prototype.disposeNext = function (entry) { - var next = entry.next; - while (next != null) { - this.queue.dispose(next); - next = next.next; - } - entry.next = null; - }; - AnimationState.prototype._animationsChanged = function () { - this.animationsChanged = false; - var propertyIDs = this.propertyIDs; - propertyIDs.clear(); - var mixingTo = this.mixingTo; - var lastEntry = null; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var entry = this.tracks[i]; - if (entry != null) { - entry.setTimelineData(lastEntry, mixingTo, propertyIDs); - lastEntry = entry; - } - } - }; - AnimationState.prototype.getCurrent = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return null; - return this.tracks[trackIndex]; - }; - AnimationState.prototype.addListener = function (listener) { - if (listener == null) - throw new Error("listener cannot be null."); - this.listeners.push(listener); - }; - AnimationState.prototype.removeListener = function (listener) { - var index = this.listeners.indexOf(listener); - if (index >= 0) - this.listeners.splice(index, 1); - }; - AnimationState.prototype.clearListeners = function () { - this.listeners.length = 0; - }; - AnimationState.prototype.clearListenerNotifications = function () { - this.queue.clear(); - }; - AnimationState.emptyAnimation = new spine.Animation("", [], 0); - AnimationState.SUBSEQUENT = 0; - AnimationState.FIRST = 1; - AnimationState.DIP = 2; - AnimationState.DIP_MIX = 3; - return AnimationState; - }()); - spine.AnimationState = AnimationState; - var TrackEntry = (function () { - function TrackEntry() { - this.timelineData = new Array(); - this.timelineDipMix = new Array(); - this.timelinesRotation = new Array(); - } - TrackEntry.prototype.reset = function () { - this.next = null; - this.mixingFrom = null; - this.animation = null; - this.listener = null; - this.timelineData.length = 0; - this.timelineDipMix.length = 0; - this.timelinesRotation.length = 0; - }; - TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { - if (to != null) - mixingToArray.push(to); - var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; - if (to != null) - mixingToArray.pop(); - var mixingTo = mixingToArray; - var mixingToLast = mixingToArray.length - 1; - var timelines = this.animation.timelines; - var timelinesCount = this.animation.timelines.length; - var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); - this.timelineDipMix.length = 0; - var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); - outer: for (var i = 0; i < timelinesCount; i++) { - var id = timelines[i].getPropertyId(); - if (!propertyIDs.add(id)) - timelineData[i] = AnimationState.SUBSEQUENT; - else if (to == null || !to.hasTimeline(id)) - timelineData[i] = AnimationState.FIRST; - else { - for (var ii = mixingToLast; ii >= 0; ii--) { - var entry = mixingTo[ii]; - if (!entry.hasTimeline(id)) { - if (entry.mixDuration > 0) { - timelineData[i] = AnimationState.DIP_MIX; - timelineDipMix[i] = entry; - continue outer; - } - } - } - timelineData[i] = AnimationState.DIP; - } - } - return lastEntry; - }; - TrackEntry.prototype.hasTimeline = function (id) { - var timelines = this.animation.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - if (timelines[i].getPropertyId() == id) - return true; - return false; - }; - TrackEntry.prototype.getAnimationTime = function () { - if (this.loop) { - var duration = this.animationEnd - this.animationStart; - if (duration == 0) - return this.animationStart; - return (this.trackTime % duration) + this.animationStart; - } - return Math.min(this.trackTime + this.animationStart, this.animationEnd); - }; - TrackEntry.prototype.setAnimationLast = function (animationLast) { - this.animationLast = animationLast; - this.nextAnimationLast = animationLast; - }; - TrackEntry.prototype.isComplete = function () { - return this.trackTime >= this.animationEnd - this.animationStart; - }; - TrackEntry.prototype.resetRotationDirections = function () { - this.timelinesRotation.length = 0; - }; - return TrackEntry; - }()); - spine.TrackEntry = TrackEntry; - var EventQueue = (function () { - function EventQueue(animState) { - this.objects = []; - this.drainDisabled = false; - this.animState = animState; - } - EventQueue.prototype.start = function (entry) { - this.objects.push(EventType.start); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.interrupt = function (entry) { - this.objects.push(EventType.interrupt); - this.objects.push(entry); - }; - EventQueue.prototype.end = function (entry) { - this.objects.push(EventType.end); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.dispose = function (entry) { - this.objects.push(EventType.dispose); - this.objects.push(entry); - }; - EventQueue.prototype.complete = function (entry) { - this.objects.push(EventType.complete); - this.objects.push(entry); - }; - EventQueue.prototype.event = function (entry, event) { - this.objects.push(EventType.event); - this.objects.push(entry); - this.objects.push(event); - }; - EventQueue.prototype.drain = function () { - if (this.drainDisabled) - return; - this.drainDisabled = true; - var objects = this.objects; - var listeners = this.animState.listeners; - for (var i = 0; i < objects.length; i += 2) { - var type = objects[i]; - var entry = objects[i + 1]; - switch (type) { - case EventType.start: - if (entry.listener != null && entry.listener.start) - entry.listener.start(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].start) - listeners[ii].start(entry); - break; - case EventType.interrupt: - if (entry.listener != null && entry.listener.interrupt) - entry.listener.interrupt(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].interrupt) - listeners[ii].interrupt(entry); - break; - case EventType.end: - if (entry.listener != null && entry.listener.end) - entry.listener.end(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].end) - listeners[ii].end(entry); - case EventType.dispose: - if (entry.listener != null && entry.listener.dispose) - entry.listener.dispose(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].dispose) - listeners[ii].dispose(entry); - this.animState.trackEntryPool.free(entry); - break; - case EventType.complete: - if (entry.listener != null && entry.listener.complete) - entry.listener.complete(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].complete) - listeners[ii].complete(entry); - break; - case EventType.event: - var event_3 = objects[i++ + 2]; - if (entry.listener != null && entry.listener.event) - entry.listener.event(entry, event_3); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].event) - listeners[ii].event(entry, event_3); - break; - } - } - this.clear(); - this.drainDisabled = false; - }; - EventQueue.prototype.clear = function () { - this.objects.length = 0; - }; - return EventQueue; - }()); - spine.EventQueue = EventQueue; - (function (EventType) { - EventType[EventType["start"] = 0] = "start"; - EventType[EventType["interrupt"] = 1] = "interrupt"; - EventType[EventType["end"] = 2] = "end"; - EventType[EventType["dispose"] = 3] = "dispose"; - EventType[EventType["complete"] = 4] = "complete"; - EventType[EventType["event"] = 5] = "event"; - })(spine.EventType || (spine.EventType = {})); - var EventType = spine.EventType; - var AnimationStateAdapter2 = (function () { - function AnimationStateAdapter2() { - } - AnimationStateAdapter2.prototype.start = function (entry) { - }; - AnimationStateAdapter2.prototype.interrupt = function (entry) { - }; - AnimationStateAdapter2.prototype.end = function (entry) { - }; - AnimationStateAdapter2.prototype.dispose = function (entry) { - }; - AnimationStateAdapter2.prototype.complete = function (entry) { - }; - AnimationStateAdapter2.prototype.event = function (entry, event) { - }; - return AnimationStateAdapter2; - }()); - spine.AnimationStateAdapter2 = AnimationStateAdapter2; + var AnimationState = (function () { + function AnimationState(data) { + this.tracks = new Array(); + this.events = new Array(); + this.listeners = new Array(); + this.queue = new EventQueue(this); + this.propertyIDs = new spine.IntSet(); + this.mixingTo = new Array(); + this.animationsChanged = false; + this.timeScale = 1; + this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); + this.data = data; + } + AnimationState.prototype.update = function (delta) { + delta *= this.timeScale; + var tracks = this.tracks; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null) + continue; + current.animationLast = current.nextAnimationLast; + current.trackLast = current.nextTrackLast; + var currentDelta = delta * current.timeScale; + if (current.delay > 0) { + current.delay -= currentDelta; + if (current.delay > 0) + continue; + currentDelta = -current.delay; + current.delay = 0; + } + var next = current.next; + if (next != null) { + var nextTime = current.trackLast - next.delay; + if (nextTime >= 0) { + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; + this.setCurrent(i, next, true); + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + } + else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; + } + if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { + var from = current.mixingFrom; + current.mixingFrom = null; + while (from != null) { + this.queue.end(from); + from = from.mixingFrom; + } + } + current.trackTime += currentDelta; + } + this.queue.drain(); + }; + AnimationState.prototype.updateMixingFrom = function (to, delta) { + var from = to.mixingFrom; + if (from == null) + return true; + var finished = this.updateMixingFrom(from, delta); + if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) { + if (from.totalAlpha == 0) { + to.mixingFrom = from.mixingFrom; + to.interruptAlpha = from.interruptAlpha; + this.queue.end(from); + } + return finished; + } + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + from.trackTime += delta * from.timeScale; + to.mixTime += delta * to.timeScale; + return false; + }; + AnimationState.prototype.apply = function (skeleton) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (this.animationsChanged) + this._animationsChanged(); + var events = this.events; + var tracks = this.tracks; + var applied = false; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null || current.delay > 0) + continue; + applied = true; + var mix = current.alpha; + if (current.mixingFrom != null) + mix *= this.applyMixingFrom(current, skeleton); + else if (current.trackTime >= current.trackEnd && current.next == null) + mix = 0; + var animationLast = current.animationLast, animationTime = current.getAnimationTime(); + var timelineCount = current.animation.timelines.length; + var timelines = current.animation.timelines; + if (mix == 1) { + for (var ii = 0; ii < timelineCount; ii++) + timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); + } + else { + var timelineData = current.timelineData; + var firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = current.timelinesRotation; + for (var ii = 0; ii < timelineCount; ii++) { + var timeline = timelines[ii]; + if (timeline instanceof spine.RotateTimeline) { + this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineData[ii] >= AnimationState.FIRST, timelinesRotation, ii << 1, firstFrame); + } + else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineData[ii] >= AnimationState.FIRST, false); + } + } + this.queueEvents(current, animationTime); + events.length = 0; + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; + } + this.queue.drain(); + return applied; + }; + AnimationState.prototype.applyMixingFrom = function (to, skeleton) { + var from = to.mixingFrom; + if (from.mixingFrom != null) + this.applyMixingFrom(from, skeleton); + var mix = 0; + if (to.mixDuration == 0) + mix = 1; + else { + mix = to.mixTime / to.mixDuration; + if (mix > 1) + mix = 1; + } + var events = mix < from.eventThreshold ? this.events : null; + var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; + var animationLast = from.animationLast, animationTime = from.getAnimationTime(); + var timelineCount = from.animation.timelines.length; + var timelines = from.animation.timelines; + var timelineData = from.timelineData; + var timelineDipMix = from.timelineDipMix; + var firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = from.timelinesRotation; + var first = false; + var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0; + from.totalAlpha = 0; + for (var i = 0; i < timelineCount; i++) { + var timeline = timelines[i]; + switch (timelineData[i]) { + case AnimationState.SUBSEQUENT: + first = false; + alpha = alphaMix; + break; + case AnimationState.FIRST: + first = true; + alpha = alphaMix; + break; + case AnimationState.DIP: + first = true; + alpha = alphaDip; + break; + default: + first = true; + alpha = alphaDip; + var dipMix = timelineDipMix[i]; + alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); + break; + } + from.totalAlpha += alpha; + if (timeline instanceof spine.RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, first, timelinesRotation, i << 1, firstFrame); + else { + if (!first) { + if (!attachments && timeline instanceof spine.AttachmentTimeline) + continue; + if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) + continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, first, true); + } + } + if (to.mixDuration > 0) + this.queueEvents(from, animationTime); + this.events.length = 0; + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + }; + AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { + if (firstFrame) + timelinesRotation[i] = 0; + if (alpha == 1) { + timeline.apply(skeleton, 0, time, null, 1, setupPose, false); + return; + } + var rotateTimeline = timeline; + var frames = rotateTimeline.frames; + var bone = skeleton.bones[rotateTimeline.boneIndex]; + if (time < frames[0]) { + if (setupPose) + bone.rotation = bone.data.rotation; + return; + } + var r2 = 0; + if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) + r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; + else { + var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); + var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); + r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + r2 = prevRotation + r2 * percent + bone.data.rotation; + r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; + } + var r1 = setupPose ? bone.data.rotation : bone.rotation; + var total = 0, diff = r2 - r1; + if (diff == 0) { + total = timelinesRotation[i]; + } + else { + diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; + var lastTotal = 0, lastDiff = 0; + if (firstFrame) { + lastTotal = 0; + lastDiff = diff; + } + else { + lastTotal = timelinesRotation[i]; + lastDiff = timelinesRotation[i + 1]; + } + var current = diff > 0, dir = lastTotal >= 0; + if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { + if (Math.abs(lastTotal) > 180) + lastTotal += 360 * spine.MathUtils.signum(lastTotal); + dir = current; + } + total = diff + lastTotal - lastTotal % 360; + if (dir != current) + total += 360 * spine.MathUtils.signum(lastTotal); + timelinesRotation[i] = total; + } + timelinesRotation[i + 1] = diff; + r1 += total * alpha; + bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; + }; + AnimationState.prototype.queueEvents = function (entry, animationTime) { + var animationStart = entry.animationStart, animationEnd = entry.animationEnd; + var duration = animationEnd - animationStart; + var trackLastWrapped = entry.trackLast % duration; + var events = this.events; + var i = 0, n = events.length; + for (; i < n; i++) { + var event_1 = events[i]; + if (event_1.time < trackLastWrapped) + break; + if (event_1.time > animationEnd) + continue; + this.queue.event(entry, event_1); + } + if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) + : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { + this.queue.complete(entry); + } + for (; i < n; i++) { + var event_2 = events[i]; + if (event_2.time < animationStart) + continue; + this.queue.event(entry, events[i]); + } + }; + AnimationState.prototype.clearTracks = function () { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) + this.clearTrack(i); + this.tracks.length = 0; + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.clearTrack = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return; + var current = this.tracks[trackIndex]; + if (current == null) + return; + this.queue.end(current); + this.disposeNext(current); + var entry = current; + while (true) { + var from = entry.mixingFrom; + if (from == null) + break; + this.queue.end(from); + entry.mixingFrom = null; + entry = from; + } + this.tracks[current.trackIndex] = null; + this.queue.drain(); + }; + AnimationState.prototype.setCurrent = function (index, current, interrupt) { + var from = this.expandToIndex(index); + this.tracks[index] = current; + if (from != null) { + if (interrupt) + this.queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + if (from.mixingFrom != null && from.mixDuration > 0) + current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); + from.timelinesRotation.length = 0; + } + this.queue.start(current); + }; + AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.setAnimationWith(trackIndex, animation, loop); + }; + AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { + if (animation == null) + throw new Error("animation cannot be null."); + var interrupt = true; + var current = this.expandToIndex(trackIndex); + if (current != null) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = current.mixingFrom; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = current.mixingFrom; + interrupt = false; + } + else + this.disposeNext(current); + } + var entry = this.trackEntry(trackIndex, animation, loop, current); + this.setCurrent(trackIndex, entry, interrupt); + this.queue.drain(); + return entry; + }; + AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.addAnimationWith(trackIndex, animation, loop, delay); + }; + AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { + if (animation == null) + throw new Error("animation cannot be null."); + var last = this.expandToIndex(trackIndex); + if (last != null) { + while (last.next != null) + last = last.next; + } + var entry = this.trackEntry(trackIndex, animation, loop, last); + if (last == null) { + this.setCurrent(trackIndex, entry, true); + this.queue.drain(); + } + else { + last.next = entry; + if (delay <= 0) { + var duration = last.animationEnd - last.animationStart; + if (duration != 0) + delay += duration * (1 + ((last.trackTime / duration) | 0)) - this.data.getMix(last.animation, animation); + else + delay = 0; + } + } + entry.delay = delay; + return entry; + }; + AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { + var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { + if (delay <= 0) + delay -= mixDuration; + var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.setEmptyAnimations = function (mixDuration) { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var current = this.tracks[i]; + if (current != null) + this.setEmptyAnimation(current.trackIndex, mixDuration); + } + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.expandToIndex = function (index) { + if (index < this.tracks.length) + return this.tracks[index]; + spine.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); + this.tracks.length = index + 1; + return null; + }; + AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { + var entry = this.trackEntryPool.obtain(); + entry.trackIndex = trackIndex; + entry.animation = animation; + entry.loop = loop; + entry.eventThreshold = 0; + entry.attachmentThreshold = 0; + entry.drawOrderThreshold = 0; + entry.animationStart = 0; + entry.animationEnd = animation.duration; + entry.animationLast = -1; + entry.nextAnimationLast = -1; + entry.delay = 0; + entry.trackTime = 0; + entry.trackLast = -1; + entry.nextTrackLast = -1; + entry.trackEnd = Number.MAX_VALUE; + entry.timeScale = 1; + entry.alpha = 1; + entry.interruptAlpha = 1; + entry.mixTime = 0; + entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); + return entry; + }; + AnimationState.prototype.disposeNext = function (entry) { + var next = entry.next; + while (next != null) { + this.queue.dispose(next); + next = next.next; + } + entry.next = null; + }; + AnimationState.prototype._animationsChanged = function () { + this.animationsChanged = false; + var propertyIDs = this.propertyIDs; + propertyIDs.clear(); + var mixingTo = this.mixingTo; + var lastEntry = null; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var entry = this.tracks[i]; + if (entry != null) { + entry.setTimelineData(lastEntry, mixingTo, propertyIDs); + lastEntry = entry; + } + } + }; + AnimationState.prototype.getCurrent = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return null; + return this.tracks[trackIndex]; + }; + AnimationState.prototype.addListener = function (listener) { + if (listener == null) + throw new Error("listener cannot be null."); + this.listeners.push(listener); + }; + AnimationState.prototype.removeListener = function (listener) { + var index = this.listeners.indexOf(listener); + if (index >= 0) + this.listeners.splice(index, 1); + }; + AnimationState.prototype.clearListeners = function () { + this.listeners.length = 0; + }; + AnimationState.prototype.clearListenerNotifications = function () { + this.queue.clear(); + }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); + AnimationState.SUBSEQUENT = 0; + AnimationState.FIRST = 1; + AnimationState.DIP = 2; + AnimationState.DIP_MIX = 3; + return AnimationState; + }()); + spine.AnimationState = AnimationState; + var TrackEntry = (function () { + function TrackEntry() { + this.timelineData = new Array(); + this.timelineDipMix = new Array(); + this.timelinesRotation = new Array(); + } + TrackEntry.prototype.reset = function () { + this.next = null; + this.mixingFrom = null; + this.animation = null; + this.listener = null; + this.timelineData.length = 0; + this.timelineDipMix.length = 0; + this.timelinesRotation.length = 0; + }; + TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) { + if (to != null) + mixingToArray.push(to); + var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this; + if (to != null) + mixingToArray.pop(); + var mixingTo = mixingToArray; + var mixingToLast = mixingToArray.length - 1; + var timelines = this.animation.timelines; + var timelinesCount = this.animation.timelines.length; + var timelineData = spine.Utils.setArraySize(this.timelineData, timelinesCount); + this.timelineDipMix.length = 0; + var timelineDipMix = spine.Utils.setArraySize(this.timelineDipMix, timelinesCount); + outer: for (var i = 0; i < timelinesCount; i++) { + var id = timelines[i].getPropertyId(); + if (!propertyIDs.add(id)) + timelineData[i] = AnimationState.SUBSEQUENT; + else if (to == null || !to.hasTimeline(id)) + timelineData[i] = AnimationState.FIRST; + else { + for (var ii = mixingToLast; ii >= 0; ii--) { + var entry = mixingTo[ii]; + if (!entry.hasTimeline(id)) { + if (entry.mixDuration > 0) { + timelineData[i] = AnimationState.DIP_MIX; + timelineDipMix[i] = entry; + continue outer; + } + } + } + timelineData[i] = AnimationState.DIP; + } + } + return lastEntry; + }; + TrackEntry.prototype.hasTimeline = function (id) { + var timelines = this.animation.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + if (timelines[i].getPropertyId() == id) + return true; + return false; + }; + TrackEntry.prototype.getAnimationTime = function () { + if (this.loop) { + var duration = this.animationEnd - this.animationStart; + if (duration == 0) + return this.animationStart; + return (this.trackTime % duration) + this.animationStart; + } + return Math.min(this.trackTime + this.animationStart, this.animationEnd); + }; + TrackEntry.prototype.setAnimationLast = function (animationLast) { + this.animationLast = animationLast; + this.nextAnimationLast = animationLast; + }; + TrackEntry.prototype.isComplete = function () { + return this.trackTime >= this.animationEnd - this.animationStart; + }; + TrackEntry.prototype.resetRotationDirections = function () { + this.timelinesRotation.length = 0; + }; + return TrackEntry; + }()); + spine.TrackEntry = TrackEntry; + var EventQueue = (function () { + function EventQueue(animState) { + this.objects = []; + this.drainDisabled = false; + this.animState = animState; + } + EventQueue.prototype.start = function (entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.interrupt = function (entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); + }; + EventQueue.prototype.end = function (entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.dispose = function (entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); + }; + EventQueue.prototype.complete = function (entry) { + this.objects.push(EventType.complete); + this.objects.push(entry); + }; + EventQueue.prototype.event = function (entry, event) { + this.objects.push(EventType.event); + this.objects.push(entry); + this.objects.push(event); + }; + EventQueue.prototype.drain = function () { + if (this.drainDisabled) + return; + this.drainDisabled = true; + var objects = this.objects; + var listeners = this.animState.listeners; + for (var i = 0; i < objects.length; i += 2) { + var type = objects[i]; + var entry = objects[i + 1]; + switch (type) { + case EventType.start: + if (entry.listener != null && entry.listener.start) + entry.listener.start(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].start) + listeners[ii].start(entry); + break; + case EventType.interrupt: + if (entry.listener != null && entry.listener.interrupt) + entry.listener.interrupt(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].interrupt) + listeners[ii].interrupt(entry); + break; + case EventType.end: + if (entry.listener != null && entry.listener.end) + entry.listener.end(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].end) + listeners[ii].end(entry); + case EventType.dispose: + if (entry.listener != null && entry.listener.dispose) + entry.listener.dispose(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].dispose) + listeners[ii].dispose(entry); + this.animState.trackEntryPool.free(entry); + break; + case EventType.complete: + if (entry.listener != null && entry.listener.complete) + entry.listener.complete(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].complete) + listeners[ii].complete(entry); + break; + case EventType.event: + var event_3 = objects[i++ + 2]; + if (entry.listener != null && entry.listener.event) + entry.listener.event(entry, event_3); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].event) + listeners[ii].event(entry, event_3); + break; + } + } + this.clear(); + this.drainDisabled = false; + }; + EventQueue.prototype.clear = function () { + this.objects.length = 0; + }; + return EventQueue; + }()); + spine.EventQueue = EventQueue; + (function (EventType) { + EventType[EventType["start"] = 0] = "start"; + EventType[EventType["interrupt"] = 1] = "interrupt"; + EventType[EventType["end"] = 2] = "end"; + EventType[EventType["dispose"] = 3] = "dispose"; + EventType[EventType["complete"] = 4] = "complete"; + EventType[EventType["event"] = 5] = "event"; + })(spine.EventType || (spine.EventType = {})); + var EventType = spine.EventType; + var AnimationStateAdapter2 = (function () { + function AnimationStateAdapter2() { + } + AnimationStateAdapter2.prototype.start = function (entry) { + }; + AnimationStateAdapter2.prototype.interrupt = function (entry) { + }; + AnimationStateAdapter2.prototype.end = function (entry) { + }; + AnimationStateAdapter2.prototype.dispose = function (entry) { + }; + AnimationStateAdapter2.prototype.complete = function (entry) { + }; + AnimationStateAdapter2.prototype.event = function (entry, event) { + }; + return AnimationStateAdapter2; + }()); + spine.AnimationStateAdapter2 = AnimationStateAdapter2; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationStateData = (function () { - function AnimationStateData(skeletonData) { - this.animationToMixTime = {}; - this.defaultMix = 0; - if (skeletonData == null) - throw new Error("skeletonData cannot be null."); - this.skeletonData = skeletonData; - } - AnimationStateData.prototype.setMix = function (fromName, toName, duration) { - var from = this.skeletonData.findAnimation(fromName); - if (from == null) - throw new Error("Animation not found: " + fromName); - var to = this.skeletonData.findAnimation(toName); - if (to == null) - throw new Error("Animation not found: " + toName); - this.setMixWith(from, to, duration); - }; - AnimationStateData.prototype.setMixWith = function (from, to, duration) { - if (from == null) - throw new Error("from cannot be null."); - if (to == null) - throw new Error("to cannot be null."); - var key = from.name + to.name; - this.animationToMixTime[key] = duration; - }; - AnimationStateData.prototype.getMix = function (from, to) { - var key = from.name + to.name; - var value = this.animationToMixTime[key]; - return value === undefined ? this.defaultMix : value; - }; - return AnimationStateData; - }()); - spine.AnimationStateData = AnimationStateData; + var AnimationStateData = (function () { + function AnimationStateData(skeletonData) { + this.animationToMixTime = {}; + this.defaultMix = 0; + if (skeletonData == null) + throw new Error("skeletonData cannot be null."); + this.skeletonData = skeletonData; + } + AnimationStateData.prototype.setMix = function (fromName, toName, duration) { + var from = this.skeletonData.findAnimation(fromName); + if (from == null) + throw new Error("Animation not found: " + fromName); + var to = this.skeletonData.findAnimation(toName); + if (to == null) + throw new Error("Animation not found: " + toName); + this.setMixWith(from, to, duration); + }; + AnimationStateData.prototype.setMixWith = function (from, to, duration) { + if (from == null) + throw new Error("from cannot be null."); + if (to == null) + throw new Error("to cannot be null."); + var key = from.name + to.name; + this.animationToMixTime[key] = duration; + }; + AnimationStateData.prototype.getMix = function (from, to) { + var key = from.name + to.name; + var value = this.animationToMixTime[key]; + return value === undefined ? this.defaultMix : value; + }; + return AnimationStateData; + }()); + spine.AnimationStateData = AnimationStateData; })(spine || (spine = {})); var spine; (function (spine) { - var AssetManager = (function () { - function AssetManager(textureLoader, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.assets = {}; - this.errors = {}; - this.toLoad = 0; - this.loaded = 0; - this.textureLoader = textureLoader; - this.pathPrefix = pathPrefix; - } - AssetManager.prototype.loadText = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.assets[path] = request.responseText; - if (success) - success(path, request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - if (error) - error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); - } - _this.toLoad--; - _this.loaded++; - } - }; - request.open("GET", path, true); - request.send(); - }; - AssetManager.prototype.loadTexture = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = path; - }; - AssetManager.prototype.loadTextureData = function (path, data, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - var img = new Image(); - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[path] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - img.src = data; - }; - AssetManager.prototype.get = function (path) { - path = this.pathPrefix + path; - return this.assets[path]; - }; - AssetManager.prototype.remove = function (path) { - path = this.pathPrefix + path; - var asset = this.assets[path]; - if (asset.dispose) - asset.dispose(); - this.assets[path] = null; - }; - AssetManager.prototype.removeAll = function () { - for (var key in this.assets) { - var asset = this.assets[key]; - if (asset.dispose) - asset.dispose(); - } - this.assets = {}; - }; - AssetManager.prototype.isLoadingComplete = function () { - return this.toLoad == 0; - }; - AssetManager.prototype.getToLoad = function () { - return this.toLoad; - }; - AssetManager.prototype.getLoaded = function () { - return this.loaded; - }; - AssetManager.prototype.dispose = function () { - this.removeAll(); - }; - AssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - AssetManager.prototype.getErrors = function () { - return this.errors; - }; - return AssetManager; - }()); - spine.AssetManager = AssetManager; + var AssetManager = (function () { + function AssetManager(textureLoader, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.assets = {}; + this.errors = {}; + this.toLoad = 0; + this.loaded = 0; + this.textureLoader = textureLoader; + this.pathPrefix = pathPrefix; + } + AssetManager.prototype.loadText = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.assets[path] = request.responseText; + if (success) + success(path, request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + if (error) + error(path, "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText); + } + _this.toLoad--; + _this.loaded++; + } + }; + request.open("GET", path, true); + request.send(); + }; + AssetManager.prototype.loadTexture = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = path; + }; + AssetManager.prototype.loadTextureData = function (path, data, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + var img = new Image(); + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[path] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + img.src = data; + }; + AssetManager.prototype.get = function (path) { + path = this.pathPrefix + path; + return this.assets[path]; + }; + AssetManager.prototype.remove = function (path) { + path = this.pathPrefix + path; + var asset = this.assets[path]; + if (asset.dispose) + asset.dispose(); + this.assets[path] = null; + }; + AssetManager.prototype.removeAll = function () { + for (var key in this.assets) { + var asset = this.assets[key]; + if (asset.dispose) + asset.dispose(); + } + this.assets = {}; + }; + AssetManager.prototype.isLoadingComplete = function () { + return this.toLoad == 0; + }; + AssetManager.prototype.getToLoad = function () { + return this.toLoad; + }; + AssetManager.prototype.getLoaded = function () { + return this.loaded; + }; + AssetManager.prototype.dispose = function () { + this.removeAll(); + }; + AssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + AssetManager.prototype.getErrors = function () { + return this.errors; + }; + return AssetManager; + }()); + spine.AssetManager = AssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var AtlasAttachmentLoader = (function () { - function AtlasAttachmentLoader(atlas) { - this.atlas = atlas; - } - AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.RegionAttachment(name); - attachment.setRegion(region); - return attachment; - }; - AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.MeshAttachment(name); - attachment.region = region; - return attachment; - }; - AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { - return new spine.BoundingBoxAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { - return new spine.PathAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { - return new spine.PointAttachment(name); - }; - AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { - return new spine.ClippingAttachment(name); - }; - return AtlasAttachmentLoader; - }()); - spine.AtlasAttachmentLoader = AtlasAttachmentLoader; + var AtlasAttachmentLoader = (function () { + function AtlasAttachmentLoader(atlas) { + this.atlas = atlas; + } + AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.RegionAttachment(name); + attachment.setRegion(region); + return attachment; + }; + AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.MeshAttachment(name); + attachment.region = region; + return attachment; + }; + AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { + return new spine.BoundingBoxAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { + return new spine.PathAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { + return new spine.PointAttachment(name); + }; + AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { + return new spine.ClippingAttachment(name); + }; + return AtlasAttachmentLoader; + }()); + spine.AtlasAttachmentLoader = AtlasAttachmentLoader; })(spine || (spine = {})); var spine; (function (spine) { - var Attachment = (function () { - function Attachment(name) { - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return Attachment; - }()); - spine.Attachment = Attachment; - var VertexAttachment = (function (_super) { - __extends(VertexAttachment, _super); - function VertexAttachment(name) { - _super.call(this, name); - this.worldVerticesLength = 0; - } - VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { - count = offset + (count >> 1) * stride; - var skeleton = slot.bone.skeleton; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices; - var bones = this.bones; - if (bones == null) { - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - var x = bone.worldX; - var y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { - var vx = vertices[v_1], vy = vertices[v_1 + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - } - return; - } - var v = 0, skip = 0; - for (var i = 0; i < start; i += 2) { - var n = bones[v]; - v += n + 1; - skip += n; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = offset, b = skip * 3; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - else { - var deform = deformArray; - for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3, f += 2) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - }; - VertexAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment; - }; - return VertexAttachment; - }(Attachment)); - spine.VertexAttachment = VertexAttachment; + var Attachment = (function () { + function Attachment(name) { + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return Attachment; + }()); + spine.Attachment = Attachment; + var VertexAttachment = (function (_super) { + __extends(VertexAttachment, _super); + function VertexAttachment(name) { + _super.call(this, name); + this.worldVerticesLength = 0; + } + VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { + count = offset + (count >> 1) * stride; + var skeleton = slot.bone.skeleton; + var deformArray = slot.attachmentVertices; + var vertices = this.vertices; + var bones = this.bones; + if (bones == null) { + if (deformArray.length > 0) + vertices = deformArray; + var bone = slot.bone; + var x = bone.worldX; + var y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { + var vx = vertices[v_1], vy = vertices[v_1 + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + } + return; + } + var v = 0, skip = 0; + for (var i = 0; i < start; i += 2) { + var n = bones[v]; + v += n + 1; + skip += n; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = offset, b = skip * 3; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + else { + var deform = deformArray; + for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3, f += 2) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + }; + VertexAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment; + }; + return VertexAttachment; + }(Attachment)); + spine.VertexAttachment = VertexAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (AttachmentType) { - AttachmentType[AttachmentType["Region"] = 0] = "Region"; - AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; - AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; - AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; - AttachmentType[AttachmentType["Path"] = 4] = "Path"; - AttachmentType[AttachmentType["Point"] = 5] = "Point"; - })(spine.AttachmentType || (spine.AttachmentType = {})); - var AttachmentType = spine.AttachmentType; + (function (AttachmentType) { + AttachmentType[AttachmentType["Region"] = 0] = "Region"; + AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; + AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; + AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; + AttachmentType[AttachmentType["Path"] = 4] = "Path"; + AttachmentType[AttachmentType["Point"] = 5] = "Point"; + })(spine.AttachmentType || (spine.AttachmentType = {})); + var AttachmentType = spine.AttachmentType; })(spine || (spine = {})); var spine; (function (spine) { - var BoundingBoxAttachment = (function (_super) { - __extends(BoundingBoxAttachment, _super); - function BoundingBoxAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - } - return BoundingBoxAttachment; - }(spine.VertexAttachment)); - spine.BoundingBoxAttachment = BoundingBoxAttachment; + var BoundingBoxAttachment = (function (_super) { + __extends(BoundingBoxAttachment, _super); + function BoundingBoxAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + } + return BoundingBoxAttachment; + }(spine.VertexAttachment)); + spine.BoundingBoxAttachment = BoundingBoxAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var ClippingAttachment = (function (_super) { - __extends(ClippingAttachment, _super); - function ClippingAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); - } - return ClippingAttachment; - }(spine.VertexAttachment)); - spine.ClippingAttachment = ClippingAttachment; + var ClippingAttachment = (function (_super) { + __extends(ClippingAttachment, _super); + function ClippingAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); + } + return ClippingAttachment; + }(spine.VertexAttachment)); + spine.ClippingAttachment = ClippingAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var MeshAttachment = (function (_super) { - __extends(MeshAttachment, _super); - function MeshAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(1, 1, 1, 1); - this.inheritDeform = false; - this.tempColor = new spine.Color(0, 0, 0, 0); - } - MeshAttachment.prototype.updateUVs = function () { - var u = 0, v = 0, width = 0, height = 0; - if (this.region == null) { - u = v = 0; - width = height = 1; - } - else { - u = this.region.u; - v = this.region.v; - width = this.region.u2 - u; - height = this.region.v2 - v; - } - var regionUVs = this.regionUVs; - if (this.uvs == null || this.uvs.length != regionUVs.length) - this.uvs = spine.Utils.newFloatArray(regionUVs.length); - var uvs = this.uvs; - if (this.region.rotate) { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i + 1] * width; - uvs[i + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i] * width; - uvs[i + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.applyDeform = function (sourceAttachment) { - return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); - }; - MeshAttachment.prototype.getParentMesh = function () { - return this.parentMesh; - }; - MeshAttachment.prototype.setParentMesh = function (parentMesh) { - this.parentMesh = parentMesh; - if (parentMesh != null) { - this.bones = parentMesh.bones; - this.vertices = parentMesh.vertices; - this.worldVerticesLength = parentMesh.worldVerticesLength; - this.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - this.worldVerticesLength = parentMesh.worldVerticesLength; - } - }; - return MeshAttachment; - }(spine.VertexAttachment)); - spine.MeshAttachment = MeshAttachment; + var MeshAttachment = (function (_super) { + __extends(MeshAttachment, _super); + function MeshAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(1, 1, 1, 1); + this.inheritDeform = false; + this.tempColor = new spine.Color(0, 0, 0, 0); + } + MeshAttachment.prototype.updateUVs = function () { + var u = 0, v = 0, width = 0, height = 0; + if (this.region == null) { + u = v = 0; + width = height = 1; + } + else { + u = this.region.u; + v = this.region.v; + width = this.region.u2 - u; + height = this.region.v2 - v; + } + var regionUVs = this.regionUVs; + if (this.uvs == null || this.uvs.length != regionUVs.length) + this.uvs = spine.Utils.newFloatArray(regionUVs.length); + var uvs = this.uvs; + if (this.region.rotate) { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.applyDeform = function (sourceAttachment) { + return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment); + }; + MeshAttachment.prototype.getParentMesh = function () { + return this.parentMesh; + }; + MeshAttachment.prototype.setParentMesh = function (parentMesh) { + this.parentMesh = parentMesh; + if (parentMesh != null) { + this.bones = parentMesh.bones; + this.vertices = parentMesh.vertices; + this.worldVerticesLength = parentMesh.worldVerticesLength; + this.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + this.worldVerticesLength = parentMesh.worldVerticesLength; + } + }; + return MeshAttachment; + }(spine.VertexAttachment)); + spine.MeshAttachment = MeshAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PathAttachment = (function (_super) { - __extends(PathAttachment, _super); - function PathAttachment(name) { - _super.call(this, name); - this.closed = false; - this.constantSpeed = false; - this.color = new spine.Color(1, 1, 1, 1); - } - return PathAttachment; - }(spine.VertexAttachment)); - spine.PathAttachment = PathAttachment; + var PathAttachment = (function (_super) { + __extends(PathAttachment, _super); + function PathAttachment(name) { + _super.call(this, name); + this.closed = false; + this.constantSpeed = false; + this.color = new spine.Color(1, 1, 1, 1); + } + return PathAttachment; + }(spine.VertexAttachment)); + spine.PathAttachment = PathAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PointAttachment = (function (_super) { - __extends(PointAttachment, _super); - function PointAttachment(name) { - _super.call(this, name); - this.color = new spine.Color(0.38, 0.94, 0, 1); - } - PointAttachment.prototype.computeWorldPosition = function (bone, point) { - point.x = this.x * bone.a + this.y * bone.b + bone.worldX; - point.y = this.x * bone.c + this.y * bone.d + bone.worldY; - return point; - }; - PointAttachment.prototype.computeWorldRotation = function (bone) { - var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); - var x = cos * bone.a + sin * bone.b; - var y = cos * bone.c + sin * bone.d; - return Math.atan2(y, x) * spine.MathUtils.radDeg; - }; - return PointAttachment; - }(spine.VertexAttachment)); - spine.PointAttachment = PointAttachment; + var PointAttachment = (function (_super) { + __extends(PointAttachment, _super); + function PointAttachment(name) { + _super.call(this, name); + this.color = new spine.Color(0.38, 0.94, 0, 1); + } + PointAttachment.prototype.computeWorldPosition = function (bone, point) { + point.x = this.x * bone.a + this.y * bone.b + bone.worldX; + point.y = this.x * bone.c + this.y * bone.d + bone.worldY; + return point; + }; + PointAttachment.prototype.computeWorldRotation = function (bone) { + var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); + var x = cos * bone.a + sin * bone.b; + var y = cos * bone.c + sin * bone.d; + return Math.atan2(y, x) * spine.MathUtils.radDeg; + }; + return PointAttachment; + }(spine.VertexAttachment)); + spine.PointAttachment = PointAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var RegionAttachment = (function (_super) { - __extends(RegionAttachment, _super); - function RegionAttachment(name) { - _super.call(this, name); - this.x = 0; - this.y = 0; - this.scaleX = 1; - this.scaleY = 1; - this.rotation = 0; - this.width = 0; - this.height = 0; - this.color = new spine.Color(1, 1, 1, 1); - this.offset = spine.Utils.newFloatArray(8); - this.uvs = spine.Utils.newFloatArray(8); - this.tempColor = new spine.Color(1, 1, 1, 1); - } - RegionAttachment.prototype.updateOffset = function () { - var regionScaleX = this.width / this.region.originalWidth * this.scaleX; - var regionScaleY = this.height / this.region.originalHeight * this.scaleY; - var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; - var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; - var localX2 = localX + this.region.width * regionScaleX; - var localY2 = localY + this.region.height * regionScaleY; - var radians = this.rotation * Math.PI / 180; - var cos = Math.cos(radians); - var sin = Math.sin(radians); - var localXCos = localX * cos + this.x; - var localXSin = localX * sin; - var localYCos = localY * cos + this.y; - var localYSin = localY * sin; - var localX2Cos = localX2 * cos + this.x; - var localX2Sin = localX2 * sin; - var localY2Cos = localY2 * cos + this.y; - var localY2Sin = localY2 * sin; - var offset = this.offset; - offset[RegionAttachment.OX1] = localXCos - localYSin; - offset[RegionAttachment.OY1] = localYCos + localXSin; - offset[RegionAttachment.OX2] = localXCos - localY2Sin; - offset[RegionAttachment.OY2] = localY2Cos + localXSin; - offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; - offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; - offset[RegionAttachment.OX4] = localX2Cos - localYSin; - offset[RegionAttachment.OY4] = localYCos + localX2Sin; - }; - RegionAttachment.prototype.setRegion = function (region) { - this.region = region; - var uvs = this.uvs; - if (region.rotate) { - uvs[2] = region.u; - uvs[3] = region.v2; - uvs[4] = region.u; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v; - uvs[0] = region.u2; - uvs[1] = region.v2; - } - else { - uvs[0] = region.u; - uvs[1] = region.v2; - uvs[2] = region.u; - uvs[3] = region.v; - uvs[4] = region.u2; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v2; - } - }; - RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { - var vertexOffset = this.offset; - var x = bone.worldX, y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = vertexOffset[RegionAttachment.OX1]; - offsetY = vertexOffset[RegionAttachment.OY1]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX2]; - offsetY = vertexOffset[RegionAttachment.OY2]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX3]; - offsetY = vertexOffset[RegionAttachment.OY3]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX4]; - offsetY = vertexOffset[RegionAttachment.OY4]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - }; - RegionAttachment.OX1 = 0; - RegionAttachment.OY1 = 1; - RegionAttachment.OX2 = 2; - RegionAttachment.OY2 = 3; - RegionAttachment.OX3 = 4; - RegionAttachment.OY3 = 5; - RegionAttachment.OX4 = 6; - RegionAttachment.OY4 = 7; - RegionAttachment.X1 = 0; - RegionAttachment.Y1 = 1; - RegionAttachment.C1R = 2; - RegionAttachment.C1G = 3; - RegionAttachment.C1B = 4; - RegionAttachment.C1A = 5; - RegionAttachment.U1 = 6; - RegionAttachment.V1 = 7; - RegionAttachment.X2 = 8; - RegionAttachment.Y2 = 9; - RegionAttachment.C2R = 10; - RegionAttachment.C2G = 11; - RegionAttachment.C2B = 12; - RegionAttachment.C2A = 13; - RegionAttachment.U2 = 14; - RegionAttachment.V2 = 15; - RegionAttachment.X3 = 16; - RegionAttachment.Y3 = 17; - RegionAttachment.C3R = 18; - RegionAttachment.C3G = 19; - RegionAttachment.C3B = 20; - RegionAttachment.C3A = 21; - RegionAttachment.U3 = 22; - RegionAttachment.V3 = 23; - RegionAttachment.X4 = 24; - RegionAttachment.Y4 = 25; - RegionAttachment.C4R = 26; - RegionAttachment.C4G = 27; - RegionAttachment.C4B = 28; - RegionAttachment.C4A = 29; - RegionAttachment.U4 = 30; - RegionAttachment.V4 = 31; - return RegionAttachment; - }(spine.Attachment)); - spine.RegionAttachment = RegionAttachment; + var RegionAttachment = (function (_super) { + __extends(RegionAttachment, _super); + function RegionAttachment(name) { + _super.call(this, name); + this.x = 0; + this.y = 0; + this.scaleX = 1; + this.scaleY = 1; + this.rotation = 0; + this.width = 0; + this.height = 0; + this.color = new spine.Color(1, 1, 1, 1); + this.offset = spine.Utils.newFloatArray(8); + this.uvs = spine.Utils.newFloatArray(8); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.updateOffset = function () { + var regionScaleX = this.width / this.region.originalWidth * this.scaleX; + var regionScaleY = this.height / this.region.originalHeight * this.scaleY; + var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; + var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; + var localX2 = localX + this.region.width * regionScaleX; + var localY2 = localY + this.region.height * regionScaleY; + var radians = this.rotation * Math.PI / 180; + var cos = Math.cos(radians); + var sin = Math.sin(radians); + var localXCos = localX * cos + this.x; + var localXSin = localX * sin; + var localYCos = localY * cos + this.y; + var localYSin = localY * sin; + var localX2Cos = localX2 * cos + this.x; + var localX2Sin = localX2 * sin; + var localY2Cos = localY2 * cos + this.y; + var localY2Sin = localY2 * sin; + var offset = this.offset; + offset[RegionAttachment.OX1] = localXCos - localYSin; + offset[RegionAttachment.OY1] = localYCos + localXSin; + offset[RegionAttachment.OX2] = localXCos - localY2Sin; + offset[RegionAttachment.OY2] = localY2Cos + localXSin; + offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; + offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; + offset[RegionAttachment.OX4] = localX2Cos - localYSin; + offset[RegionAttachment.OY4] = localYCos + localX2Sin; + }; + RegionAttachment.prototype.setRegion = function (region) { + this.region = region; + var uvs = this.uvs; + if (region.rotate) { + uvs[2] = region.u; + uvs[3] = region.v2; + uvs[4] = region.u; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v; + uvs[0] = region.u2; + uvs[1] = region.v2; + } + else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; + } + }; + RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { + var vertexOffset = this.offset; + var x = bone.worldX, y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var offsetX = 0, offsetY = 0; + offsetX = vertexOffset[RegionAttachment.OX1]; + offsetY = vertexOffset[RegionAttachment.OY1]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX2]; + offsetY = vertexOffset[RegionAttachment.OY2]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX3]; + offsetY = vertexOffset[RegionAttachment.OY3]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX4]; + offsetY = vertexOffset[RegionAttachment.OY4]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + }; + RegionAttachment.OX1 = 0; + RegionAttachment.OY1 = 1; + RegionAttachment.OX2 = 2; + RegionAttachment.OY2 = 3; + RegionAttachment.OX3 = 4; + RegionAttachment.OY3 = 5; + RegionAttachment.OX4 = 6; + RegionAttachment.OY4 = 7; + RegionAttachment.X1 = 0; + RegionAttachment.Y1 = 1; + RegionAttachment.C1R = 2; + RegionAttachment.C1G = 3; + RegionAttachment.C1B = 4; + RegionAttachment.C1A = 5; + RegionAttachment.U1 = 6; + RegionAttachment.V1 = 7; + RegionAttachment.X2 = 8; + RegionAttachment.Y2 = 9; + RegionAttachment.C2R = 10; + RegionAttachment.C2G = 11; + RegionAttachment.C2B = 12; + RegionAttachment.C2A = 13; + RegionAttachment.U2 = 14; + RegionAttachment.V2 = 15; + RegionAttachment.X3 = 16; + RegionAttachment.Y3 = 17; + RegionAttachment.C3R = 18; + RegionAttachment.C3G = 19; + RegionAttachment.C3B = 20; + RegionAttachment.C3A = 21; + RegionAttachment.U3 = 22; + RegionAttachment.V3 = 23; + RegionAttachment.X4 = 24; + RegionAttachment.Y4 = 25; + RegionAttachment.C4R = 26; + RegionAttachment.C4G = 27; + RegionAttachment.C4B = 28; + RegionAttachment.C4A = 29; + RegionAttachment.U4 = 30; + RegionAttachment.V4 = 31; + return RegionAttachment; + }(spine.Attachment)); + spine.RegionAttachment = RegionAttachment; })(spine || (spine = {})); var spine; (function (spine) { - (function (BlendMode) { - BlendMode[BlendMode["Normal"] = 0] = "Normal"; - BlendMode[BlendMode["Additive"] = 1] = "Additive"; - BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; - BlendMode[BlendMode["Screen"] = 3] = "Screen"; - })(spine.BlendMode || (spine.BlendMode = {})); - var BlendMode = spine.BlendMode; + (function (BlendMode) { + BlendMode[BlendMode["Normal"] = 0] = "Normal"; + BlendMode[BlendMode["Additive"] = 1] = "Additive"; + BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; + BlendMode[BlendMode["Screen"] = 3] = "Screen"; + })(spine.BlendMode || (spine.BlendMode = {})); + var BlendMode = spine.BlendMode; })(spine || (spine = {})); var spine; (function (spine) { - var Bone = (function () { - function Bone(data, skeleton, parent) { - this.children = new Array(); - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 0; - this.scaleY = 0; - this.shearX = 0; - this.shearY = 0; - this.ax = 0; - this.ay = 0; - this.arotation = 0; - this.ascaleX = 0; - this.ascaleY = 0; - this.ashearX = 0; - this.ashearY = 0; - this.appliedValid = false; - this.a = 0; - this.b = 0; - this.worldX = 0; - this.c = 0; - this.d = 0; - this.worldY = 0; - this.sorted = false; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.skeleton = skeleton; - this.parent = parent; - this.setToSetupPose(); - } - Bone.prototype.update = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransform = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { - this.ax = x; - this.ay = y; - this.arotation = rotation; - this.ascaleX = scaleX; - this.ascaleY = scaleY; - this.ashearX = shearX; - this.ashearY = shearY; - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - var skeleton = this.skeleton; - if (skeleton.flipX) { - x = -x; - la = -la; - lb = -lb; - } - if (skeleton.flipY) { - y = -y; - lc = -lc; - ld = -ld; - } - this.a = la; - this.b = lb; - this.c = lc; - this.d = ld; - this.worldX = x + skeleton.x; - this.worldY = y + skeleton.y; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - this.worldX = pa * x + pb * y + parent.worldX; - this.worldY = pc * x + pd * y + parent.worldY; - switch (this.data.transformMode) { - case spine.TransformMode.Normal: { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - return; - } - case spine.TransformMode.OnlyTranslation: { - var rotationY = rotation + 90 + shearY; - this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; - this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; - break; - } - case spine.TransformMode.NoRotationOrReflection: { - var s = pa * pa + pc * pc; - var prx = 0; - if (s > 0.0001) { - s = Math.abs(pa * pd - pb * pc) / s; - pb = pc * s; - pd = pa * s; - prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; - } - else { - pa = 0; - pc = 0; - prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; - } - var rx = rotation + shearX - prx; - var ry = rotation + shearY - prx + 90; - var la = spine.MathUtils.cosDeg(rx) * scaleX; - var lb = spine.MathUtils.cosDeg(ry) * scaleY; - var lc = spine.MathUtils.sinDeg(rx) * scaleX; - var ld = spine.MathUtils.sinDeg(ry) * scaleY; - this.a = pa * la - pb * lc; - this.b = pa * lb - pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - break; - } - case spine.TransformMode.NoScale: - case spine.TransformMode.NoScaleOrReflection: { - var cos = spine.MathUtils.cosDeg(rotation); - var sin = spine.MathUtils.sinDeg(rotation); - var za = pa * cos + pb * sin; - var zc = pc * cos + pd * sin; - var s = Math.sqrt(za * za + zc * zc); - if (s > 0.00001) - s = 1 / s; - za *= s; - zc *= s; - s = Math.sqrt(za * za + zc * zc); - var r = Math.PI / 2 + Math.atan2(zc, za); - var zb = Math.cos(r) * s; - var zd = Math.sin(r) * s; - var la = spine.MathUtils.cosDeg(shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; - var lc = spine.MathUtils.sinDeg(shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; - this.a = za * la + zb * lc; - this.b = za * lb + zb * ld; - this.c = zc * la + zd * lc; - this.d = zc * lb + zd * ld; - if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { - this.b = -this.b; - this.d = -this.d; - } - return; - } - } - if (this.skeleton.flipX) { - this.a = -this.a; - this.b = -this.b; - } - if (this.skeleton.flipY) { - this.c = -this.c; - this.d = -this.d; - } - }; - Bone.prototype.setToSetupPose = function () { - var data = this.data; - this.x = data.x; - this.y = data.y; - this.rotation = data.rotation; - this.scaleX = data.scaleX; - this.scaleY = data.scaleY; - this.shearX = data.shearX; - this.shearY = data.shearY; - }; - Bone.prototype.getWorldRotationX = function () { - return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldRotationY = function () { - return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldScaleX = function () { - return Math.sqrt(this.a * this.a + this.c * this.c); - }; - Bone.prototype.getWorldScaleY = function () { - return Math.sqrt(this.b * this.b + this.d * this.d); - }; - Bone.prototype.updateAppliedTransform = function () { - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - this.ax = this.worldX; - this.ay = this.worldY; - this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); - this.ashearX = 0; - this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - var pid = 1 / (pa * pd - pb * pc); - var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; - this.ax = (dx * pd * pid - dy * pb * pid); - this.ay = (dy * pa * pid - dx * pc * pid); - var ia = pid * pd; - var id = pid * pa; - var ib = pid * pb; - var ic = pid * pc; - var ra = ia * this.a - ib * this.c; - var rb = ia * this.b - ib * this.d; - var rc = id * this.c - ic * this.a; - var rd = id * this.d - ic * this.b; - this.ashearX = 0; - this.ascaleX = Math.sqrt(ra * ra + rc * rc); - if (this.ascaleX > 0.0001) { - var det = ra * rd - rb * rc; - this.ascaleY = det / this.ascaleX; - this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; - this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; - } - else { - this.ascaleX = 0; - this.ascaleY = Math.sqrt(rb * rb + rd * rd); - this.ashearY = 0; - this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; - } - }; - Bone.prototype.worldToLocal = function (world) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var invDet = 1 / (a * d - b * c); - var x = world.x - this.worldX, y = world.y - this.worldY; - world.x = (x * d * invDet - y * b * invDet); - world.y = (y * a * invDet - x * c * invDet); - return world; - }; - Bone.prototype.localToWorld = function (local) { - var x = local.x, y = local.y; - local.x = x * this.a + y * this.b + this.worldX; - local.y = x * this.c + y * this.d + this.worldY; - return local; - }; - Bone.prototype.worldToLocalRotation = function (worldRotation) { - var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); - return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; - }; - Bone.prototype.localToWorldRotation = function (localRotation) { - var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); - return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.rotateWorld = function (degrees) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); - this.a = cos * a - sin * c; - this.b = cos * b - sin * d; - this.c = sin * a + cos * c; - this.d = sin * b + cos * d; - this.appliedValid = false; - }; - return Bone; - }()); - spine.Bone = Bone; + var Bone = (function () { + function Bone(data, skeleton, parent) { + this.children = new Array(); + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 0; + this.scaleY = 0; + this.shearX = 0; + this.shearY = 0; + this.ax = 0; + this.ay = 0; + this.arotation = 0; + this.ascaleX = 0; + this.ascaleY = 0; + this.ashearX = 0; + this.ashearY = 0; + this.appliedValid = false; + this.a = 0; + this.b = 0; + this.worldX = 0; + this.c = 0; + this.d = 0; + this.worldY = 0; + this.sorted = false; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.skeleton = skeleton; + this.parent = parent; + this.setToSetupPose(); + } + Bone.prototype.update = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransform = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { + this.ax = x; + this.ay = y; + this.arotation = rotation; + this.ascaleX = scaleX; + this.ascaleY = scaleY; + this.ashearX = shearX; + this.ashearY = shearY; + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + var skeleton = this.skeleton; + if (skeleton.flipX) { + x = -x; + la = -la; + lb = -lb; + } + if (skeleton.flipY) { + y = -y; + lc = -lc; + ld = -ld; + } + this.a = la; + this.b = lb; + this.c = lc; + this.d = ld; + this.worldX = x + skeleton.x; + this.worldY = y + skeleton.y; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + this.worldX = pa * x + pb * y + parent.worldX; + this.worldY = pc * x + pd * y + parent.worldY; + switch (this.data.transformMode) { + case spine.TransformMode.Normal: { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + this.a = pa * la + pb * lc; + this.b = pa * lb + pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + return; + } + case spine.TransformMode.OnlyTranslation: { + var rotationY = rotation + 90 + shearY; + this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; + this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; + break; + } + case spine.TransformMode.NoRotationOrReflection: { + var s = pa * pa + pc * pc; + var prx = 0; + if (s > 0.0001) { + s = Math.abs(pa * pd - pb * pc) / s; + pb = pc * s; + pd = pa * s; + prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; + } + else { + pa = 0; + pc = 0; + prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; + } + var rx = rotation + shearX - prx; + var ry = rotation + shearY - prx + 90; + var la = spine.MathUtils.cosDeg(rx) * scaleX; + var lb = spine.MathUtils.cosDeg(ry) * scaleY; + var lc = spine.MathUtils.sinDeg(rx) * scaleX; + var ld = spine.MathUtils.sinDeg(ry) * scaleY; + this.a = pa * la - pb * lc; + this.b = pa * lb - pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + break; + } + case spine.TransformMode.NoScale: + case spine.TransformMode.NoScaleOrReflection: { + var cos = spine.MathUtils.cosDeg(rotation); + var sin = spine.MathUtils.sinDeg(rotation); + var za = pa * cos + pb * sin; + var zc = pc * cos + pd * sin; + var s = Math.sqrt(za * za + zc * zc); + if (s > 0.00001) + s = 1 / s; + za *= s; + zc *= s; + s = Math.sqrt(za * za + zc * zc); + var r = Math.PI / 2 + Math.atan2(zc, za); + var zb = Math.cos(r) * s; + var zd = Math.sin(r) * s; + var la = spine.MathUtils.cosDeg(shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; + var lc = spine.MathUtils.sinDeg(shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; + this.a = za * la + zb * lc; + this.b = za * lb + zb * ld; + this.c = zc * la + zd * lc; + this.d = zc * lb + zd * ld; + if (this.data.transformMode != spine.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { + this.b = -this.b; + this.d = -this.d; + } + return; + } + } + if (this.skeleton.flipX) { + this.a = -this.a; + this.b = -this.b; + } + if (this.skeleton.flipY) { + this.c = -this.c; + this.d = -this.d; + } + }; + Bone.prototype.setToSetupPose = function () { + var data = this.data; + this.x = data.x; + this.y = data.y; + this.rotation = data.rotation; + this.scaleX = data.scaleX; + this.scaleY = data.scaleY; + this.shearX = data.shearX; + this.shearY = data.shearY; + }; + Bone.prototype.getWorldRotationX = function () { + return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldRotationY = function () { + return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldScaleX = function () { + return Math.sqrt(this.a * this.a + this.c * this.c); + }; + Bone.prototype.getWorldScaleY = function () { + return Math.sqrt(this.b * this.b + this.d * this.d); + }; + Bone.prototype.updateAppliedTransform = function () { + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + this.ax = this.worldX; + this.ay = this.worldY; + this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); + this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); + this.ashearX = 0; + this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + var pid = 1 / (pa * pd - pb * pc); + var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; + this.ax = (dx * pd * pid - dy * pb * pid); + this.ay = (dy * pa * pid - dx * pc * pid); + var ia = pid * pd; + var id = pid * pa; + var ib = pid * pb; + var ic = pid * pc; + var ra = ia * this.a - ib * this.c; + var rb = ia * this.b - ib * this.d; + var rc = id * this.c - ic * this.a; + var rd = id * this.d - ic * this.b; + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { + var det = ra * rd - rb * rc; + this.ascaleY = det / this.ascaleX; + this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; + this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; + } + else { + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; + } + }; + Bone.prototype.worldToLocal = function (world) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var invDet = 1 / (a * d - b * c); + var x = world.x - this.worldX, y = world.y - this.worldY; + world.x = (x * d * invDet - y * b * invDet); + world.y = (y * a * invDet - x * c * invDet); + return world; + }; + Bone.prototype.localToWorld = function (local) { + var x = local.x, y = local.y; + local.x = x * this.a + y * this.b + this.worldX; + local.y = x * this.c + y * this.d + this.worldY; + return local; + }; + Bone.prototype.worldToLocalRotation = function (worldRotation) { + var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); + return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg; + }; + Bone.prototype.localToWorldRotation = function (localRotation) { + var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); + return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.rotateWorld = function (degrees) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); + this.a = cos * a - sin * c; + this.b = cos * b - sin * d; + this.c = sin * a + cos * c; + this.d = sin * b + cos * d; + this.appliedValid = false; + }; + return Bone; + }()); + spine.Bone = Bone; })(spine || (spine = {})); var spine; (function (spine) { - var BoneData = (function () { - function BoneData(index, name, parent) { - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 1; - this.scaleY = 1; - this.shearX = 0; - this.shearY = 0; - this.transformMode = TransformMode.Normal; - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - this.index = index; - this.name = name; - this.parent = parent; - } - return BoneData; - }()); - spine.BoneData = BoneData; - (function (TransformMode) { - TransformMode[TransformMode["Normal"] = 0] = "Normal"; - TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; - TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; - TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; - TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; - })(spine.TransformMode || (spine.TransformMode = {})); - var TransformMode = spine.TransformMode; + var BoneData = (function () { + function BoneData(index, name, parent) { + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 1; + this.scaleY = 1; + this.shearX = 0; + this.shearY = 0; + this.transformMode = TransformMode.Normal; + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + this.index = index; + this.name = name; + this.parent = parent; + } + return BoneData; + }()); + spine.BoneData = BoneData; + (function (TransformMode) { + TransformMode[TransformMode["Normal"] = 0] = "Normal"; + TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; + TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; + TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; + TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; + })(spine.TransformMode || (spine.TransformMode = {})); + var TransformMode = spine.TransformMode; })(spine || (spine = {})); var spine; (function (spine) { - var Event = (function () { - function Event(time, data) { - if (data == null) - throw new Error("data cannot be null."); - this.time = time; - this.data = data; - } - return Event; - }()); - spine.Event = Event; + var Event = (function () { + function Event(time, data) { + if (data == null) + throw new Error("data cannot be null."); + this.time = time; + this.data = data; + } + return Event; + }()); + spine.Event = Event; })(spine || (spine = {})); var spine; (function (spine) { - var EventData = (function () { - function EventData(name) { - this.name = name; - } - return EventData; - }()); - spine.EventData = EventData; + var EventData = (function () { + function EventData(name) { + this.name = name; + } + return EventData; + }()); + spine.EventData = EventData; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraint = (function () { - function IkConstraint(data, skeleton) { - this.mix = 1; - this.bendDirection = 0; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.mix = data.mix; - this.bendDirection = data.bendDirection; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - IkConstraint.prototype.getOrder = function () { - return this.data.order; - }; - IkConstraint.prototype.apply = function () { - this.update(); - }; - IkConstraint.prototype.update = function () { - var target = this.target; - var bones = this.bones; - switch (bones.length) { - case 1: - this.apply1(bones[0], target.worldX, target.worldY, this.mix); - break; - case 2: - this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); - break; - } - }; - IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var p = bone.parent; - var id = 1 / (p.a * p.d - p.b * p.c); - var x = targetX - p.worldX, y = targetY - p.worldY; - var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; - var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; - if (bone.ascaleX < 0) - rotationIK += 180; - if (rotationIK > 180) - rotationIK -= 360; - else if (rotationIK < -180) - rotationIK += 360; - bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); - }; - IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { - if (alpha == 0) { - child.updateWorldTransform(); - return; - } - if (!parent.appliedValid) - parent.updateAppliedTransform(); - if (!child.appliedValid) - child.updateAppliedTransform(); - var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; - var os1 = 0, os2 = 0, s2 = 0; - if (psx < 0) { - psx = -psx; - os1 = 180; - s2 = -1; - } - else { - os1 = 0; - s2 = 1; - } - if (psy < 0) { - psy = -psy; - s2 = -s2; - } - if (csx < 0) { - csx = -csx; - os2 = 180; - } - else - os2 = 0; - var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; - var u = Math.abs(psx - psy) <= 0.0001; - if (!u) { - cy = 0; - cwx = a * cx + parent.worldX; - cwy = c * cx + parent.worldY; - } - else { - cy = child.ay; - cwx = a * cx + b * cy + parent.worldX; - cwy = c * cx + d * cy + parent.worldY; - } - var pp = parent.parent; - a = pp.a; - b = pp.b; - c = pp.c; - d = pp.d; - var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; - var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; - x = cwx - pp.worldX; - y = cwy - pp.worldY; - var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; - var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; - outer: if (u) { - l2 *= psx; - var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); - if (cos < -1) - cos = -1; - else if (cos > 1) - cos = 1; - a2 = Math.acos(cos) * bendDir; - a = l1 + l2 * cos; - b = l2 * Math.sin(a2); - a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); - } - else { - a = psx * l2; - b = psy * l2; - var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); - c = bb * l1 * l1 + aa * dd - aa * bb; - var c1 = -2 * bb * l1, c2 = bb - aa; - d = c1 * c1 - 4 * c2 * c; - if (d >= 0) { - var q = Math.sqrt(d); - if (c1 < 0) - q = -q; - q = -(c1 + q) / 2; - var r0 = q / c2, r1 = c / q; - var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; - if (r * r <= dd) { - y = Math.sqrt(dd - r * r) * bendDir; - a1 = ta - Math.atan2(y, r); - a2 = Math.atan2(y / psy, (r - l1) / psx); - break outer; - } - } - var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; - var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; - c = -a * l1 / (aa - bb); - if (c >= -1 && c <= 1) { - c = Math.acos(c); - x = a * Math.cos(c) + l1; - y = b * Math.sin(c); - d = x * x + y * y; - if (d < minDist) { - minAngle = c; - minDist = d; - minX = x; - minY = y; - } - if (d > maxDist) { - maxAngle = c; - maxDist = d; - maxX = x; - maxY = y; - } - } - if (dd <= (minDist + maxDist) / 2) { - a1 = ta - Math.atan2(minY * bendDir, minX); - a2 = minAngle * bendDir; - } - else { - a1 = ta - Math.atan2(maxY * bendDir, maxX); - a2 = maxAngle * bendDir; - } - } - var os = Math.atan2(cy, cx) * s2; - var rotation = parent.arotation; - a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; - if (a1 > 180) - a1 -= 360; - else if (a1 < -180) - a1 += 360; - parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); - rotation = child.arotation; - a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; - if (a2 > 180) - a2 -= 360; - else if (a2 < -180) - a2 += 360; - child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); - }; - return IkConstraint; - }()); - spine.IkConstraint = IkConstraint; + var IkConstraint = (function () { + function IkConstraint(data, skeleton) { + this.mix = 1; + this.bendDirection = 0; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.mix = data.mix; + this.bendDirection = data.bendDirection; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + IkConstraint.prototype.getOrder = function () { + return this.data.order; + }; + IkConstraint.prototype.apply = function () { + this.update(); + }; + IkConstraint.prototype.update = function () { + var target = this.target; + var bones = this.bones; + switch (bones.length) { + case 1: + this.apply1(bones[0], target.worldX, target.worldY, this.mix); + break; + case 2: + this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix); + break; + } + }; + IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var p = bone.parent; + var id = 1 / (p.a * p.d - p.b * p.c); + var x = targetX - p.worldX, y = targetY - p.worldY; + var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; + var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; + if (bone.ascaleX < 0) + rotationIK += 180; + if (rotationIK > 180) + rotationIK -= 360; + else if (rotationIK < -180) + rotationIK += 360; + bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY); + }; + IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) { + if (alpha == 0) { + child.updateWorldTransform(); + return; + } + if (!parent.appliedValid) + parent.updateAppliedTransform(); + if (!child.appliedValid) + child.updateAppliedTransform(); + var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; + var os1 = 0, os2 = 0, s2 = 0; + if (psx < 0) { + psx = -psx; + os1 = 180; + s2 = -1; + } + else { + os1 = 0; + s2 = 1; + } + if (psy < 0) { + psy = -psy; + s2 = -s2; + } + if (csx < 0) { + csx = -csx; + os2 = 180; + } + else + os2 = 0; + var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + var u = Math.abs(psx - psy) <= 0.0001; + if (!u) { + cy = 0; + cwx = a * cx + parent.worldX; + cwy = c * cx + parent.worldY; + } + else { + cy = child.ay; + cwx = a * cx + b * cy + parent.worldX; + cwy = c * cx + d * cy + parent.worldY; + } + var pp = parent.parent; + a = pp.a; + b = pp.b; + c = pp.c; + d = pp.d; + var id = 1 / (a * d - b * c), x = targetX - pp.worldX, y = targetY - pp.worldY; + var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; + x = cwx - pp.worldX; + y = cwy - pp.worldY; + var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; + var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0; + outer: if (u) { + l2 *= psx; + var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2); + if (cos < -1) + cos = -1; + else if (cos > 1) + cos = 1; + a2 = Math.acos(cos) * bendDir; + a = l1 + l2 * cos; + b = l2 * Math.sin(a2); + a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); + } + else { + a = psx * l2; + b = psy * l2; + var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx); + c = bb * l1 * l1 + aa * dd - aa * bb; + var c1 = -2 * bb * l1, c2 = bb - aa; + d = c1 * c1 - 4 * c2 * c; + if (d >= 0) { + var q = Math.sqrt(d); + if (c1 < 0) + q = -q; + q = -(c1 + q) / 2; + var r0 = q / c2, r1 = c / q; + var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; + if (r * r <= dd) { + y = Math.sqrt(dd - r * r) * bendDir; + a1 = ta - Math.atan2(y, r); + a2 = Math.atan2(y / psy, (r - l1) / psx); + break outer; + } + } + var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; + var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } + } + if (dd <= (minDist + maxDist) / 2) { + a1 = ta - Math.atan2(minY * bendDir, minX); + a2 = minAngle * bendDir; + } + else { + a1 = ta - Math.atan2(maxY * bendDir, maxX); + a2 = maxAngle * bendDir; + } + } + var os = Math.atan2(cy, cx) * s2; + var rotation = parent.arotation; + a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; + if (a1 > 180) + a1 -= 360; + else if (a1 < -180) + a1 += 360; + parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); + rotation = child.arotation; + a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; + if (a2 > 180) + a2 -= 360; + else if (a2 < -180) + a2 += 360; + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); + }; + return IkConstraint; + }()); + spine.IkConstraint = IkConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraintData = (function () { - function IkConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.bendDirection = 1; - this.mix = 1; - this.name = name; - } - return IkConstraintData; - }()); - spine.IkConstraintData = IkConstraintData; + var IkConstraintData = (function () { + function IkConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.bendDirection = 1; + this.mix = 1; + this.name = name; + } + return IkConstraintData; + }()); + spine.IkConstraintData = IkConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraint = (function () { - function PathConstraint(data, skeleton) { - this.position = 0; - this.spacing = 0; - this.rotateMix = 0; - this.translateMix = 0; - this.spaces = new Array(); - this.positions = new Array(); - this.world = new Array(); - this.curves = new Array(); - this.lengths = new Array(); - this.segments = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0, n = data.bones.length; i < n; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findSlot(data.target.name); - this.position = data.position; - this.spacing = data.spacing; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - } - PathConstraint.prototype.apply = function () { - this.update(); - }; - PathConstraint.prototype.update = function () { - var attachment = this.target.getAttachment(); - if (!(attachment instanceof spine.PathAttachment)) - return; - var rotateMix = this.rotateMix, translateMix = this.translateMix; - var translate = translateMix > 0, rotate = rotateMix > 0; - if (!translate && !rotate) - return; - var data = this.data; - var spacingMode = data.spacingMode; - var lengthSpacing = spacingMode == spine.SpacingMode.Length; - var rotateMode = data.rotateMode; - var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; - var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; - var bones = this.bones; - var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; - var spacing = this.spacing; - if (scale || lengthSpacing) { - if (scale) - lengths = spine.Utils.setArraySize(this.lengths, boneCount); - for (var i = 0, n = spacesCount - 1; i < n;) { - var bone = bones[i]; - var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; - var length_1 = Math.sqrt(x * x + y * y); - if (scale) - lengths[i] = length_1; - spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; - } - } - else { - for (var i = 1; i < spacesCount; i++) - spaces[i] = spacing; - } - var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); - var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - var tip = false; - if (offsetRotation == 0) - tip = rotateMode == spine.RotateMode.Chain; - else { - tip = false; - var p = this.target.bone; - offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - } - for (var i = 0, p = 3; i < boneCount; i++, p += 3) { - var bone = bones[i]; - bone.worldX += (boneX - bone.worldX) * translateMix; - bone.worldY += (boneY - bone.worldY) * translateMix; - var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; - if (scale) { - var length_2 = lengths[i]; - if (length_2 != 0) { - var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; - bone.a *= s; - bone.c *= s; - } - } - boneX = x; - boneY = y; - if (rotate) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; - if (tangents) - r = positions[p - 1]; - else if (spaces[i + 1] == 0) - r = positions[p + 2]; - else - r = Math.atan2(dy, dx); - r -= Math.atan2(c, a); - if (tip) { - cos = Math.cos(r); - sin = Math.sin(r); - var length_3 = bone.data.length; - boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; - boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; - } - else { - r += offsetRotation; - } - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - cos = Math.cos(r); - sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - } - bone.appliedValid = false; - } - }; - PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { - var target = this.target; - var position = this.position; - var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; - var closed = path.closed; - var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; - if (!path.constantSpeed) { - var lengths = path.lengths; - curveCount -= closed ? 1 : 2; - var pathLength_1 = lengths[curveCount]; - if (percentPosition) - position *= pathLength_1; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength_1; - } - world = spine.Utils.setArraySize(this.world, 8); - for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength_1; - if (p < 0) - p += pathLength_1; - curve = 0; - } - else if (p < 0) { - if (prevCurve != PathConstraint.BEFORE) { - prevCurve = PathConstraint.BEFORE; - path.computeWorldVertices(target, 2, 4, world, 0, 2); - } - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength_1) { - if (prevCurve != PathConstraint.AFTER) { - prevCurve = PathConstraint.AFTER; - path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); - } - this.addAfterPosition(p - pathLength_1, world, 0, out, o); - continue; - } - for (;; curve++) { - var length_4 = lengths[curve]; - if (p > length_4) - continue; - if (curve == 0) - p /= length_4; - else { - var prev = lengths[curve - 1]; - p = (p - prev) / (length_4 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - if (closed && curve == curveCount) { - path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); - path.computeWorldVertices(target, 0, 4, world, 4, 2); - } - else - path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); - } - this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); - } - return out; - } - if (closed) { - verticesLength += 2; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); - path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); - world[verticesLength - 2] = world[0]; - world[verticesLength - 1] = world[1]; - } - else { - curveCount--; - verticesLength -= 4; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); - } - var curves = spine.Utils.setArraySize(this.curves, curveCount); - var pathLength = 0; - var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; - var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; - for (var i = 0, w = 2; i < curveCount; i++, w += 6) { - cx1 = world[w]; - cy1 = world[w + 1]; - cx2 = world[w + 2]; - cy2 = world[w + 3]; - x2 = world[w + 4]; - y2 = world[w + 5]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; - tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - curves[i] = pathLength; - x1 = x2; - y1 = y2; - } - if (percentPosition) - position *= pathLength; - if (percentSpacing) { - for (var i = 0; i < spacesCount; i++) - spaces[i] *= pathLength; - } - var segments = this.segments; - var curveLength = 0; - for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength; - if (p < 0) - p += pathLength; - curve = 0; - } - else if (p < 0) { - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength) { - this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); - continue; - } - for (;; curve++) { - var length_5 = curves[curve]; - if (p > length_5) - continue; - if (curve == 0) - p /= length_5; - else { - var prev = curves[curve - 1]; - p = (p - prev) / (length_5 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - var ii = curve * 6; - x1 = world[ii]; - y1 = world[ii + 1]; - cx1 = world[ii + 2]; - cy1 = world[ii + 3]; - cx2 = world[ii + 4]; - cy2 = world[ii + 5]; - x2 = world[ii + 6]; - y2 = world[ii + 7]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.03; - tmpy = (y1 - cy1 * 2 + cy2) * 0.03; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; - curveLength = Math.sqrt(dfx * dfx + dfy * dfy); - segments[0] = curveLength; - for (ii = 1; ii < 8; ii++) { - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[ii] = curveLength; - } - dfx += ddfx; - dfy += ddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[8] = curveLength; - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[9] = curveLength; - segment = 0; - } - p *= curveLength; - for (;; segment++) { - var length_6 = segments[segment]; - if (p > length_6) - continue; - if (segment == 0) - p /= length_6; - else { - var prev = segments[segment - 1]; - p = segment + (p - prev) / (length_6 - prev); - } - break; - } - this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); - } - return out; - }; - PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { - var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { - var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { - if (p == 0 || isNaN(p)) - p = 0.0001; - var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; - var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; - var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; - out[o] = x; - out[o + 1] = y; - if (tangents) - out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); - }; - PathConstraint.prototype.getOrder = function () { - return this.data.order; - }; - PathConstraint.NONE = -1; - PathConstraint.BEFORE = -2; - PathConstraint.AFTER = -3; - return PathConstraint; - }()); - spine.PathConstraint = PathConstraint; + var PathConstraint = (function () { + function PathConstraint(data, skeleton) { + this.position = 0; + this.spacing = 0; + this.rotateMix = 0; + this.translateMix = 0; + this.spaces = new Array(); + this.positions = new Array(); + this.world = new Array(); + this.curves = new Array(); + this.lengths = new Array(); + this.segments = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0, n = data.bones.length; i < n; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findSlot(data.target.name); + this.position = data.position; + this.spacing = data.spacing; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + } + PathConstraint.prototype.apply = function () { + this.update(); + }; + PathConstraint.prototype.update = function () { + var attachment = this.target.getAttachment(); + if (!(attachment instanceof spine.PathAttachment)) + return; + var rotateMix = this.rotateMix, translateMix = this.translateMix; + var translate = translateMix > 0, rotate = rotateMix > 0; + if (!translate && !rotate) + return; + var data = this.data; + var spacingMode = data.spacingMode; + var lengthSpacing = spacingMode == spine.SpacingMode.Length; + var rotateMode = data.rotateMode; + var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; + var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; + var bones = this.bones; + var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; + var spacing = this.spacing; + if (scale || lengthSpacing) { + if (scale) + lengths = spine.Utils.setArraySize(this.lengths, boneCount); + for (var i = 0, n = spacesCount - 1; i < n;) { + var bone = bones[i]; + var setupLength = bone.data.length, x = setupLength * bone.a, y = setupLength * bone.c; + var length_1 = Math.sqrt(x * x + y * y); + if (scale) + lengths[i] = length_1; + spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength; + } + } + else { + for (var i = 1; i < spacesCount; i++) + spaces[i] = spacing; + } + var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); + var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; + var tip = false; + if (offsetRotation == 0) + tip = rotateMode == spine.RotateMode.Chain; + else { + tip = false; + var p = this.target.bone; + offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + } + for (var i = 0, p = 3; i < boneCount; i++, p += 3) { + var bone = bones[i]; + bone.worldX += (boneX - bone.worldX) * translateMix; + bone.worldY += (boneY - bone.worldY) * translateMix; + var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; + if (scale) { + var length_2 = lengths[i]; + if (length_2 != 0) { + var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1; + bone.a *= s; + bone.c *= s; + } + } + boneX = x; + boneY = y; + if (rotate) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; + if (tangents) + r = positions[p - 1]; + else if (spaces[i + 1] == 0) + r = positions[p + 2]; + else + r = Math.atan2(dy, dx); + r -= Math.atan2(c, a); + if (tip) { + cos = Math.cos(r); + sin = Math.sin(r); + var length_3 = bone.data.length; + boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix; + boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix; + } + else { + r += offsetRotation; + } + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + cos = Math.cos(r); + sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + bone.appliedValid = false; + } + }; + PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { + var target = this.target; + var position = this.position; + var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; + var closed = path.closed; + var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; + if (!path.constantSpeed) { + var lengths = path.lengths; + curveCount -= closed ? 1 : 2; + var pathLength_1 = lengths[curveCount]; + if (percentPosition) + position *= pathLength_1; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength_1; + } + world = spine.Utils.setArraySize(this.world, 8); + for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength_1; + if (p < 0) + p += pathLength_1; + curve = 0; + } + else if (p < 0) { + if (prevCurve != PathConstraint.BEFORE) { + prevCurve = PathConstraint.BEFORE; + path.computeWorldVertices(target, 2, 4, world, 0, 2); + } + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength_1) { + if (prevCurve != PathConstraint.AFTER) { + prevCurve = PathConstraint.AFTER; + path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); + } + this.addAfterPosition(p - pathLength_1, world, 0, out, o); + continue; + } + for (;; curve++) { + var length_4 = lengths[curve]; + if (p > length_4) + continue; + if (curve == 0) + p /= length_4; + else { + var prev = lengths[curve - 1]; + p = (p - prev) / (length_4 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + if (closed && curve == curveCount) { + path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); + path.computeWorldVertices(target, 0, 4, world, 4, 2); + } + else + path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); + } + this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); + } + return out; + } + if (closed) { + verticesLength += 2; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); + path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); + world[verticesLength - 2] = world[0]; + world[verticesLength - 1] = world[1]; + } + else { + curveCount--; + verticesLength -= 4; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); + } + var curves = spine.Utils.setArraySize(this.curves, curveCount); + var pathLength = 0; + var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; + var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; + for (var i = 0, w = 2; i < curveCount; i++, w += 6) { + cx1 = world[w]; + cy1 = world[w + 1]; + cx2 = world[w + 2]; + cy2 = world[w + 3]; + x2 = world[w + 4]; + y2 = world[w + 5]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; + tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + curves[i] = pathLength; + x1 = x2; + y1 = y2; + } + if (percentPosition) + position *= pathLength; + if (percentSpacing) { + for (var i = 0; i < spacesCount; i++) + spaces[i] *= pathLength; + } + var segments = this.segments; + var curveLength = 0; + for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength; + if (p < 0) + p += pathLength; + curve = 0; + } + else if (p < 0) { + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength) { + this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); + continue; + } + for (;; curve++) { + var length_5 = curves[curve]; + if (p > length_5) + continue; + if (curve == 0) + p /= length_5; + else { + var prev = curves[curve - 1]; + p = (p - prev) / (length_5 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + var ii = curve * 6; + x1 = world[ii]; + y1 = world[ii + 1]; + cx1 = world[ii + 2]; + cy1 = world[ii + 3]; + cx2 = world[ii + 4]; + cy2 = world[ii + 5]; + x2 = world[ii + 6]; + y2 = world[ii + 7]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.03; + tmpy = (y1 - cy1 * 2 + cy2) * 0.03; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; + curveLength = Math.sqrt(dfx * dfx + dfy * dfy); + segments[0] = curveLength; + for (ii = 1; ii < 8; ii++) { + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[ii] = curveLength; + } + dfx += ddfx; + dfy += ddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[8] = curveLength; + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[9] = curveLength; + segment = 0; + } + p *= curveLength; + for (;; segment++) { + var length_6 = segments[segment]; + if (p > length_6) + continue; + if (segment == 0) + p /= length_6; + else { + var prev = segments[segment - 1]; + p = segment + (p - prev) / (length_6 - prev); + } + break; + } + this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); + } + return out; + }; + PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { + var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { + var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { + if (p == 0 || isNaN(p)) + p = 0.0001; + var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; + var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; + var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; + out[o] = x; + out[o + 1] = y; + if (tangents) + out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); + }; + PathConstraint.prototype.getOrder = function () { + return this.data.order; + }; + PathConstraint.NONE = -1; + PathConstraint.BEFORE = -2; + PathConstraint.AFTER = -3; + return PathConstraint; + }()); + spine.PathConstraint = PathConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraintData = (function () { - function PathConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.name = name; - } - return PathConstraintData; - }()); - spine.PathConstraintData = PathConstraintData; - (function (PositionMode) { - PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; - PositionMode[PositionMode["Percent"] = 1] = "Percent"; - })(spine.PositionMode || (spine.PositionMode = {})); - var PositionMode = spine.PositionMode; - (function (SpacingMode) { - SpacingMode[SpacingMode["Length"] = 0] = "Length"; - SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; - SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; - })(spine.SpacingMode || (spine.SpacingMode = {})); - var SpacingMode = spine.SpacingMode; - (function (RotateMode) { - RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; - RotateMode[RotateMode["Chain"] = 1] = "Chain"; - RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; - })(spine.RotateMode || (spine.RotateMode = {})); - var RotateMode = spine.RotateMode; + var PathConstraintData = (function () { + function PathConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.name = name; + } + return PathConstraintData; + }()); + spine.PathConstraintData = PathConstraintData; + (function (PositionMode) { + PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; + PositionMode[PositionMode["Percent"] = 1] = "Percent"; + })(spine.PositionMode || (spine.PositionMode = {})); + var PositionMode = spine.PositionMode; + (function (SpacingMode) { + SpacingMode[SpacingMode["Length"] = 0] = "Length"; + SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; + SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; + })(spine.SpacingMode || (spine.SpacingMode = {})); + var SpacingMode = spine.SpacingMode; + (function (RotateMode) { + RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; + RotateMode[RotateMode["Chain"] = 1] = "Chain"; + RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; + })(spine.RotateMode || (spine.RotateMode = {})); + var RotateMode = spine.RotateMode; })(spine || (spine = {})); var spine; (function (spine) { - var Assets = (function () { - function Assets(clientId) { - this.toLoad = new Array(); - this.assets = {}; - this.clientId = clientId; - } - Assets.prototype.loaded = function () { - var i = 0; - for (var v in this.assets) - i++; - return i; - }; - return Assets; - }()); - var SharedAssetManager = (function () { - function SharedAssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.clientAssets = {}; - this.queuedAssets = {}; - this.rawAssets = {}; - this.errors = {}; - this.pathPrefix = pathPrefix; - } - SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) { - clientAssets = new Assets(clientId); - this.clientAssets[clientId] = clientAssets; - } - if (textureLoader !== null) - clientAssets.textureLoader = textureLoader; - clientAssets.toLoad.push(path); - if (this.queuedAssets[path] === path) { - return false; - } - else { - this.queuedAssets[path] = path; - return true; - } - }; - SharedAssetManager.prototype.loadText = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = request.responseText; - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadJson = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = JSON.parse(request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, textureLoader, path)) - return; - var img = new Image(); - img.src = path; - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - _this.rawAssets[path] = img; - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - }; - }; - SharedAssetManager.prototype.get = function (clientId, path) { - path = this.pathPrefix + path; - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - return clientAssets.assets[path]; - }; - SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { - for (var i = 0; i < clientAssets.toLoad.length; i++) { - var path = clientAssets.toLoad[i]; - var asset = clientAssets.assets[path]; - if (asset === null || asset === undefined) { - var rawAsset = this.rawAssets[path]; - if (rawAsset === null || rawAsset === undefined) - continue; - if (rawAsset instanceof HTMLImageElement) { - clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); - } - else { - clientAssets.assets[path] = rawAsset; - } - } - } - }; - SharedAssetManager.prototype.isLoadingComplete = function (clientId) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - this.updateClientAssets(clientAssets); - return clientAssets.toLoad.length == clientAssets.loaded(); - }; - SharedAssetManager.prototype.dispose = function () { - }; - SharedAssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - SharedAssetManager.prototype.getErrors = function () { - return this.errors; - }; - return SharedAssetManager; - }()); - spine.SharedAssetManager = SharedAssetManager; + var Assets = (function () { + function Assets(clientId) { + this.toLoad = new Array(); + this.assets = {}; + this.clientId = clientId; + } + Assets.prototype.loaded = function () { + var i = 0; + for (var v in this.assets) + i++; + return i; + }; + return Assets; + }()); + var SharedAssetManager = (function () { + function SharedAssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.clientAssets = {}; + this.queuedAssets = {}; + this.rawAssets = {}; + this.errors = {}; + this.pathPrefix = pathPrefix; + } + SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) { + clientAssets = new Assets(clientId); + this.clientAssets[clientId] = clientAssets; + } + if (textureLoader !== null) + clientAssets.textureLoader = textureLoader; + clientAssets.toLoad.push(path); + if (this.queuedAssets[path] === path) { + return false; + } + else { + this.queuedAssets[path] = path; + return true; + } + }; + SharedAssetManager.prototype.loadText = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = request.responseText; + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadJson = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = JSON.parse(request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, textureLoader, path)) + return; + var img = new Image(); + img.src = path; + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + _this.rawAssets[path] = img; + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + }; + }; + SharedAssetManager.prototype.get = function (clientId, path) { + path = this.pathPrefix + path; + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + return clientAssets.assets[path]; + }; + SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { + for (var i = 0; i < clientAssets.toLoad.length; i++) { + var path = clientAssets.toLoad[i]; + var asset = clientAssets.assets[path]; + if (asset === null || asset === undefined) { + var rawAsset = this.rawAssets[path]; + if (rawAsset === null || rawAsset === undefined) + continue; + if (rawAsset instanceof HTMLImageElement) { + clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); + } + else { + clientAssets.assets[path] = rawAsset; + } + } + } + }; + SharedAssetManager.prototype.isLoadingComplete = function (clientId) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + this.updateClientAssets(clientAssets); + return clientAssets.toLoad.length == clientAssets.loaded(); + }; + SharedAssetManager.prototype.dispose = function () { + }; + SharedAssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + SharedAssetManager.prototype.getErrors = function () { + return this.errors; + }; + return SharedAssetManager; + }()); + spine.SharedAssetManager = SharedAssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var Skeleton = (function () { - function Skeleton(data) { - this._updateCache = new Array(); - this.updateCacheReset = new Array(); - this.time = 0; - this.flipX = false; - this.flipY = false; - this.x = 0; - this.y = 0; - if (data == null) - throw new Error("data cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) { - var boneData = data.bones[i]; - var bone = void 0; - if (boneData.parent == null) - bone = new spine.Bone(boneData, this, null); - else { - var parent_1 = this.bones[boneData.parent.index]; - bone = new spine.Bone(boneData, this, parent_1); - parent_1.children.push(bone); - } - this.bones.push(bone); - } - this.slots = new Array(); - this.drawOrder = new Array(); - for (var i = 0; i < data.slots.length; i++) { - var slotData = data.slots[i]; - var bone = this.bones[slotData.boneData.index]; - var slot = new spine.Slot(slotData, bone); - this.slots.push(slot); - this.drawOrder.push(slot); - } - this.ikConstraints = new Array(); - for (var i = 0; i < data.ikConstraints.length; i++) { - var ikConstraintData = data.ikConstraints[i]; - this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); - } - this.transformConstraints = new Array(); - for (var i = 0; i < data.transformConstraints.length; i++) { - var transformConstraintData = data.transformConstraints[i]; - this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); - } - this.pathConstraints = new Array(); - for (var i = 0; i < data.pathConstraints.length; i++) { - var pathConstraintData = data.pathConstraints[i]; - this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); - } - this.color = new spine.Color(1, 1, 1, 1); - this.updateCache(); - } - Skeleton.prototype.updateCache = function () { - var updateCache = this._updateCache; - updateCache.length = 0; - this.updateCacheReset.length = 0; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].sorted = false; - var ikConstraints = this.ikConstraints; - var transformConstraints = this.transformConstraints; - var pathConstraints = this.pathConstraints; - var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; - var constraintCount = ikCount + transformCount + pathCount; - outer: for (var i = 0; i < constraintCount; i++) { - for (var ii = 0; ii < ikCount; ii++) { - var constraint = ikConstraints[ii]; - if (constraint.data.order == i) { - this.sortIkConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < transformCount; ii++) { - var constraint = transformConstraints[ii]; - if (constraint.data.order == i) { - this.sortTransformConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < pathCount; ii++) { - var constraint = pathConstraints[ii]; - if (constraint.data.order == i) { - this.sortPathConstraint(constraint); - continue outer; - } - } - } - for (var i = 0, n = bones.length; i < n; i++) - this.sortBone(bones[i]); - }; - Skeleton.prototype.sortIkConstraint = function (constraint) { - var target = constraint.target; - this.sortBone(target); - var constrained = constraint.bones; - var parent = constrained[0]; - this.sortBone(parent); - if (constrained.length > 1) { - var child = constrained[constrained.length - 1]; - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - this._updateCache.push(constraint); - this.sortReset(parent.children); - constrained[constrained.length - 1].sorted = true; - }; - Skeleton.prototype.sortPathConstraint = function (constraint) { - var slot = constraint.target; - var slotIndex = slot.data.index; - var slotBone = slot.bone; - if (this.skin != null) - this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); - if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) - this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); - for (var i = 0, n = this.data.skins.length; i < n; i++) - this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); - var attachment = slot.getAttachment(); - if (attachment instanceof spine.PathAttachment) - this.sortPathConstraintAttachmentWith(attachment, slotBone); - var constrained = constraint.bones; - var boneCount = constrained.length; - for (var i = 0; i < boneCount; i++) - this.sortBone(constrained[i]); - this._updateCache.push(constraint); - for (var i = 0; i < boneCount; i++) - this.sortReset(constrained[i].children); - for (var i = 0; i < boneCount; i++) - constrained[i].sorted = true; - }; - Skeleton.prototype.sortTransformConstraint = function (constraint) { - this.sortBone(constraint.target); - var constrained = constraint.bones; - var boneCount = constrained.length; - if (constraint.data.local) { - for (var i = 0; i < boneCount; i++) { - var child = constrained[i]; - this.sortBone(child.parent); - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - } - else { - for (var i = 0; i < boneCount; i++) { - this.sortBone(constrained[i]); - } - } - this._updateCache.push(constraint); - for (var ii = 0; ii < boneCount; ii++) - this.sortReset(constrained[ii].children); - for (var ii = 0; ii < boneCount; ii++) - constrained[ii].sorted = true; - }; - Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { - var attachments = skin.attachments[slotIndex]; - if (!attachments) - return; - for (var key in attachments) { - this.sortPathConstraintAttachmentWith(attachments[key], slotBone); - } - }; - Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { - if (!(attachment instanceof spine.PathAttachment)) - return; - var pathBones = attachment.bones; - if (pathBones == null) - this.sortBone(slotBone); - else { - var bones = this.bones; - var i = 0; - while (i < pathBones.length) { - var boneCount = pathBones[i++]; - for (var n = i + boneCount; i < n; i++) { - var boneIndex = pathBones[i]; - this.sortBone(bones[boneIndex]); - } - } - } - }; - Skeleton.prototype.sortBone = function (bone) { - if (bone.sorted) - return; - var parent = bone.parent; - if (parent != null) - this.sortBone(parent); - bone.sorted = true; - this._updateCache.push(bone); - }; - Skeleton.prototype.sortReset = function (bones) { - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.sorted) - this.sortReset(bone.children); - bone.sorted = false; - } - }; - Skeleton.prototype.updateWorldTransform = function () { - var updateCacheReset = this.updateCacheReset; - for (var i = 0, n = updateCacheReset.length; i < n; i++) { - var bone = updateCacheReset[i]; - bone.ax = bone.x; - bone.ay = bone.y; - bone.arotation = bone.rotation; - bone.ascaleX = bone.scaleX; - bone.ascaleY = bone.scaleY; - bone.ashearX = bone.shearX; - bone.ashearY = bone.shearY; - bone.appliedValid = true; - } - var updateCache = this._updateCache; - for (var i = 0, n = updateCache.length; i < n; i++) - updateCache[i].update(); - }; - Skeleton.prototype.setToSetupPose = function () { - this.setBonesToSetupPose(); - this.setSlotsToSetupPose(); - }; - Skeleton.prototype.setBonesToSetupPose = function () { - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].setToSetupPose(); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - constraint.bendDirection = constraint.data.bendDirection; - constraint.mix = constraint.data.mix; - } - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - var data = constraint.data; - constraint.position = data.position; - constraint.spacing = data.spacing; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - } - }; - Skeleton.prototype.setSlotsToSetupPose = function () { - var slots = this.slots; - spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); - for (var i = 0, n = slots.length; i < n; i++) - slots[i].setToSetupPose(); - }; - Skeleton.prototype.getRootBone = function () { - if (this.bones.length == 0) - return null; - return this.bones[0]; - }; - Skeleton.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.data.name == boneName) - return bone; - } - return null; - }; - Skeleton.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].data.name == boneName) - return i; - return -1; - }; - Skeleton.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) - return slot; - } - return null; - }; - Skeleton.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].data.name == slotName) - return i; - return -1; - }; - Skeleton.prototype.setSkinByName = function (skinName) { - var skin = this.data.findSkin(skinName); - if (skin == null) - throw new Error("Skin not found: " + skinName); - this.setSkin(skin); - }; - Skeleton.prototype.setSkin = function (newSkin) { - if (newSkin != null) { - if (this.skin != null) - newSkin.attachAll(this, this.skin); - else { - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var name_1 = slot.data.attachmentName; - if (name_1 != null) { - var attachment = newSkin.getAttachment(i, name_1); - if (attachment != null) - slot.setAttachment(attachment); - } - } - } - } - this.skin = newSkin; - }; - Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { - return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); - }; - Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { - if (attachmentName == null) - throw new Error("attachmentName cannot be null."); - if (this.skin != null) { - var attachment = this.skin.getAttachment(slotIndex, attachmentName); - if (attachment != null) - return attachment; - } - if (this.data.defaultSkin != null) - return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); - return null; - }; - Skeleton.prototype.setAttachment = function (slotName, attachmentName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) { - var attachment = null; - if (attachmentName != null) { - attachment = this.getAttachment(i, attachmentName); - if (attachment == null) - throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); - } - slot.setAttachment(attachment); - return; - } - } - throw new Error("Slot not found: " + slotName); - }; - Skeleton.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var ikConstraint = ikConstraints[i]; - if (ikConstraint.data.name == constraintName) - return ikConstraint; - } - return null; - }; - Skeleton.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.getBounds = function (offset, size, temp) { - if (offset == null) - throw new Error("offset cannot be null."); - if (size == null) - throw new Error("size cannot be null."); - var drawOrder = this.drawOrder; - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - var verticesLength = 0; - var vertices = null; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.RegionAttachment) { - verticesLength = 8; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - attachment.computeWorldVertices(slot.bone, vertices, 0, 2); - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - verticesLength = mesh.worldVerticesLength; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); - } - if (vertices != null) { - for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { - var x = vertices[ii], y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - } - offset.set(minX, minY); - size.set(maxX - minX, maxY - minY); - }; - Skeleton.prototype.update = function (delta) { - this.time += delta; - }; - return Skeleton; - }()); - spine.Skeleton = Skeleton; + var Skeleton = (function () { + function Skeleton(data) { + this._updateCache = new Array(); + this.updateCacheReset = new Array(); + this.time = 0; + this.flipX = false; + this.flipY = false; + this.x = 0; + this.y = 0; + if (data == null) + throw new Error("data cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) { + var boneData = data.bones[i]; + var bone = void 0; + if (boneData.parent == null) + bone = new spine.Bone(boneData, this, null); + else { + var parent_1 = this.bones[boneData.parent.index]; + bone = new spine.Bone(boneData, this, parent_1); + parent_1.children.push(bone); + } + this.bones.push(bone); + } + this.slots = new Array(); + this.drawOrder = new Array(); + for (var i = 0; i < data.slots.length; i++) { + var slotData = data.slots[i]; + var bone = this.bones[slotData.boneData.index]; + var slot = new spine.Slot(slotData, bone); + this.slots.push(slot); + this.drawOrder.push(slot); + } + this.ikConstraints = new Array(); + for (var i = 0; i < data.ikConstraints.length; i++) { + var ikConstraintData = data.ikConstraints[i]; + this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); + } + this.transformConstraints = new Array(); + for (var i = 0; i < data.transformConstraints.length; i++) { + var transformConstraintData = data.transformConstraints[i]; + this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); + } + this.pathConstraints = new Array(); + for (var i = 0; i < data.pathConstraints.length; i++) { + var pathConstraintData = data.pathConstraints[i]; + this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); + } + this.color = new spine.Color(1, 1, 1, 1); + this.updateCache(); + } + Skeleton.prototype.updateCache = function () { + var updateCache = this._updateCache; + updateCache.length = 0; + this.updateCacheReset.length = 0; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].sorted = false; + var ikConstraints = this.ikConstraints; + var transformConstraints = this.transformConstraints; + var pathConstraints = this.pathConstraints; + var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; + var constraintCount = ikCount + transformCount + pathCount; + outer: for (var i = 0; i < constraintCount; i++) { + for (var ii = 0; ii < ikCount; ii++) { + var constraint = ikConstraints[ii]; + if (constraint.data.order == i) { + this.sortIkConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < transformCount; ii++) { + var constraint = transformConstraints[ii]; + if (constraint.data.order == i) { + this.sortTransformConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < pathCount; ii++) { + var constraint = pathConstraints[ii]; + if (constraint.data.order == i) { + this.sortPathConstraint(constraint); + continue outer; + } + } + } + for (var i = 0, n = bones.length; i < n; i++) + this.sortBone(bones[i]); + }; + Skeleton.prototype.sortIkConstraint = function (constraint) { + var target = constraint.target; + this.sortBone(target); + var constrained = constraint.bones; + var parent = constrained[0]; + this.sortBone(parent); + if (constrained.length > 1) { + var child = constrained[constrained.length - 1]; + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + this._updateCache.push(constraint); + this.sortReset(parent.children); + constrained[constrained.length - 1].sorted = true; + }; + Skeleton.prototype.sortPathConstraint = function (constraint) { + var slot = constraint.target; + var slotIndex = slot.data.index; + var slotBone = slot.bone; + if (this.skin != null) + this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); + if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) + this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); + for (var i = 0, n = this.data.skins.length; i < n; i++) + this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); + var attachment = slot.getAttachment(); + if (attachment instanceof spine.PathAttachment) + this.sortPathConstraintAttachmentWith(attachment, slotBone); + var constrained = constraint.bones; + var boneCount = constrained.length; + for (var i = 0; i < boneCount; i++) + this.sortBone(constrained[i]); + this._updateCache.push(constraint); + for (var i = 0; i < boneCount; i++) + this.sortReset(constrained[i].children); + for (var i = 0; i < boneCount; i++) + constrained[i].sorted = true; + }; + Skeleton.prototype.sortTransformConstraint = function (constraint) { + this.sortBone(constraint.target); + var constrained = constraint.bones; + var boneCount = constrained.length; + if (constraint.data.local) { + for (var i = 0; i < boneCount; i++) { + var child = constrained[i]; + this.sortBone(child.parent); + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + } + else { + for (var i = 0; i < boneCount; i++) { + this.sortBone(constrained[i]); + } + } + this._updateCache.push(constraint); + for (var ii = 0; ii < boneCount; ii++) + this.sortReset(constrained[ii].children); + for (var ii = 0; ii < boneCount; ii++) + constrained[ii].sorted = true; + }; + Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { + var attachments = skin.attachments[slotIndex]; + if (!attachments) + return; + for (var key in attachments) { + this.sortPathConstraintAttachmentWith(attachments[key], slotBone); + } + }; + Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { + if (!(attachment instanceof spine.PathAttachment)) + return; + var pathBones = attachment.bones; + if (pathBones == null) + this.sortBone(slotBone); + else { + var bones = this.bones; + var i = 0; + while (i < pathBones.length) { + var boneCount = pathBones[i++]; + for (var n = i + boneCount; i < n; i++) { + var boneIndex = pathBones[i]; + this.sortBone(bones[boneIndex]); + } + } + } + }; + Skeleton.prototype.sortBone = function (bone) { + if (bone.sorted) + return; + var parent = bone.parent; + if (parent != null) + this.sortBone(parent); + bone.sorted = true; + this._updateCache.push(bone); + }; + Skeleton.prototype.sortReset = function (bones) { + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.sorted) + this.sortReset(bone.children); + bone.sorted = false; + } + }; + Skeleton.prototype.updateWorldTransform = function () { + var updateCacheReset = this.updateCacheReset; + for (var i = 0, n = updateCacheReset.length; i < n; i++) { + var bone = updateCacheReset[i]; + bone.ax = bone.x; + bone.ay = bone.y; + bone.arotation = bone.rotation; + bone.ascaleX = bone.scaleX; + bone.ascaleY = bone.scaleY; + bone.ashearX = bone.shearX; + bone.ashearY = bone.shearY; + bone.appliedValid = true; + } + var updateCache = this._updateCache; + for (var i = 0, n = updateCache.length; i < n; i++) + updateCache[i].update(); + }; + Skeleton.prototype.setToSetupPose = function () { + this.setBonesToSetupPose(); + this.setSlotsToSetupPose(); + }; + Skeleton.prototype.setBonesToSetupPose = function () { + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].setToSetupPose(); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + constraint.bendDirection = constraint.data.bendDirection; + constraint.mix = constraint.data.mix; + } + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + var data = constraint.data; + constraint.position = data.position; + constraint.spacing = data.spacing; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + } + }; + Skeleton.prototype.setSlotsToSetupPose = function () { + var slots = this.slots; + spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); + for (var i = 0, n = slots.length; i < n; i++) + slots[i].setToSetupPose(); + }; + Skeleton.prototype.getRootBone = function () { + if (this.bones.length == 0) + return null; + return this.bones[0]; + }; + Skeleton.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.data.name == boneName) + return bone; + } + return null; + }; + Skeleton.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].data.name == boneName) + return i; + return -1; + }; + Skeleton.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) + return slot; + } + return null; + }; + Skeleton.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].data.name == slotName) + return i; + return -1; + }; + Skeleton.prototype.setSkinByName = function (skinName) { + var skin = this.data.findSkin(skinName); + if (skin == null) + throw new Error("Skin not found: " + skinName); + this.setSkin(skin); + }; + Skeleton.prototype.setSkin = function (newSkin) { + if (newSkin != null) { + if (this.skin != null) + newSkin.attachAll(this, this.skin); + else { + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var name_1 = slot.data.attachmentName; + if (name_1 != null) { + var attachment = newSkin.getAttachment(i, name_1); + if (attachment != null) + slot.setAttachment(attachment); + } + } + } + } + this.skin = newSkin; + }; + Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { + return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); + }; + Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { + if (attachmentName == null) + throw new Error("attachmentName cannot be null."); + if (this.skin != null) { + var attachment = this.skin.getAttachment(slotIndex, attachmentName); + if (attachment != null) + return attachment; + } + if (this.data.defaultSkin != null) + return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); + return null; + }; + Skeleton.prototype.setAttachment = function (slotName, attachmentName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) { + var attachment = null; + if (attachmentName != null) { + attachment = this.getAttachment(i, attachmentName); + if (attachment == null) + throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); + } + slot.setAttachment(attachment); + return; + } + } + throw new Error("Slot not found: " + slotName); + }; + Skeleton.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var ikConstraint = ikConstraints[i]; + if (ikConstraint.data.name == constraintName) + return ikConstraint; + } + return null; + }; + Skeleton.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.getBounds = function (offset, size, temp) { + if (offset == null) + throw new Error("offset cannot be null."); + if (size == null) + throw new Error("size cannot be null."); + var drawOrder = this.drawOrder; + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + var verticesLength = 0; + var vertices = null; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.RegionAttachment) { + verticesLength = 8; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + attachment.computeWorldVertices(slot.bone, vertices, 0, 2); + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + verticesLength = mesh.worldVerticesLength; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); + } + if (vertices != null) { + for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { + var x = vertices[ii], y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + } + offset.set(minX, minY); + size.set(maxX - minX, maxY - minY); + }; + Skeleton.prototype.update = function (delta) { + this.time += delta; + }; + return Skeleton; + }()); + spine.Skeleton = Skeleton; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonBounds = (function () { - function SkeletonBounds() { - this.minX = 0; - this.minY = 0; - this.maxX = 0; - this.maxY = 0; - this.boundingBoxes = new Array(); - this.polygons = new Array(); - this.polygonPool = new spine.Pool(function () { - return spine.Utils.newFloatArray(16); - }); - } - SkeletonBounds.prototype.update = function (skeleton, updateAabb) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - var boundingBoxes = this.boundingBoxes; - var polygons = this.polygons; - var polygonPool = this.polygonPool; - var slots = skeleton.slots; - var slotCount = slots.length; - boundingBoxes.length = 0; - polygonPool.freeAll(polygons); - polygons.length = 0; - for (var i = 0; i < slotCount; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.BoundingBoxAttachment) { - var boundingBox = attachment; - boundingBoxes.push(boundingBox); - var polygon = polygonPool.obtain(); - if (polygon.length != boundingBox.worldVerticesLength) { - polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); - } - polygons.push(polygon); - boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); - } - } - if (updateAabb) { - this.aabbCompute(); - } - else { - this.minX = Number.POSITIVE_INFINITY; - this.minY = Number.POSITIVE_INFINITY; - this.maxX = Number.NEGATIVE_INFINITY; - this.maxY = Number.NEGATIVE_INFINITY; - } - }; - SkeletonBounds.prototype.aabbCompute = function () { - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) { - var polygon = polygons[i]; - var vertices = polygon; - for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { - var x = vertices[ii]; - var y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - this.minX = minX; - this.minY = minY; - this.maxX = maxX; - this.maxY = maxY; - }; - SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { - return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; - }; - SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { - var minX = this.minX; - var minY = this.minY; - var maxX = this.maxX; - var maxY = this.maxY; - if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) - return false; - var m = (y2 - y1) / (x2 - x1); - var y = m * (minX - x1) + y1; - if (y > minY && y < maxY) - return true; - y = m * (maxX - x1) + y1; - if (y > minY && y < maxY) - return true; - var x = (minY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - x = (maxY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - return false; - }; - SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { - return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; - }; - SkeletonBounds.prototype.containsPoint = function (x, y) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.containsPointPolygon(polygons[i], x, y)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { - var vertices = polygon; - var nn = polygon.length; - var prevIndex = nn - 2; - var inside = false; - for (var ii = 0; ii < nn; ii += 2) { - var vertexY = vertices[ii + 1]; - var prevY = vertices[prevIndex + 1]; - if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { - var vertexX = vertices[ii]; - if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) - inside = !inside; - } - prevIndex = ii; - } - return inside; - }; - SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { - var vertices = polygon; - var nn = polygon.length; - var width12 = x1 - x2, height12 = y1 - y2; - var det1 = x1 * y2 - y1 * x2; - var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; - for (var ii = 0; ii < nn; ii += 2) { - var x4 = vertices[ii], y4 = vertices[ii + 1]; - var det2 = x3 * y4 - y3 * x4; - var width34 = x3 - x4, height34 = y3 - y4; - var det3 = width12 * height34 - height12 * width34; - var x = (det1 * width34 - width12 * det2) / det3; - if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { - var y = (det1 * height34 - height12 * det2) / det3; - if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) - return true; - } - x3 = x4; - y3 = y4; - } - return false; - }; - SkeletonBounds.prototype.getPolygon = function (boundingBox) { - if (boundingBox == null) - throw new Error("boundingBox cannot be null."); - var index = this.boundingBoxes.indexOf(boundingBox); - return index == -1 ? null : this.polygons[index]; - }; - SkeletonBounds.prototype.getWidth = function () { - return this.maxX - this.minX; - }; - SkeletonBounds.prototype.getHeight = function () { - return this.maxY - this.minY; - }; - return SkeletonBounds; - }()); - spine.SkeletonBounds = SkeletonBounds; + var SkeletonBounds = (function () { + function SkeletonBounds() { + this.minX = 0; + this.minY = 0; + this.maxX = 0; + this.maxY = 0; + this.boundingBoxes = new Array(); + this.polygons = new Array(); + this.polygonPool = new spine.Pool(function () { + return spine.Utils.newFloatArray(16); + }); + } + SkeletonBounds.prototype.update = function (skeleton, updateAabb) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + var boundingBoxes = this.boundingBoxes; + var polygons = this.polygons; + var polygonPool = this.polygonPool; + var slots = skeleton.slots; + var slotCount = slots.length; + boundingBoxes.length = 0; + polygonPool.freeAll(polygons); + polygons.length = 0; + for (var i = 0; i < slotCount; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.BoundingBoxAttachment) { + var boundingBox = attachment; + boundingBoxes.push(boundingBox); + var polygon = polygonPool.obtain(); + if (polygon.length != boundingBox.worldVerticesLength) { + polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); + } + polygons.push(polygon); + boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); + } + } + if (updateAabb) { + this.aabbCompute(); + } + else { + this.minX = Number.POSITIVE_INFINITY; + this.minY = Number.POSITIVE_INFINITY; + this.maxX = Number.NEGATIVE_INFINITY; + this.maxY = Number.NEGATIVE_INFINITY; + } + }; + SkeletonBounds.prototype.aabbCompute = function () { + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) { + var polygon = polygons[i]; + var vertices = polygon; + for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { + var x = vertices[ii]; + var y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + this.minX = minX; + this.minY = minY; + this.maxX = maxX; + this.maxY = maxY; + }; + SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { + return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; + }; + SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { + var minX = this.minX; + var minY = this.minY; + var maxX = this.maxX; + var maxY = this.maxY; + if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) + return false; + var m = (y2 - y1) / (x2 - x1); + var y = m * (minX - x1) + y1; + if (y > minY && y < maxY) + return true; + y = m * (maxX - x1) + y1; + if (y > minY && y < maxY) + return true; + var x = (minY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + x = (maxY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + return false; + }; + SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { + return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; + }; + SkeletonBounds.prototype.containsPoint = function (x, y) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.containsPointPolygon(polygons[i], x, y)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { + var vertices = polygon; + var nn = polygon.length; + var prevIndex = nn - 2; + var inside = false; + for (var ii = 0; ii < nn; ii += 2) { + var vertexY = vertices[ii + 1]; + var prevY = vertices[prevIndex + 1]; + if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { + var vertexX = vertices[ii]; + if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) + inside = !inside; + } + prevIndex = ii; + } + return inside; + }; + SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { + var vertices = polygon; + var nn = polygon.length; + var width12 = x1 - x2, height12 = y1 - y2; + var det1 = x1 * y2 - y1 * x2; + var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; + for (var ii = 0; ii < nn; ii += 2) { + var x4 = vertices[ii], y4 = vertices[ii + 1]; + var det2 = x3 * y4 - y3 * x4; + var width34 = x3 - x4, height34 = y3 - y4; + var det3 = width12 * height34 - height12 * width34; + var x = (det1 * width34 - width12 * det2) / det3; + if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { + var y = (det1 * height34 - height12 * det2) / det3; + if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) + return true; + } + x3 = x4; + y3 = y4; + } + return false; + }; + SkeletonBounds.prototype.getPolygon = function (boundingBox) { + if (boundingBox == null) + throw new Error("boundingBox cannot be null."); + var index = this.boundingBoxes.indexOf(boundingBox); + return index == -1 ? null : this.polygons[index]; + }; + SkeletonBounds.prototype.getWidth = function () { + return this.maxX - this.minX; + }; + SkeletonBounds.prototype.getHeight = function () { + return this.maxY - this.minY; + }; + return SkeletonBounds; + }()); + spine.SkeletonBounds = SkeletonBounds; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonClipping = (function () { - function SkeletonClipping() { - this.triangulator = new spine.Triangulator(); - this.clippingPolygon = new Array(); - this.clipOutput = new Array(); - this.clippedVertices = new Array(); - this.clippedTriangles = new Array(); - this.scratch = new Array(); - } - SkeletonClipping.prototype.clipStart = function (slot, clip) { - if (this.clipAttachment != null) - return 0; - this.clipAttachment = clip; - var n = clip.worldVerticesLength; - var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); - clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); - var clippingPolygon = this.clippingPolygon; - SkeletonClipping.makeClockwise(clippingPolygon); - var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); - for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { - var polygon = clippingPolygons[i]; - SkeletonClipping.makeClockwise(polygon); - polygon.push(polygon[0]); - polygon.push(polygon[1]); - } - return clippingPolygons.length; - }; - SkeletonClipping.prototype.clipEndWithSlot = function (slot) { - if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) - this.clipEnd(); - }; - SkeletonClipping.prototype.clipEnd = function () { - if (this.clipAttachment == null) - return; - this.clipAttachment = null; - this.clippingPolygons = null; - this.clippedVertices.length = 0; - this.clippedTriangles.length = 0; - this.clippingPolygon.length = 0; - }; - SkeletonClipping.prototype.isClipping = function () { - return this.clipAttachment != null; - }; - SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { - var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; - var clippedTriangles = this.clippedTriangles; - var polygons = this.clippingPolygons; - var polygonsCount = this.clippingPolygons.length; - var vertexSize = twoColor ? 12 : 8; - var index = 0; - clippedVertices.length = 0; - clippedTriangles.length = 0; - outer: for (var i = 0; i < trianglesLength; i += 3) { - var vertexOffset = triangles[i] << 1; - var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; - var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 1] << 1; - var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; - var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 2] << 1; - var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; - var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; - for (var p = 0; p < polygonsCount; p++) { - var s = clippedVertices.length; - if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { - var clipOutputLength = clipOutput.length; - if (clipOutputLength == 0) - continue; - var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; - var d = 1 / (d0 * d2 + d1 * (y1 - y3)); - var clipOutputCount = clipOutputLength >> 1; - var clipOutputItems = this.clipOutput; - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); - for (var ii = 0; ii < clipOutputLength; ii += 2) { - var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; - clippedVerticesItems[s] = x; - clippedVerticesItems[s + 1] = y; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - var c0 = x - x3, c1 = y - y3; - var a = (d0 * c0 + d1 * c1) * d; - var b = (d4 * c0 + d2 * c1) * d; - var c = 1 - a - b; - clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; - clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; - if (twoColor) { - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 8] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - } - s += vertexSize; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); - clipOutputCount--; - for (var ii = 1; ii < clipOutputCount; ii++) { - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + ii); - clippedTrianglesItems[s + 2] = (index + ii + 1); - s += 3; - } - index += clipOutputCount + 1; - } - else { - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); - clippedVerticesItems[s] = x1; - clippedVerticesItems[s + 1] = y1; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - if (!twoColor) { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = x2; - clippedVerticesItems[s + 9] = y2; - clippedVerticesItems[s + 10] = light.r; - clippedVerticesItems[s + 11] = light.g; - clippedVerticesItems[s + 12] = light.b; - clippedVerticesItems[s + 13] = light.a; - clippedVerticesItems[s + 14] = u2; - clippedVerticesItems[s + 15] = v2; - clippedVerticesItems[s + 16] = x3; - clippedVerticesItems[s + 17] = y3; - clippedVerticesItems[s + 18] = light.r; - clippedVerticesItems[s + 19] = light.g; - clippedVerticesItems[s + 20] = light.b; - clippedVerticesItems[s + 21] = light.a; - clippedVerticesItems[s + 22] = u3; - clippedVerticesItems[s + 23] = v3; - } - else { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 9] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - clippedVerticesItems[s + 12] = x2; - clippedVerticesItems[s + 13] = y2; - clippedVerticesItems[s + 14] = light.r; - clippedVerticesItems[s + 15] = light.g; - clippedVerticesItems[s + 16] = light.b; - clippedVerticesItems[s + 17] = light.a; - clippedVerticesItems[s + 18] = u2; - clippedVerticesItems[s + 19] = v2; - clippedVerticesItems[s + 20] = dark.r; - clippedVerticesItems[s + 21] = dark.g; - clippedVerticesItems[s + 22] = dark.b; - clippedVerticesItems[s + 23] = dark.a; - clippedVerticesItems[s + 24] = x3; - clippedVerticesItems[s + 25] = y3; - clippedVerticesItems[s + 26] = light.r; - clippedVerticesItems[s + 27] = light.g; - clippedVerticesItems[s + 28] = light.b; - clippedVerticesItems[s + 29] = light.a; - clippedVerticesItems[s + 30] = u3; - clippedVerticesItems[s + 31] = v3; - clippedVerticesItems[s + 32] = dark.r; - clippedVerticesItems[s + 33] = dark.g; - clippedVerticesItems[s + 34] = dark.b; - clippedVerticesItems[s + 35] = dark.a; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + 1); - clippedTrianglesItems[s + 2] = (index + 2); - index += 3; - continue outer; - } - } - } - }; - SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { - var originalOutput = output; - var clipped = false; - var input = null; - if (clippingArea.length % 4 >= 2) { - input = output; - output = this.scratch; - } - else - input = this.scratch; - input.length = 0; - input.push(x1); - input.push(y1); - input.push(x2); - input.push(y2); - input.push(x3); - input.push(y3); - input.push(x1); - input.push(y1); - output.length = 0; - var clippingVertices = clippingArea; - var clippingVerticesLast = clippingArea.length - 4; - for (var i = 0;; i += 2) { - var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; - var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; - var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; - var inputVertices = input; - var inputVerticesLength = input.length - 2, outputStart = output.length; - for (var ii = 0; ii < inputVerticesLength; ii += 2) { - var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; - var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; - var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; - if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { - if (side2) { - output.push(inputX2); - output.push(inputY2); - continue; - } - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - } - else if (side2) { - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - output.push(inputX2); - output.push(inputY2); - } - clipped = true; - } - if (outputStart == output.length) { - originalOutput.length = 0; - return true; - } - output.push(output[0]); - output.push(output[1]); - if (i == clippingVerticesLast) - break; - var temp = output; - output = input; - output.length = 0; - input = temp; - } - if (originalOutput != output) { - originalOutput.length = 0; - for (var i = 0, n = output.length - 2; i < n; i++) - originalOutput[i] = output[i]; - } - else - originalOutput.length = originalOutput.length - 2; - return clipped; - }; - SkeletonClipping.makeClockwise = function (polygon) { - var vertices = polygon; - var verticeslength = polygon.length; - var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; - for (var i = 0, n = verticeslength - 3; i < n; i += 2) { - p1x = vertices[i]; - p1y = vertices[i + 1]; - p2x = vertices[i + 2]; - p2y = vertices[i + 3]; - area += p1x * p2y - p2x * p1y; - } - if (area < 0) - return; - for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { - var x = vertices[i], y = vertices[i + 1]; - var other = lastX - i; - vertices[i] = vertices[other]; - vertices[i + 1] = vertices[other + 1]; - vertices[other] = x; - vertices[other + 1] = y; - } - }; - return SkeletonClipping; - }()); - spine.SkeletonClipping = SkeletonClipping; + var SkeletonClipping = (function () { + function SkeletonClipping() { + this.triangulator = new spine.Triangulator(); + this.clippingPolygon = new Array(); + this.clipOutput = new Array(); + this.clippedVertices = new Array(); + this.clippedTriangles = new Array(); + this.scratch = new Array(); + } + SkeletonClipping.prototype.clipStart = function (slot, clip) { + if (this.clipAttachment != null) + return 0; + this.clipAttachment = clip; + var n = clip.worldVerticesLength; + var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); + clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); + var clippingPolygon = this.clippingPolygon; + SkeletonClipping.makeClockwise(clippingPolygon); + var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); + for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { + var polygon = clippingPolygons[i]; + SkeletonClipping.makeClockwise(polygon); + polygon.push(polygon[0]); + polygon.push(polygon[1]); + } + return clippingPolygons.length; + }; + SkeletonClipping.prototype.clipEndWithSlot = function (slot) { + if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) + this.clipEnd(); + }; + SkeletonClipping.prototype.clipEnd = function () { + if (this.clipAttachment == null) + return; + this.clipAttachment = null; + this.clippingPolygons = null; + this.clippedVertices.length = 0; + this.clippedTriangles.length = 0; + this.clippingPolygon.length = 0; + }; + SkeletonClipping.prototype.isClipping = function () { + return this.clipAttachment != null; + }; + SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { + var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; + var clippedTriangles = this.clippedTriangles; + var polygons = this.clippingPolygons; + var polygonsCount = this.clippingPolygons.length; + var vertexSize = twoColor ? 12 : 8; + var index = 0; + clippedVertices.length = 0; + clippedTriangles.length = 0; + outer: for (var i = 0; i < trianglesLength; i += 3) { + var vertexOffset = triangles[i] << 1; + var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; + var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 1] << 1; + var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; + var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 2] << 1; + var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; + var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; + for (var p = 0; p < polygonsCount; p++) { + var s = clippedVertices.length; + if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { + var clipOutputLength = clipOutput.length; + if (clipOutputLength == 0) + continue; + var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; + var d = 1 / (d0 * d2 + d1 * (y1 - y3)); + var clipOutputCount = clipOutputLength >> 1; + var clipOutputItems = this.clipOutput; + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); + for (var ii = 0; ii < clipOutputLength; ii += 2) { + var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; + clippedVerticesItems[s] = x; + clippedVerticesItems[s + 1] = y; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + var c0 = x - x3, c1 = y - y3; + var a = (d0 * c0 + d1 * c1) * d; + var b = (d4 * c0 + d2 * c1) * d; + var c = 1 - a - b; + clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; + clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; + if (twoColor) { + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 8] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + } + s += vertexSize; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); + clipOutputCount--; + for (var ii = 1; ii < clipOutputCount; ii++) { + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + ii); + clippedTrianglesItems[s + 2] = (index + ii + 1); + s += 3; + } + index += clipOutputCount + 1; + } + else { + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); + clippedVerticesItems[s] = x1; + clippedVerticesItems[s + 1] = y1; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + if (!twoColor) { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = x2; + clippedVerticesItems[s + 9] = y2; + clippedVerticesItems[s + 10] = light.r; + clippedVerticesItems[s + 11] = light.g; + clippedVerticesItems[s + 12] = light.b; + clippedVerticesItems[s + 13] = light.a; + clippedVerticesItems[s + 14] = u2; + clippedVerticesItems[s + 15] = v2; + clippedVerticesItems[s + 16] = x3; + clippedVerticesItems[s + 17] = y3; + clippedVerticesItems[s + 18] = light.r; + clippedVerticesItems[s + 19] = light.g; + clippedVerticesItems[s + 20] = light.b; + clippedVerticesItems[s + 21] = light.a; + clippedVerticesItems[s + 22] = u3; + clippedVerticesItems[s + 23] = v3; + } + else { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 9] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + clippedVerticesItems[s + 12] = x2; + clippedVerticesItems[s + 13] = y2; + clippedVerticesItems[s + 14] = light.r; + clippedVerticesItems[s + 15] = light.g; + clippedVerticesItems[s + 16] = light.b; + clippedVerticesItems[s + 17] = light.a; + clippedVerticesItems[s + 18] = u2; + clippedVerticesItems[s + 19] = v2; + clippedVerticesItems[s + 20] = dark.r; + clippedVerticesItems[s + 21] = dark.g; + clippedVerticesItems[s + 22] = dark.b; + clippedVerticesItems[s + 23] = dark.a; + clippedVerticesItems[s + 24] = x3; + clippedVerticesItems[s + 25] = y3; + clippedVerticesItems[s + 26] = light.r; + clippedVerticesItems[s + 27] = light.g; + clippedVerticesItems[s + 28] = light.b; + clippedVerticesItems[s + 29] = light.a; + clippedVerticesItems[s + 30] = u3; + clippedVerticesItems[s + 31] = v3; + clippedVerticesItems[s + 32] = dark.r; + clippedVerticesItems[s + 33] = dark.g; + clippedVerticesItems[s + 34] = dark.b; + clippedVerticesItems[s + 35] = dark.a; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + 1); + clippedTrianglesItems[s + 2] = (index + 2); + index += 3; + continue outer; + } + } + } + }; + SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { + var originalOutput = output; + var clipped = false; + var input = null; + if (clippingArea.length % 4 >= 2) { + input = output; + output = this.scratch; + } + else + input = this.scratch; + input.length = 0; + input.push(x1); + input.push(y1); + input.push(x2); + input.push(y2); + input.push(x3); + input.push(y3); + input.push(x1); + input.push(y1); + output.length = 0; + var clippingVertices = clippingArea; + var clippingVerticesLast = clippingArea.length - 4; + for (var i = 0;; i += 2) { + var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; + var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; + var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; + var inputVertices = input; + var inputVerticesLength = input.length - 2, outputStart = output.length; + for (var ii = 0; ii < inputVerticesLength; ii += 2) { + var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; + var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; + var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; + if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { + if (side2) { + output.push(inputX2); + output.push(inputY2); + continue; + } + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + } + else if (side2) { + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY)); + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + output.push(inputX2); + output.push(inputY2); + } + clipped = true; + } + if (outputStart == output.length) { + originalOutput.length = 0; + return true; + } + output.push(output[0]); + output.push(output[1]); + if (i == clippingVerticesLast) + break; + var temp = output; + output = input; + output.length = 0; + input = temp; + } + if (originalOutput != output) { + originalOutput.length = 0; + for (var i = 0, n = output.length - 2; i < n; i++) + originalOutput[i] = output[i]; + } + else + originalOutput.length = originalOutput.length - 2; + return clipped; + }; + SkeletonClipping.makeClockwise = function (polygon) { + var vertices = polygon; + var verticeslength = polygon.length; + var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; + for (var i = 0, n = verticeslength - 3; i < n; i += 2) { + p1x = vertices[i]; + p1y = vertices[i + 1]; + p2x = vertices[i + 2]; + p2y = vertices[i + 3]; + area += p1x * p2y - p2x * p1y; + } + if (area < 0) + return; + for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { + var x = vertices[i], y = vertices[i + 1]; + var other = lastX - i; + vertices[i] = vertices[other]; + vertices[i + 1] = vertices[other + 1]; + vertices[other] = x; + vertices[other + 1] = y; + } + }; + return SkeletonClipping; + }()); + spine.SkeletonClipping = SkeletonClipping; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonData = (function () { - function SkeletonData() { - this.bones = new Array(); - this.slots = new Array(); - this.skins = new Array(); - this.events = new Array(); - this.animations = new Array(); - this.ikConstraints = new Array(); - this.transformConstraints = new Array(); - this.pathConstraints = new Array(); - this.fps = 0; - } - SkeletonData.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.name == boneName) - return bone; - } - return null; - }; - SkeletonData.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].name == boneName) - return i; - return -1; - }; - SkeletonData.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.name == slotName) - return slot; - } - return null; - }; - SkeletonData.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].name == slotName) - return i; - return -1; - }; - SkeletonData.prototype.findSkin = function (skinName) { - if (skinName == null) - throw new Error("skinName cannot be null."); - var skins = this.skins; - for (var i = 0, n = skins.length; i < n; i++) { - var skin = skins[i]; - if (skin.name == skinName) - return skin; - } - return null; - }; - SkeletonData.prototype.findEvent = function (eventDataName) { - if (eventDataName == null) - throw new Error("eventDataName cannot be null."); - var events = this.events; - for (var i = 0, n = events.length; i < n; i++) { - var event_4 = events[i]; - if (event_4.name == eventDataName) - return event_4; - } - return null; - }; - SkeletonData.prototype.findAnimation = function (animationName) { - if (animationName == null) - throw new Error("animationName cannot be null."); - var animations = this.animations; - for (var i = 0, n = animations.length; i < n; i++) { - var animation = animations[i]; - if (animation.name == animationName) - return animation; - } - return null; - }; - SkeletonData.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { - if (pathConstraintName == null) - throw new Error("pathConstraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) - if (pathConstraints[i].name == pathConstraintName) - return i; - return -1; - }; - return SkeletonData; - }()); - spine.SkeletonData = SkeletonData; + var SkeletonData = (function () { + function SkeletonData() { + this.bones = new Array(); + this.slots = new Array(); + this.skins = new Array(); + this.events = new Array(); + this.animations = new Array(); + this.ikConstraints = new Array(); + this.transformConstraints = new Array(); + this.pathConstraints = new Array(); + this.fps = 0; + } + SkeletonData.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.name == boneName) + return bone; + } + return null; + }; + SkeletonData.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].name == boneName) + return i; + return -1; + }; + SkeletonData.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.name == slotName) + return slot; + } + return null; + }; + SkeletonData.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].name == slotName) + return i; + return -1; + }; + SkeletonData.prototype.findSkin = function (skinName) { + if (skinName == null) + throw new Error("skinName cannot be null."); + var skins = this.skins; + for (var i = 0, n = skins.length; i < n; i++) { + var skin = skins[i]; + if (skin.name == skinName) + return skin; + } + return null; + }; + SkeletonData.prototype.findEvent = function (eventDataName) { + if (eventDataName == null) + throw new Error("eventDataName cannot be null."); + var events = this.events; + for (var i = 0, n = events.length; i < n; i++) { + var event_4 = events[i]; + if (event_4.name == eventDataName) + return event_4; + } + return null; + }; + SkeletonData.prototype.findAnimation = function (animationName) { + if (animationName == null) + throw new Error("animationName cannot be null."); + var animations = this.animations; + for (var i = 0, n = animations.length; i < n; i++) { + var animation = animations[i]; + if (animation.name == animationName) + return animation; + } + return null; + }; + SkeletonData.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { + if (pathConstraintName == null) + throw new Error("pathConstraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) + if (pathConstraints[i].name == pathConstraintName) + return i; + return -1; + }; + return SkeletonData; + }()); + spine.SkeletonData = SkeletonData; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonJson = (function () { - function SkeletonJson(attachmentLoader) { - this.scale = 1; - this.linkedMeshes = new Array(); - this.attachmentLoader = attachmentLoader; - } - SkeletonJson.prototype.readSkeletonData = function (json) { - var scale = this.scale; - var skeletonData = new spine.SkeletonData(); - var root = typeof (json) === "string" ? JSON.parse(json) : json; - var skeletonMap = root.skeleton; - if (skeletonMap != null) { - skeletonData.hash = skeletonMap.hash; - skeletonData.version = skeletonMap.spine; - skeletonData.width = skeletonMap.width; - skeletonData.height = skeletonMap.height; - skeletonData.fps = skeletonMap.fps; - skeletonData.imagesPath = skeletonMap.images; - } - if (root.bones) { - for (var i = 0; i < root.bones.length; i++) { - var boneMap = root.bones[i]; - var parent_2 = null; - var parentName = this.getValue(boneMap, "parent", null); - if (parentName != null) { - parent_2 = skeletonData.findBone(parentName); - if (parent_2 == null) - throw new Error("Parent bone not found: " + parentName); - } - var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); - data.length = this.getValue(boneMap, "length", 0) * scale; - data.x = this.getValue(boneMap, "x", 0) * scale; - data.y = this.getValue(boneMap, "y", 0) * scale; - data.rotation = this.getValue(boneMap, "rotation", 0); - data.scaleX = this.getValue(boneMap, "scaleX", 1); - data.scaleY = this.getValue(boneMap, "scaleY", 1); - data.shearX = this.getValue(boneMap, "shearX", 0); - data.shearY = this.getValue(boneMap, "shearY", 0); - data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); - skeletonData.bones.push(data); - } - } - if (root.slots) { - for (var i = 0; i < root.slots.length; i++) { - var slotMap = root.slots[i]; - var slotName = slotMap.name; - var boneName = slotMap.bone; - var boneData = skeletonData.findBone(boneName); - if (boneData == null) - throw new Error("Slot bone not found: " + boneName); - var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); - var color = this.getValue(slotMap, "color", null); - if (color != null) - data.color.setFromString(color); - var dark = this.getValue(slotMap, "dark", null); - if (dark != null) { - data.darkColor = new spine.Color(1, 1, 1, 1); - data.darkColor.setFromString(dark); - } - data.attachmentName = this.getValue(slotMap, "attachment", null); - data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); - skeletonData.slots.push(data); - } - } - if (root.ik) { - for (var i = 0; i < root.ik.length; i++) { - var constraintMap = root.ik[i]; - var data = new spine.IkConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("IK bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("IK target bone not found: " + targetName); - data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; - data.mix = this.getValue(constraintMap, "mix", 1); - skeletonData.ikConstraints.push(data); - } - } - if (root.transform) { - for (var i = 0; i < root.transform.length; i++) { - var constraintMap = root.transform[i]; - var data = new spine.TransformConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("Transform constraint target bone not found: " + targetName); - data.local = this.getValue(constraintMap, "local", false); - data.relative = this.getValue(constraintMap, "relative", false); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.offsetX = this.getValue(constraintMap, "x", 0) * scale; - data.offsetY = this.getValue(constraintMap, "y", 0) * scale; - data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); - data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); - data.offsetShearY = this.getValue(constraintMap, "shearY", 0); - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); - data.shearMix = this.getValue(constraintMap, "shearMix", 1); - skeletonData.transformConstraints.push(data); - } - } - if (root.path) { - for (var i = 0; i < root.path.length; i++) { - var constraintMap = root.path[i]; - var data = new spine.PathConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findSlot(targetName); - if (data.target == null) - throw new Error("Path target slot not found: " + targetName); - data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); - data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); - data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.position = this.getValue(constraintMap, "position", 0); - if (data.positionMode == spine.PositionMode.Fixed) - data.position *= scale; - data.spacing = this.getValue(constraintMap, "spacing", 0); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - data.spacing *= scale; - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - skeletonData.pathConstraints.push(data); - } - } - if (root.skins) { - for (var skinName in root.skins) { - var skinMap = root.skins[skinName]; - var skin = new spine.Skin(skinName); - for (var slotName in skinMap) { - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - var slotMap = skinMap[slotName]; - for (var entryName in slotMap) { - var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); - if (attachment != null) - skin.addAttachment(slotIndex, entryName, attachment); - } - } - skeletonData.skins.push(skin); - if (skin.name == "default") - skeletonData.defaultSkin = skin; - } - } - for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { - var linkedMesh = this.linkedMeshes[i]; - var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); - if (skin == null) - throw new Error("Skin not found: " + linkedMesh.skin); - var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_3 == null) - throw new Error("Parent mesh not found: " + linkedMesh.parent); - linkedMesh.mesh.setParentMesh(parent_3); - linkedMesh.mesh.updateUVs(); - } - this.linkedMeshes.length = 0; - if (root.events) { - for (var eventName in root.events) { - var eventMap = root.events[eventName]; - var data = new spine.EventData(eventName); - data.intValue = this.getValue(eventMap, "int", 0); - data.floatValue = this.getValue(eventMap, "float", 0); - data.stringValue = this.getValue(eventMap, "string", ""); - skeletonData.events.push(data); - } - } - if (root.animations) { - for (var animationName in root.animations) { - var animationMap = root.animations[animationName]; - this.readAnimation(animationMap, animationName, skeletonData); - } - } - return skeletonData; - }; - SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { - var scale = this.scale; - name = this.getValue(map, "name", name); - var type = this.getValue(map, "type", "region"); - switch (type) { - case "region": { - var path = this.getValue(map, "path", name); - var region = this.attachmentLoader.newRegionAttachment(skin, name, path); - if (region == null) - return null; - region.path = path; - region.x = this.getValue(map, "x", 0) * scale; - region.y = this.getValue(map, "y", 0) * scale; - region.scaleX = this.getValue(map, "scaleX", 1); - region.scaleY = this.getValue(map, "scaleY", 1); - region.rotation = this.getValue(map, "rotation", 0); - region.width = map.width * scale; - region.height = map.height * scale; - var color = this.getValue(map, "color", null); - if (color != null) - region.color.setFromString(color); - region.updateOffset(); - return region; - } - case "boundingbox": { - var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); - if (box == null) - return null; - this.readVertices(map, box, map.vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - box.color.setFromString(color); - return box; - } - case "mesh": - case "linkedmesh": { - var path = this.getValue(map, "path", name); - var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); - if (mesh == null) - return null; - mesh.path = path; - var color = this.getValue(map, "color", null); - if (color != null) - mesh.color.setFromString(color); - var parent_4 = this.getValue(map, "parent", null); - if (parent_4 != null) { - mesh.inheritDeform = this.getValue(map, "deform", true); - this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); - return mesh; - } - var uvs = map.uvs; - this.readVertices(map, mesh, uvs.length); - mesh.triangles = map.triangles; - mesh.regionUVs = uvs; - mesh.updateUVs(); - mesh.hullLength = this.getValue(map, "hull", 0) * 2; - return mesh; - } - case "path": { - var path = this.attachmentLoader.newPathAttachment(skin, name); - if (path == null) - return null; - path.closed = this.getValue(map, "closed", false); - path.constantSpeed = this.getValue(map, "constantSpeed", true); - var vertexCount = map.vertexCount; - this.readVertices(map, path, vertexCount << 1); - var lengths = spine.Utils.newArray(vertexCount / 3, 0); - for (var i = 0; i < map.lengths.length; i++) - lengths[i++] = map.lengths[i] * scale; - path.lengths = lengths; - var color = this.getValue(map, "color", null); - if (color != null) - path.color.setFromString(color); - return path; - } - case "point": { - var point = this.attachmentLoader.newPointAttachment(skin, name); - if (point == null) - return null; - point.x = this.getValue(map, "x", 0) * scale; - point.y = this.getValue(map, "y", 0) * scale; - point.rotation = this.getValue(map, "rotation", 0); - var color = this.getValue(map, "color", null); - if (color != null) - point.color.setFromString(color); - return point; - } - case "clipping": { - var clip = this.attachmentLoader.newClippingAttachment(skin, name); - if (clip == null) - return null; - var end = this.getValue(map, "end", null); - if (end != null) { - var slot = skeletonData.findSlot(end); - if (slot == null) - throw new Error("Clipping end slot not found: " + end); - clip.endSlot = slot; - } - var vertexCount = map.vertexCount; - this.readVertices(map, clip, vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - clip.color.setFromString(color); - return clip; - } - } - return null; - }; - SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { - var scale = this.scale; - attachment.worldVerticesLength = verticesLength; - var vertices = map.vertices; - if (verticesLength == vertices.length) { - var scaledVertices = spine.Utils.toFloatArray(vertices); - if (scale != 1) { - for (var i = 0, n = vertices.length; i < n; i++) - scaledVertices[i] *= scale; - } - attachment.vertices = scaledVertices; - return; - } - var weights = new Array(); - var bones = new Array(); - for (var i = 0, n = vertices.length; i < n;) { - var boneCount = vertices[i++]; - bones.push(boneCount); - for (var nn = i + boneCount * 4; i < nn; i += 4) { - bones.push(vertices[i]); - weights.push(vertices[i + 1] * scale); - weights.push(vertices[i + 2] * scale); - weights.push(vertices[i + 3]); - } - } - attachment.bones = bones; - attachment.vertices = spine.Utils.toFloatArray(weights); - }; - SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { - var scale = this.scale; - var timelines = new Array(); - var duration = 0; - if (map.slots) { - for (var slotName in map.slots) { - var slotMap = map.slots[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - if (timelineName == "attachment") { - var timeline = new spine.AttachmentTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - else if (timelineName == "color") { - var timeline = new spine.ColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var color = new spine.Color(); - color.setFromString(valueMap.color); - timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); - } - else if (timelineName == "twoColor") { - var timeline = new spine.TwoColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var light = new spine.Color(); - var dark = new spine.Color(); - light.setFromString(valueMap.light); - dark.setFromString(valueMap.dark); - timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); - } - } - } - if (map.bones) { - for (var boneName in map.bones) { - var boneMap = map.bones[boneName]; - var boneIndex = skeletonData.findBoneIndex(boneName); - if (boneIndex == -1) - throw new Error("Bone not found: " + boneName); - for (var timelineName in boneMap) { - var timelineMap = boneMap[timelineName]; - if (timelineName === "rotate") { - var timeline = new spine.RotateTimeline(timelineMap.length); - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); - } - else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "scale") - timeline = new spine.ScaleTimeline(timelineMap.length); - else if (timelineName === "shear") - timeline = new spine.ShearTimeline(timelineMap.length); - else { - timeline = new spine.TranslateTimeline(timelineMap.length); - timelineScale = scale; - } - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); - timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); - } - } - } - if (map.ik) { - for (var constraintName in map.ik) { - var constraintMap = map.ik[constraintName]; - var constraint = skeletonData.findIkConstraint(constraintName); - var timeline = new spine.IkConstraintTimeline(constraintMap.length); - timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); - } - } - if (map.transform) { - for (var constraintName in map.transform) { - var constraintMap = map.transform[constraintName]; - var constraint = skeletonData.findTransformConstraint(constraintName); - var timeline = new spine.TransformConstraintTimeline(constraintMap.length); - timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); - } - } - if (map.paths) { - for (var constraintName in map.paths) { - var constraintMap = map.paths[constraintName]; - var index = skeletonData.findPathConstraintIndex(constraintName); - if (index == -1) - throw new Error("Path constraint not found: " + constraintName); - var data = skeletonData.pathConstraints[index]; - for (var timelineName in constraintMap) { - var timelineMap = constraintMap[timelineName]; - if (timelineName === "position" || timelineName === "spacing") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "spacing") { - timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - timelineScale = scale; - } - else { - timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); - if (data.positionMode == spine.PositionMode.Fixed) - timelineScale = scale; - } - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); - } - else if (timelineName === "mix") { - var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); - } - } - } - } - if (map.deform) { - for (var deformName in map.deform) { - var deformMap = map.deform[deformName]; - var skin = skeletonData.findSkin(deformName); - if (skin == null) - throw new Error("Skin not found: " + deformName); - for (var slotName in deformMap) { - var slotMap = deformMap[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotMap.name); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - var attachment = skin.getAttachment(slotIndex, timelineName); - if (attachment == null) - throw new Error("Deform attachment not found: " + timelineMap.name); - var weighted = attachment.bones != null; - var vertices = attachment.vertices; - var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; - var timeline = new spine.DeformTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - timeline.attachment = attachment; - var frameIndex = 0; - for (var j = 0; j < timelineMap.length; j++) { - var valueMap = timelineMap[j]; - var deform = void 0; - var verticesValue = this.getValue(valueMap, "vertices", null); - if (verticesValue == null) - deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; - else { - deform = spine.Utils.newFloatArray(deformLength); - var start = this.getValue(valueMap, "offset", 0); - spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); - if (scale != 1) { - for (var i = start, n = i + verticesValue.length; i < n; i++) - deform[i] *= scale; - } - if (!weighted) { - for (var i = 0; i < deformLength; i++) - deform[i] += vertices[i]; - } - } - timeline.setFrame(frameIndex, valueMap.time, deform); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - } - } - } - var drawOrderNode = map.drawOrder; - if (drawOrderNode == null) - drawOrderNode = map.draworder; - if (drawOrderNode != null) { - var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); - var slotCount = skeletonData.slots.length; - var frameIndex = 0; - for (var j = 0; j < drawOrderNode.length; j++) { - var drawOrderMap = drawOrderNode[j]; - var drawOrder = null; - var offsets = this.getValue(drawOrderMap, "offsets", null); - if (offsets != null) { - drawOrder = spine.Utils.newArray(slotCount, -1); - var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); - var originalIndex = 0, unchangedIndex = 0; - for (var i = 0; i < offsets.length; i++) { - var offsetMap = offsets[i]; - var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); - if (slotIndex == -1) - throw new Error("Slot not found: " + offsetMap.slot); - while (originalIndex != slotIndex) - unchanged[unchangedIndex++] = originalIndex++; - drawOrder[originalIndex + offsetMap.offset] = originalIndex++; - } - while (originalIndex < slotCount) - unchanged[unchangedIndex++] = originalIndex++; - for (var i = slotCount - 1; i >= 0; i--) - if (drawOrder[i] == -1) - drawOrder[i] = unchanged[--unchangedIndex]; - } - timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (map.events) { - var timeline = new spine.EventTimeline(map.events.length); - var frameIndex = 0; - for (var i = 0; i < map.events.length; i++) { - var eventMap = map.events[i]; - var eventData = skeletonData.findEvent(eventMap.name); - if (eventData == null) - throw new Error("Event not found: " + eventMap.name); - var event_5 = new spine.Event(eventMap.time, eventData); - event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); - event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); - event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); - timeline.setFrame(frameIndex++, event_5); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (isNaN(duration)) { - throw new Error("Error while parsing animation, duration is NaN"); - } - skeletonData.animations.push(new spine.Animation(name, timelines, duration)); - }; - SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { - if (!map.curve) - return; - if (map.curve === "stepped") - timeline.setStepped(frameIndex); - else if (Object.prototype.toString.call(map.curve) === '[object Array]') { - var curve = map.curve; - timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); - } - }; - SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { - return map[prop] !== undefined ? map[prop] : defaultValue; - }; - SkeletonJson.blendModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.BlendMode.Normal; - if (str == "additive") - return spine.BlendMode.Additive; - if (str == "multiply") - return spine.BlendMode.Multiply; - if (str == "screen") - return spine.BlendMode.Screen; - throw new Error("Unknown blend mode: " + str); - }; - SkeletonJson.positionModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "fixed") - return spine.PositionMode.Fixed; - if (str == "percent") - return spine.PositionMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.spacingModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "length") - return spine.SpacingMode.Length; - if (str == "fixed") - return spine.SpacingMode.Fixed; - if (str == "percent") - return spine.SpacingMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.rotateModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "tangent") - return spine.RotateMode.Tangent; - if (str == "chain") - return spine.RotateMode.Chain; - if (str == "chainscale") - return spine.RotateMode.ChainScale; - throw new Error("Unknown rotate mode: " + str); - }; - SkeletonJson.transformModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.TransformMode.Normal; - if (str == "onlytranslation") - return spine.TransformMode.OnlyTranslation; - if (str == "norotationorreflection") - return spine.TransformMode.NoRotationOrReflection; - if (str == "noscale") - return spine.TransformMode.NoScale; - if (str == "noscaleorreflection") - return spine.TransformMode.NoScaleOrReflection; - throw new Error("Unknown transform mode: " + str); - }; - return SkeletonJson; - }()); - spine.SkeletonJson = SkeletonJson; - var LinkedMesh = (function () { - function LinkedMesh(mesh, skin, slotIndex, parent) { - this.mesh = mesh; - this.skin = skin; - this.slotIndex = slotIndex; - this.parent = parent; - } - return LinkedMesh; - }()); + var SkeletonJson = (function () { + function SkeletonJson(attachmentLoader) { + this.scale = 1; + this.linkedMeshes = new Array(); + this.attachmentLoader = attachmentLoader; + } + SkeletonJson.prototype.readSkeletonData = function (json) { + var scale = this.scale; + var skeletonData = new spine.SkeletonData(); + var root = typeof (json) === "string" ? JSON.parse(json) : json; + var skeletonMap = root.skeleton; + if (skeletonMap != null) { + skeletonData.hash = skeletonMap.hash; + skeletonData.version = skeletonMap.spine; + skeletonData.width = skeletonMap.width; + skeletonData.height = skeletonMap.height; + skeletonData.fps = skeletonMap.fps; + skeletonData.imagesPath = skeletonMap.images; + } + if (root.bones) { + for (var i = 0; i < root.bones.length; i++) { + var boneMap = root.bones[i]; + var parent_2 = null; + var parentName = this.getValue(boneMap, "parent", null); + if (parentName != null) { + parent_2 = skeletonData.findBone(parentName); + if (parent_2 == null) + throw new Error("Parent bone not found: " + parentName); + } + var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_2); + data.length = this.getValue(boneMap, "length", 0) * scale; + data.x = this.getValue(boneMap, "x", 0) * scale; + data.y = this.getValue(boneMap, "y", 0) * scale; + data.rotation = this.getValue(boneMap, "rotation", 0); + data.scaleX = this.getValue(boneMap, "scaleX", 1); + data.scaleY = this.getValue(boneMap, "scaleY", 1); + data.shearX = this.getValue(boneMap, "shearX", 0); + data.shearY = this.getValue(boneMap, "shearY", 0); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); + skeletonData.bones.push(data); + } + } + if (root.slots) { + for (var i = 0; i < root.slots.length; i++) { + var slotMap = root.slots[i]; + var slotName = slotMap.name; + var boneName = slotMap.bone; + var boneData = skeletonData.findBone(boneName); + if (boneData == null) + throw new Error("Slot bone not found: " + boneName); + var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); + var color = this.getValue(slotMap, "color", null); + if (color != null) + data.color.setFromString(color); + var dark = this.getValue(slotMap, "dark", null); + if (dark != null) { + data.darkColor = new spine.Color(1, 1, 1, 1); + data.darkColor.setFromString(dark); + } + data.attachmentName = this.getValue(slotMap, "attachment", null); + data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); + skeletonData.slots.push(data); + } + } + if (root.ik) { + for (var i = 0; i < root.ik.length; i++) { + var constraintMap = root.ik[i]; + var data = new spine.IkConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("IK bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("IK target bone not found: " + targetName); + data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; + data.mix = this.getValue(constraintMap, "mix", 1); + skeletonData.ikConstraints.push(data); + } + } + if (root.transform) { + for (var i = 0; i < root.transform.length; i++) { + var constraintMap = root.transform[i]; + var data = new spine.TransformConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("Transform constraint target bone not found: " + targetName); + data.local = this.getValue(constraintMap, "local", false); + data.relative = this.getValue(constraintMap, "relative", false); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.offsetX = this.getValue(constraintMap, "x", 0) * scale; + data.offsetY = this.getValue(constraintMap, "y", 0) * scale; + data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); + data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); + data.offsetShearY = this.getValue(constraintMap, "shearY", 0); + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); + data.shearMix = this.getValue(constraintMap, "shearMix", 1); + skeletonData.transformConstraints.push(data); + } + } + if (root.path) { + for (var i = 0; i < root.path.length; i++) { + var constraintMap = root.path[i]; + var data = new spine.PathConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findSlot(targetName); + if (data.target == null) + throw new Error("Path target slot not found: " + targetName); + data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); + data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); + data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.position = this.getValue(constraintMap, "position", 0); + if (data.positionMode == spine.PositionMode.Fixed) + data.position *= scale; + data.spacing = this.getValue(constraintMap, "spacing", 0); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + data.spacing *= scale; + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + skeletonData.pathConstraints.push(data); + } + } + if (root.skins) { + for (var skinName in root.skins) { + var skinMap = root.skins[skinName]; + var skin = new spine.Skin(skinName); + for (var slotName in skinMap) { + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + var slotMap = skinMap[slotName]; + for (var entryName in slotMap) { + var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData); + if (attachment != null) + skin.addAttachment(slotIndex, entryName, attachment); + } + } + skeletonData.skins.push(skin); + if (skin.name == "default") + skeletonData.defaultSkin = skin; + } + } + for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { + var linkedMesh = this.linkedMeshes[i]; + var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); + if (skin == null) + throw new Error("Skin not found: " + linkedMesh.skin); + var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); + if (parent_3 == null) + throw new Error("Parent mesh not found: " + linkedMesh.parent); + linkedMesh.mesh.setParentMesh(parent_3); + linkedMesh.mesh.updateUVs(); + } + this.linkedMeshes.length = 0; + if (root.events) { + for (var eventName in root.events) { + var eventMap = root.events[eventName]; + var data = new spine.EventData(eventName); + data.intValue = this.getValue(eventMap, "int", 0); + data.floatValue = this.getValue(eventMap, "float", 0); + data.stringValue = this.getValue(eventMap, "string", ""); + skeletonData.events.push(data); + } + } + if (root.animations) { + for (var animationName in root.animations) { + var animationMap = root.animations[animationName]; + this.readAnimation(animationMap, animationName, skeletonData); + } + } + return skeletonData; + }; + SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { + var scale = this.scale; + name = this.getValue(map, "name", name); + var type = this.getValue(map, "type", "region"); + switch (type) { + case "region": { + var path = this.getValue(map, "path", name); + var region = this.attachmentLoader.newRegionAttachment(skin, name, path); + if (region == null) + return null; + region.path = path; + region.x = this.getValue(map, "x", 0) * scale; + region.y = this.getValue(map, "y", 0) * scale; + region.scaleX = this.getValue(map, "scaleX", 1); + region.scaleY = this.getValue(map, "scaleY", 1); + region.rotation = this.getValue(map, "rotation", 0); + region.width = map.width * scale; + region.height = map.height * scale; + var color = this.getValue(map, "color", null); + if (color != null) + region.color.setFromString(color); + region.updateOffset(); + return region; + } + case "boundingbox": { + var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); + if (box == null) + return null; + this.readVertices(map, box, map.vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + box.color.setFromString(color); + return box; + } + case "mesh": + case "linkedmesh": { + var path = this.getValue(map, "path", name); + var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); + if (mesh == null) + return null; + mesh.path = path; + var color = this.getValue(map, "color", null); + if (color != null) + mesh.color.setFromString(color); + var parent_4 = this.getValue(map, "parent", null); + if (parent_4 != null) { + mesh.inheritDeform = this.getValue(map, "deform", true); + this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); + return mesh; + } + var uvs = map.uvs; + this.readVertices(map, mesh, uvs.length); + mesh.triangles = map.triangles; + mesh.regionUVs = uvs; + mesh.updateUVs(); + mesh.hullLength = this.getValue(map, "hull", 0) * 2; + return mesh; + } + case "path": { + var path = this.attachmentLoader.newPathAttachment(skin, name); + if (path == null) + return null; + path.closed = this.getValue(map, "closed", false); + path.constantSpeed = this.getValue(map, "constantSpeed", true); + var vertexCount = map.vertexCount; + this.readVertices(map, path, vertexCount << 1); + var lengths = spine.Utils.newArray(vertexCount / 3, 0); + for (var i = 0; i < map.lengths.length; i++) + lengths[i++] = map.lengths[i] * scale; + path.lengths = lengths; + var color = this.getValue(map, "color", null); + if (color != null) + path.color.setFromString(color); + return path; + } + case "point": { + var point = this.attachmentLoader.newPointAttachment(skin, name); + if (point == null) + return null; + point.x = this.getValue(map, "x", 0) * scale; + point.y = this.getValue(map, "y", 0) * scale; + point.rotation = this.getValue(map, "rotation", 0); + var color = this.getValue(map, "color", null); + if (color != null) + point.color.setFromString(color); + return point; + } + case "clipping": { + var clip = this.attachmentLoader.newClippingAttachment(skin, name); + if (clip == null) + return null; + var end = this.getValue(map, "end", null); + if (end != null) { + var slot = skeletonData.findSlot(end); + if (slot == null) + throw new Error("Clipping end slot not found: " + end); + clip.endSlot = slot; + } + var vertexCount = map.vertexCount; + this.readVertices(map, clip, vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + clip.color.setFromString(color); + return clip; + } + } + return null; + }; + SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { + var scale = this.scale; + attachment.worldVerticesLength = verticesLength; + var vertices = map.vertices; + if (verticesLength == vertices.length) { + var scaledVertices = spine.Utils.toFloatArray(vertices); + if (scale != 1) { + for (var i = 0, n = vertices.length; i < n; i++) + scaledVertices[i] *= scale; + } + attachment.vertices = scaledVertices; + return; + } + var weights = new Array(); + var bones = new Array(); + for (var i = 0, n = vertices.length; i < n;) { + var boneCount = vertices[i++]; + bones.push(boneCount); + for (var nn = i + boneCount * 4; i < nn; i += 4) { + bones.push(vertices[i]); + weights.push(vertices[i + 1] * scale); + weights.push(vertices[i + 2] * scale); + weights.push(vertices[i + 3]); + } + } + attachment.bones = bones; + attachment.vertices = spine.Utils.toFloatArray(weights); + }; + SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { + var scale = this.scale; + var timelines = new Array(); + var duration = 0; + if (map.slots) { + for (var slotName in map.slots) { + var slotMap = map.slots[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + if (timelineName == "attachment") { + var timeline = new spine.AttachmentTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex++, valueMap.time, valueMap.name); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + else if (timelineName == "color") { + var timeline = new spine.ColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var color = new spine.Color(); + color.setFromString(valueMap.color); + timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); + } + else if (timelineName == "twoColor") { + var timeline = new spine.TwoColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var light = new spine.Color(); + var dark = new spine.Color(); + light.setFromString(valueMap.light); + dark.setFromString(valueMap.dark); + timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); + } + } + } + if (map.bones) { + for (var boneName in map.bones) { + var boneMap = map.bones[boneName]; + var boneIndex = skeletonData.findBoneIndex(boneName); + if (boneIndex == -1) + throw new Error("Bone not found: " + boneName); + for (var timelineName in boneMap) { + var timelineMap = boneMap[timelineName]; + if (timelineName === "rotate") { + var timeline = new spine.RotateTimeline(timelineMap.length); + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, valueMap.angle); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); + } + else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "scale") + timeline = new spine.ScaleTimeline(timelineMap.length); + else if (timelineName === "shear") + timeline = new spine.ShearTimeline(timelineMap.length); + else { + timeline = new spine.TranslateTimeline(timelineMap.length); + timelineScale = scale; + } + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0); + timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); + } + } + } + if (map.ik) { + for (var constraintName in map.ik) { + var constraintMap = map.ik[constraintName]; + var constraint = skeletonData.findIkConstraint(constraintName); + var timeline = new spine.IkConstraintTimeline(constraintMap.length); + timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); + } + } + if (map.transform) { + for (var constraintName in map.transform) { + var constraintMap = map.transform[constraintName]; + var constraint = skeletonData.findTransformConstraint(constraintName); + var timeline = new spine.TransformConstraintTimeline(constraintMap.length); + timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); + } + } + if (map.paths) { + for (var constraintName in map.paths) { + var constraintMap = map.paths[constraintName]; + var index = skeletonData.findPathConstraintIndex(constraintName); + if (index == -1) + throw new Error("Path constraint not found: " + constraintName); + var data = skeletonData.pathConstraints[index]; + for (var timelineName in constraintMap) { + var timelineMap = constraintMap[timelineName]; + if (timelineName === "position" || timelineName === "spacing") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "spacing") { + timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + timelineScale = scale; + } + else { + timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); + if (data.positionMode == spine.PositionMode.Fixed) + timelineScale = scale; + } + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); + } + else if (timelineName === "mix") { + var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); + } + } + } + } + if (map.deform) { + for (var deformName in map.deform) { + var deformMap = map.deform[deformName]; + var skin = skeletonData.findSkin(deformName); + if (skin == null) + throw new Error("Skin not found: " + deformName); + for (var slotName in deformMap) { + var slotMap = deformMap[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotMap.name); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + var attachment = skin.getAttachment(slotIndex, timelineName); + if (attachment == null) + throw new Error("Deform attachment not found: " + timelineMap.name); + var weighted = attachment.bones != null; + var vertices = attachment.vertices; + var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; + var timeline = new spine.DeformTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + timeline.attachment = attachment; + var frameIndex = 0; + for (var j = 0; j < timelineMap.length; j++) { + var valueMap = timelineMap[j]; + var deform = void 0; + var verticesValue = this.getValue(valueMap, "vertices", null); + if (verticesValue == null) + deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; + else { + deform = spine.Utils.newFloatArray(deformLength); + var start = this.getValue(valueMap, "offset", 0); + spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); + if (scale != 1) { + for (var i = start, n = i + verticesValue.length; i < n; i++) + deform[i] *= scale; + } + if (!weighted) { + for (var i = 0; i < deformLength; i++) + deform[i] += vertices[i]; + } + } + timeline.setFrame(frameIndex, valueMap.time, deform); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + } + } + } + var drawOrderNode = map.drawOrder; + if (drawOrderNode == null) + drawOrderNode = map.draworder; + if (drawOrderNode != null) { + var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); + var slotCount = skeletonData.slots.length; + var frameIndex = 0; + for (var j = 0; j < drawOrderNode.length; j++) { + var drawOrderMap = drawOrderNode[j]; + var drawOrder = null; + var offsets = this.getValue(drawOrderMap, "offsets", null); + if (offsets != null) { + drawOrder = spine.Utils.newArray(slotCount, -1); + var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); + var originalIndex = 0, unchangedIndex = 0; + for (var i = 0; i < offsets.length; i++) { + var offsetMap = offsets[i]; + var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); + if (slotIndex == -1) + throw new Error("Slot not found: " + offsetMap.slot); + while (originalIndex != slotIndex) + unchanged[unchangedIndex++] = originalIndex++; + drawOrder[originalIndex + offsetMap.offset] = originalIndex++; + } + while (originalIndex < slotCount) + unchanged[unchangedIndex++] = originalIndex++; + for (var i = slotCount - 1; i >= 0; i--) + if (drawOrder[i] == -1) + drawOrder[i] = unchanged[--unchangedIndex]; + } + timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (map.events) { + var timeline = new spine.EventTimeline(map.events.length); + var frameIndex = 0; + for (var i = 0; i < map.events.length; i++) { + var eventMap = map.events[i]; + var eventData = skeletonData.findEvent(eventMap.name); + if (eventData == null) + throw new Error("Event not found: " + eventMap.name); + var event_5 = new spine.Event(eventMap.time, eventData); + event_5.intValue = this.getValue(eventMap, "int", eventData.intValue); + event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue); + event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue); + timeline.setFrame(frameIndex++, event_5); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (isNaN(duration)) { + throw new Error("Error while parsing animation, duration is NaN"); + } + skeletonData.animations.push(new spine.Animation(name, timelines, duration)); + }; + SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { + if (!map.curve) + return; + if (map.curve === "stepped") + timeline.setStepped(frameIndex); + else if (Object.prototype.toString.call(map.curve) === '[object Array]') { + var curve = map.curve; + timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]); + } + }; + SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { + return map[prop] !== undefined ? map[prop] : defaultValue; + }; + SkeletonJson.blendModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.BlendMode.Normal; + if (str == "additive") + return spine.BlendMode.Additive; + if (str == "multiply") + return spine.BlendMode.Multiply; + if (str == "screen") + return spine.BlendMode.Screen; + throw new Error("Unknown blend mode: " + str); + }; + SkeletonJson.positionModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "fixed") + return spine.PositionMode.Fixed; + if (str == "percent") + return spine.PositionMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.spacingModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "length") + return spine.SpacingMode.Length; + if (str == "fixed") + return spine.SpacingMode.Fixed; + if (str == "percent") + return spine.SpacingMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.rotateModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "tangent") + return spine.RotateMode.Tangent; + if (str == "chain") + return spine.RotateMode.Chain; + if (str == "chainscale") + return spine.RotateMode.ChainScale; + throw new Error("Unknown rotate mode: " + str); + }; + SkeletonJson.transformModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.TransformMode.Normal; + if (str == "onlytranslation") + return spine.TransformMode.OnlyTranslation; + if (str == "norotationorreflection") + return spine.TransformMode.NoRotationOrReflection; + if (str == "noscale") + return spine.TransformMode.NoScale; + if (str == "noscaleorreflection") + return spine.TransformMode.NoScaleOrReflection; + throw new Error("Unknown transform mode: " + str); + }; + return SkeletonJson; + }()); + spine.SkeletonJson = SkeletonJson; + var LinkedMesh = (function () { + function LinkedMesh(mesh, skin, slotIndex, parent) { + this.mesh = mesh; + this.skin = skin; + this.slotIndex = slotIndex; + this.parent = parent; + } + return LinkedMesh; + }()); })(spine || (spine = {})); var spine; (function (spine) { - var Skin = (function () { - function Skin(name) { - this.attachments = new Array(); - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - Skin.prototype.addAttachment = function (slotIndex, name, attachment) { - if (attachment == null) - throw new Error("attachment cannot be null."); - var attachments = this.attachments; - if (slotIndex >= attachments.length) - attachments.length = slotIndex + 1; - if (!attachments[slotIndex]) - attachments[slotIndex] = {}; - attachments[slotIndex][name] = attachment; - }; - Skin.prototype.getAttachment = function (slotIndex, name) { - var dictionary = this.attachments[slotIndex]; - return dictionary ? dictionary[name] : null; - }; - Skin.prototype.attachAll = function (skeleton, oldSkin) { - var slotIndex = 0; - for (var i = 0; i < skeleton.slots.length; i++) { - var slot = skeleton.slots[i]; - var slotAttachment = slot.getAttachment(); - if (slotAttachment && slotIndex < oldSkin.attachments.length) { - var dictionary = oldSkin.attachments[slotIndex]; - for (var key in dictionary) { - var skinAttachment = dictionary[key]; - if (slotAttachment == skinAttachment) { - var attachment = this.getAttachment(slotIndex, key); - if (attachment != null) - slot.setAttachment(attachment); - break; - } - } - } - slotIndex++; - } - }; - return Skin; - }()); - spine.Skin = Skin; + var Skin = (function () { + function Skin(name) { + this.attachments = new Array(); + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + Skin.prototype.addAttachment = function (slotIndex, name, attachment) { + if (attachment == null) + throw new Error("attachment cannot be null."); + var attachments = this.attachments; + if (slotIndex >= attachments.length) + attachments.length = slotIndex + 1; + if (!attachments[slotIndex]) + attachments[slotIndex] = {}; + attachments[slotIndex][name] = attachment; + }; + Skin.prototype.getAttachment = function (slotIndex, name) { + var dictionary = this.attachments[slotIndex]; + return dictionary ? dictionary[name] : null; + }; + Skin.prototype.attachAll = function (skeleton, oldSkin) { + var slotIndex = 0; + for (var i = 0; i < skeleton.slots.length; i++) { + var slot = skeleton.slots[i]; + var slotAttachment = slot.getAttachment(); + if (slotAttachment && slotIndex < oldSkin.attachments.length) { + var dictionary = oldSkin.attachments[slotIndex]; + for (var key in dictionary) { + var skinAttachment = dictionary[key]; + if (slotAttachment == skinAttachment) { + var attachment = this.getAttachment(slotIndex, key); + if (attachment != null) + slot.setAttachment(attachment); + break; + } + } + } + slotIndex++; + } + }; + return Skin; + }()); + spine.Skin = Skin; })(spine || (spine = {})); var spine; (function (spine) { - var Slot = (function () { - function Slot(data, bone) { - this.attachmentVertices = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (bone == null) - throw new Error("bone cannot be null."); - this.data = data; - this.bone = bone; - this.color = new spine.Color(); - this.darkColor = data.darkColor == null ? null : new spine.Color(); - this.setToSetupPose(); - } - Slot.prototype.getAttachment = function () { - return this.attachment; - }; - Slot.prototype.setAttachment = function (attachment) { - if (this.attachment == attachment) - return; - this.attachment = attachment; - this.attachmentTime = this.bone.skeleton.time; - this.attachmentVertices.length = 0; - }; - Slot.prototype.setAttachmentTime = function (time) { - this.attachmentTime = this.bone.skeleton.time - time; - }; - Slot.prototype.getAttachmentTime = function () { - return this.bone.skeleton.time - this.attachmentTime; - }; - Slot.prototype.setToSetupPose = function () { - this.color.setFromColor(this.data.color); - if (this.darkColor != null) - this.darkColor.setFromColor(this.data.darkColor); - if (this.data.attachmentName == null) - this.attachment = null; - else { - this.attachment = null; - this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); - } - }; - return Slot; - }()); - spine.Slot = Slot; + var Slot = (function () { + function Slot(data, bone) { + this.attachmentVertices = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (bone == null) + throw new Error("bone cannot be null."); + this.data = data; + this.bone = bone; + this.color = new spine.Color(); + this.darkColor = data.darkColor == null ? null : new spine.Color(); + this.setToSetupPose(); + } + Slot.prototype.getAttachment = function () { + return this.attachment; + }; + Slot.prototype.setAttachment = function (attachment) { + if (this.attachment == attachment) + return; + this.attachment = attachment; + this.attachmentTime = this.bone.skeleton.time; + this.attachmentVertices.length = 0; + }; + Slot.prototype.setAttachmentTime = function (time) { + this.attachmentTime = this.bone.skeleton.time - time; + }; + Slot.prototype.getAttachmentTime = function () { + return this.bone.skeleton.time - this.attachmentTime; + }; + Slot.prototype.setToSetupPose = function () { + this.color.setFromColor(this.data.color); + if (this.darkColor != null) + this.darkColor.setFromColor(this.data.darkColor); + if (this.data.attachmentName == null) + this.attachment = null; + else { + this.attachment = null; + this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); + } + }; + return Slot; + }()); + spine.Slot = Slot; })(spine || (spine = {})); var spine; (function (spine) { - var SlotData = (function () { - function SlotData(index, name, boneData) { - this.color = new spine.Color(1, 1, 1, 1); - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - if (boneData == null) - throw new Error("boneData cannot be null."); - this.index = index; - this.name = name; - this.boneData = boneData; - } - return SlotData; - }()); - spine.SlotData = SlotData; + var SlotData = (function () { + function SlotData(index, name, boneData) { + this.color = new spine.Color(1, 1, 1, 1); + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + if (boneData == null) + throw new Error("boneData cannot be null."); + this.index = index; + this.name = name; + this.boneData = boneData; + } + return SlotData; + }()); + spine.SlotData = SlotData; })(spine || (spine = {})); var spine; (function (spine) { - var Texture = (function () { - function Texture(image) { - this._image = image; - } - Texture.prototype.getImage = function () { - return this._image; - }; - Texture.filterFromString = function (text) { - switch (text.toLowerCase()) { - case "nearest": return TextureFilter.Nearest; - case "linear": return TextureFilter.Linear; - case "mipmap": return TextureFilter.MipMap; - case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; - case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; - case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; - case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; - default: throw new Error("Unknown texture filter " + text); - } - }; - Texture.wrapFromString = function (text) { - switch (text.toLowerCase()) { - case "mirroredtepeat": return TextureWrap.MirroredRepeat; - case "clamptoedge": return TextureWrap.ClampToEdge; - case "repeat": return TextureWrap.Repeat; - default: throw new Error("Unknown texture wrap " + text); - } - }; - return Texture; - }()); - spine.Texture = Texture; - (function (TextureFilter) { - TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; - TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; - TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; - TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; - TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; - TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; - TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; - })(spine.TextureFilter || (spine.TextureFilter = {})); - var TextureFilter = spine.TextureFilter; - (function (TextureWrap) { - TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; - TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; - TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; - })(spine.TextureWrap || (spine.TextureWrap = {})); - var TextureWrap = spine.TextureWrap; - var TextureRegion = (function () { - function TextureRegion() { - this.u = 0; - this.v = 0; - this.u2 = 0; - this.v2 = 0; - this.width = 0; - this.height = 0; - this.rotate = false; - this.offsetX = 0; - this.offsetY = 0; - this.originalWidth = 0; - this.originalHeight = 0; - } - return TextureRegion; - }()); - spine.TextureRegion = TextureRegion; + var Texture = (function () { + function Texture(image) { + this._image = image; + } + Texture.prototype.getImage = function () { + return this._image; + }; + Texture.filterFromString = function (text) { + switch (text.toLowerCase()) { + case "nearest": return TextureFilter.Nearest; + case "linear": return TextureFilter.Linear; + case "mipmap": return TextureFilter.MipMap; + case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; + case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; + case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; + case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; + default: throw new Error("Unknown texture filter " + text); + } + }; + Texture.wrapFromString = function (text) { + switch (text.toLowerCase()) { + case "mirroredtepeat": return TextureWrap.MirroredRepeat; + case "clamptoedge": return TextureWrap.ClampToEdge; + case "repeat": return TextureWrap.Repeat; + default: throw new Error("Unknown texture wrap " + text); + } + }; + return Texture; + }()); + spine.Texture = Texture; + (function (TextureFilter) { + TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; + TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; + TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; + TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; + TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; + TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; + TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; + })(spine.TextureFilter || (spine.TextureFilter = {})); + var TextureFilter = spine.TextureFilter; + (function (TextureWrap) { + TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; + TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; + TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; + })(spine.TextureWrap || (spine.TextureWrap = {})); + var TextureWrap = spine.TextureWrap; + var TextureRegion = (function () { + function TextureRegion() { + this.u = 0; + this.v = 0; + this.u2 = 0; + this.v2 = 0; + this.width = 0; + this.height = 0; + this.rotate = false; + this.offsetX = 0; + this.offsetY = 0; + this.originalWidth = 0; + this.originalHeight = 0; + } + return TextureRegion; + }()); + spine.TextureRegion = TextureRegion; })(spine || (spine = {})); var spine; (function (spine) { - var TextureAtlas = (function () { - function TextureAtlas(atlasText, textureLoader) { - this.pages = new Array(); - this.regions = new Array(); - this.load(atlasText, textureLoader); - } - TextureAtlas.prototype.load = function (atlasText, textureLoader) { - if (textureLoader == null) - throw new Error("textureLoader cannot be null."); - var reader = new TextureAtlasReader(atlasText); - var tuple = new Array(4); - var page = null; - while (true) { - var line = reader.readLine(); - if (line == null) - break; - line = line.trim(); - if (line.length == 0) - page = null; - else if (!page) { - page = new TextureAtlasPage(); - page.name = line; - if (reader.readTuple(tuple) == 2) { - page.width = parseInt(tuple[0]); - page.height = parseInt(tuple[1]); - reader.readTuple(tuple); - } - reader.readTuple(tuple); - page.minFilter = spine.Texture.filterFromString(tuple[0]); - page.magFilter = spine.Texture.filterFromString(tuple[1]); - var direction = reader.readValue(); - page.uWrap = spine.TextureWrap.ClampToEdge; - page.vWrap = spine.TextureWrap.ClampToEdge; - if (direction == "x") - page.uWrap = spine.TextureWrap.Repeat; - else if (direction == "y") - page.vWrap = spine.TextureWrap.Repeat; - else if (direction == "xy") - page.uWrap = page.vWrap = spine.TextureWrap.Repeat; - page.texture = textureLoader(line); - page.texture.setFilters(page.minFilter, page.magFilter); - page.texture.setWraps(page.uWrap, page.vWrap); - page.width = page.texture.getImage().width; - page.height = page.texture.getImage().height; - this.pages.push(page); - } - else { - var region = new TextureAtlasRegion(); - region.name = line; - region.page = page; - region.rotate = reader.readValue() == "true"; - reader.readTuple(tuple); - var x = parseInt(tuple[0]); - var y = parseInt(tuple[1]); - reader.readTuple(tuple); - var width = parseInt(tuple[0]); - var height = parseInt(tuple[1]); - region.u = x / page.width; - region.v = y / page.height; - if (region.rotate) { - region.u2 = (x + height) / page.width; - region.v2 = (y + width) / page.height; - } - else { - region.u2 = (x + width) / page.width; - region.v2 = (y + height) / page.height; - } - region.x = x; - region.y = y; - region.width = Math.abs(width); - region.height = Math.abs(height); - if (reader.readTuple(tuple) == 4) { - if (reader.readTuple(tuple) == 4) { - reader.readTuple(tuple); - } - } - region.originalWidth = parseInt(tuple[0]); - region.originalHeight = parseInt(tuple[1]); - reader.readTuple(tuple); - region.offsetX = parseInt(tuple[0]); - region.offsetY = parseInt(tuple[1]); - region.index = parseInt(reader.readValue()); - region.texture = page.texture; - this.regions.push(region); - } - } - }; - TextureAtlas.prototype.findRegion = function (name) { - for (var i = 0; i < this.regions.length; i++) { - if (this.regions[i].name == name) { - return this.regions[i]; - } - } - return null; - }; - TextureAtlas.prototype.dispose = function () { - for (var i = 0; i < this.pages.length; i++) { - this.pages[i].texture.dispose(); - } - }; - return TextureAtlas; - }()); - spine.TextureAtlas = TextureAtlas; - var TextureAtlasReader = (function () { - function TextureAtlasReader(text) { - this.index = 0; - this.lines = text.split(/\r\n|\r|\n/); - } - TextureAtlasReader.prototype.readLine = function () { - if (this.index >= this.lines.length) - return null; - return this.lines[this.index++]; - }; - TextureAtlasReader.prototype.readValue = function () { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - return line.substring(colon + 1).trim(); - }; - TextureAtlasReader.prototype.readTuple = function (tuple) { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - var i = 0, lastMatch = colon + 1; - for (; i < 3; i++) { - var comma = line.indexOf(",", lastMatch); - if (comma == -1) - break; - tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); - lastMatch = comma + 1; - } - tuple[i] = line.substring(lastMatch).trim(); - return i + 1; - }; - return TextureAtlasReader; - }()); - var TextureAtlasPage = (function () { - function TextureAtlasPage() { - } - return TextureAtlasPage; - }()); - spine.TextureAtlasPage = TextureAtlasPage; - var TextureAtlasRegion = (function (_super) { - __extends(TextureAtlasRegion, _super); - function TextureAtlasRegion() { - _super.apply(this, arguments); - } - return TextureAtlasRegion; - }(spine.TextureRegion)); - spine.TextureAtlasRegion = TextureAtlasRegion; + var TextureAtlas = (function () { + function TextureAtlas(atlasText, textureLoader) { + this.pages = new Array(); + this.regions = new Array(); + this.load(atlasText, textureLoader); + } + TextureAtlas.prototype.load = function (atlasText, textureLoader) { + if (textureLoader == null) + throw new Error("textureLoader cannot be null."); + var reader = new TextureAtlasReader(atlasText); + var tuple = new Array(4); + var page = null; + while (true) { + var line = reader.readLine(); + if (line == null) + break; + line = line.trim(); + if (line.length == 0) + page = null; + else if (!page) { + page = new TextureAtlasPage(); + page.name = line; + if (reader.readTuple(tuple) == 2) { + page.width = parseInt(tuple[0]); + page.height = parseInt(tuple[1]); + reader.readTuple(tuple); + } + reader.readTuple(tuple); + page.minFilter = spine.Texture.filterFromString(tuple[0]); + page.magFilter = spine.Texture.filterFromString(tuple[1]); + var direction = reader.readValue(); + page.uWrap = spine.TextureWrap.ClampToEdge; + page.vWrap = spine.TextureWrap.ClampToEdge; + if (direction == "x") + page.uWrap = spine.TextureWrap.Repeat; + else if (direction == "y") + page.vWrap = spine.TextureWrap.Repeat; + else if (direction == "xy") + page.uWrap = page.vWrap = spine.TextureWrap.Repeat; + page.texture = textureLoader(line); + page.texture.setFilters(page.minFilter, page.magFilter); + page.texture.setWraps(page.uWrap, page.vWrap); + page.width = page.texture.getImage().width; + page.height = page.texture.getImage().height; + this.pages.push(page); + } + else { + var region = new TextureAtlasRegion(); + region.name = line; + region.page = page; + region.rotate = reader.readValue() == "true"; + reader.readTuple(tuple); + var x = parseInt(tuple[0]); + var y = parseInt(tuple[1]); + reader.readTuple(tuple); + var width = parseInt(tuple[0]); + var height = parseInt(tuple[1]); + region.u = x / page.width; + region.v = y / page.height; + if (region.rotate) { + region.u2 = (x + height) / page.width; + region.v2 = (y + width) / page.height; + } + else { + region.u2 = (x + width) / page.width; + region.v2 = (y + height) / page.height; + } + region.x = x; + region.y = y; + region.width = Math.abs(width); + region.height = Math.abs(height); + if (reader.readTuple(tuple) == 4) { + if (reader.readTuple(tuple) == 4) { + reader.readTuple(tuple); + } + } + region.originalWidth = parseInt(tuple[0]); + region.originalHeight = parseInt(tuple[1]); + reader.readTuple(tuple); + region.offsetX = parseInt(tuple[0]); + region.offsetY = parseInt(tuple[1]); + region.index = parseInt(reader.readValue()); + region.texture = page.texture; + this.regions.push(region); + } + } + }; + TextureAtlas.prototype.findRegion = function (name) { + for (var i = 0; i < this.regions.length; i++) { + if (this.regions[i].name == name) { + return this.regions[i]; + } + } + return null; + }; + TextureAtlas.prototype.dispose = function () { + for (var i = 0; i < this.pages.length; i++) { + this.pages[i].texture.dispose(); + } + }; + return TextureAtlas; + }()); + spine.TextureAtlas = TextureAtlas; + var TextureAtlasReader = (function () { + function TextureAtlasReader(text) { + this.index = 0; + this.lines = text.split(/\r\n|\r|\n/); + } + TextureAtlasReader.prototype.readLine = function () { + if (this.index >= this.lines.length) + return null; + return this.lines[this.index++]; + }; + TextureAtlasReader.prototype.readValue = function () { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + return line.substring(colon + 1).trim(); + }; + TextureAtlasReader.prototype.readTuple = function (tuple) { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + var i = 0, lastMatch = colon + 1; + for (; i < 3; i++) { + var comma = line.indexOf(",", lastMatch); + if (comma == -1) + break; + tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); + lastMatch = comma + 1; + } + tuple[i] = line.substring(lastMatch).trim(); + return i + 1; + }; + return TextureAtlasReader; + }()); + var TextureAtlasPage = (function () { + function TextureAtlasPage() { + } + return TextureAtlasPage; + }()); + spine.TextureAtlasPage = TextureAtlasPage; + var TextureAtlasRegion = (function (_super) { + __extends(TextureAtlasRegion, _super); + function TextureAtlasRegion() { + _super.apply(this, arguments); + } + return TextureAtlasRegion; + }(spine.TextureRegion)); + spine.TextureAtlasRegion = TextureAtlasRegion; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraint = (function () { - function TransformConstraint(data, skeleton) { - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.temp = new spine.Vector2(); - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - this.scaleMix = data.scaleMix; - this.shearMix = data.shearMix; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - TransformConstraint.prototype.apply = function () { - this.update(); - }; - TransformConstraint.prototype.update = function () { - if (this.data.local) { - if (this.data.relative) - this.applyRelativeLocal(); - else - this.applyAbsoluteLocal(); - } - else { - if (this.data.relative) - this.applyRelativeWorld(); - else - this.applyAbsoluteWorld(); - } - }; - TransformConstraint.prototype.applyAbsoluteWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect; - var offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += (temp.x - bone.worldX) * translateMix; - bone.worldY += (temp.y - bone.worldY) * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); - var ts = Math.sqrt(ta * ta + tc * tc); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; - bone.a *= s; - bone.c *= s; - s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); - ts = Math.sqrt(tb * tb + td * td); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var b = bone.b, d = bone.d; - var by = Math.atan2(d, b); - var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r = by + (r + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyRelativeWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += temp.x * translateMix; - bone.worldY += temp.y * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; - bone.a *= s; - bone.c *= s; - s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var r = Math.atan2(td, tb) - Math.atan2(tc, ta); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - var b = bone.b, d = bone.d; - r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyAbsoluteLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) { - var r = target.arotation - rotation + this.data.offsetRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - rotation += r * rotateMix; - } - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax - x + this.data.offsetX) * translateMix; - y += (target.ay - y + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; - if (scaleY > 0.00001) - scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; - } - var shearY = bone.ashearY; - if (shearMix > 0) { - var r = target.ashearY - shearY + this.data.offsetShearY; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.shearY += r * shearMix; - } - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.applyRelativeLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) - rotation += (target.arotation + this.data.offsetRotation) * rotateMix; - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax + this.data.offsetX) * translateMix; - y += (target.ay + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix > 0) { - if (scaleX > 0.00001) - scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; - if (scaleY > 0.00001) - scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; - } - var shearY = bone.ashearY; - if (shearMix > 0) - shearY += (target.ashearY + this.data.offsetShearY) * shearMix; - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.getOrder = function () { - return this.data.order; - }; - return TransformConstraint; - }()); - spine.TransformConstraint = TransformConstraint; + var TransformConstraint = (function () { + function TransformConstraint(data, skeleton) { + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.temp = new spine.Vector2(); + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + this.scaleMix = data.scaleMix; + this.shearMix = data.shearMix; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + TransformConstraint.prototype.apply = function () { + this.update(); + }; + TransformConstraint.prototype.update = function () { + if (this.data.local) { + if (this.data.relative) + this.applyRelativeLocal(); + else + this.applyAbsoluteLocal(); + } + else { + if (this.data.relative) + this.applyRelativeWorld(); + else + this.applyAbsoluteWorld(); + } + }; + TransformConstraint.prototype.applyAbsoluteWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect; + var offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += (temp.x - bone.worldX) * translateMix; + bone.worldY += (temp.y - bone.worldY) * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var ts = Math.sqrt(ta * ta + tc * tc); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; + bone.a *= s; + bone.c *= s; + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + ts = Math.sqrt(tb * tb + td * td); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var b = bone.b, d = bone.d; + var by = Math.atan2(d, b); + var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r = by + (r + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyRelativeWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += temp.x * translateMix; + bone.worldY += temp.y * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; + bone.a *= s; + bone.c *= s; + s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var r = Math.atan2(td, tb) - Math.atan2(tc, ta); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + var b = bone.b, d = bone.d; + r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyAbsoluteLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) { + var r = target.arotation - rotation + this.data.offsetRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + rotation += r * rotateMix; + } + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax - x + this.data.offsetX) * translateMix; + y += (target.ay - y + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; + if (scaleY > 0.00001) + scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; + } + var shearY = bone.ashearY; + if (shearMix > 0) { + var r = target.ashearY - shearY + this.data.offsetShearY; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.shearY += r * shearMix; + } + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.applyRelativeLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) + rotation += (target.arotation + this.data.offsetRotation) * rotateMix; + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax + this.data.offsetX) * translateMix; + y += (target.ay + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix > 0) { + if (scaleX > 0.00001) + scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; + if (scaleY > 0.00001) + scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; + } + var shearY = bone.ashearY; + if (shearMix > 0) + shearY += (target.ashearY + this.data.offsetShearY) * shearMix; + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.getOrder = function () { + return this.data.order; + }; + return TransformConstraint; + }()); + spine.TransformConstraint = TransformConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraintData = (function () { - function TransformConstraintData(name) { - this.order = 0; - this.bones = new Array(); - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.offsetRotation = 0; - this.offsetX = 0; - this.offsetY = 0; - this.offsetScaleX = 0; - this.offsetScaleY = 0; - this.offsetShearY = 0; - this.relative = false; - this.local = false; - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return TransformConstraintData; - }()); - spine.TransformConstraintData = TransformConstraintData; + var TransformConstraintData = (function () { + function TransformConstraintData(name) { + this.order = 0; + this.bones = new Array(); + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.offsetRotation = 0; + this.offsetX = 0; + this.offsetY = 0; + this.offsetScaleX = 0; + this.offsetScaleY = 0; + this.offsetShearY = 0; + this.relative = false; + this.local = false; + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return TransformConstraintData; + }()); + spine.TransformConstraintData = TransformConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var Triangulator = (function () { - function Triangulator() { - this.convexPolygons = new Array(); - this.convexPolygonsIndices = new Array(); - this.indicesArray = new Array(); - this.isConcaveArray = new Array(); - this.triangles = new Array(); - this.polygonPool = new spine.Pool(function () { - return new Array(); - }); - this.polygonIndicesPool = new spine.Pool(function () { - return new Array(); - }); - } - Triangulator.prototype.triangulate = function (verticesArray) { - var vertices = verticesArray; - var vertexCount = verticesArray.length >> 1; - var indices = this.indicesArray; - indices.length = 0; - for (var i = 0; i < vertexCount; i++) - indices[i] = i; - var isConcave = this.isConcaveArray; - isConcave.length = 0; - for (var i = 0, n = vertexCount; i < n; ++i) - isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); - var triangles = this.triangles; - triangles.length = 0; - while (vertexCount > 3) { - var previous = vertexCount - 1, i = 0, next = 1; - while (true) { - outer: if (!isConcave[i]) { - var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; - var p1x = vertices[p1], p1y = vertices[p1 + 1]; - var p2x = vertices[p2], p2y = vertices[p2 + 1]; - var p3x = vertices[p3], p3y = vertices[p3 + 1]; - for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { - if (!isConcave[ii]) - continue; - var v = indices[ii] << 1; - var vx = vertices[v], vy = vertices[v + 1]; - if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { - if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { - if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) - break outer; - } - } - } - break; - } - if (next == 0) { - do { - if (!isConcave[i]) - break; - i--; - } while (i > 0); - break; - } - previous = i; - i = next; - next = (next + 1) % vertexCount; - } - triangles.push(indices[(vertexCount + i - 1) % vertexCount]); - triangles.push(indices[i]); - triangles.push(indices[(i + 1) % vertexCount]); - indices.splice(i, 1); - isConcave.splice(i, 1); - vertexCount--; - var previousIndex = (vertexCount + i - 1) % vertexCount; - var nextIndex = i == vertexCount ? 0 : i; - isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); - isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); - } - if (vertexCount == 3) { - triangles.push(indices[2]); - triangles.push(indices[0]); - triangles.push(indices[1]); - } - return triangles; - }; - Triangulator.prototype.decompose = function (verticesArray, triangles) { - var vertices = verticesArray; - var convexPolygons = this.convexPolygons; - this.polygonPool.freeAll(convexPolygons); - convexPolygons.length = 0; - var convexPolygonsIndices = this.convexPolygonsIndices; - this.polygonIndicesPool.freeAll(convexPolygonsIndices); - convexPolygonsIndices.length = 0; - var polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - var polygon = this.polygonPool.obtain(); - polygon.length = 0; - var fanBaseIndex = -1, lastWinding = 0; - for (var i = 0, n = triangles.length; i < n; i += 3) { - var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; - var x1 = vertices[t1], y1 = vertices[t1 + 1]; - var x2 = vertices[t2], y2 = vertices[t2 + 1]; - var x3 = vertices[t3], y3 = vertices[t3 + 1]; - var merged = false; - if (fanBaseIndex == t1) { - var o = polygon.length - 4; - var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); - var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); - if (winding1 == lastWinding && winding2 == lastWinding) { - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(t3); - merged = true; - } - } - if (!merged) { - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - else { - this.polygonPool.free(polygon); - this.polygonIndicesPool.free(polygonIndices); - } - polygon = this.polygonPool.obtain(); - polygon.length = 0; - polygon.push(x1); - polygon.push(y1); - polygon.push(x2); - polygon.push(y2); - polygon.push(x3); - polygon.push(y3); - polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - polygonIndices.push(t1); - polygonIndices.push(t2); - polygonIndices.push(t3); - lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); - fanBaseIndex = t1; - } - } - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - for (var i = 0, n = convexPolygons.length; i < n; i++) { - polygonIndices = convexPolygonsIndices[i]; - if (polygonIndices.length == 0) - continue; - var firstIndex = polygonIndices[0]; - var lastIndex = polygonIndices[polygonIndices.length - 1]; - polygon = convexPolygons[i]; - var o = polygon.length - 4; - var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; - var prevX = polygon[o + 2], prevY = polygon[o + 3]; - var firstX = polygon[0], firstY = polygon[1]; - var secondX = polygon[2], secondY = polygon[3]; - var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); - for (var ii = 0; ii < n; ii++) { - if (ii == i) - continue; - var otherIndices = convexPolygonsIndices[ii]; - if (otherIndices.length != 3) - continue; - var otherFirstIndex = otherIndices[0]; - var otherSecondIndex = otherIndices[1]; - var otherLastIndex = otherIndices[2]; - var otherPoly = convexPolygons[ii]; - var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; - if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) - continue; - var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); - var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); - if (winding1 == winding && winding2 == winding) { - otherPoly.length = 0; - otherIndices.length = 0; - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(otherLastIndex); - prevPrevX = prevX; - prevPrevY = prevY; - prevX = x3; - prevY = y3; - ii = 0; - } - } - } - for (var i = convexPolygons.length - 1; i >= 0; i--) { - polygon = convexPolygons[i]; - if (polygon.length == 0) { - convexPolygons.splice(i, 1); - this.polygonPool.free(polygon); - polygonIndices = convexPolygonsIndices[i]; - convexPolygonsIndices.splice(i, 1); - this.polygonIndicesPool.free(polygonIndices); - } - } - return convexPolygons; - }; - Triangulator.isConcave = function (index, vertexCount, vertices, indices) { - var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; - var current = indices[index] << 1; - var next = indices[(index + 1) % vertexCount] << 1; - return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); - }; - Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { - return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; - }; - Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { - var px = p2x - p1x, py = p2y - p1y; - return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; - }; - return Triangulator; - }()); - spine.Triangulator = Triangulator; + var Triangulator = (function () { + function Triangulator() { + this.convexPolygons = new Array(); + this.convexPolygonsIndices = new Array(); + this.indicesArray = new Array(); + this.isConcaveArray = new Array(); + this.triangles = new Array(); + this.polygonPool = new spine.Pool(function () { + return new Array(); + }); + this.polygonIndicesPool = new spine.Pool(function () { + return new Array(); + }); + } + Triangulator.prototype.triangulate = function (verticesArray) { + var vertices = verticesArray; + var vertexCount = verticesArray.length >> 1; + var indices = this.indicesArray; + indices.length = 0; + for (var i = 0; i < vertexCount; i++) + indices[i] = i; + var isConcave = this.isConcaveArray; + isConcave.length = 0; + for (var i = 0, n = vertexCount; i < n; ++i) + isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); + var triangles = this.triangles; + triangles.length = 0; + while (vertexCount > 3) { + var previous = vertexCount - 1, i = 0, next = 1; + while (true) { + outer: if (!isConcave[i]) { + var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; + var p1x = vertices[p1], p1y = vertices[p1 + 1]; + var p2x = vertices[p2], p2y = vertices[p2 + 1]; + var p3x = vertices[p3], p3y = vertices[p3 + 1]; + for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { + if (!isConcave[ii]) + continue; + var v = indices[ii] << 1; + var vx = vertices[v], vy = vertices[v + 1]; + if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { + if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { + if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) + break outer; + } + } + } + break; + } + if (next == 0) { + do { + if (!isConcave[i]) + break; + i--; + } while (i > 0); + break; + } + previous = i; + i = next; + next = (next + 1) % vertexCount; + } + triangles.push(indices[(vertexCount + i - 1) % vertexCount]); + triangles.push(indices[i]); + triangles.push(indices[(i + 1) % vertexCount]); + indices.splice(i, 1); + isConcave.splice(i, 1); + vertexCount--; + var previousIndex = (vertexCount + i - 1) % vertexCount; + var nextIndex = i == vertexCount ? 0 : i; + isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); + isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); + } + if (vertexCount == 3) { + triangles.push(indices[2]); + triangles.push(indices[0]); + triangles.push(indices[1]); + } + return triangles; + }; + Triangulator.prototype.decompose = function (verticesArray, triangles) { + var vertices = verticesArray; + var convexPolygons = this.convexPolygons; + this.polygonPool.freeAll(convexPolygons); + convexPolygons.length = 0; + var convexPolygonsIndices = this.convexPolygonsIndices; + this.polygonIndicesPool.freeAll(convexPolygonsIndices); + convexPolygonsIndices.length = 0; + var polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + var polygon = this.polygonPool.obtain(); + polygon.length = 0; + var fanBaseIndex = -1, lastWinding = 0; + for (var i = 0, n = triangles.length; i < n; i += 3) { + var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; + var x1 = vertices[t1], y1 = vertices[t1 + 1]; + var x2 = vertices[t2], y2 = vertices[t2 + 1]; + var x3 = vertices[t3], y3 = vertices[t3 + 1]; + var merged = false; + if (fanBaseIndex == t1) { + var o = polygon.length - 4; + var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); + var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); + if (winding1 == lastWinding && winding2 == lastWinding) { + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(t3); + merged = true; + } + } + if (!merged) { + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + else { + this.polygonPool.free(polygon); + this.polygonIndicesPool.free(polygonIndices); + } + polygon = this.polygonPool.obtain(); + polygon.length = 0; + polygon.push(x1); + polygon.push(y1); + polygon.push(x2); + polygon.push(y2); + polygon.push(x3); + polygon.push(y3); + polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + polygonIndices.push(t1); + polygonIndices.push(t2); + polygonIndices.push(t3); + lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); + fanBaseIndex = t1; + } + } + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + for (var i = 0, n = convexPolygons.length; i < n; i++) { + polygonIndices = convexPolygonsIndices[i]; + if (polygonIndices.length == 0) + continue; + var firstIndex = polygonIndices[0]; + var lastIndex = polygonIndices[polygonIndices.length - 1]; + polygon = convexPolygons[i]; + var o = polygon.length - 4; + var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; + var prevX = polygon[o + 2], prevY = polygon[o + 3]; + var firstX = polygon[0], firstY = polygon[1]; + var secondX = polygon[2], secondY = polygon[3]; + var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); + for (var ii = 0; ii < n; ii++) { + if (ii == i) + continue; + var otherIndices = convexPolygonsIndices[ii]; + if (otherIndices.length != 3) + continue; + var otherFirstIndex = otherIndices[0]; + var otherSecondIndex = otherIndices[1]; + var otherLastIndex = otherIndices[2]; + var otherPoly = convexPolygons[ii]; + var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; + if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) + continue; + var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); + var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); + if (winding1 == winding && winding2 == winding) { + otherPoly.length = 0; + otherIndices.length = 0; + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(otherLastIndex); + prevPrevX = prevX; + prevPrevY = prevY; + prevX = x3; + prevY = y3; + ii = 0; + } + } + } + for (var i = convexPolygons.length - 1; i >= 0; i--) { + polygon = convexPolygons[i]; + if (polygon.length == 0) { + convexPolygons.splice(i, 1); + this.polygonPool.free(polygon); + polygonIndices = convexPolygonsIndices[i]; + convexPolygonsIndices.splice(i, 1); + this.polygonIndicesPool.free(polygonIndices); + } + } + return convexPolygons; + }; + Triangulator.isConcave = function (index, vertexCount, vertices, indices) { + var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; + var current = indices[index] << 1; + var next = indices[(index + 1) % vertexCount] << 1; + return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); + }; + Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { + return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; + }; + Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { + var px = p2x - p1x, py = p2y - p1y; + return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; + }; + return Triangulator; + }()); + spine.Triangulator = Triangulator; })(spine || (spine = {})); var spine; (function (spine) { - var IntSet = (function () { - function IntSet() { - this.array = new Array(); - } - IntSet.prototype.add = function (value) { - var contains = this.contains(value); - this.array[value | 0] = value | 0; - return !contains; - }; - IntSet.prototype.contains = function (value) { - return this.array[value | 0] != undefined; - }; - IntSet.prototype.remove = function (value) { - this.array[value | 0] = undefined; - }; - IntSet.prototype.clear = function () { - this.array.length = 0; - }; - return IntSet; - }()); - spine.IntSet = IntSet; - var Color = (function () { - function Color(r, g, b, a) { - if (r === void 0) { r = 0; } - if (g === void 0) { g = 0; } - if (b === void 0) { b = 0; } - if (a === void 0) { a = 0; } - this.r = r; - this.g = g; - this.b = b; - this.a = a; - } - Color.prototype.set = function (r, g, b, a) { - this.r = r; - this.g = g; - this.b = b; - this.a = a; - this.clamp(); - return this; - }; - Color.prototype.setFromColor = function (c) { - this.r = c.r; - this.g = c.g; - this.b = c.b; - this.a = c.a; - return this; - }; - Color.prototype.setFromString = function (hex) { - hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; - this.r = parseInt(hex.substr(0, 2), 16) / 255.0; - this.g = parseInt(hex.substr(2, 2), 16) / 255.0; - this.b = parseInt(hex.substr(4, 2), 16) / 255.0; - this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; - return this; - }; - Color.prototype.add = function (r, g, b, a) { - this.r += r; - this.g += g; - this.b += b; - this.a += a; - this.clamp(); - return this; - }; - Color.prototype.clamp = function () { - if (this.r < 0) - this.r = 0; - else if (this.r > 1) - this.r = 1; - if (this.g < 0) - this.g = 0; - else if (this.g > 1) - this.g = 1; - if (this.b < 0) - this.b = 0; - else if (this.b > 1) - this.b = 1; - if (this.a < 0) - this.a = 0; - else if (this.a > 1) - this.a = 1; - return this; - }; - Color.WHITE = new Color(1, 1, 1, 1); - Color.RED = new Color(1, 0, 0, 1); - Color.GREEN = new Color(0, 1, 0, 1); - Color.BLUE = new Color(0, 0, 1, 1); - Color.MAGENTA = new Color(1, 0, 1, 1); - return Color; - }()); - spine.Color = Color; - var MathUtils = (function () { - function MathUtils() { - } - MathUtils.clamp = function (value, min, max) { - if (value < min) - return min; - if (value > max) - return max; - return value; - }; - MathUtils.cosDeg = function (degrees) { - return Math.cos(degrees * MathUtils.degRad); - }; - MathUtils.sinDeg = function (degrees) { - return Math.sin(degrees * MathUtils.degRad); - }; - MathUtils.signum = function (value) { - return value > 0 ? 1 : value < 0 ? -1 : 0; - }; - MathUtils.toInt = function (x) { - return x > 0 ? Math.floor(x) : Math.ceil(x); - }; - MathUtils.cbrt = function (x) { - var y = Math.pow(Math.abs(x), 1 / 3); - return x < 0 ? -y : y; - }; - MathUtils.PI = 3.1415927; - MathUtils.PI2 = MathUtils.PI * 2; - MathUtils.radiansToDegrees = 180 / MathUtils.PI; - MathUtils.radDeg = MathUtils.radiansToDegrees; - MathUtils.degreesToRadians = MathUtils.PI / 180; - MathUtils.degRad = MathUtils.degreesToRadians; - return MathUtils; - }()); - spine.MathUtils = MathUtils; - var Utils = (function () { - function Utils() { - } - Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { - for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { - dest[j] = source[i]; - } - }; - Utils.setArraySize = function (array, size, value) { - if (value === void 0) { value = 0; } - var oldSize = array.length; - if (oldSize == size) - return array; - array.length = size; - if (oldSize < size) { - for (var i = oldSize; i < size; i++) - array[i] = value; - } - return array; - }; - Utils.ensureArrayCapacity = function (array, size, value) { - if (value === void 0) { value = 0; } - if (array.length >= size) - return array; - return Utils.setArraySize(array, size, value); - }; - Utils.newArray = function (size, defaultValue) { - var array = new Array(size); - for (var i = 0; i < size; i++) - array[i] = defaultValue; - return array; - }; - Utils.newFloatArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Float32Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.newShortArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Int16Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.toFloatArray = function (array) { - return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; - }; - Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; - return Utils; - }()); - spine.Utils = Utils; - var DebugUtils = (function () { - function DebugUtils() { - } - DebugUtils.logBones = function (skeleton) { - for (var i = 0; i < skeleton.bones.length; i++) { - var bone = skeleton.bones[i]; - console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); - } - }; - return DebugUtils; - }()); - spine.DebugUtils = DebugUtils; - var Pool = (function () { - function Pool(instantiator) { - this.items = new Array(); - this.instantiator = instantiator; - } - Pool.prototype.obtain = function () { - return this.items.length > 0 ? this.items.pop() : this.instantiator(); - }; - Pool.prototype.free = function (item) { - if (item.reset) - item.reset(); - this.items.push(item); - }; - Pool.prototype.freeAll = function (items) { - for (var i = 0; i < items.length; i++) { - if (items[i].reset) - items[i].reset(); - this.items[i] = items[i]; - } - }; - Pool.prototype.clear = function () { - this.items.length = 0; - }; - return Pool; - }()); - spine.Pool = Pool; - var Vector2 = (function () { - function Vector2(x, y) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - this.x = x; - this.y = y; - } - Vector2.prototype.set = function (x, y) { - this.x = x; - this.y = y; - return this; - }; - Vector2.prototype.length = function () { - var x = this.x; - var y = this.y; - return Math.sqrt(x * x + y * y); - }; - Vector2.prototype.normalize = function () { - var len = this.length(); - if (len != 0) { - this.x /= len; - this.y /= len; - } - return this; - }; - return Vector2; - }()); - spine.Vector2 = Vector2; - var TimeKeeper = (function () { - function TimeKeeper() { - this.maxDelta = 0.064; - this.framesPerSecond = 0; - this.delta = 0; - this.totalTime = 0; - this.lastTime = Date.now() / 1000; - this.frameCount = 0; - this.frameTime = 0; - } - TimeKeeper.prototype.update = function () { - var now = Date.now() / 1000; - this.delta = now - this.lastTime; - this.frameTime += this.delta; - this.totalTime += this.delta; - if (this.delta > this.maxDelta) - this.delta = this.maxDelta; - this.lastTime = now; - this.frameCount++; - if (this.frameTime > 1) { - this.framesPerSecond = this.frameCount / this.frameTime; - this.frameTime = 0; - this.frameCount = 0; - } - }; - return TimeKeeper; - }()); - spine.TimeKeeper = TimeKeeper; - var WindowedMean = (function () { - function WindowedMean(windowSize) { - if (windowSize === void 0) { windowSize = 32; } - this.addedValues = 0; - this.lastValue = 0; - this.mean = 0; - this.dirty = true; - this.values = new Array(windowSize); - } - WindowedMean.prototype.hasEnoughData = function () { - return this.addedValues >= this.values.length; - }; - WindowedMean.prototype.addValue = function (value) { - if (this.addedValues < this.values.length) - this.addedValues++; - this.values[this.lastValue++] = value; - if (this.lastValue > this.values.length - 1) - this.lastValue = 0; - this.dirty = true; - }; - WindowedMean.prototype.getMean = function () { - if (this.hasEnoughData()) { - if (this.dirty) { - var mean = 0; - for (var i = 0; i < this.values.length; i++) { - mean += this.values[i]; - } - this.mean = mean / this.values.length; - this.dirty = false; - } - return this.mean; - } - else { - return 0; - } - }; - return WindowedMean; - }()); - spine.WindowedMean = WindowedMean; + var IntSet = (function () { + function IntSet() { + this.array = new Array(); + } + IntSet.prototype.add = function (value) { + var contains = this.contains(value); + this.array[value | 0] = value | 0; + return !contains; + }; + IntSet.prototype.contains = function (value) { + return this.array[value | 0] != undefined; + }; + IntSet.prototype.remove = function (value) { + this.array[value | 0] = undefined; + }; + IntSet.prototype.clear = function () { + this.array.length = 0; + }; + return IntSet; + }()); + spine.IntSet = IntSet; + var Color = (function () { + function Color(r, g, b, a) { + if (r === void 0) { r = 0; } + if (g === void 0) { g = 0; } + if (b === void 0) { b = 0; } + if (a === void 0) { a = 0; } + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + Color.prototype.set = function (r, g, b, a) { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + this.clamp(); + return this; + }; + Color.prototype.setFromColor = function (c) { + this.r = c.r; + this.g = c.g; + this.b = c.b; + this.a = c.a; + return this; + }; + Color.prototype.setFromString = function (hex) { + hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; + this.r = parseInt(hex.substr(0, 2), 16) / 255.0; + this.g = parseInt(hex.substr(2, 2), 16) / 255.0; + this.b = parseInt(hex.substr(4, 2), 16) / 255.0; + this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; + return this; + }; + Color.prototype.add = function (r, g, b, a) { + this.r += r; + this.g += g; + this.b += b; + this.a += a; + this.clamp(); + return this; + }; + Color.prototype.clamp = function () { + if (this.r < 0) + this.r = 0; + else if (this.r > 1) + this.r = 1; + if (this.g < 0) + this.g = 0; + else if (this.g > 1) + this.g = 1; + if (this.b < 0) + this.b = 0; + else if (this.b > 1) + this.b = 1; + if (this.a < 0) + this.a = 0; + else if (this.a > 1) + this.a = 1; + return this; + }; + Color.WHITE = new Color(1, 1, 1, 1); + Color.RED = new Color(1, 0, 0, 1); + Color.GREEN = new Color(0, 1, 0, 1); + Color.BLUE = new Color(0, 0, 1, 1); + Color.MAGENTA = new Color(1, 0, 1, 1); + return Color; + }()); + spine.Color = Color; + var MathUtils = (function () { + function MathUtils() { + } + MathUtils.clamp = function (value, min, max) { + if (value < min) + return min; + if (value > max) + return max; + return value; + }; + MathUtils.cosDeg = function (degrees) { + return Math.cos(degrees * MathUtils.degRad); + }; + MathUtils.sinDeg = function (degrees) { + return Math.sin(degrees * MathUtils.degRad); + }; + MathUtils.signum = function (value) { + return value > 0 ? 1 : value < 0 ? -1 : 0; + }; + MathUtils.toInt = function (x) { + return x > 0 ? Math.floor(x) : Math.ceil(x); + }; + MathUtils.cbrt = function (x) { + var y = Math.pow(Math.abs(x), 1 / 3); + return x < 0 ? -y : y; + }; + MathUtils.PI = 3.1415927; + MathUtils.PI2 = MathUtils.PI * 2; + MathUtils.radiansToDegrees = 180 / MathUtils.PI; + MathUtils.radDeg = MathUtils.radiansToDegrees; + MathUtils.degreesToRadians = MathUtils.PI / 180; + MathUtils.degRad = MathUtils.degreesToRadians; + return MathUtils; + }()); + spine.MathUtils = MathUtils; + var Utils = (function () { + function Utils() { + } + Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { + for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { + dest[j] = source[i]; + } + }; + Utils.setArraySize = function (array, size, value) { + if (value === void 0) { value = 0; } + var oldSize = array.length; + if (oldSize == size) + return array; + array.length = size; + if (oldSize < size) { + for (var i = oldSize; i < size; i++) + array[i] = value; + } + return array; + }; + Utils.ensureArrayCapacity = function (array, size, value) { + if (value === void 0) { value = 0; } + if (array.length >= size) + return array; + return Utils.setArraySize(array, size, value); + }; + Utils.newArray = function (size, defaultValue) { + var array = new Array(size); + for (var i = 0; i < size; i++) + array[i] = defaultValue; + return array; + }; + Utils.newFloatArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Float32Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.newShortArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Int16Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.toFloatArray = function (array) { + return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; + }; + Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; + return Utils; + }()); + spine.Utils = Utils; + var DebugUtils = (function () { + function DebugUtils() { + } + DebugUtils.logBones = function (skeleton) { + for (var i = 0; i < skeleton.bones.length; i++) { + var bone = skeleton.bones[i]; + console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); + } + }; + return DebugUtils; + }()); + spine.DebugUtils = DebugUtils; + var Pool = (function () { + function Pool(instantiator) { + this.items = new Array(); + this.instantiator = instantiator; + } + Pool.prototype.obtain = function () { + return this.items.length > 0 ? this.items.pop() : this.instantiator(); + }; + Pool.prototype.free = function (item) { + if (item.reset) + item.reset(); + this.items.push(item); + }; + Pool.prototype.freeAll = function (items) { + for (var i = 0; i < items.length; i++) { + if (items[i].reset) + items[i].reset(); + this.items[i] = items[i]; + } + }; + Pool.prototype.clear = function () { + this.items.length = 0; + }; + return Pool; + }()); + spine.Pool = Pool; + var Vector2 = (function () { + function Vector2(x, y) { + if (x === void 0) { x = 0; } + if (y === void 0) { y = 0; } + this.x = x; + this.y = y; + } + Vector2.prototype.set = function (x, y) { + this.x = x; + this.y = y; + return this; + }; + Vector2.prototype.length = function () { + var x = this.x; + var y = this.y; + return Math.sqrt(x * x + y * y); + }; + Vector2.prototype.normalize = function () { + var len = this.length(); + if (len != 0) { + this.x /= len; + this.y /= len; + } + return this; + }; + return Vector2; + }()); + spine.Vector2 = Vector2; + var TimeKeeper = (function () { + function TimeKeeper() { + this.maxDelta = 0.064; + this.framesPerSecond = 0; + this.delta = 0; + this.totalTime = 0; + this.lastTime = Date.now() / 1000; + this.frameCount = 0; + this.frameTime = 0; + } + TimeKeeper.prototype.update = function () { + var now = Date.now() / 1000; + this.delta = now - this.lastTime; + this.frameTime += this.delta; + this.totalTime += this.delta; + if (this.delta > this.maxDelta) + this.delta = this.maxDelta; + this.lastTime = now; + this.frameCount++; + if (this.frameTime > 1) { + this.framesPerSecond = this.frameCount / this.frameTime; + this.frameTime = 0; + this.frameCount = 0; + } + }; + return TimeKeeper; + }()); + spine.TimeKeeper = TimeKeeper; + var WindowedMean = (function () { + function WindowedMean(windowSize) { + if (windowSize === void 0) { windowSize = 32; } + this.addedValues = 0; + this.lastValue = 0; + this.mean = 0; + this.dirty = true; + this.values = new Array(windowSize); + } + WindowedMean.prototype.hasEnoughData = function () { + return this.addedValues >= this.values.length; + }; + WindowedMean.prototype.addValue = function (value) { + if (this.addedValues < this.values.length) + this.addedValues++; + this.values[this.lastValue++] = value; + if (this.lastValue > this.values.length - 1) + this.lastValue = 0; + this.dirty = true; + }; + WindowedMean.prototype.getMean = function () { + if (this.hasEnoughData()) { + if (this.dirty) { + var mean = 0; + for (var i = 0; i < this.values.length; i++) { + mean += this.values[i]; + } + this.mean = mean / this.values.length; + this.dirty = false; + } + return this.mean; + } + else { + return 0; + } + }; + return WindowedMean; + }()); + spine.WindowedMean = WindowedMean; })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var AssetManager = (function (_super) { - __extends(AssetManager, _super); - function AssetManager(context, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - _super.call(this, function (image) { - return new spine.webgl.GLTexture(context, image); - }, pathPrefix); - } - return AssetManager; - }(spine.AssetManager)); - webgl.AssetManager = AssetManager; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var AssetManager = (function (_super) { + __extends(AssetManager, _super); + function AssetManager(context, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + _super.call(this, function (image) { + return new spine.webgl.GLTexture(context, image); + }, pathPrefix); + } + return AssetManager; + }(spine.AssetManager)); + webgl.AssetManager = AssetManager; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var OrthoCamera = (function () { - function OrthoCamera(viewportWidth, viewportHeight) { - this.position = new webgl.Vector3(0, 0, 0); - this.direction = new webgl.Vector3(0, 0, -1); - this.up = new webgl.Vector3(0, 1, 0); - this.near = 0; - this.far = 100; - this.zoom = 1; - this.viewportWidth = 0; - this.viewportHeight = 0; - this.projectionView = new webgl.Matrix4(); - this.inverseProjectionView = new webgl.Matrix4(); - this.projection = new webgl.Matrix4(); - this.view = new webgl.Matrix4(); - this.tmp = new webgl.Vector3(); - this.viewportWidth = viewportWidth; - this.viewportHeight = viewportHeight; - this.update(); - } - OrthoCamera.prototype.update = function () { - var projection = this.projection; - var view = this.view; - var projectionView = this.projectionView; - var inverseProjectionView = this.inverseProjectionView; - var zoom = this.zoom, viewportWidth = this.viewportWidth, viewportHeight = this.viewportHeight; - projection.ortho(zoom * (-viewportWidth / 2), zoom * (viewportWidth / 2), zoom * (-viewportHeight / 2), zoom * (viewportHeight / 2), this.near, this.far); - view.lookAt(this.position, this.direction, this.up); - projectionView.set(projection.values); - projectionView.multiply(view); - inverseProjectionView.set(projectionView.values).invert(); - }; - OrthoCamera.prototype.screenToWorld = function (screenCoords, screenWidth, screenHeight) { - var x = screenCoords.x, y = screenHeight - screenCoords.y - 1; - var tmp = this.tmp; - tmp.x = (2 * x) / screenWidth - 1; - tmp.y = (2 * y) / screenHeight - 1; - tmp.z = (2 * screenCoords.z) - 1; - tmp.project(this.inverseProjectionView); - screenCoords.set(tmp.x, tmp.y, tmp.z); - return screenCoords; - }; - OrthoCamera.prototype.setViewport = function (viewportWidth, viewportHeight) { - this.viewportWidth = viewportWidth; - this.viewportHeight = viewportHeight; - }; - return OrthoCamera; - }()); - webgl.OrthoCamera = OrthoCamera; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var OrthoCamera = (function () { + function OrthoCamera(viewportWidth, viewportHeight) { + this.position = new webgl.Vector3(0, 0, 0); + this.direction = new webgl.Vector3(0, 0, -1); + this.up = new webgl.Vector3(0, 1, 0); + this.near = 0; + this.far = 100; + this.zoom = 1; + this.viewportWidth = 0; + this.viewportHeight = 0; + this.projectionView = new webgl.Matrix4(); + this.inverseProjectionView = new webgl.Matrix4(); + this.projection = new webgl.Matrix4(); + this.view = new webgl.Matrix4(); + this.tmp = new webgl.Vector3(); + this.viewportWidth = viewportWidth; + this.viewportHeight = viewportHeight; + this.update(); + } + OrthoCamera.prototype.update = function () { + var projection = this.projection; + var view = this.view; + var projectionView = this.projectionView; + var inverseProjectionView = this.inverseProjectionView; + var zoom = this.zoom, viewportWidth = this.viewportWidth, viewportHeight = this.viewportHeight; + projection.ortho(zoom * (-viewportWidth / 2), zoom * (viewportWidth / 2), zoom * (-viewportHeight / 2), zoom * (viewportHeight / 2), this.near, this.far); + view.lookAt(this.position, this.direction, this.up); + projectionView.set(projection.values); + projectionView.multiply(view); + inverseProjectionView.set(projectionView.values).invert(); + }; + OrthoCamera.prototype.screenToWorld = function (screenCoords, screenWidth, screenHeight) { + var x = screenCoords.x, y = screenHeight - screenCoords.y - 1; + var tmp = this.tmp; + tmp.x = (2 * x) / screenWidth - 1; + tmp.y = (2 * y) / screenHeight - 1; + tmp.z = (2 * screenCoords.z) - 1; + tmp.project(this.inverseProjectionView); + screenCoords.set(tmp.x, tmp.y, tmp.z); + return screenCoords; + }; + OrthoCamera.prototype.setViewport = function (viewportWidth, viewportHeight) { + this.viewportWidth = viewportWidth; + this.viewportHeight = viewportHeight; + }; + return OrthoCamera; + }()); + webgl.OrthoCamera = OrthoCamera; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var GLTexture = (function (_super) { - __extends(GLTexture, _super); - function GLTexture(context, image, useMipMaps) { - if (useMipMaps === void 0) { useMipMaps = false; } - _super.call(this, image); - this.texture = null; - this.boundUnit = 0; - this.useMipMaps = false; - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.useMipMaps = useMipMaps; - this.restore(); - this.context.addRestorable(this); - } - GLTexture.prototype.setFilters = function (minFilter, magFilter) { - var gl = this.context.gl; - this.bind(); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, magFilter); - }; - GLTexture.prototype.setWraps = function (uWrap, vWrap) { - var gl = this.context.gl; - this.bind(); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, uWrap); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, vWrap); - }; - GLTexture.prototype.update = function (useMipMaps) { - var gl = this.context.gl; - if (!this.texture) { - this.texture = this.context.gl.createTexture(); - } - this.bind(); - gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this._image); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, useMipMaps ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); - if (useMipMaps) - gl.generateMipmap(gl.TEXTURE_2D); - }; - GLTexture.prototype.restore = function () { - this.texture = null; - this.update(this.useMipMaps); - }; - GLTexture.prototype.bind = function (unit) { - if (unit === void 0) { unit = 0; } - var gl = this.context.gl; - this.boundUnit = unit; - gl.activeTexture(gl.TEXTURE0 + unit); - gl.bindTexture(gl.TEXTURE_2D, this.texture); - }; - GLTexture.prototype.unbind = function () { - var gl = this.context.gl; - gl.activeTexture(gl.TEXTURE0 + this.boundUnit); - gl.bindTexture(gl.TEXTURE_2D, null); - }; - GLTexture.prototype.dispose = function () { - this.context.removeRestorable(this); - var gl = this.context.gl; - gl.deleteTexture(this.texture); - }; - return GLTexture; - }(spine.Texture)); - webgl.GLTexture = GLTexture; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var GLTexture = (function (_super) { + __extends(GLTexture, _super); + function GLTexture(context, image, useMipMaps) { + if (useMipMaps === void 0) { useMipMaps = false; } + _super.call(this, image); + this.texture = null; + this.boundUnit = 0; + this.useMipMaps = false; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.useMipMaps = useMipMaps; + this.restore(); + this.context.addRestorable(this); + } + GLTexture.prototype.setFilters = function (minFilter, magFilter) { + var gl = this.context.gl; + this.bind(); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, magFilter); + }; + GLTexture.prototype.setWraps = function (uWrap, vWrap) { + var gl = this.context.gl; + this.bind(); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, uWrap); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, vWrap); + }; + GLTexture.prototype.update = function (useMipMaps) { + var gl = this.context.gl; + if (!this.texture) { + this.texture = this.context.gl.createTexture(); + } + this.bind(); + gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this._image); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, useMipMaps ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); + if (useMipMaps) + gl.generateMipmap(gl.TEXTURE_2D); + }; + GLTexture.prototype.restore = function () { + this.texture = null; + this.update(this.useMipMaps); + }; + GLTexture.prototype.bind = function (unit) { + if (unit === void 0) { unit = 0; } + var gl = this.context.gl; + this.boundUnit = unit; + gl.activeTexture(gl.TEXTURE0 + unit); + gl.bindTexture(gl.TEXTURE_2D, this.texture); + }; + GLTexture.prototype.unbind = function () { + var gl = this.context.gl; + gl.activeTexture(gl.TEXTURE0 + this.boundUnit); + gl.bindTexture(gl.TEXTURE_2D, null); + }; + GLTexture.prototype.dispose = function () { + this.context.removeRestorable(this); + var gl = this.context.gl; + gl.deleteTexture(this.texture); + }; + return GLTexture; + }(spine.Texture)); + webgl.GLTexture = GLTexture; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Input = (function () { - function Input(element) { - this.lastX = 0; - this.lastY = 0; - this.buttonDown = false; - this.currTouch = null; - this.touchesPool = new spine.Pool(function () { - return new spine.webgl.Touch(0, 0, 0); - }); - this.listeners = new Array(); - this.element = element; - this.setupCallbacks(element); - } - Input.prototype.setupCallbacks = function (element) { - var _this = this; - element.addEventListener("mousedown", function (ev) { - if (ev instanceof MouseEvent) { - var rect = element.getBoundingClientRect(); - var x = ev.clientX - rect.left; - var y = ev.clientY - rect.top; - var listeners = _this.listeners; - for (var i = 0; i < listeners.length; i++) { - listeners[i].down(x, y); - } - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = true; - } - }, true); - element.addEventListener("mousemove", function (ev) { - if (ev instanceof MouseEvent) { - var rect = element.getBoundingClientRect(); - var x = ev.clientX - rect.left; - var y = ev.clientY - rect.top; - var listeners = _this.listeners; - for (var i = 0; i < listeners.length; i++) { - if (_this.buttonDown) { - listeners[i].dragged(x, y); - } - else { - listeners[i].moved(x, y); - } - } - _this.lastX = x; - _this.lastY = y; - } - }, true); - element.addEventListener("mouseup", function (ev) { - if (ev instanceof MouseEvent) { - var rect = element.getBoundingClientRect(); - var x = ev.clientX - rect.left; - var y = ev.clientY - rect.top; - var listeners = _this.listeners; - for (var i = 0; i < listeners.length; i++) { - listeners[i].up(x, y); - } - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = false; - } - }, true); - element.addEventListener("touchstart", function (ev) { - if (_this.currTouch != null) - return; - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - var rect = element.getBoundingClientRect(); - var x = touch.clientX - rect.left; - var y = touch.clientY - rect.top; - _this.currTouch = _this.touchesPool.obtain(); - _this.currTouch.identifier = touch.identifier; - _this.currTouch.x = x; - _this.currTouch.y = y; - break; - } - var listeners = _this.listeners; - for (var i_1 = 0; i_1 < listeners.length; i_1++) { - listeners[i_1].down(_this.currTouch.x, _this.currTouch.y); - } - console.log("Start " + _this.currTouch.x + ", " + _this.currTouch.y); - _this.lastX = _this.currTouch.x; - _this.lastY = _this.currTouch.y; - _this.buttonDown = true; - ev.preventDefault(); - }, false); - element.addEventListener("touchend", function (ev) { - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - if (_this.currTouch.identifier === touch.identifier) { - var rect = element.getBoundingClientRect(); - var x = _this.currTouch.x = touch.clientX - rect.left; - var y = _this.currTouch.y = touch.clientY - rect.top; - _this.touchesPool.free(_this.currTouch); - var listeners = _this.listeners; - for (var i_2 = 0; i_2 < listeners.length; i_2++) { - listeners[i_2].up(x, y); - } - console.log("End " + x + ", " + y); - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = false; - _this.currTouch = null; - break; - } - } - ev.preventDefault(); - }, false); - element.addEventListener("touchcancel", function (ev) { - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - if (_this.currTouch.identifier === touch.identifier) { - var rect = element.getBoundingClientRect(); - var x = _this.currTouch.x = touch.clientX - rect.left; - var y = _this.currTouch.y = touch.clientY - rect.top; - _this.touchesPool.free(_this.currTouch); - var listeners = _this.listeners; - for (var i_3 = 0; i_3 < listeners.length; i_3++) { - listeners[i_3].up(x, y); - } - console.log("End " + x + ", " + y); - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = false; - _this.currTouch = null; - break; - } - } - ev.preventDefault(); - }, false); - element.addEventListener("touchmove", function (ev) { - if (_this.currTouch == null) - return; - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - if (_this.currTouch.identifier === touch.identifier) { - var rect = element.getBoundingClientRect(); - var x = touch.clientX - rect.left; - var y = touch.clientY - rect.top; - var listeners = _this.listeners; - for (var i_4 = 0; i_4 < listeners.length; i_4++) { - listeners[i_4].dragged(x, y); - } - console.log("Drag " + x + ", " + y); - _this.lastX = _this.currTouch.x = x; - _this.lastY = _this.currTouch.y = y; - break; - } - } - ev.preventDefault(); - }, false); - }; - Input.prototype.addListener = function (listener) { - this.listeners.push(listener); - }; - Input.prototype.removeListener = function (listener) { - var idx = this.listeners.indexOf(listener); - if (idx > -1) { - this.listeners.splice(idx, 1); - } - }; - return Input; - }()); - webgl.Input = Input; - var Touch = (function () { - function Touch(identifier, x, y) { - this.identifier = identifier; - this.x = x; - this.y = y; - } - return Touch; - }()); - webgl.Touch = Touch; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Input = (function () { + function Input(element) { + this.lastX = 0; + this.lastY = 0; + this.buttonDown = false; + this.currTouch = null; + this.touchesPool = new spine.Pool(function () { + return new spine.webgl.Touch(0, 0, 0); + }); + this.listeners = new Array(); + this.element = element; + this.setupCallbacks(element); + } + Input.prototype.setupCallbacks = function (element) { + var _this = this; + element.addEventListener("mousedown", function (ev) { + if (ev instanceof MouseEvent) { + var rect = element.getBoundingClientRect(); + var x = ev.clientX - rect.left; + var y = ev.clientY - rect.top; + var listeners = _this.listeners; + for (var i = 0; i < listeners.length; i++) { + listeners[i].down(x, y); + } + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = true; + } + }, true); + element.addEventListener("mousemove", function (ev) { + if (ev instanceof MouseEvent) { + var rect = element.getBoundingClientRect(); + var x = ev.clientX - rect.left; + var y = ev.clientY - rect.top; + var listeners = _this.listeners; + for (var i = 0; i < listeners.length; i++) { + if (_this.buttonDown) { + listeners[i].dragged(x, y); + } + else { + listeners[i].moved(x, y); + } + } + _this.lastX = x; + _this.lastY = y; + } + }, true); + element.addEventListener("mouseup", function (ev) { + if (ev instanceof MouseEvent) { + var rect = element.getBoundingClientRect(); + var x = ev.clientX - rect.left; + var y = ev.clientY - rect.top; + var listeners = _this.listeners; + for (var i = 0; i < listeners.length; i++) { + listeners[i].up(x, y); + } + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = false; + } + }, true); + element.addEventListener("touchstart", function (ev) { + if (_this.currTouch != null) + return; + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + var rect = element.getBoundingClientRect(); + var x = touch.clientX - rect.left; + var y = touch.clientY - rect.top; + _this.currTouch = _this.touchesPool.obtain(); + _this.currTouch.identifier = touch.identifier; + _this.currTouch.x = x; + _this.currTouch.y = y; + break; + } + var listeners = _this.listeners; + for (var i_1 = 0; i_1 < listeners.length; i_1++) { + listeners[i_1].down(_this.currTouch.x, _this.currTouch.y); + } + console.log("Start " + _this.currTouch.x + ", " + _this.currTouch.y); + _this.lastX = _this.currTouch.x; + _this.lastY = _this.currTouch.y; + _this.buttonDown = true; + ev.preventDefault(); + }, false); + element.addEventListener("touchend", function (ev) { + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + if (_this.currTouch.identifier === touch.identifier) { + var rect = element.getBoundingClientRect(); + var x = _this.currTouch.x = touch.clientX - rect.left; + var y = _this.currTouch.y = touch.clientY - rect.top; + _this.touchesPool.free(_this.currTouch); + var listeners = _this.listeners; + for (var i_2 = 0; i_2 < listeners.length; i_2++) { + listeners[i_2].up(x, y); + } + console.log("End " + x + ", " + y); + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = false; + _this.currTouch = null; + break; + } + } + ev.preventDefault(); + }, false); + element.addEventListener("touchcancel", function (ev) { + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + if (_this.currTouch.identifier === touch.identifier) { + var rect = element.getBoundingClientRect(); + var x = _this.currTouch.x = touch.clientX - rect.left; + var y = _this.currTouch.y = touch.clientY - rect.top; + _this.touchesPool.free(_this.currTouch); + var listeners = _this.listeners; + for (var i_3 = 0; i_3 < listeners.length; i_3++) { + listeners[i_3].up(x, y); + } + console.log("End " + x + ", " + y); + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = false; + _this.currTouch = null; + break; + } + } + ev.preventDefault(); + }, false); + element.addEventListener("touchmove", function (ev) { + if (_this.currTouch == null) + return; + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + if (_this.currTouch.identifier === touch.identifier) { + var rect = element.getBoundingClientRect(); + var x = touch.clientX - rect.left; + var y = touch.clientY - rect.top; + var listeners = _this.listeners; + for (var i_4 = 0; i_4 < listeners.length; i_4++) { + listeners[i_4].dragged(x, y); + } + console.log("Drag " + x + ", " + y); + _this.lastX = _this.currTouch.x = x; + _this.lastY = _this.currTouch.y = y; + break; + } + } + ev.preventDefault(); + }, false); + }; + Input.prototype.addListener = function (listener) { + this.listeners.push(listener); + }; + Input.prototype.removeListener = function (listener) { + var idx = this.listeners.indexOf(listener); + if (idx > -1) { + this.listeners.splice(idx, 1); + } + }; + return Input; + }()); + webgl.Input = Input; + var Touch = (function () { + function Touch(identifier, x, y) { + this.identifier = identifier; + this.x = x; + this.y = y; + } + return Touch; + }()); + webgl.Touch = Touch; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var LoadingScreen = (function () { - function LoadingScreen(renderer) { - this.logo = null; - this.spinner = null; - this.angle = 0; - this.fadeOut = 0; - this.timeKeeper = new spine.TimeKeeper(); - this.backgroundColor = new spine.Color(0.135, 0.135, 0.135, 1); - this.tempColor = new spine.Color(); - this.firstDraw = 0; - this.renderer = renderer; - this.timeKeeper.maxDelta = 9; - if (LoadingScreen.logoImg === null) { - var isSafari = navigator.userAgent.indexOf("Safari") > -1; - LoadingScreen.logoImg = new Image(); - LoadingScreen.logoImg.src = LoadingScreen.SPINE_LOGO_DATA; - if (!isSafari) - LoadingScreen.logoImg.crossOrigin = "anonymous"; - LoadingScreen.logoImg.onload = function (ev) { - LoadingScreen.loaded++; - }; - LoadingScreen.spinnerImg = new Image(); - LoadingScreen.spinnerImg.src = LoadingScreen.SPINNER_DATA; - if (!isSafari) - LoadingScreen.spinnerImg.crossOrigin = "anonymous"; - LoadingScreen.spinnerImg.onload = function (ev) { - LoadingScreen.loaded++; - }; - } - } - LoadingScreen.prototype.draw = function (complete) { - if (complete === void 0) { complete = false; } - if (complete && this.fadeOut > LoadingScreen.FADE_SECONDS) - return; - this.timeKeeper.update(); - var a = Math.abs(Math.sin(this.timeKeeper.totalTime + 0.75)); - this.angle -= this.timeKeeper.delta * 360 * (1 + 1.5 * Math.pow(a, 5)); - var renderer = this.renderer; - var canvas = renderer.canvas; - var gl = renderer.context.gl; - var oldX = renderer.camera.position.x, oldY = renderer.camera.position.y; - renderer.camera.position.set(canvas.width / 2, canvas.height / 2, 0); - renderer.camera.viewportWidth = canvas.width; - renderer.camera.viewportHeight = canvas.height; - renderer.resize(webgl.ResizeMode.Stretch); - if (!complete) { - gl.clearColor(this.backgroundColor.r, this.backgroundColor.g, this.backgroundColor.b, this.backgroundColor.a); - gl.clear(gl.COLOR_BUFFER_BIT); - this.tempColor.a = 1; - } - else { - this.fadeOut += this.timeKeeper.delta * (this.timeKeeper.totalTime < 1 ? 2 : 1); - if (this.fadeOut > LoadingScreen.FADE_SECONDS) { - renderer.camera.position.set(oldX, oldY, 0); - return; - } - a = 1 - this.fadeOut / LoadingScreen.FADE_SECONDS; - this.tempColor.setFromColor(this.backgroundColor); - this.tempColor.a = 1 - (a - 1) * (a - 1); - renderer.begin(); - renderer.quad(true, 0, 0, canvas.width, 0, canvas.width, canvas.height, 0, canvas.height, this.tempColor, this.tempColor, this.tempColor, this.tempColor); - renderer.end(); - } - this.tempColor.set(1, 1, 1, this.tempColor.a); - if (LoadingScreen.loaded != 2) - return; - if (this.logo === null) { - this.logo = new webgl.GLTexture(renderer.context, LoadingScreen.logoImg); - this.spinner = new webgl.GLTexture(renderer.context, LoadingScreen.spinnerImg); - } - this.logo.update(false); - this.spinner.update(false); - var logoWidth = this.logo.getImage().width; - var logoHeight = this.logo.getImage().height; - var spinnerWidth = this.spinner.getImage().width; - var spinnerHeight = this.spinner.getImage().height; - renderer.batcher.setBlendMode(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA); - renderer.begin(); - renderer.drawTexture(this.logo, (canvas.width - logoWidth) / 2, (canvas.height - logoHeight) / 2, logoWidth, logoHeight, this.tempColor); - renderer.drawTextureRotated(this.spinner, (canvas.width - spinnerWidth) / 2, (canvas.height - spinnerHeight) / 2, spinnerWidth, spinnerHeight, spinnerWidth / 2, spinnerHeight / 2, this.angle, this.tempColor); - renderer.end(); - renderer.camera.position.set(oldX, oldY, 0); - }; - LoadingScreen.FADE_SECONDS = 1; - LoadingScreen.loaded = 0; - LoadingScreen.spinnerImg = null; - LoadingScreen.logoImg = null; - LoadingScreen.SPINNER_DATA = "data:image/png;base64,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"; - LoadingScreen.SPINE_LOGO_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAAAZCAYAAACis3k0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtNJREFUaN7tmT2I1EAUxwN+oWgRT0HFKo0WCkJ6ObmAWFwZbCxsXGysLNJaiCyIoDaSwk4ETzvhmnBaCRbBWoQ01ho4PwotjP8cE337mMy8TLK757mBH3fLTWbe/PbN53neNniqZW8FvAVvQAqugwvgDDgO9niLRyTyJagM/ACPF6bsIl9ZRDac/Cc6tLn5xQdRQ496QlKPLxD5QCDxO9jtGM8QfYoIgUlgCipGCRJL5VvlyOdCU09iEXkCfLSIfCrs7Fab6nOsiafu06iDwES9w/uU1QnDC+ekkVS9vEaDsgVeB0d+z1VDtOGxRaYPboP3Gokb4GgXkZp4chZPJKgvZ3U0XkriK/TIt9YUDllFgTAjGwoaoHqfBhMI58yD4BQ4V6/aHYdfxToftvw9F2SiVroawU2/Cv5C4Thv0KB9S5nxlOd4STxjwUjzSdYlgrYijw2BsEfgsaFcM09lhiys94xXQQwugcvgJrgFLjrEE7WUiTuWCQzt/ZXN7FfqGwuGClyVy2xZAFmfDQvNtwFFSspMDGsD+UTWqu1KoVmVooFEJgKRXw0if85RpISEzwsjzeqWzkjkC4PIJ3MUmQgITAHlQwTFhnZhELkEntfZRwR+AvfAgXmJHOqU02XligWT8ppg67NXbdCXeq7afUQ6L8C2DalEZNt2YyQ94Qy8/ekjMpBMbfyl5iTjG7YAI8cNecROAb4kJmTjaXAF3AGvwQewOiuRxEtlSaT4j2h2lMsUueQEoMlIKpTvAmKhxPMtC876jEX6rE8l8TNx/KVbn6xlWU9NWcSDUsO4NGWpQOTZFpHPOooMXcswmW2XFk3ixb2v0Nq+XVKP00QNaffBLyWwBI/AkTlfMYZDXMf12kc6yjwEjoFdO/5me5oi/6tnyhlZX6OtgmX1c2Uh0k3khmbB2b9TRfpd/jfTUeRDJvHdYg5wE7kPXAN3wQ1weDvH+xufEgpi5qIl3QAAAABJRU5ErkJggg=="; - return LoadingScreen; - }()); - webgl.LoadingScreen = LoadingScreen; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var LoadingScreen = (function () { + function LoadingScreen(renderer) { + this.logo = null; + this.spinner = null; + this.angle = 0; + this.fadeOut = 0; + this.timeKeeper = new spine.TimeKeeper(); + this.backgroundColor = new spine.Color(0.135, 0.135, 0.135, 1); + this.tempColor = new spine.Color(); + this.firstDraw = 0; + this.renderer = renderer; + this.timeKeeper.maxDelta = 9; + if (LoadingScreen.logoImg === null) { + var isSafari = navigator.userAgent.indexOf("Safari") > -1; + LoadingScreen.logoImg = new Image(); + LoadingScreen.logoImg.src = LoadingScreen.SPINE_LOGO_DATA; + if (!isSafari) + LoadingScreen.logoImg.crossOrigin = "anonymous"; + LoadingScreen.logoImg.onload = function (ev) { + LoadingScreen.loaded++; + }; + LoadingScreen.spinnerImg = new Image(); + LoadingScreen.spinnerImg.src = LoadingScreen.SPINNER_DATA; + if (!isSafari) + LoadingScreen.spinnerImg.crossOrigin = "anonymous"; + LoadingScreen.spinnerImg.onload = function (ev) { + LoadingScreen.loaded++; + }; + } + } + LoadingScreen.prototype.draw = function (complete) { + if (complete === void 0) { complete = false; } + if (complete && this.fadeOut > LoadingScreen.FADE_SECONDS) + return; + this.timeKeeper.update(); + var a = Math.abs(Math.sin(this.timeKeeper.totalTime + 0.75)); + this.angle -= this.timeKeeper.delta * 360 * (1 + 1.5 * Math.pow(a, 5)); + var renderer = this.renderer; + var canvas = renderer.canvas; + var gl = renderer.context.gl; + var oldX = renderer.camera.position.x, oldY = renderer.camera.position.y; + renderer.camera.position.set(canvas.width / 2, canvas.height / 2, 0); + renderer.camera.viewportWidth = canvas.width; + renderer.camera.viewportHeight = canvas.height; + renderer.resize(webgl.ResizeMode.Stretch); + if (!complete) { + gl.clearColor(this.backgroundColor.r, this.backgroundColor.g, this.backgroundColor.b, this.backgroundColor.a); + gl.clear(gl.COLOR_BUFFER_BIT); + this.tempColor.a = 1; + } + else { + this.fadeOut += this.timeKeeper.delta * (this.timeKeeper.totalTime < 1 ? 2 : 1); + if (this.fadeOut > LoadingScreen.FADE_SECONDS) { + renderer.camera.position.set(oldX, oldY, 0); + return; + } + a = 1 - this.fadeOut / LoadingScreen.FADE_SECONDS; + this.tempColor.setFromColor(this.backgroundColor); + this.tempColor.a = 1 - (a - 1) * (a - 1); + renderer.begin(); + renderer.quad(true, 0, 0, canvas.width, 0, canvas.width, canvas.height, 0, canvas.height, this.tempColor, this.tempColor, this.tempColor, this.tempColor); + renderer.end(); + } + this.tempColor.set(1, 1, 1, this.tempColor.a); + if (LoadingScreen.loaded != 2) + return; + if (this.logo === null) { + this.logo = new webgl.GLTexture(renderer.context, LoadingScreen.logoImg); + this.spinner = new webgl.GLTexture(renderer.context, LoadingScreen.spinnerImg); + } + this.logo.update(false); + this.spinner.update(false); + var logoWidth = this.logo.getImage().width; + var logoHeight = this.logo.getImage().height; + var spinnerWidth = this.spinner.getImage().width; + var spinnerHeight = this.spinner.getImage().height; + renderer.batcher.setBlendMode(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA); + renderer.begin(); + renderer.drawTexture(this.logo, (canvas.width - logoWidth) / 2, (canvas.height - logoHeight) / 2, logoWidth, logoHeight, this.tempColor); + renderer.drawTextureRotated(this.spinner, (canvas.width - spinnerWidth) / 2, (canvas.height - spinnerHeight) / 2, spinnerWidth, spinnerHeight, spinnerWidth / 2, spinnerHeight / 2, this.angle, this.tempColor); + renderer.end(); + renderer.camera.position.set(oldX, oldY, 0); + }; + LoadingScreen.FADE_SECONDS = 1; + LoadingScreen.loaded = 0; + LoadingScreen.spinnerImg = null; + LoadingScreen.logoImg = null; + LoadingScreen.SPINNER_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAChCAMAAAB3TUS6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAYNQTFRFAAAA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AA/0AAkTDRyAAAAIB0Uk5TAAABAgMEBQYHCAkKCwwODxAREhMUFRYXGBkaHB0eICEiIyQlJicoKSorLC0uLzAxMjM0Nzg5Ojs8PT4/QEFDRUlKS0xNTk9QUlRWWFlbXF1eYWJjZmhscHF0d3h5e3x+f4CIiYuMj5GSlJWXm56io6arr7rAxcjO0dXe6Onr8fmb5sOOAAADuElEQVQYGe3B+3vTVBwH4M/3nCRt13br2Lozhug2q25gYQubcxqVKYoMCYoKjEsUdSpeiBc0Kl7yp9t2za39pely7PF5zvuiQKc+/e2f8K+f9g2oyQ77Ag4VGX+HketQ0XYYe0JQ0CdhogwF+WFiBgr6JkxUoKCDMMGgoP0w9gdUtB3GfoCKVsPYAVQ0H8YuQUWVMHYGKuJhrAklPQkjJpT0bdj3O9S0FfZ9ADXxP8MjVSiqFfa8B2VVV8+df14QtB4iwn+BpuZEgyM38WMQHDYhnbkgukrIh5ygZ48glyn6KshlL+jbhVRcxCzk0ApiC5CI5kVsgTAy9jiI/WxBGmqIFBMjqwYphwRZaiLNwsjqQdoVSFISGRwjM4OMFUjBRcYCYWT0XZD2SwUS0LzIKCGH2SDja0LxKiJjCrm0gowVFI6aIs1CTouPg5QvUTgSKXMMuVUeBSmEopFITBPGwO8HCYbCTYtImTAWejuI3CMUjmZFT5NjbM/9GvQcMkhADdFRIxxD7aug4wGDFGSVTcLx0MzutQ2CpmmapmmapmmapmmapmmaphWBmGFV6rNNcaLC0GUuv3LROftUo8wJk0a10207sVED6IIf+9673LIwQeW2PaCEJX/A+xYmhTbtQUu46g96SJgQZg9Zwxf+EAMTwuwhm3jkD7EwIdweBn+YhQlh9pA2HvpDTEwIs4es4GN/CMekNOxBJ9D2B10nTAyfW7fT1hjYgZ/xYIUwUcycaiwuv2h3tOcZADr7ud/12c0ru2cWSwQ1UAcixIgImqZpmqZpmqZpmqZpmqZp2v8HMSIcF186t8oghbnlOJt1wnHwl7yOGxwSlHacrjWG8dVuej03OApn7jhHtiyMiZa9yD6haLYTebWOsbDXvQRHwchJWSTkV/rQS+EoWttJaTHkJe56KXcJRZt20jY48nnBy9hE4WjLSbvAkIfwMm5zFG/KyWgRRke3vYwGZDjpZHCMruJltCAFrTtpVYxu1ktzCHKwbSdlGqOreynXGGQpOylljI5uebFbBuSZc2IbhBxmvcj9GiSiZ52+HQO5nPb6TkIqajs9L5eQk7jnddxZgGT0jNOxYSI36+Kdj9oG5OPV6QpB6yJuGAYnqIrecLveYlDUKffIOtREl90+BiWV3cgMlNR0I09DSS030oaSttzILpT0phu5BBWRmyAoiLkJgoIMN8GgoJKb4FBQzU0YUFDdTRhQUNVNcCjIdBMEBdE7buQ8lFRz+97lUFN5fe+qu//aMkeB/gU2ae9y2HgbngAAAABJRU5ErkJggg=="; + LoadingScreen.SPINE_LOGO_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAAAZCAYAAACis3k0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtNJREFUaN7tmT2I1EAUxwN+oWgRT0HFKo0WCkJ6ObmAWFwZbCxsXGysLNJaiCyIoDaSwk4ETzvhmnBaCRbBWoQ01ho4PwotjP8cE337mMy8TLK757mBH3fLTWbe/PbN53neNniqZW8FvAVvQAqugwvgDDgO9niLRyTyJagM/ACPF6bsIl9ZRDac/Cc6tLn5xQdRQ496QlKPLxD5QCDxO9jtGM8QfYoIgUlgCipGCRJL5VvlyOdCU09iEXkCfLSIfCrs7Fab6nOsiafu06iDwES9w/uU1QnDC+ekkVS9vEaDsgVeB0d+z1VDtOGxRaYPboP3Gokb4GgXkZp4chZPJKgvZ3U0XkriK/TIt9YUDllFgTAjGwoaoHqfBhMI58yD4BQ4V6/aHYdfxToftvw9F2SiVroawU2/Cv5C4Thv0KB9S5nxlOd4STxjwUjzSdYlgrYijw2BsEfgsaFcM09lhiys94xXQQwugcvgJrgFLjrEE7WUiTuWCQzt/ZXN7FfqGwuGClyVy2xZAFmfDQvNtwFFSspMDGsD+UTWqu1KoVmVooFEJgKRXw0if85RpISEzwsjzeqWzkjkC4PIJ3MUmQgITAHlQwTFhnZhELkEntfZRwR+AvfAgXmJHOqU02XligWT8ppg67NXbdCXeq7afUQ6L8C2DalEZNt2YyQ94Qy8/ekjMpBMbfyl5iTjG7YAI8cNecROAb4kJmTjaXAF3AGvwQewOiuRxEtlSaT4j2h2lMsUueQEoMlIKpTvAmKhxPMtC876jEX6rE8l8TNx/KVbn6xlWU9NWcSDUsO4NGWpQOTZFpHPOooMXcswmW2XFk3ixb2v0Nq+XVKP00QNaffBLyWwBI/AkTlfMYZDXMf12kc6yjwEjoFdO/5me5oi/6tnyhlZX6OtgmX1c2Uh0k3khmbB2b9TRfpd/jfTUeRDJvHdYg5wE7kPXAN3wQ1weDvH+xufEgpi5qIl3QAAAABJRU5ErkJggg=="; + return LoadingScreen; + }()); + webgl.LoadingScreen = LoadingScreen; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - webgl.M00 = 0; - webgl.M01 = 4; - webgl.M02 = 8; - webgl.M03 = 12; - webgl.M10 = 1; - webgl.M11 = 5; - webgl.M12 = 9; - webgl.M13 = 13; - webgl.M20 = 2; - webgl.M21 = 6; - webgl.M22 = 10; - webgl.M23 = 14; - webgl.M30 = 3; - webgl.M31 = 7; - webgl.M32 = 11; - webgl.M33 = 15; - var Matrix4 = (function () { - function Matrix4() { - this.temp = new Float32Array(16); - this.values = new Float32Array(16); - var v = this.values; - v[webgl.M00] = 1; - v[webgl.M11] = 1; - v[webgl.M22] = 1; - v[webgl.M33] = 1; - } - Matrix4.prototype.set = function (values) { - this.values.set(values); - return this; - }; - Matrix4.prototype.transpose = function () { - var t = this.temp; - var v = this.values; - t[webgl.M00] = v[webgl.M00]; - t[webgl.M01] = v[webgl.M10]; - t[webgl.M02] = v[webgl.M20]; - t[webgl.M03] = v[webgl.M30]; - t[webgl.M10] = v[webgl.M01]; - t[webgl.M11] = v[webgl.M11]; - t[webgl.M12] = v[webgl.M21]; - t[webgl.M13] = v[webgl.M31]; - t[webgl.M20] = v[webgl.M02]; - t[webgl.M21] = v[webgl.M12]; - t[webgl.M22] = v[webgl.M22]; - t[webgl.M23] = v[webgl.M32]; - t[webgl.M30] = v[webgl.M03]; - t[webgl.M31] = v[webgl.M13]; - t[webgl.M32] = v[webgl.M23]; - t[webgl.M33] = v[webgl.M33]; - return this.set(t); - }; - Matrix4.prototype.identity = function () { - var v = this.values; - v[webgl.M00] = 1; - v[webgl.M01] = 0; - v[webgl.M02] = 0; - v[webgl.M03] = 0; - v[webgl.M10] = 0; - v[webgl.M11] = 1; - v[webgl.M12] = 0; - v[webgl.M13] = 0; - v[webgl.M20] = 0; - v[webgl.M21] = 0; - v[webgl.M22] = 1; - v[webgl.M23] = 0; - v[webgl.M30] = 0; - v[webgl.M31] = 0; - v[webgl.M32] = 0; - v[webgl.M33] = 1; - return this; - }; - Matrix4.prototype.invert = function () { - var v = this.values; - var t = this.temp; - var l_det = v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] - + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] - - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] - - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] - + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] - + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] - - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] - - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; - if (l_det == 0) - throw new Error("non-invertible matrix"); - var inv_det = 1.0 / l_det; - t[webgl.M00] = v[webgl.M12] * v[webgl.M23] * v[webgl.M31] - v[webgl.M13] * v[webgl.M22] * v[webgl.M31] + v[webgl.M13] * v[webgl.M21] * v[webgl.M32] - - v[webgl.M11] * v[webgl.M23] * v[webgl.M32] - v[webgl.M12] * v[webgl.M21] * v[webgl.M33] + v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M01] = v[webgl.M03] * v[webgl.M22] * v[webgl.M31] - v[webgl.M02] * v[webgl.M23] * v[webgl.M31] - v[webgl.M03] * v[webgl.M21] * v[webgl.M32] - + v[webgl.M01] * v[webgl.M23] * v[webgl.M32] + v[webgl.M02] * v[webgl.M21] * v[webgl.M33] - v[webgl.M01] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M02] = v[webgl.M02] * v[webgl.M13] * v[webgl.M31] - v[webgl.M03] * v[webgl.M12] * v[webgl.M31] + v[webgl.M03] * v[webgl.M11] * v[webgl.M32] - - v[webgl.M01] * v[webgl.M13] * v[webgl.M32] - v[webgl.M02] * v[webgl.M11] * v[webgl.M33] + v[webgl.M01] * v[webgl.M12] * v[webgl.M33]; - t[webgl.M03] = v[webgl.M03] * v[webgl.M12] * v[webgl.M21] - v[webgl.M02] * v[webgl.M13] * v[webgl.M21] - v[webgl.M03] * v[webgl.M11] * v[webgl.M22] - + v[webgl.M01] * v[webgl.M13] * v[webgl.M22] + v[webgl.M02] * v[webgl.M11] * v[webgl.M23] - v[webgl.M01] * v[webgl.M12] * v[webgl.M23]; - t[webgl.M10] = v[webgl.M13] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M20] * v[webgl.M32] - + v[webgl.M10] * v[webgl.M23] * v[webgl.M32] + v[webgl.M12] * v[webgl.M20] * v[webgl.M33] - v[webgl.M10] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M11] = v[webgl.M02] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M22] * v[webgl.M30] + v[webgl.M03] * v[webgl.M20] * v[webgl.M32] - - v[webgl.M00] * v[webgl.M23] * v[webgl.M32] - v[webgl.M02] * v[webgl.M20] * v[webgl.M33] + v[webgl.M00] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M12] = v[webgl.M03] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M10] * v[webgl.M32] - + v[webgl.M00] * v[webgl.M13] * v[webgl.M32] + v[webgl.M02] * v[webgl.M10] * v[webgl.M33] - v[webgl.M00] * v[webgl.M12] * v[webgl.M33]; - t[webgl.M13] = v[webgl.M02] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M12] * v[webgl.M20] + v[webgl.M03] * v[webgl.M10] * v[webgl.M22] - - v[webgl.M00] * v[webgl.M13] * v[webgl.M22] - v[webgl.M02] * v[webgl.M10] * v[webgl.M23] + v[webgl.M00] * v[webgl.M12] * v[webgl.M23]; - t[webgl.M20] = v[webgl.M11] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M21] * v[webgl.M30] + v[webgl.M13] * v[webgl.M20] * v[webgl.M31] - - v[webgl.M10] * v[webgl.M23] * v[webgl.M31] - v[webgl.M11] * v[webgl.M20] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M33]; - t[webgl.M21] = v[webgl.M03] * v[webgl.M21] * v[webgl.M30] - v[webgl.M01] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M20] * v[webgl.M31] - + v[webgl.M00] * v[webgl.M23] * v[webgl.M31] + v[webgl.M01] * v[webgl.M20] * v[webgl.M33] - v[webgl.M00] * v[webgl.M21] * v[webgl.M33]; - t[webgl.M22] = v[webgl.M01] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M11] * v[webgl.M30] + v[webgl.M03] * v[webgl.M10] * v[webgl.M31] - - v[webgl.M00] * v[webgl.M13] * v[webgl.M31] - v[webgl.M01] * v[webgl.M10] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M33]; - t[webgl.M23] = v[webgl.M03] * v[webgl.M11] * v[webgl.M20] - v[webgl.M01] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M10] * v[webgl.M21] - + v[webgl.M00] * v[webgl.M13] * v[webgl.M21] + v[webgl.M01] * v[webgl.M10] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M23]; - t[webgl.M30] = v[webgl.M12] * v[webgl.M21] * v[webgl.M30] - v[webgl.M11] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M20] * v[webgl.M31] - + v[webgl.M10] * v[webgl.M22] * v[webgl.M31] + v[webgl.M11] * v[webgl.M20] * v[webgl.M32] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32]; - t[webgl.M31] = v[webgl.M01] * v[webgl.M22] * v[webgl.M30] - v[webgl.M02] * v[webgl.M21] * v[webgl.M30] + v[webgl.M02] * v[webgl.M20] * v[webgl.M31] - - v[webgl.M00] * v[webgl.M22] * v[webgl.M31] - v[webgl.M01] * v[webgl.M20] * v[webgl.M32] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32]; - t[webgl.M32] = v[webgl.M02] * v[webgl.M11] * v[webgl.M30] - v[webgl.M01] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M10] * v[webgl.M31] - + v[webgl.M00] * v[webgl.M12] * v[webgl.M31] + v[webgl.M01] * v[webgl.M10] * v[webgl.M32] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32]; - t[webgl.M33] = v[webgl.M01] * v[webgl.M12] * v[webgl.M20] - v[webgl.M02] * v[webgl.M11] * v[webgl.M20] + v[webgl.M02] * v[webgl.M10] * v[webgl.M21] - - v[webgl.M00] * v[webgl.M12] * v[webgl.M21] - v[webgl.M01] * v[webgl.M10] * v[webgl.M22] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22]; - v[webgl.M00] = t[webgl.M00] * inv_det; - v[webgl.M01] = t[webgl.M01] * inv_det; - v[webgl.M02] = t[webgl.M02] * inv_det; - v[webgl.M03] = t[webgl.M03] * inv_det; - v[webgl.M10] = t[webgl.M10] * inv_det; - v[webgl.M11] = t[webgl.M11] * inv_det; - v[webgl.M12] = t[webgl.M12] * inv_det; - v[webgl.M13] = t[webgl.M13] * inv_det; - v[webgl.M20] = t[webgl.M20] * inv_det; - v[webgl.M21] = t[webgl.M21] * inv_det; - v[webgl.M22] = t[webgl.M22] * inv_det; - v[webgl.M23] = t[webgl.M23] * inv_det; - v[webgl.M30] = t[webgl.M30] * inv_det; - v[webgl.M31] = t[webgl.M31] * inv_det; - v[webgl.M32] = t[webgl.M32] * inv_det; - v[webgl.M33] = t[webgl.M33] * inv_det; - return this; - }; - Matrix4.prototype.determinant = function () { - var v = this.values; - return v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] - + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] - - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] - - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] - + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] - + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] - - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] - - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; - }; - Matrix4.prototype.translate = function (x, y, z) { - var v = this.values; - v[webgl.M03] += x; - v[webgl.M13] += y; - v[webgl.M23] += z; - return this; - }; - Matrix4.prototype.copy = function () { - return new Matrix4().set(this.values); - }; - Matrix4.prototype.projection = function (near, far, fovy, aspectRatio) { - this.identity(); - var l_fd = (1.0 / Math.tan((fovy * (Math.PI / 180)) / 2.0)); - var l_a1 = (far + near) / (near - far); - var l_a2 = (2 * far * near) / (near - far); - var v = this.values; - v[webgl.M00] = l_fd / aspectRatio; - v[webgl.M10] = 0; - v[webgl.M20] = 0; - v[webgl.M30] = 0; - v[webgl.M01] = 0; - v[webgl.M11] = l_fd; - v[webgl.M21] = 0; - v[webgl.M31] = 0; - v[webgl.M02] = 0; - v[webgl.M12] = 0; - v[webgl.M22] = l_a1; - v[webgl.M32] = -1; - v[webgl.M03] = 0; - v[webgl.M13] = 0; - v[webgl.M23] = l_a2; - v[webgl.M33] = 0; - return this; - }; - Matrix4.prototype.ortho2d = function (x, y, width, height) { - return this.ortho(x, x + width, y, y + height, 0, 1); - }; - Matrix4.prototype.ortho = function (left, right, bottom, top, near, far) { - this.identity(); - var x_orth = 2 / (right - left); - var y_orth = 2 / (top - bottom); - var z_orth = -2 / (far - near); - var tx = -(right + left) / (right - left); - var ty = -(top + bottom) / (top - bottom); - var tz = -(far + near) / (far - near); - var v = this.values; - v[webgl.M00] = x_orth; - v[webgl.M10] = 0; - v[webgl.M20] = 0; - v[webgl.M30] = 0; - v[webgl.M01] = 0; - v[webgl.M11] = y_orth; - v[webgl.M21] = 0; - v[webgl.M31] = 0; - v[webgl.M02] = 0; - v[webgl.M12] = 0; - v[webgl.M22] = z_orth; - v[webgl.M32] = 0; - v[webgl.M03] = tx; - v[webgl.M13] = ty; - v[webgl.M23] = tz; - v[webgl.M33] = 1; - return this; - }; - Matrix4.prototype.multiply = function (matrix) { - var t = this.temp; - var v = this.values; - var m = matrix.values; - t[webgl.M00] = v[webgl.M00] * m[webgl.M00] + v[webgl.M01] * m[webgl.M10] + v[webgl.M02] * m[webgl.M20] + v[webgl.M03] * m[webgl.M30]; - t[webgl.M01] = v[webgl.M00] * m[webgl.M01] + v[webgl.M01] * m[webgl.M11] + v[webgl.M02] * m[webgl.M21] + v[webgl.M03] * m[webgl.M31]; - t[webgl.M02] = v[webgl.M00] * m[webgl.M02] + v[webgl.M01] * m[webgl.M12] + v[webgl.M02] * m[webgl.M22] + v[webgl.M03] * m[webgl.M32]; - t[webgl.M03] = v[webgl.M00] * m[webgl.M03] + v[webgl.M01] * m[webgl.M13] + v[webgl.M02] * m[webgl.M23] + v[webgl.M03] * m[webgl.M33]; - t[webgl.M10] = v[webgl.M10] * m[webgl.M00] + v[webgl.M11] * m[webgl.M10] + v[webgl.M12] * m[webgl.M20] + v[webgl.M13] * m[webgl.M30]; - t[webgl.M11] = v[webgl.M10] * m[webgl.M01] + v[webgl.M11] * m[webgl.M11] + v[webgl.M12] * m[webgl.M21] + v[webgl.M13] * m[webgl.M31]; - t[webgl.M12] = v[webgl.M10] * m[webgl.M02] + v[webgl.M11] * m[webgl.M12] + v[webgl.M12] * m[webgl.M22] + v[webgl.M13] * m[webgl.M32]; - t[webgl.M13] = v[webgl.M10] * m[webgl.M03] + v[webgl.M11] * m[webgl.M13] + v[webgl.M12] * m[webgl.M23] + v[webgl.M13] * m[webgl.M33]; - t[webgl.M20] = v[webgl.M20] * m[webgl.M00] + v[webgl.M21] * m[webgl.M10] + v[webgl.M22] * m[webgl.M20] + v[webgl.M23] * m[webgl.M30]; - t[webgl.M21] = v[webgl.M20] * m[webgl.M01] + v[webgl.M21] * m[webgl.M11] + v[webgl.M22] * m[webgl.M21] + v[webgl.M23] * m[webgl.M31]; - t[webgl.M22] = v[webgl.M20] * m[webgl.M02] + v[webgl.M21] * m[webgl.M12] + v[webgl.M22] * m[webgl.M22] + v[webgl.M23] * m[webgl.M32]; - t[webgl.M23] = v[webgl.M20] * m[webgl.M03] + v[webgl.M21] * m[webgl.M13] + v[webgl.M22] * m[webgl.M23] + v[webgl.M23] * m[webgl.M33]; - t[webgl.M30] = v[webgl.M30] * m[webgl.M00] + v[webgl.M31] * m[webgl.M10] + v[webgl.M32] * m[webgl.M20] + v[webgl.M33] * m[webgl.M30]; - t[webgl.M31] = v[webgl.M30] * m[webgl.M01] + v[webgl.M31] * m[webgl.M11] + v[webgl.M32] * m[webgl.M21] + v[webgl.M33] * m[webgl.M31]; - t[webgl.M32] = v[webgl.M30] * m[webgl.M02] + v[webgl.M31] * m[webgl.M12] + v[webgl.M32] * m[webgl.M22] + v[webgl.M33] * m[webgl.M32]; - t[webgl.M33] = v[webgl.M30] * m[webgl.M03] + v[webgl.M31] * m[webgl.M13] + v[webgl.M32] * m[webgl.M23] + v[webgl.M33] * m[webgl.M33]; - return this.set(this.temp); - }; - Matrix4.prototype.multiplyLeft = function (matrix) { - var t = this.temp; - var v = this.values; - var m = matrix.values; - t[webgl.M00] = m[webgl.M00] * v[webgl.M00] + m[webgl.M01] * v[webgl.M10] + m[webgl.M02] * v[webgl.M20] + m[webgl.M03] * v[webgl.M30]; - t[webgl.M01] = m[webgl.M00] * v[webgl.M01] + m[webgl.M01] * v[webgl.M11] + m[webgl.M02] * v[webgl.M21] + m[webgl.M03] * v[webgl.M31]; - t[webgl.M02] = m[webgl.M00] * v[webgl.M02] + m[webgl.M01] * v[webgl.M12] + m[webgl.M02] * v[webgl.M22] + m[webgl.M03] * v[webgl.M32]; - t[webgl.M03] = m[webgl.M00] * v[webgl.M03] + m[webgl.M01] * v[webgl.M13] + m[webgl.M02] * v[webgl.M23] + m[webgl.M03] * v[webgl.M33]; - t[webgl.M10] = m[webgl.M10] * v[webgl.M00] + m[webgl.M11] * v[webgl.M10] + m[webgl.M12] * v[webgl.M20] + m[webgl.M13] * v[webgl.M30]; - t[webgl.M11] = m[webgl.M10] * v[webgl.M01] + m[webgl.M11] * v[webgl.M11] + m[webgl.M12] * v[webgl.M21] + m[webgl.M13] * v[webgl.M31]; - t[webgl.M12] = m[webgl.M10] * v[webgl.M02] + m[webgl.M11] * v[webgl.M12] + m[webgl.M12] * v[webgl.M22] + m[webgl.M13] * v[webgl.M32]; - t[webgl.M13] = m[webgl.M10] * v[webgl.M03] + m[webgl.M11] * v[webgl.M13] + m[webgl.M12] * v[webgl.M23] + m[webgl.M13] * v[webgl.M33]; - t[webgl.M20] = m[webgl.M20] * v[webgl.M00] + m[webgl.M21] * v[webgl.M10] + m[webgl.M22] * v[webgl.M20] + m[webgl.M23] * v[webgl.M30]; - t[webgl.M21] = m[webgl.M20] * v[webgl.M01] + m[webgl.M21] * v[webgl.M11] + m[webgl.M22] * v[webgl.M21] + m[webgl.M23] * v[webgl.M31]; - t[webgl.M22] = m[webgl.M20] * v[webgl.M02] + m[webgl.M21] * v[webgl.M12] + m[webgl.M22] * v[webgl.M22] + m[webgl.M23] * v[webgl.M32]; - t[webgl.M23] = m[webgl.M20] * v[webgl.M03] + m[webgl.M21] * v[webgl.M13] + m[webgl.M22] * v[webgl.M23] + m[webgl.M23] * v[webgl.M33]; - t[webgl.M30] = m[webgl.M30] * v[webgl.M00] + m[webgl.M31] * v[webgl.M10] + m[webgl.M32] * v[webgl.M20] + m[webgl.M33] * v[webgl.M30]; - t[webgl.M31] = m[webgl.M30] * v[webgl.M01] + m[webgl.M31] * v[webgl.M11] + m[webgl.M32] * v[webgl.M21] + m[webgl.M33] * v[webgl.M31]; - t[webgl.M32] = m[webgl.M30] * v[webgl.M02] + m[webgl.M31] * v[webgl.M12] + m[webgl.M32] * v[webgl.M22] + m[webgl.M33] * v[webgl.M32]; - t[webgl.M33] = m[webgl.M30] * v[webgl.M03] + m[webgl.M31] * v[webgl.M13] + m[webgl.M32] * v[webgl.M23] + m[webgl.M33] * v[webgl.M33]; - return this.set(this.temp); - }; - Matrix4.prototype.lookAt = function (position, direction, up) { - Matrix4.initTemps(); - var xAxis = Matrix4.xAxis, yAxis = Matrix4.yAxis, zAxis = Matrix4.zAxis; - zAxis.setFrom(direction).normalize(); - xAxis.setFrom(direction).normalize(); - xAxis.cross(up).normalize(); - yAxis.setFrom(xAxis).cross(zAxis).normalize(); - this.identity(); - var val = this.values; - val[webgl.M00] = xAxis.x; - val[webgl.M01] = xAxis.y; - val[webgl.M02] = xAxis.z; - val[webgl.M10] = yAxis.x; - val[webgl.M11] = yAxis.y; - val[webgl.M12] = yAxis.z; - val[webgl.M20] = -zAxis.x; - val[webgl.M21] = -zAxis.y; - val[webgl.M22] = -zAxis.z; - Matrix4.tmpMatrix.identity(); - Matrix4.tmpMatrix.values[webgl.M03] = -position.x; - Matrix4.tmpMatrix.values[webgl.M13] = -position.y; - Matrix4.tmpMatrix.values[webgl.M23] = -position.z; - this.multiply(Matrix4.tmpMatrix); - return this; - }; - Matrix4.initTemps = function () { - if (Matrix4.xAxis === null) - Matrix4.xAxis = new webgl.Vector3(); - if (Matrix4.yAxis === null) - Matrix4.yAxis = new webgl.Vector3(); - if (Matrix4.zAxis === null) - Matrix4.zAxis = new webgl.Vector3(); - }; - Matrix4.xAxis = null; - Matrix4.yAxis = null; - Matrix4.zAxis = null; - Matrix4.tmpMatrix = new Matrix4(); - return Matrix4; - }()); - webgl.Matrix4 = Matrix4; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + webgl.M00 = 0; + webgl.M01 = 4; + webgl.M02 = 8; + webgl.M03 = 12; + webgl.M10 = 1; + webgl.M11 = 5; + webgl.M12 = 9; + webgl.M13 = 13; + webgl.M20 = 2; + webgl.M21 = 6; + webgl.M22 = 10; + webgl.M23 = 14; + webgl.M30 = 3; + webgl.M31 = 7; + webgl.M32 = 11; + webgl.M33 = 15; + var Matrix4 = (function () { + function Matrix4() { + this.temp = new Float32Array(16); + this.values = new Float32Array(16); + var v = this.values; + v[webgl.M00] = 1; + v[webgl.M11] = 1; + v[webgl.M22] = 1; + v[webgl.M33] = 1; + } + Matrix4.prototype.set = function (values) { + this.values.set(values); + return this; + }; + Matrix4.prototype.transpose = function () { + var t = this.temp; + var v = this.values; + t[webgl.M00] = v[webgl.M00]; + t[webgl.M01] = v[webgl.M10]; + t[webgl.M02] = v[webgl.M20]; + t[webgl.M03] = v[webgl.M30]; + t[webgl.M10] = v[webgl.M01]; + t[webgl.M11] = v[webgl.M11]; + t[webgl.M12] = v[webgl.M21]; + t[webgl.M13] = v[webgl.M31]; + t[webgl.M20] = v[webgl.M02]; + t[webgl.M21] = v[webgl.M12]; + t[webgl.M22] = v[webgl.M22]; + t[webgl.M23] = v[webgl.M32]; + t[webgl.M30] = v[webgl.M03]; + t[webgl.M31] = v[webgl.M13]; + t[webgl.M32] = v[webgl.M23]; + t[webgl.M33] = v[webgl.M33]; + return this.set(t); + }; + Matrix4.prototype.identity = function () { + var v = this.values; + v[webgl.M00] = 1; + v[webgl.M01] = 0; + v[webgl.M02] = 0; + v[webgl.M03] = 0; + v[webgl.M10] = 0; + v[webgl.M11] = 1; + v[webgl.M12] = 0; + v[webgl.M13] = 0; + v[webgl.M20] = 0; + v[webgl.M21] = 0; + v[webgl.M22] = 1; + v[webgl.M23] = 0; + v[webgl.M30] = 0; + v[webgl.M31] = 0; + v[webgl.M32] = 0; + v[webgl.M33] = 1; + return this; + }; + Matrix4.prototype.invert = function () { + var v = this.values; + var t = this.temp; + var l_det = v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] + + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] + - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] + - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] + + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] + + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] + - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] + - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; + if (l_det == 0) + throw new Error("non-invertible matrix"); + var inv_det = 1.0 / l_det; + t[webgl.M00] = v[webgl.M12] * v[webgl.M23] * v[webgl.M31] - v[webgl.M13] * v[webgl.M22] * v[webgl.M31] + v[webgl.M13] * v[webgl.M21] * v[webgl.M32] + - v[webgl.M11] * v[webgl.M23] * v[webgl.M32] - v[webgl.M12] * v[webgl.M21] * v[webgl.M33] + v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M01] = v[webgl.M03] * v[webgl.M22] * v[webgl.M31] - v[webgl.M02] * v[webgl.M23] * v[webgl.M31] - v[webgl.M03] * v[webgl.M21] * v[webgl.M32] + + v[webgl.M01] * v[webgl.M23] * v[webgl.M32] + v[webgl.M02] * v[webgl.M21] * v[webgl.M33] - v[webgl.M01] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M02] = v[webgl.M02] * v[webgl.M13] * v[webgl.M31] - v[webgl.M03] * v[webgl.M12] * v[webgl.M31] + v[webgl.M03] * v[webgl.M11] * v[webgl.M32] + - v[webgl.M01] * v[webgl.M13] * v[webgl.M32] - v[webgl.M02] * v[webgl.M11] * v[webgl.M33] + v[webgl.M01] * v[webgl.M12] * v[webgl.M33]; + t[webgl.M03] = v[webgl.M03] * v[webgl.M12] * v[webgl.M21] - v[webgl.M02] * v[webgl.M13] * v[webgl.M21] - v[webgl.M03] * v[webgl.M11] * v[webgl.M22] + + v[webgl.M01] * v[webgl.M13] * v[webgl.M22] + v[webgl.M02] * v[webgl.M11] * v[webgl.M23] - v[webgl.M01] * v[webgl.M12] * v[webgl.M23]; + t[webgl.M10] = v[webgl.M13] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M20] * v[webgl.M32] + + v[webgl.M10] * v[webgl.M23] * v[webgl.M32] + v[webgl.M12] * v[webgl.M20] * v[webgl.M33] - v[webgl.M10] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M11] = v[webgl.M02] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M22] * v[webgl.M30] + v[webgl.M03] * v[webgl.M20] * v[webgl.M32] + - v[webgl.M00] * v[webgl.M23] * v[webgl.M32] - v[webgl.M02] * v[webgl.M20] * v[webgl.M33] + v[webgl.M00] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M12] = v[webgl.M03] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M10] * v[webgl.M32] + + v[webgl.M00] * v[webgl.M13] * v[webgl.M32] + v[webgl.M02] * v[webgl.M10] * v[webgl.M33] - v[webgl.M00] * v[webgl.M12] * v[webgl.M33]; + t[webgl.M13] = v[webgl.M02] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M12] * v[webgl.M20] + v[webgl.M03] * v[webgl.M10] * v[webgl.M22] + - v[webgl.M00] * v[webgl.M13] * v[webgl.M22] - v[webgl.M02] * v[webgl.M10] * v[webgl.M23] + v[webgl.M00] * v[webgl.M12] * v[webgl.M23]; + t[webgl.M20] = v[webgl.M11] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M21] * v[webgl.M30] + v[webgl.M13] * v[webgl.M20] * v[webgl.M31] + - v[webgl.M10] * v[webgl.M23] * v[webgl.M31] - v[webgl.M11] * v[webgl.M20] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M33]; + t[webgl.M21] = v[webgl.M03] * v[webgl.M21] * v[webgl.M30] - v[webgl.M01] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M20] * v[webgl.M31] + + v[webgl.M00] * v[webgl.M23] * v[webgl.M31] + v[webgl.M01] * v[webgl.M20] * v[webgl.M33] - v[webgl.M00] * v[webgl.M21] * v[webgl.M33]; + t[webgl.M22] = v[webgl.M01] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M11] * v[webgl.M30] + v[webgl.M03] * v[webgl.M10] * v[webgl.M31] + - v[webgl.M00] * v[webgl.M13] * v[webgl.M31] - v[webgl.M01] * v[webgl.M10] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M33]; + t[webgl.M23] = v[webgl.M03] * v[webgl.M11] * v[webgl.M20] - v[webgl.M01] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M10] * v[webgl.M21] + + v[webgl.M00] * v[webgl.M13] * v[webgl.M21] + v[webgl.M01] * v[webgl.M10] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M23]; + t[webgl.M30] = v[webgl.M12] * v[webgl.M21] * v[webgl.M30] - v[webgl.M11] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M20] * v[webgl.M31] + + v[webgl.M10] * v[webgl.M22] * v[webgl.M31] + v[webgl.M11] * v[webgl.M20] * v[webgl.M32] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32]; + t[webgl.M31] = v[webgl.M01] * v[webgl.M22] * v[webgl.M30] - v[webgl.M02] * v[webgl.M21] * v[webgl.M30] + v[webgl.M02] * v[webgl.M20] * v[webgl.M31] + - v[webgl.M00] * v[webgl.M22] * v[webgl.M31] - v[webgl.M01] * v[webgl.M20] * v[webgl.M32] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32]; + t[webgl.M32] = v[webgl.M02] * v[webgl.M11] * v[webgl.M30] - v[webgl.M01] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M10] * v[webgl.M31] + + v[webgl.M00] * v[webgl.M12] * v[webgl.M31] + v[webgl.M01] * v[webgl.M10] * v[webgl.M32] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32]; + t[webgl.M33] = v[webgl.M01] * v[webgl.M12] * v[webgl.M20] - v[webgl.M02] * v[webgl.M11] * v[webgl.M20] + v[webgl.M02] * v[webgl.M10] * v[webgl.M21] + - v[webgl.M00] * v[webgl.M12] * v[webgl.M21] - v[webgl.M01] * v[webgl.M10] * v[webgl.M22] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22]; + v[webgl.M00] = t[webgl.M00] * inv_det; + v[webgl.M01] = t[webgl.M01] * inv_det; + v[webgl.M02] = t[webgl.M02] * inv_det; + v[webgl.M03] = t[webgl.M03] * inv_det; + v[webgl.M10] = t[webgl.M10] * inv_det; + v[webgl.M11] = t[webgl.M11] * inv_det; + v[webgl.M12] = t[webgl.M12] * inv_det; + v[webgl.M13] = t[webgl.M13] * inv_det; + v[webgl.M20] = t[webgl.M20] * inv_det; + v[webgl.M21] = t[webgl.M21] * inv_det; + v[webgl.M22] = t[webgl.M22] * inv_det; + v[webgl.M23] = t[webgl.M23] * inv_det; + v[webgl.M30] = t[webgl.M30] * inv_det; + v[webgl.M31] = t[webgl.M31] * inv_det; + v[webgl.M32] = t[webgl.M32] * inv_det; + v[webgl.M33] = t[webgl.M33] * inv_det; + return this; + }; + Matrix4.prototype.determinant = function () { + var v = this.values; + return v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] + + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] + - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] + - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] + + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] + + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] + - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] + - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; + }; + Matrix4.prototype.translate = function (x, y, z) { + var v = this.values; + v[webgl.M03] += x; + v[webgl.M13] += y; + v[webgl.M23] += z; + return this; + }; + Matrix4.prototype.copy = function () { + return new Matrix4().set(this.values); + }; + Matrix4.prototype.projection = function (near, far, fovy, aspectRatio) { + this.identity(); + var l_fd = (1.0 / Math.tan((fovy * (Math.PI / 180)) / 2.0)); + var l_a1 = (far + near) / (near - far); + var l_a2 = (2 * far * near) / (near - far); + var v = this.values; + v[webgl.M00] = l_fd / aspectRatio; + v[webgl.M10] = 0; + v[webgl.M20] = 0; + v[webgl.M30] = 0; + v[webgl.M01] = 0; + v[webgl.M11] = l_fd; + v[webgl.M21] = 0; + v[webgl.M31] = 0; + v[webgl.M02] = 0; + v[webgl.M12] = 0; + v[webgl.M22] = l_a1; + v[webgl.M32] = -1; + v[webgl.M03] = 0; + v[webgl.M13] = 0; + v[webgl.M23] = l_a2; + v[webgl.M33] = 0; + return this; + }; + Matrix4.prototype.ortho2d = function (x, y, width, height) { + return this.ortho(x, x + width, y, y + height, 0, 1); + }; + Matrix4.prototype.ortho = function (left, right, bottom, top, near, far) { + this.identity(); + var x_orth = 2 / (right - left); + var y_orth = 2 / (top - bottom); + var z_orth = -2 / (far - near); + var tx = -(right + left) / (right - left); + var ty = -(top + bottom) / (top - bottom); + var tz = -(far + near) / (far - near); + var v = this.values; + v[webgl.M00] = x_orth; + v[webgl.M10] = 0; + v[webgl.M20] = 0; + v[webgl.M30] = 0; + v[webgl.M01] = 0; + v[webgl.M11] = y_orth; + v[webgl.M21] = 0; + v[webgl.M31] = 0; + v[webgl.M02] = 0; + v[webgl.M12] = 0; + v[webgl.M22] = z_orth; + v[webgl.M32] = 0; + v[webgl.M03] = tx; + v[webgl.M13] = ty; + v[webgl.M23] = tz; + v[webgl.M33] = 1; + return this; + }; + Matrix4.prototype.multiply = function (matrix) { + var t = this.temp; + var v = this.values; + var m = matrix.values; + t[webgl.M00] = v[webgl.M00] * m[webgl.M00] + v[webgl.M01] * m[webgl.M10] + v[webgl.M02] * m[webgl.M20] + v[webgl.M03] * m[webgl.M30]; + t[webgl.M01] = v[webgl.M00] * m[webgl.M01] + v[webgl.M01] * m[webgl.M11] + v[webgl.M02] * m[webgl.M21] + v[webgl.M03] * m[webgl.M31]; + t[webgl.M02] = v[webgl.M00] * m[webgl.M02] + v[webgl.M01] * m[webgl.M12] + v[webgl.M02] * m[webgl.M22] + v[webgl.M03] * m[webgl.M32]; + t[webgl.M03] = v[webgl.M00] * m[webgl.M03] + v[webgl.M01] * m[webgl.M13] + v[webgl.M02] * m[webgl.M23] + v[webgl.M03] * m[webgl.M33]; + t[webgl.M10] = v[webgl.M10] * m[webgl.M00] + v[webgl.M11] * m[webgl.M10] + v[webgl.M12] * m[webgl.M20] + v[webgl.M13] * m[webgl.M30]; + t[webgl.M11] = v[webgl.M10] * m[webgl.M01] + v[webgl.M11] * m[webgl.M11] + v[webgl.M12] * m[webgl.M21] + v[webgl.M13] * m[webgl.M31]; + t[webgl.M12] = v[webgl.M10] * m[webgl.M02] + v[webgl.M11] * m[webgl.M12] + v[webgl.M12] * m[webgl.M22] + v[webgl.M13] * m[webgl.M32]; + t[webgl.M13] = v[webgl.M10] * m[webgl.M03] + v[webgl.M11] * m[webgl.M13] + v[webgl.M12] * m[webgl.M23] + v[webgl.M13] * m[webgl.M33]; + t[webgl.M20] = v[webgl.M20] * m[webgl.M00] + v[webgl.M21] * m[webgl.M10] + v[webgl.M22] * m[webgl.M20] + v[webgl.M23] * m[webgl.M30]; + t[webgl.M21] = v[webgl.M20] * m[webgl.M01] + v[webgl.M21] * m[webgl.M11] + v[webgl.M22] * m[webgl.M21] + v[webgl.M23] * m[webgl.M31]; + t[webgl.M22] = v[webgl.M20] * m[webgl.M02] + v[webgl.M21] * m[webgl.M12] + v[webgl.M22] * m[webgl.M22] + v[webgl.M23] * m[webgl.M32]; + t[webgl.M23] = v[webgl.M20] * m[webgl.M03] + v[webgl.M21] * m[webgl.M13] + v[webgl.M22] * m[webgl.M23] + v[webgl.M23] * m[webgl.M33]; + t[webgl.M30] = v[webgl.M30] * m[webgl.M00] + v[webgl.M31] * m[webgl.M10] + v[webgl.M32] * m[webgl.M20] + v[webgl.M33] * m[webgl.M30]; + t[webgl.M31] = v[webgl.M30] * m[webgl.M01] + v[webgl.M31] * m[webgl.M11] + v[webgl.M32] * m[webgl.M21] + v[webgl.M33] * m[webgl.M31]; + t[webgl.M32] = v[webgl.M30] * m[webgl.M02] + v[webgl.M31] * m[webgl.M12] + v[webgl.M32] * m[webgl.M22] + v[webgl.M33] * m[webgl.M32]; + t[webgl.M33] = v[webgl.M30] * m[webgl.M03] + v[webgl.M31] * m[webgl.M13] + v[webgl.M32] * m[webgl.M23] + v[webgl.M33] * m[webgl.M33]; + return this.set(this.temp); + }; + Matrix4.prototype.multiplyLeft = function (matrix) { + var t = this.temp; + var v = this.values; + var m = matrix.values; + t[webgl.M00] = m[webgl.M00] * v[webgl.M00] + m[webgl.M01] * v[webgl.M10] + m[webgl.M02] * v[webgl.M20] + m[webgl.M03] * v[webgl.M30]; + t[webgl.M01] = m[webgl.M00] * v[webgl.M01] + m[webgl.M01] * v[webgl.M11] + m[webgl.M02] * v[webgl.M21] + m[webgl.M03] * v[webgl.M31]; + t[webgl.M02] = m[webgl.M00] * v[webgl.M02] + m[webgl.M01] * v[webgl.M12] + m[webgl.M02] * v[webgl.M22] + m[webgl.M03] * v[webgl.M32]; + t[webgl.M03] = m[webgl.M00] * v[webgl.M03] + m[webgl.M01] * v[webgl.M13] + m[webgl.M02] * v[webgl.M23] + m[webgl.M03] * v[webgl.M33]; + t[webgl.M10] = m[webgl.M10] * v[webgl.M00] + m[webgl.M11] * v[webgl.M10] + m[webgl.M12] * v[webgl.M20] + m[webgl.M13] * v[webgl.M30]; + t[webgl.M11] = m[webgl.M10] * v[webgl.M01] + m[webgl.M11] * v[webgl.M11] + m[webgl.M12] * v[webgl.M21] + m[webgl.M13] * v[webgl.M31]; + t[webgl.M12] = m[webgl.M10] * v[webgl.M02] + m[webgl.M11] * v[webgl.M12] + m[webgl.M12] * v[webgl.M22] + m[webgl.M13] * v[webgl.M32]; + t[webgl.M13] = m[webgl.M10] * v[webgl.M03] + m[webgl.M11] * v[webgl.M13] + m[webgl.M12] * v[webgl.M23] + m[webgl.M13] * v[webgl.M33]; + t[webgl.M20] = m[webgl.M20] * v[webgl.M00] + m[webgl.M21] * v[webgl.M10] + m[webgl.M22] * v[webgl.M20] + m[webgl.M23] * v[webgl.M30]; + t[webgl.M21] = m[webgl.M20] * v[webgl.M01] + m[webgl.M21] * v[webgl.M11] + m[webgl.M22] * v[webgl.M21] + m[webgl.M23] * v[webgl.M31]; + t[webgl.M22] = m[webgl.M20] * v[webgl.M02] + m[webgl.M21] * v[webgl.M12] + m[webgl.M22] * v[webgl.M22] + m[webgl.M23] * v[webgl.M32]; + t[webgl.M23] = m[webgl.M20] * v[webgl.M03] + m[webgl.M21] * v[webgl.M13] + m[webgl.M22] * v[webgl.M23] + m[webgl.M23] * v[webgl.M33]; + t[webgl.M30] = m[webgl.M30] * v[webgl.M00] + m[webgl.M31] * v[webgl.M10] + m[webgl.M32] * v[webgl.M20] + m[webgl.M33] * v[webgl.M30]; + t[webgl.M31] = m[webgl.M30] * v[webgl.M01] + m[webgl.M31] * v[webgl.M11] + m[webgl.M32] * v[webgl.M21] + m[webgl.M33] * v[webgl.M31]; + t[webgl.M32] = m[webgl.M30] * v[webgl.M02] + m[webgl.M31] * v[webgl.M12] + m[webgl.M32] * v[webgl.M22] + m[webgl.M33] * v[webgl.M32]; + t[webgl.M33] = m[webgl.M30] * v[webgl.M03] + m[webgl.M31] * v[webgl.M13] + m[webgl.M32] * v[webgl.M23] + m[webgl.M33] * v[webgl.M33]; + return this.set(this.temp); + }; + Matrix4.prototype.lookAt = function (position, direction, up) { + Matrix4.initTemps(); + var xAxis = Matrix4.xAxis, yAxis = Matrix4.yAxis, zAxis = Matrix4.zAxis; + zAxis.setFrom(direction).normalize(); + xAxis.setFrom(direction).normalize(); + xAxis.cross(up).normalize(); + yAxis.setFrom(xAxis).cross(zAxis).normalize(); + this.identity(); + var val = this.values; + val[webgl.M00] = xAxis.x; + val[webgl.M01] = xAxis.y; + val[webgl.M02] = xAxis.z; + val[webgl.M10] = yAxis.x; + val[webgl.M11] = yAxis.y; + val[webgl.M12] = yAxis.z; + val[webgl.M20] = -zAxis.x; + val[webgl.M21] = -zAxis.y; + val[webgl.M22] = -zAxis.z; + Matrix4.tmpMatrix.identity(); + Matrix4.tmpMatrix.values[webgl.M03] = -position.x; + Matrix4.tmpMatrix.values[webgl.M13] = -position.y; + Matrix4.tmpMatrix.values[webgl.M23] = -position.z; + this.multiply(Matrix4.tmpMatrix); + return this; + }; + Matrix4.initTemps = function () { + if (Matrix4.xAxis === null) + Matrix4.xAxis = new webgl.Vector3(); + if (Matrix4.yAxis === null) + Matrix4.yAxis = new webgl.Vector3(); + if (Matrix4.zAxis === null) + Matrix4.zAxis = new webgl.Vector3(); + }; + Matrix4.xAxis = null; + Matrix4.yAxis = null; + Matrix4.zAxis = null; + Matrix4.tmpMatrix = new Matrix4(); + return Matrix4; + }()); + webgl.Matrix4 = Matrix4; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Mesh = (function () { - function Mesh(context, attributes, maxVertices, maxIndices) { - this.attributes = attributes; - this.verticesLength = 0; - this.dirtyVertices = false; - this.indicesLength = 0; - this.dirtyIndices = false; - this.elementsPerVertex = 0; - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.elementsPerVertex = 0; - for (var i = 0; i < attributes.length; i++) { - this.elementsPerVertex += attributes[i].numElements; - } - this.vertices = new Float32Array(maxVertices * this.elementsPerVertex); - this.indices = new Uint16Array(maxIndices); - this.context.addRestorable(this); - } - Mesh.prototype.getAttributes = function () { return this.attributes; }; - Mesh.prototype.maxVertices = function () { return this.vertices.length / this.elementsPerVertex; }; - Mesh.prototype.numVertices = function () { return this.verticesLength / this.elementsPerVertex; }; - Mesh.prototype.setVerticesLength = function (length) { - this.dirtyVertices = true; - this.verticesLength = length; - }; - Mesh.prototype.getVertices = function () { return this.vertices; }; - Mesh.prototype.maxIndices = function () { return this.indices.length; }; - Mesh.prototype.numIndices = function () { return this.indicesLength; }; - Mesh.prototype.setIndicesLength = function (length) { - this.dirtyIndices = true; - this.indicesLength = length; - }; - Mesh.prototype.getIndices = function () { return this.indices; }; - ; - Mesh.prototype.getVertexSizeInFloats = function () { - var size = 0; - for (var i = 0; i < this.attributes.length; i++) { - var attribute = this.attributes[i]; - size += attribute.numElements; - } - return size; - }; - Mesh.prototype.setVertices = function (vertices) { - this.dirtyVertices = true; - if (vertices.length > this.vertices.length) - throw Error("Mesh can't store more than " + this.maxVertices() + " vertices"); - this.vertices.set(vertices, 0); - this.verticesLength = vertices.length; - }; - Mesh.prototype.setIndices = function (indices) { - this.dirtyIndices = true; - if (indices.length > this.indices.length) - throw Error("Mesh can't store more than " + this.maxIndices() + " indices"); - this.indices.set(indices, 0); - this.indicesLength = indices.length; - }; - Mesh.prototype.draw = function (shader, primitiveType) { - this.drawWithOffset(shader, primitiveType, 0, this.indicesLength > 0 ? this.indicesLength : this.verticesLength / this.elementsPerVertex); - }; - Mesh.prototype.drawWithOffset = function (shader, primitiveType, offset, count) { - var gl = this.context.gl; - if (this.dirtyVertices || this.dirtyIndices) - this.update(); - this.bind(shader); - if (this.indicesLength > 0) { - gl.drawElements(primitiveType, count, gl.UNSIGNED_SHORT, offset * 2); - } - else { - gl.drawArrays(primitiveType, offset, count); - } - this.unbind(shader); - }; - Mesh.prototype.bind = function (shader) { - var gl = this.context.gl; - gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); - var offset = 0; - for (var i = 0; i < this.attributes.length; i++) { - var attrib = this.attributes[i]; - var location_1 = shader.getAttributeLocation(attrib.name); - gl.enableVertexAttribArray(location_1); - gl.vertexAttribPointer(location_1, attrib.numElements, gl.FLOAT, false, this.elementsPerVertex * 4, offset * 4); - offset += attrib.numElements; - } - if (this.indicesLength > 0) - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); - }; - Mesh.prototype.unbind = function (shader) { - var gl = this.context.gl; - for (var i = 0; i < this.attributes.length; i++) { - var attrib = this.attributes[i]; - var location_2 = shader.getAttributeLocation(attrib.name); - gl.disableVertexAttribArray(location_2); - } - gl.bindBuffer(gl.ARRAY_BUFFER, null); - if (this.indicesLength > 0) - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); - }; - Mesh.prototype.update = function () { - var gl = this.context.gl; - if (this.dirtyVertices) { - if (!this.verticesBuffer) { - this.verticesBuffer = gl.createBuffer(); - } - gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.vertices.subarray(0, this.verticesLength), gl.DYNAMIC_DRAW); - this.dirtyVertices = false; - } - if (this.dirtyIndices) { - if (!this.indicesBuffer) { - this.indicesBuffer = gl.createBuffer(); - } - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); - gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices.subarray(0, this.indicesLength), gl.DYNAMIC_DRAW); - this.dirtyIndices = false; - } - }; - Mesh.prototype.restore = function () { - this.verticesBuffer = null; - this.indicesBuffer = null; - this.update(); - }; - Mesh.prototype.dispose = function () { - this.context.removeRestorable(this); - var gl = this.context.gl; - gl.deleteBuffer(this.verticesBuffer); - gl.deleteBuffer(this.indicesBuffer); - }; - return Mesh; - }()); - webgl.Mesh = Mesh; - var VertexAttribute = (function () { - function VertexAttribute(name, type, numElements) { - this.name = name; - this.type = type; - this.numElements = numElements; - } - return VertexAttribute; - }()); - webgl.VertexAttribute = VertexAttribute; - var Position2Attribute = (function (_super) { - __extends(Position2Attribute, _super); - function Position2Attribute() { - _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 2); - } - return Position2Attribute; - }(VertexAttribute)); - webgl.Position2Attribute = Position2Attribute; - var Position3Attribute = (function (_super) { - __extends(Position3Attribute, _super); - function Position3Attribute() { - _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 3); - } - return Position3Attribute; - }(VertexAttribute)); - webgl.Position3Attribute = Position3Attribute; - var TexCoordAttribute = (function (_super) { - __extends(TexCoordAttribute, _super); - function TexCoordAttribute(unit) { - if (unit === void 0) { unit = 0; } - _super.call(this, webgl.Shader.TEXCOORDS + (unit == 0 ? "" : unit), VertexAttributeType.Float, 2); - } - return TexCoordAttribute; - }(VertexAttribute)); - webgl.TexCoordAttribute = TexCoordAttribute; - var ColorAttribute = (function (_super) { - __extends(ColorAttribute, _super); - function ColorAttribute() { - _super.call(this, webgl.Shader.COLOR, VertexAttributeType.Float, 4); - } - return ColorAttribute; - }(VertexAttribute)); - webgl.ColorAttribute = ColorAttribute; - var Color2Attribute = (function (_super) { - __extends(Color2Attribute, _super); - function Color2Attribute() { - _super.call(this, webgl.Shader.COLOR2, VertexAttributeType.Float, 4); - } - return Color2Attribute; - }(VertexAttribute)); - webgl.Color2Attribute = Color2Attribute; - (function (VertexAttributeType) { - VertexAttributeType[VertexAttributeType["Float"] = 0] = "Float"; - })(webgl.VertexAttributeType || (webgl.VertexAttributeType = {})); - var VertexAttributeType = webgl.VertexAttributeType; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Mesh = (function () { + function Mesh(context, attributes, maxVertices, maxIndices) { + this.attributes = attributes; + this.verticesLength = 0; + this.dirtyVertices = false; + this.indicesLength = 0; + this.dirtyIndices = false; + this.elementsPerVertex = 0; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.elementsPerVertex = 0; + for (var i = 0; i < attributes.length; i++) { + this.elementsPerVertex += attributes[i].numElements; + } + this.vertices = new Float32Array(maxVertices * this.elementsPerVertex); + this.indices = new Uint16Array(maxIndices); + this.context.addRestorable(this); + } + Mesh.prototype.getAttributes = function () { return this.attributes; }; + Mesh.prototype.maxVertices = function () { return this.vertices.length / this.elementsPerVertex; }; + Mesh.prototype.numVertices = function () { return this.verticesLength / this.elementsPerVertex; }; + Mesh.prototype.setVerticesLength = function (length) { + this.dirtyVertices = true; + this.verticesLength = length; + }; + Mesh.prototype.getVertices = function () { return this.vertices; }; + Mesh.prototype.maxIndices = function () { return this.indices.length; }; + Mesh.prototype.numIndices = function () { return this.indicesLength; }; + Mesh.prototype.setIndicesLength = function (length) { + this.dirtyIndices = true; + this.indicesLength = length; + }; + Mesh.prototype.getIndices = function () { return this.indices; }; + ; + Mesh.prototype.getVertexSizeInFloats = function () { + var size = 0; + for (var i = 0; i < this.attributes.length; i++) { + var attribute = this.attributes[i]; + size += attribute.numElements; + } + return size; + }; + Mesh.prototype.setVertices = function (vertices) { + this.dirtyVertices = true; + if (vertices.length > this.vertices.length) + throw Error("Mesh can't store more than " + this.maxVertices() + " vertices"); + this.vertices.set(vertices, 0); + this.verticesLength = vertices.length; + }; + Mesh.prototype.setIndices = function (indices) { + this.dirtyIndices = true; + if (indices.length > this.indices.length) + throw Error("Mesh can't store more than " + this.maxIndices() + " indices"); + this.indices.set(indices, 0); + this.indicesLength = indices.length; + }; + Mesh.prototype.draw = function (shader, primitiveType) { + this.drawWithOffset(shader, primitiveType, 0, this.indicesLength > 0 ? this.indicesLength : this.verticesLength / this.elementsPerVertex); + }; + Mesh.prototype.drawWithOffset = function (shader, primitiveType, offset, count) { + var gl = this.context.gl; + if (this.dirtyVertices || this.dirtyIndices) + this.update(); + this.bind(shader); + if (this.indicesLength > 0) { + gl.drawElements(primitiveType, count, gl.UNSIGNED_SHORT, offset * 2); + } + else { + gl.drawArrays(primitiveType, offset, count); + } + this.unbind(shader); + }; + Mesh.prototype.bind = function (shader) { + var gl = this.context.gl; + gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); + var offset = 0; + for (var i = 0; i < this.attributes.length; i++) { + var attrib = this.attributes[i]; + var location_1 = shader.getAttributeLocation(attrib.name); + gl.enableVertexAttribArray(location_1); + gl.vertexAttribPointer(location_1, attrib.numElements, gl.FLOAT, false, this.elementsPerVertex * 4, offset * 4); + offset += attrib.numElements; + } + if (this.indicesLength > 0) + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); + }; + Mesh.prototype.unbind = function (shader) { + var gl = this.context.gl; + for (var i = 0; i < this.attributes.length; i++) { + var attrib = this.attributes[i]; + var location_2 = shader.getAttributeLocation(attrib.name); + gl.disableVertexAttribArray(location_2); + } + gl.bindBuffer(gl.ARRAY_BUFFER, null); + if (this.indicesLength > 0) + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); + }; + Mesh.prototype.update = function () { + var gl = this.context.gl; + if (this.dirtyVertices) { + if (!this.verticesBuffer) { + this.verticesBuffer = gl.createBuffer(); + } + gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.vertices.subarray(0, this.verticesLength), gl.DYNAMIC_DRAW); + this.dirtyVertices = false; + } + if (this.dirtyIndices) { + if (!this.indicesBuffer) { + this.indicesBuffer = gl.createBuffer(); + } + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices.subarray(0, this.indicesLength), gl.DYNAMIC_DRAW); + this.dirtyIndices = false; + } + }; + Mesh.prototype.restore = function () { + this.verticesBuffer = null; + this.indicesBuffer = null; + this.update(); + }; + Mesh.prototype.dispose = function () { + this.context.removeRestorable(this); + var gl = this.context.gl; + gl.deleteBuffer(this.verticesBuffer); + gl.deleteBuffer(this.indicesBuffer); + }; + return Mesh; + }()); + webgl.Mesh = Mesh; + var VertexAttribute = (function () { + function VertexAttribute(name, type, numElements) { + this.name = name; + this.type = type; + this.numElements = numElements; + } + return VertexAttribute; + }()); + webgl.VertexAttribute = VertexAttribute; + var Position2Attribute = (function (_super) { + __extends(Position2Attribute, _super); + function Position2Attribute() { + _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 2); + } + return Position2Attribute; + }(VertexAttribute)); + webgl.Position2Attribute = Position2Attribute; + var Position3Attribute = (function (_super) { + __extends(Position3Attribute, _super); + function Position3Attribute() { + _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 3); + } + return Position3Attribute; + }(VertexAttribute)); + webgl.Position3Attribute = Position3Attribute; + var TexCoordAttribute = (function (_super) { + __extends(TexCoordAttribute, _super); + function TexCoordAttribute(unit) { + if (unit === void 0) { unit = 0; } + _super.call(this, webgl.Shader.TEXCOORDS + (unit == 0 ? "" : unit), VertexAttributeType.Float, 2); + } + return TexCoordAttribute; + }(VertexAttribute)); + webgl.TexCoordAttribute = TexCoordAttribute; + var ColorAttribute = (function (_super) { + __extends(ColorAttribute, _super); + function ColorAttribute() { + _super.call(this, webgl.Shader.COLOR, VertexAttributeType.Float, 4); + } + return ColorAttribute; + }(VertexAttribute)); + webgl.ColorAttribute = ColorAttribute; + var Color2Attribute = (function (_super) { + __extends(Color2Attribute, _super); + function Color2Attribute() { + _super.call(this, webgl.Shader.COLOR2, VertexAttributeType.Float, 4); + } + return Color2Attribute; + }(VertexAttribute)); + webgl.Color2Attribute = Color2Attribute; + (function (VertexAttributeType) { + VertexAttributeType[VertexAttributeType["Float"] = 0] = "Float"; + })(webgl.VertexAttributeType || (webgl.VertexAttributeType = {})); + var VertexAttributeType = webgl.VertexAttributeType; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var PolygonBatcher = (function () { - function PolygonBatcher(context, twoColorTint, maxVertices) { - if (twoColorTint === void 0) { twoColorTint = true; } - if (maxVertices === void 0) { maxVertices = 10920; } - this.isDrawing = false; - this.shader = null; - this.lastTexture = null; - this.verticesLength = 0; - this.indicesLength = 0; - if (maxVertices > 10920) - throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - var attributes = twoColorTint ? - [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute(), new webgl.Color2Attribute()] : - [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute()]; - this.mesh = new webgl.Mesh(context, attributes, maxVertices, maxVertices * 3); - this.srcBlend = this.context.gl.SRC_ALPHA; - this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; - } - PolygonBatcher.prototype.begin = function (shader) { - var gl = this.context.gl; - if (this.isDrawing) - throw new Error("PolygonBatch is already drawing. Call PolygonBatch.end() before calling PolygonBatch.begin()"); - this.drawCalls = 0; - this.shader = shader; - this.lastTexture = null; - this.isDrawing = true; - gl.enable(gl.BLEND); - gl.blendFunc(this.srcBlend, this.dstBlend); - }; - PolygonBatcher.prototype.setBlendMode = function (srcBlend, dstBlend) { - var gl = this.context.gl; - this.srcBlend = srcBlend; - this.dstBlend = dstBlend; - if (this.isDrawing) { - this.flush(); - gl.blendFunc(this.srcBlend, this.dstBlend); - } - }; - PolygonBatcher.prototype.draw = function (texture, vertices, indices) { - if (texture != this.lastTexture) { - this.flush(); - this.lastTexture = texture; - } - else if (this.verticesLength + vertices.length > this.mesh.getVertices().length || - this.indicesLength + indices.length > this.mesh.getIndices().length) { - this.flush(); - } - var indexStart = this.mesh.numVertices(); - this.mesh.getVertices().set(vertices, this.verticesLength); - this.verticesLength += vertices.length; - this.mesh.setVerticesLength(this.verticesLength); - var indicesArray = this.mesh.getIndices(); - for (var i = this.indicesLength, j = 0; j < indices.length; i++, j++) - indicesArray[i] = indices[j] + indexStart; - this.indicesLength += indices.length; - this.mesh.setIndicesLength(this.indicesLength); - }; - PolygonBatcher.prototype.flush = function () { - var gl = this.context.gl; - if (this.verticesLength == 0) - return; - this.lastTexture.bind(); - this.mesh.draw(this.shader, gl.TRIANGLES); - this.verticesLength = 0; - this.indicesLength = 0; - this.mesh.setVerticesLength(0); - this.mesh.setIndicesLength(0); - this.drawCalls++; - }; - PolygonBatcher.prototype.end = function () { - var gl = this.context.gl; - if (!this.isDrawing) - throw new Error("PolygonBatch is not drawing. Call PolygonBatch.begin() before calling PolygonBatch.end()"); - if (this.verticesLength > 0 || this.indicesLength > 0) - this.flush(); - this.shader = null; - this.lastTexture = null; - this.isDrawing = false; - gl.disable(gl.BLEND); - }; - PolygonBatcher.prototype.getDrawCalls = function () { return this.drawCalls; }; - PolygonBatcher.prototype.dispose = function () { - this.mesh.dispose(); - }; - return PolygonBatcher; - }()); - webgl.PolygonBatcher = PolygonBatcher; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var PolygonBatcher = (function () { + function PolygonBatcher(context, twoColorTint, maxVertices) { + if (twoColorTint === void 0) { twoColorTint = true; } + if (maxVertices === void 0) { maxVertices = 10920; } + this.isDrawing = false; + this.shader = null; + this.lastTexture = null; + this.verticesLength = 0; + this.indicesLength = 0; + if (maxVertices > 10920) + throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + var attributes = twoColorTint ? + [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute(), new webgl.Color2Attribute()] : + [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute()]; + this.mesh = new webgl.Mesh(context, attributes, maxVertices, maxVertices * 3); + this.srcBlend = this.context.gl.SRC_ALPHA; + this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; + } + PolygonBatcher.prototype.begin = function (shader) { + var gl = this.context.gl; + if (this.isDrawing) + throw new Error("PolygonBatch is already drawing. Call PolygonBatch.end() before calling PolygonBatch.begin()"); + this.drawCalls = 0; + this.shader = shader; + this.lastTexture = null; + this.isDrawing = true; + gl.enable(gl.BLEND); + gl.blendFunc(this.srcBlend, this.dstBlend); + }; + PolygonBatcher.prototype.setBlendMode = function (srcBlend, dstBlend) { + var gl = this.context.gl; + this.srcBlend = srcBlend; + this.dstBlend = dstBlend; + if (this.isDrawing) { + this.flush(); + gl.blendFunc(this.srcBlend, this.dstBlend); + } + }; + PolygonBatcher.prototype.draw = function (texture, vertices, indices) { + if (texture != this.lastTexture) { + this.flush(); + this.lastTexture = texture; + } + else if (this.verticesLength + vertices.length > this.mesh.getVertices().length || + this.indicesLength + indices.length > this.mesh.getIndices().length) { + this.flush(); + } + var indexStart = this.mesh.numVertices(); + this.mesh.getVertices().set(vertices, this.verticesLength); + this.verticesLength += vertices.length; + this.mesh.setVerticesLength(this.verticesLength); + var indicesArray = this.mesh.getIndices(); + for (var i = this.indicesLength, j = 0; j < indices.length; i++, j++) + indicesArray[i] = indices[j] + indexStart; + this.indicesLength += indices.length; + this.mesh.setIndicesLength(this.indicesLength); + }; + PolygonBatcher.prototype.flush = function () { + var gl = this.context.gl; + if (this.verticesLength == 0) + return; + this.lastTexture.bind(); + this.mesh.draw(this.shader, gl.TRIANGLES); + this.verticesLength = 0; + this.indicesLength = 0; + this.mesh.setVerticesLength(0); + this.mesh.setIndicesLength(0); + this.drawCalls++; + }; + PolygonBatcher.prototype.end = function () { + var gl = this.context.gl; + if (!this.isDrawing) + throw new Error("PolygonBatch is not drawing. Call PolygonBatch.begin() before calling PolygonBatch.end()"); + if (this.verticesLength > 0 || this.indicesLength > 0) + this.flush(); + this.shader = null; + this.lastTexture = null; + this.isDrawing = false; + gl.disable(gl.BLEND); + }; + PolygonBatcher.prototype.getDrawCalls = function () { return this.drawCalls; }; + PolygonBatcher.prototype.dispose = function () { + this.mesh.dispose(); + }; + return PolygonBatcher; + }()); + webgl.PolygonBatcher = PolygonBatcher; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var SceneRenderer = (function () { - function SceneRenderer(canvas, context, twoColorTint) { - if (twoColorTint === void 0) { twoColorTint = true; } - this.twoColorTint = false; - this.activeRenderer = null; - this.QUAD = [ - 0, 0, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 0, 0, - ]; - this.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - this.WHITE = new spine.Color(1, 1, 1, 1); - this.canvas = canvas; - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.twoColorTint = twoColorTint; - this.camera = new webgl.OrthoCamera(canvas.width, canvas.height); - this.batcherShader = twoColorTint ? webgl.Shader.newTwoColoredTextured(this.context) : webgl.Shader.newColoredTextured(this.context); - this.batcher = new webgl.PolygonBatcher(this.context, twoColorTint); - this.shapesShader = webgl.Shader.newColored(this.context); - this.shapes = new webgl.ShapeRenderer(this.context); - this.skeletonRenderer = new webgl.SkeletonRenderer(this.context, twoColorTint); - this.skeletonDebugRenderer = new webgl.SkeletonDebugRenderer(this.context); - } - SceneRenderer.prototype.begin = function () { - this.camera.update(); - this.enableRenderer(this.batcher); - }; - SceneRenderer.prototype.drawSkeleton = function (skeleton, premultipliedAlpha) { - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - this.enableRenderer(this.batcher); - this.skeletonRenderer.premultipliedAlpha = premultipliedAlpha; - this.skeletonRenderer.draw(this.batcher, skeleton); - }; - SceneRenderer.prototype.drawSkeletonDebug = function (skeleton, premultipliedAlpha, ignoredBones) { - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - if (ignoredBones === void 0) { ignoredBones = null; } - this.enableRenderer(this.shapes); - this.skeletonDebugRenderer.premultipliedAlpha = premultipliedAlpha; - this.skeletonDebugRenderer.draw(this.shapes, skeleton, ignoredBones); - }; - SceneRenderer.prototype.drawTexture = function (texture, x, y, width, height, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.batcher); - if (color === null) - color = this.WHITE; - var quad = this.QUAD; - var i = 0; - quad[i++] = x; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); - }; - SceneRenderer.prototype.drawTextureRotated = function (texture, x, y, width, height, pivotX, pivotY, angle, color, premultipliedAlpha) { - if (color === void 0) { color = null; } - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - this.enableRenderer(this.batcher); - if (color === null) - color = this.WHITE; - var quad = this.QUAD; - var worldOriginX = x + pivotX; - var worldOriginY = y + pivotY; - var fx = -pivotX; - var fy = -pivotY; - var fx2 = width - pivotX; - var fy2 = height - pivotY; - var p1x = fx; - var p1y = fy; - var p2x = fx; - var p2y = fy2; - var p3x = fx2; - var p3y = fy2; - var p4x = fx2; - var p4y = fy; - var x1 = 0; - var y1 = 0; - var x2 = 0; - var y2 = 0; - var x3 = 0; - var y3 = 0; - var x4 = 0; - var y4 = 0; - if (angle != 0) { - var cos = spine.MathUtils.cosDeg(angle); - var sin = spine.MathUtils.sinDeg(angle); - x1 = cos * p1x - sin * p1y; - y1 = sin * p1x + cos * p1y; - x4 = cos * p2x - sin * p2y; - y4 = sin * p2x + cos * p2y; - x3 = cos * p3x - sin * p3y; - y3 = sin * p3x + cos * p3y; - x2 = x3 + (x1 - x4); - y2 = y3 + (y1 - y4); - } - else { - x1 = p1x; - y1 = p1y; - x4 = p2x; - y4 = p2y; - x3 = p3x; - y3 = p3y; - x2 = p4x; - y2 = p4y; - } - x1 += worldOriginX; - y1 += worldOriginY; - x2 += worldOriginX; - y2 += worldOriginY; - x3 += worldOriginX; - y3 += worldOriginY; - x4 += worldOriginX; - y4 += worldOriginY; - var i = 0; - quad[i++] = x1; - quad[i++] = y1; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x2; - quad[i++] = y2; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x3; - quad[i++] = y3; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x4; - quad[i++] = y4; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); - }; - SceneRenderer.prototype.drawRegion = function (region, x, y, width, height, color, premultipliedAlpha) { - if (color === void 0) { color = null; } - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - this.enableRenderer(this.batcher); - if (color === null) - color = this.WHITE; - var quad = this.QUAD; - var i = 0; - quad[i++] = x; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u; - quad[i++] = region.v2; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u2; - quad[i++] = region.v2; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u2; - quad[i++] = region.v; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u; - quad[i++] = region.v; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - this.batcher.draw(region.texture, quad, this.QUAD_TRIANGLES); - }; - SceneRenderer.prototype.line = function (x, y, x2, y2, color, color2) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - this.enableRenderer(this.shapes); - this.shapes.line(x, y, x2, y2, color); - }; - SceneRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - this.enableRenderer(this.shapes); - this.shapes.triangle(filled, x, y, x2, y2, x3, y3, color, color2, color3); - }; - SceneRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - if (color4 === void 0) { color4 = null; } - this.enableRenderer(this.shapes); - this.shapes.quad(filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4); - }; - SceneRenderer.prototype.rect = function (filled, x, y, width, height, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.rect(filled, x, y, width, height, color); - }; - SceneRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.rectLine(filled, x1, y1, x2, y2, width, color); - }; - SceneRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.polygon(polygonVertices, offset, count, color); - }; - SceneRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { - if (color === void 0) { color = null; } - if (segments === void 0) { segments = 0; } - this.enableRenderer(this.shapes); - this.shapes.circle(filled, x, y, radius, color, segments); - }; - SceneRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color); - }; - SceneRenderer.prototype.end = function () { - if (this.activeRenderer === this.batcher) - this.batcher.end(); - else if (this.activeRenderer === this.shapes) - this.shapes.end(); - this.activeRenderer = null; - }; - SceneRenderer.prototype.resize = function (resizeMode) { - var canvas = this.canvas; - var w = canvas.clientWidth; - var h = canvas.clientHeight; - if (canvas.width != w || canvas.height != h) { - canvas.width = w; - canvas.height = h; - } - this.context.gl.viewport(0, 0, canvas.width, canvas.height); - if (resizeMode === ResizeMode.Stretch) { - } - else if (resizeMode === ResizeMode.Expand) { - this.camera.setViewport(w, h); - } - else if (resizeMode === ResizeMode.Fit) { - var sourceWidth = canvas.width, sourceHeight = canvas.height; - var targetWidth = this.camera.viewportWidth, targetHeight = this.camera.viewportHeight; - var targetRatio = targetHeight / targetWidth; - var sourceRatio = sourceHeight / sourceWidth; - var scale = targetRatio < sourceRatio ? targetWidth / sourceWidth : targetHeight / sourceHeight; - this.camera.viewportWidth = sourceWidth * scale; - this.camera.viewportHeight = sourceHeight * scale; - } - this.camera.update(); - }; - SceneRenderer.prototype.enableRenderer = function (renderer) { - if (this.activeRenderer === renderer) - return; - this.end(); - if (renderer instanceof webgl.PolygonBatcher) { - this.batcherShader.bind(); - this.batcherShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); - this.batcherShader.setUniformi("u_texture", 0); - this.batcher.begin(this.batcherShader); - this.activeRenderer = this.batcher; - } - else if (renderer instanceof webgl.ShapeRenderer) { - this.shapesShader.bind(); - this.shapesShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); - this.shapes.begin(this.shapesShader); - this.activeRenderer = this.shapes; - } - else { - this.activeRenderer = this.skeletonDebugRenderer; - } - }; - SceneRenderer.prototype.dispose = function () { - this.batcher.dispose(); - this.batcherShader.dispose(); - this.shapes.dispose(); - this.shapesShader.dispose(); - this.skeletonDebugRenderer.dispose(); - }; - return SceneRenderer; - }()); - webgl.SceneRenderer = SceneRenderer; - (function (ResizeMode) { - ResizeMode[ResizeMode["Stretch"] = 0] = "Stretch"; - ResizeMode[ResizeMode["Expand"] = 1] = "Expand"; - ResizeMode[ResizeMode["Fit"] = 2] = "Fit"; - })(webgl.ResizeMode || (webgl.ResizeMode = {})); - var ResizeMode = webgl.ResizeMode; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var SceneRenderer = (function () { + function SceneRenderer(canvas, context, twoColorTint) { + if (twoColorTint === void 0) { twoColorTint = true; } + this.twoColorTint = false; + this.activeRenderer = null; + this.QUAD = [ + 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, + ]; + this.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + this.WHITE = new spine.Color(1, 1, 1, 1); + this.canvas = canvas; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.twoColorTint = twoColorTint; + this.camera = new webgl.OrthoCamera(canvas.width, canvas.height); + this.batcherShader = twoColorTint ? webgl.Shader.newTwoColoredTextured(this.context) : webgl.Shader.newColoredTextured(this.context); + this.batcher = new webgl.PolygonBatcher(this.context, twoColorTint); + this.shapesShader = webgl.Shader.newColored(this.context); + this.shapes = new webgl.ShapeRenderer(this.context); + this.skeletonRenderer = new webgl.SkeletonRenderer(this.context, twoColorTint); + this.skeletonDebugRenderer = new webgl.SkeletonDebugRenderer(this.context); + } + SceneRenderer.prototype.begin = function () { + this.camera.update(); + this.enableRenderer(this.batcher); + }; + SceneRenderer.prototype.drawSkeleton = function (skeleton, premultipliedAlpha) { + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + this.enableRenderer(this.batcher); + this.skeletonRenderer.premultipliedAlpha = premultipliedAlpha; + this.skeletonRenderer.draw(this.batcher, skeleton); + }; + SceneRenderer.prototype.drawSkeletonDebug = function (skeleton, premultipliedAlpha, ignoredBones) { + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + if (ignoredBones === void 0) { ignoredBones = null; } + this.enableRenderer(this.shapes); + this.skeletonDebugRenderer.premultipliedAlpha = premultipliedAlpha; + this.skeletonDebugRenderer.draw(this.shapes, skeleton, ignoredBones); + }; + SceneRenderer.prototype.drawTexture = function (texture, x, y, width, height, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.batcher); + if (color === null) + color = this.WHITE; + var quad = this.QUAD; + var i = 0; + quad[i++] = x; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); + }; + SceneRenderer.prototype.drawTextureRotated = function (texture, x, y, width, height, pivotX, pivotY, angle, color, premultipliedAlpha) { + if (color === void 0) { color = null; } + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + this.enableRenderer(this.batcher); + if (color === null) + color = this.WHITE; + var quad = this.QUAD; + var worldOriginX = x + pivotX; + var worldOriginY = y + pivotY; + var fx = -pivotX; + var fy = -pivotY; + var fx2 = width - pivotX; + var fy2 = height - pivotY; + var p1x = fx; + var p1y = fy; + var p2x = fx; + var p2y = fy2; + var p3x = fx2; + var p3y = fy2; + var p4x = fx2; + var p4y = fy; + var x1 = 0; + var y1 = 0; + var x2 = 0; + var y2 = 0; + var x3 = 0; + var y3 = 0; + var x4 = 0; + var y4 = 0; + if (angle != 0) { + var cos = spine.MathUtils.cosDeg(angle); + var sin = spine.MathUtils.sinDeg(angle); + x1 = cos * p1x - sin * p1y; + y1 = sin * p1x + cos * p1y; + x4 = cos * p2x - sin * p2y; + y4 = sin * p2x + cos * p2y; + x3 = cos * p3x - sin * p3y; + y3 = sin * p3x + cos * p3y; + x2 = x3 + (x1 - x4); + y2 = y3 + (y1 - y4); + } + else { + x1 = p1x; + y1 = p1y; + x4 = p2x; + y4 = p2y; + x3 = p3x; + y3 = p3y; + x2 = p4x; + y2 = p4y; + } + x1 += worldOriginX; + y1 += worldOriginY; + x2 += worldOriginX; + y2 += worldOriginY; + x3 += worldOriginX; + y3 += worldOriginY; + x4 += worldOriginX; + y4 += worldOriginY; + var i = 0; + quad[i++] = x1; + quad[i++] = y1; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x2; + quad[i++] = y2; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x3; + quad[i++] = y3; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x4; + quad[i++] = y4; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); + }; + SceneRenderer.prototype.drawRegion = function (region, x, y, width, height, color, premultipliedAlpha) { + if (color === void 0) { color = null; } + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + this.enableRenderer(this.batcher); + if (color === null) + color = this.WHITE; + var quad = this.QUAD; + var i = 0; + quad[i++] = x; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u; + quad[i++] = region.v2; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u2; + quad[i++] = region.v2; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u2; + quad[i++] = region.v; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u; + quad[i++] = region.v; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + this.batcher.draw(region.texture, quad, this.QUAD_TRIANGLES); + }; + SceneRenderer.prototype.line = function (x, y, x2, y2, color, color2) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + this.enableRenderer(this.shapes); + this.shapes.line(x, y, x2, y2, color); + }; + SceneRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + this.enableRenderer(this.shapes); + this.shapes.triangle(filled, x, y, x2, y2, x3, y3, color, color2, color3); + }; + SceneRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + if (color4 === void 0) { color4 = null; } + this.enableRenderer(this.shapes); + this.shapes.quad(filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4); + }; + SceneRenderer.prototype.rect = function (filled, x, y, width, height, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.rect(filled, x, y, width, height, color); + }; + SceneRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.rectLine(filled, x1, y1, x2, y2, width, color); + }; + SceneRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.polygon(polygonVertices, offset, count, color); + }; + SceneRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { + if (color === void 0) { color = null; } + if (segments === void 0) { segments = 0; } + this.enableRenderer(this.shapes); + this.shapes.circle(filled, x, y, radius, color, segments); + }; + SceneRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color); + }; + SceneRenderer.prototype.end = function () { + if (this.activeRenderer === this.batcher) + this.batcher.end(); + else if (this.activeRenderer === this.shapes) + this.shapes.end(); + this.activeRenderer = null; + }; + SceneRenderer.prototype.resize = function (resizeMode) { + var canvas = this.canvas; + var w = canvas.clientWidth; + var h = canvas.clientHeight; + if (canvas.width != w || canvas.height != h) { + canvas.width = w; + canvas.height = h; + } + this.context.gl.viewport(0, 0, canvas.width, canvas.height); + if (resizeMode === ResizeMode.Stretch) { + } + else if (resizeMode === ResizeMode.Expand) { + this.camera.setViewport(w, h); + } + else if (resizeMode === ResizeMode.Fit) { + var sourceWidth = canvas.width, sourceHeight = canvas.height; + var targetWidth = this.camera.viewportWidth, targetHeight = this.camera.viewportHeight; + var targetRatio = targetHeight / targetWidth; + var sourceRatio = sourceHeight / sourceWidth; + var scale = targetRatio < sourceRatio ? targetWidth / sourceWidth : targetHeight / sourceHeight; + this.camera.viewportWidth = sourceWidth * scale; + this.camera.viewportHeight = sourceHeight * scale; + } + this.camera.update(); + }; + SceneRenderer.prototype.enableRenderer = function (renderer) { + if (this.activeRenderer === renderer) + return; + this.end(); + if (renderer instanceof webgl.PolygonBatcher) { + this.batcherShader.bind(); + this.batcherShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); + this.batcherShader.setUniformi("u_texture", 0); + this.batcher.begin(this.batcherShader); + this.activeRenderer = this.batcher; + } + else if (renderer instanceof webgl.ShapeRenderer) { + this.shapesShader.bind(); + this.shapesShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); + this.shapes.begin(this.shapesShader); + this.activeRenderer = this.shapes; + } + else { + this.activeRenderer = this.skeletonDebugRenderer; + } + }; + SceneRenderer.prototype.dispose = function () { + this.batcher.dispose(); + this.batcherShader.dispose(); + this.shapes.dispose(); + this.shapesShader.dispose(); + this.skeletonDebugRenderer.dispose(); + }; + return SceneRenderer; + }()); + webgl.SceneRenderer = SceneRenderer; + (function (ResizeMode) { + ResizeMode[ResizeMode["Stretch"] = 0] = "Stretch"; + ResizeMode[ResizeMode["Expand"] = 1] = "Expand"; + ResizeMode[ResizeMode["Fit"] = 2] = "Fit"; + })(webgl.ResizeMode || (webgl.ResizeMode = {})); + var ResizeMode = webgl.ResizeMode; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Shader = (function () { - function Shader(context, vertexShader, fragmentShader) { - this.vertexShader = vertexShader; - this.fragmentShader = fragmentShader; - this.vs = null; - this.fs = null; - this.program = null; - this.tmp2x2 = new Float32Array(2 * 2); - this.tmp3x3 = new Float32Array(3 * 3); - this.tmp4x4 = new Float32Array(4 * 4); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.context.addRestorable(this); - this.compile(); - } - Shader.prototype.getProgram = function () { return this.program; }; - Shader.prototype.getVertexShader = function () { return this.vertexShader; }; - Shader.prototype.getFragmentShader = function () { return this.fragmentShader; }; - Shader.prototype.compile = function () { - var gl = this.context.gl; - try { - this.vs = this.compileShader(gl.VERTEX_SHADER, this.vertexShader); - this.fs = this.compileShader(gl.FRAGMENT_SHADER, this.fragmentShader); - this.program = this.compileProgram(this.vs, this.fs); - } - catch (e) { - this.dispose(); - throw e; - } - }; - Shader.prototype.compileShader = function (type, source) { - var gl = this.context.gl; - var shader = gl.createShader(type); - gl.shaderSource(shader, source); - gl.compileShader(shader); - if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { - var error = "Couldn't compile shader: " + gl.getShaderInfoLog(shader); - gl.deleteShader(shader); - if (!gl.isContextLost()) - throw new Error(error); - } - return shader; - }; - Shader.prototype.compileProgram = function (vs, fs) { - var gl = this.context.gl; - var program = gl.createProgram(); - gl.attachShader(program, vs); - gl.attachShader(program, fs); - gl.linkProgram(program); - if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { - var error = "Couldn't compile shader program: " + gl.getProgramInfoLog(program); - gl.deleteProgram(program); - if (!gl.isContextLost()) - throw new Error(error); - } - return program; - }; - Shader.prototype.restore = function () { - this.compile(); - }; - Shader.prototype.bind = function () { - this.context.gl.useProgram(this.program); - }; - Shader.prototype.unbind = function () { - this.context.gl.useProgram(null); - }; - Shader.prototype.setUniformi = function (uniform, value) { - this.context.gl.uniform1i(this.getUniformLocation(uniform), value); - }; - Shader.prototype.setUniformf = function (uniform, value) { - this.context.gl.uniform1f(this.getUniformLocation(uniform), value); - }; - Shader.prototype.setUniform2f = function (uniform, value, value2) { - this.context.gl.uniform2f(this.getUniformLocation(uniform), value, value2); - }; - Shader.prototype.setUniform3f = function (uniform, value, value2, value3) { - this.context.gl.uniform3f(this.getUniformLocation(uniform), value, value2, value3); - }; - Shader.prototype.setUniform4f = function (uniform, value, value2, value3, value4) { - this.context.gl.uniform4f(this.getUniformLocation(uniform), value, value2, value3, value4); - }; - Shader.prototype.setUniform2x2f = function (uniform, value) { - var gl = this.context.gl; - this.tmp2x2.set(value); - gl.uniformMatrix2fv(this.getUniformLocation(uniform), false, this.tmp2x2); - }; - Shader.prototype.setUniform3x3f = function (uniform, value) { - var gl = this.context.gl; - this.tmp3x3.set(value); - gl.uniformMatrix3fv(this.getUniformLocation(uniform), false, this.tmp3x3); - }; - Shader.prototype.setUniform4x4f = function (uniform, value) { - var gl = this.context.gl; - this.tmp4x4.set(value); - gl.uniformMatrix4fv(this.getUniformLocation(uniform), false, this.tmp4x4); - }; - Shader.prototype.getUniformLocation = function (uniform) { - var gl = this.context.gl; - var location = gl.getUniformLocation(this.program, uniform); - if (!location && !gl.isContextLost()) - throw new Error("Couldn't find location for uniform " + uniform); - return location; - }; - Shader.prototype.getAttributeLocation = function (attribute) { - var gl = this.context.gl; - var location = gl.getAttribLocation(this.program, attribute); - if (location == -1 && !gl.isContextLost()) - throw new Error("Couldn't find location for attribute " + attribute); - return location; - }; - Shader.prototype.dispose = function () { - this.context.removeRestorable(this); - var gl = this.context.gl; - if (this.vs) { - gl.deleteShader(this.vs); - this.vs = null; - } - if (this.fs) { - gl.deleteShader(this.fs); - this.fs = null; - } - if (this.program) { - gl.deleteProgram(this.program); - this.program = null; - } - }; - Shader.newColoredTextured = function (context) { - var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; - var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color * texture2D(u_texture, v_texCoords);\n\t\t\t\t}\n\t\t\t"; - return new Shader(context, vs, fs); - }; - Shader.newTwoColoredTextured = function (context) { - var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR2 + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_light;\n\t\t\t\tvarying vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_light = " + Shader.COLOR + ";\n\t\t\t\t\tv_dark = " + Shader.COLOR2 + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; - var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_light;\n\t\t\t\tvarying LOWP vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tvec4 texColor = texture2D(u_texture, v_texCoords);\n\t\t\t\t\tfloat alpha = texColor.a * v_light.a;\n\t\t\t\t\tgl_FragColor.a = alpha;\n\t\t\t\t\tgl_FragColor.rgb = (1.0 - texColor.rgb) * v_dark.rgb * alpha + texColor.rgb * v_light.rgb;\n\t\t\t\t}\n\t\t\t"; - return new Shader(context, vs, fs); - }; - Shader.newColored = function (context) { - var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; - var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color;\n\t\t\t\t}\n\t\t\t"; - return new Shader(context, vs, fs); - }; - Shader.MVP_MATRIX = "u_projTrans"; - Shader.POSITION = "a_position"; - Shader.COLOR = "a_color"; - Shader.COLOR2 = "a_color2"; - Shader.TEXCOORDS = "a_texCoords"; - Shader.SAMPLER = "u_texture"; - return Shader; - }()); - webgl.Shader = Shader; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Shader = (function () { + function Shader(context, vertexShader, fragmentShader) { + this.vertexShader = vertexShader; + this.fragmentShader = fragmentShader; + this.vs = null; + this.fs = null; + this.program = null; + this.tmp2x2 = new Float32Array(2 * 2); + this.tmp3x3 = new Float32Array(3 * 3); + this.tmp4x4 = new Float32Array(4 * 4); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.context.addRestorable(this); + this.compile(); + } + Shader.prototype.getProgram = function () { return this.program; }; + Shader.prototype.getVertexShader = function () { return this.vertexShader; }; + Shader.prototype.getFragmentShader = function () { return this.fragmentShader; }; + Shader.prototype.compile = function () { + var gl = this.context.gl; + try { + this.vs = this.compileShader(gl.VERTEX_SHADER, this.vertexShader); + this.fs = this.compileShader(gl.FRAGMENT_SHADER, this.fragmentShader); + this.program = this.compileProgram(this.vs, this.fs); + } + catch (e) { + this.dispose(); + throw e; + } + }; + Shader.prototype.compileShader = function (type, source) { + var gl = this.context.gl; + var shader = gl.createShader(type); + gl.shaderSource(shader, source); + gl.compileShader(shader); + if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { + var error = "Couldn't compile shader: " + gl.getShaderInfoLog(shader); + gl.deleteShader(shader); + if (!gl.isContextLost()) + throw new Error(error); + } + return shader; + }; + Shader.prototype.compileProgram = function (vs, fs) { + var gl = this.context.gl; + var program = gl.createProgram(); + gl.attachShader(program, vs); + gl.attachShader(program, fs); + gl.linkProgram(program); + if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { + var error = "Couldn't compile shader program: " + gl.getProgramInfoLog(program); + gl.deleteProgram(program); + if (!gl.isContextLost()) + throw new Error(error); + } + return program; + }; + Shader.prototype.restore = function () { + this.compile(); + }; + Shader.prototype.bind = function () { + this.context.gl.useProgram(this.program); + }; + Shader.prototype.unbind = function () { + this.context.gl.useProgram(null); + }; + Shader.prototype.setUniformi = function (uniform, value) { + this.context.gl.uniform1i(this.getUniformLocation(uniform), value); + }; + Shader.prototype.setUniformf = function (uniform, value) { + this.context.gl.uniform1f(this.getUniformLocation(uniform), value); + }; + Shader.prototype.setUniform2f = function (uniform, value, value2) { + this.context.gl.uniform2f(this.getUniformLocation(uniform), value, value2); + }; + Shader.prototype.setUniform3f = function (uniform, value, value2, value3) { + this.context.gl.uniform3f(this.getUniformLocation(uniform), value, value2, value3); + }; + Shader.prototype.setUniform4f = function (uniform, value, value2, value3, value4) { + this.context.gl.uniform4f(this.getUniformLocation(uniform), value, value2, value3, value4); + }; + Shader.prototype.setUniform2x2f = function (uniform, value) { + var gl = this.context.gl; + this.tmp2x2.set(value); + gl.uniformMatrix2fv(this.getUniformLocation(uniform), false, this.tmp2x2); + }; + Shader.prototype.setUniform3x3f = function (uniform, value) { + var gl = this.context.gl; + this.tmp3x3.set(value); + gl.uniformMatrix3fv(this.getUniformLocation(uniform), false, this.tmp3x3); + }; + Shader.prototype.setUniform4x4f = function (uniform, value) { + var gl = this.context.gl; + this.tmp4x4.set(value); + gl.uniformMatrix4fv(this.getUniformLocation(uniform), false, this.tmp4x4); + }; + Shader.prototype.getUniformLocation = function (uniform) { + var gl = this.context.gl; + var location = gl.getUniformLocation(this.program, uniform); + if (!location && !gl.isContextLost()) + throw new Error("Couldn't find location for uniform " + uniform); + return location; + }; + Shader.prototype.getAttributeLocation = function (attribute) { + var gl = this.context.gl; + var location = gl.getAttribLocation(this.program, attribute); + if (location == -1 && !gl.isContextLost()) + throw new Error("Couldn't find location for attribute " + attribute); + return location; + }; + Shader.prototype.dispose = function () { + this.context.removeRestorable(this); + var gl = this.context.gl; + if (this.vs) { + gl.deleteShader(this.vs); + this.vs = null; + } + if (this.fs) { + gl.deleteShader(this.fs); + this.fs = null; + } + if (this.program) { + gl.deleteProgram(this.program); + this.program = null; + } + }; + Shader.newColoredTextured = function (context) { + var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; + var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color * texture2D(u_texture, v_texCoords);\n\t\t\t\t}\n\t\t\t"; + return new Shader(context, vs, fs); + }; + Shader.newTwoColoredTextured = function (context) { + var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR2 + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_light;\n\t\t\t\tvarying vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_light = " + Shader.COLOR + ";\n\t\t\t\t\tv_dark = " + Shader.COLOR2 + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; + var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_light;\n\t\t\t\tvarying LOWP vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tvec4 texColor = texture2D(u_texture, v_texCoords);\n\t\t\t\t\tfloat alpha = texColor.a * v_light.a;\n\t\t\t\t\tgl_FragColor.a = alpha;\n\t\t\t\t\tgl_FragColor.rgb = (1.0 - texColor.rgb) * v_dark.rgb * alpha + texColor.rgb * v_light.rgb;\n\t\t\t\t}\n\t\t\t"; + return new Shader(context, vs, fs); + }; + Shader.newColored = function (context) { + var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; + var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color;\n\t\t\t\t}\n\t\t\t"; + return new Shader(context, vs, fs); + }; + Shader.MVP_MATRIX = "u_projTrans"; + Shader.POSITION = "a_position"; + Shader.COLOR = "a_color"; + Shader.COLOR2 = "a_color2"; + Shader.TEXCOORDS = "a_texCoords"; + Shader.SAMPLER = "u_texture"; + return Shader; + }()); + webgl.Shader = Shader; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var ShapeRenderer = (function () { - function ShapeRenderer(context, maxVertices) { - if (maxVertices === void 0) { maxVertices = 10920; } - this.isDrawing = false; - this.shapeType = ShapeType.Filled; - this.color = new spine.Color(1, 1, 1, 1); - this.vertexIndex = 0; - this.tmp = new spine.Vector2(); - if (maxVertices > 10920) - throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.mesh = new webgl.Mesh(context, [new webgl.Position2Attribute(), new webgl.ColorAttribute()], maxVertices, 0); - this.srcBlend = this.context.gl.SRC_ALPHA; - this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; - } - ShapeRenderer.prototype.begin = function (shader) { - if (this.isDrawing) - throw new Error("ShapeRenderer.begin() has already been called"); - this.shader = shader; - this.vertexIndex = 0; - this.isDrawing = true; - var gl = this.context.gl; - gl.enable(gl.BLEND); - gl.blendFunc(this.srcBlend, this.dstBlend); - }; - ShapeRenderer.prototype.setBlendMode = function (srcBlend, dstBlend) { - var gl = this.context.gl; - this.srcBlend = srcBlend; - this.dstBlend = dstBlend; - if (this.isDrawing) { - this.flush(); - gl.blendFunc(this.srcBlend, this.dstBlend); - } - }; - ShapeRenderer.prototype.setColor = function (color) { - this.color.setFromColor(color); - }; - ShapeRenderer.prototype.setColorWith = function (r, g, b, a) { - this.color.set(r, g, b, a); - }; - ShapeRenderer.prototype.point = function (x, y, color) { - if (color === void 0) { color = null; } - this.check(ShapeType.Point, 1); - if (color === null) - color = this.color; - this.vertex(x, y, color); - }; - ShapeRenderer.prototype.line = function (x, y, x2, y2, color) { - if (color === void 0) { color = null; } - this.check(ShapeType.Line, 2); - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - if (color === null) - color = this.color; - this.vertex(x, y, color); - this.vertex(x2, y2, color); - }; - ShapeRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - if (color === null) - color = this.color; - if (color2 === null) - color2 = this.color; - if (color3 === null) - color3 = this.color; - if (filled) { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x3, y3, color3); - } - else { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x2, y2, color); - this.vertex(x3, y3, color2); - this.vertex(x3, y3, color); - this.vertex(x, y, color2); - } - }; - ShapeRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - if (color4 === void 0) { color4 = null; } - this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - if (color === null) - color = this.color; - if (color2 === null) - color2 = this.color; - if (color3 === null) - color3 = this.color; - if (color4 === null) - color4 = this.color; - if (filled) { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x3, y3, color3); - this.vertex(x3, y3, color3); - this.vertex(x4, y4, color4); - this.vertex(x, y, color); - } - else { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x2, y2, color2); - this.vertex(x3, y3, color3); - this.vertex(x3, y3, color3); - this.vertex(x4, y4, color4); - this.vertex(x4, y4, color4); - this.vertex(x, y, color); - } - }; - ShapeRenderer.prototype.rect = function (filled, x, y, width, height, color) { - if (color === void 0) { color = null; } - this.quad(filled, x, y, x + width, y, x + width, y + height, x, y + height, color, color, color, color); - }; - ShapeRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { - if (color === void 0) { color = null; } - this.check(filled ? ShapeType.Filled : ShapeType.Line, 8); - if (color === null) - color = this.color; - var t = this.tmp.set(y2 - y1, x1 - x2); - t.normalize(); - width *= 0.5; - var tx = t.x * width; - var ty = t.y * width; - if (!filled) { - this.vertex(x1 + tx, y1 + ty, color); - this.vertex(x1 - tx, y1 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x2 - tx, y2 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x1 + tx, y1 + ty, color); - this.vertex(x2 - tx, y2 - ty, color); - this.vertex(x1 - tx, y1 - ty, color); - } - else { - this.vertex(x1 + tx, y1 + ty, color); - this.vertex(x1 - tx, y1 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x2 - tx, y2 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x1 - tx, y1 - ty, color); - } - }; - ShapeRenderer.prototype.x = function (x, y, size) { - this.line(x - size, y - size, x + size, y + size); - this.line(x - size, y + size, x + size, y - size); - }; - ShapeRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { - if (color === void 0) { color = null; } - if (count < 3) - throw new Error("Polygon must contain at least 3 vertices"); - this.check(ShapeType.Line, count * 2); - if (color === null) - color = this.color; - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - offset <<= 1; - count <<= 1; - var firstX = polygonVertices[offset]; - var firstY = polygonVertices[offset + 1]; - var last = offset + count; - for (var i = offset, n = offset + count - 2; i < n; i += 2) { - var x1 = polygonVertices[i]; - var y1 = polygonVertices[i + 1]; - var x2 = 0; - var y2 = 0; - if (i + 2 >= last) { - x2 = firstX; - y2 = firstY; - } - else { - x2 = polygonVertices[i + 2]; - y2 = polygonVertices[i + 3]; - } - this.vertex(x1, y1, color); - this.vertex(x2, y2, color); - } - }; - ShapeRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { - if (color === void 0) { color = null; } - if (segments === void 0) { segments = 0; } - if (segments === 0) - segments = Math.max(1, (6 * spine.MathUtils.cbrt(radius)) | 0); - if (segments <= 0) - throw new Error("segments must be > 0."); - if (color === null) - color = this.color; - var angle = 2 * spine.MathUtils.PI / segments; - var cos = Math.cos(angle); - var sin = Math.sin(angle); - var cx = radius, cy = 0; - if (!filled) { - this.check(ShapeType.Line, segments * 2 + 2); - for (var i = 0; i < segments; i++) { - this.vertex(x + cx, y + cy, color); - var temp_1 = cx; - cx = cos * cx - sin * cy; - cy = sin * temp_1 + cos * cy; - this.vertex(x + cx, y + cy, color); - } - this.vertex(x + cx, y + cy, color); - } - else { - this.check(ShapeType.Filled, segments * 3 + 3); - segments--; - for (var i = 0; i < segments; i++) { - this.vertex(x, y, color); - this.vertex(x + cx, y + cy, color); - var temp_2 = cx; - cx = cos * cx - sin * cy; - cy = sin * temp_2 + cos * cy; - this.vertex(x + cx, y + cy, color); - } - this.vertex(x, y, color); - this.vertex(x + cx, y + cy, color); - } - var temp = cx; - cx = radius; - cy = 0; - this.vertex(x + cx, y + cy, color); - }; - ShapeRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { - if (color === void 0) { color = null; } - this.check(ShapeType.Line, segments * 2 + 2); - if (color === null) - color = this.color; - var subdiv_step = 1 / segments; - var subdiv_step2 = subdiv_step * subdiv_step; - var subdiv_step3 = subdiv_step * subdiv_step * subdiv_step; - var pre1 = 3 * subdiv_step; - var pre2 = 3 * subdiv_step2; - var pre4 = 6 * subdiv_step2; - var pre5 = 6 * subdiv_step3; - var tmp1x = x1 - cx1 * 2 + cx2; - var tmp1y = y1 - cy1 * 2 + cy2; - var tmp2x = (cx1 - cx2) * 3 - x1 + x2; - var tmp2y = (cy1 - cy2) * 3 - y1 + y2; - var fx = x1; - var fy = y1; - var dfx = (cx1 - x1) * pre1 + tmp1x * pre2 + tmp2x * subdiv_step3; - var dfy = (cy1 - y1) * pre1 + tmp1y * pre2 + tmp2y * subdiv_step3; - var ddfx = tmp1x * pre4 + tmp2x * pre5; - var ddfy = tmp1y * pre4 + tmp2y * pre5; - var dddfx = tmp2x * pre5; - var dddfy = tmp2y * pre5; - while (segments-- > 0) { - this.vertex(fx, fy, color); - fx += dfx; - fy += dfy; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - this.vertex(fx, fy, color); - } - this.vertex(fx, fy, color); - this.vertex(x2, y2, color); - }; - ShapeRenderer.prototype.vertex = function (x, y, color) { - var idx = this.vertexIndex; - var vertices = this.mesh.getVertices(); - vertices[idx++] = x; - vertices[idx++] = y; - vertices[idx++] = color.r; - vertices[idx++] = color.g; - vertices[idx++] = color.b; - vertices[idx++] = color.a; - this.vertexIndex = idx; - }; - ShapeRenderer.prototype.end = function () { - if (!this.isDrawing) - throw new Error("ShapeRenderer.begin() has not been called"); - this.flush(); - this.context.gl.disable(this.context.gl.BLEND); - this.isDrawing = false; - }; - ShapeRenderer.prototype.flush = function () { - if (this.vertexIndex == 0) - return; - this.mesh.setVerticesLength(this.vertexIndex); - this.mesh.draw(this.shader, this.shapeType); - this.vertexIndex = 0; - }; - ShapeRenderer.prototype.check = function (shapeType, numVertices) { - if (!this.isDrawing) - throw new Error("ShapeRenderer.begin() has not been called"); - if (this.shapeType == shapeType) { - if (this.mesh.maxVertices() - this.mesh.numVertices() < numVertices) - this.flush(); - else - return; - } - else { - this.flush(); - this.shapeType = shapeType; - } - }; - ShapeRenderer.prototype.dispose = function () { - this.mesh.dispose(); - }; - return ShapeRenderer; - }()); - webgl.ShapeRenderer = ShapeRenderer; - (function (ShapeType) { - ShapeType[ShapeType["Point"] = 0] = "Point"; - ShapeType[ShapeType["Line"] = 1] = "Line"; - ShapeType[ShapeType["Filled"] = 4] = "Filled"; - })(webgl.ShapeType || (webgl.ShapeType = {})); - var ShapeType = webgl.ShapeType; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var ShapeRenderer = (function () { + function ShapeRenderer(context, maxVertices) { + if (maxVertices === void 0) { maxVertices = 10920; } + this.isDrawing = false; + this.shapeType = ShapeType.Filled; + this.color = new spine.Color(1, 1, 1, 1); + this.vertexIndex = 0; + this.tmp = new spine.Vector2(); + if (maxVertices > 10920) + throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.mesh = new webgl.Mesh(context, [new webgl.Position2Attribute(), new webgl.ColorAttribute()], maxVertices, 0); + this.srcBlend = this.context.gl.SRC_ALPHA; + this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; + } + ShapeRenderer.prototype.begin = function (shader) { + if (this.isDrawing) + throw new Error("ShapeRenderer.begin() has already been called"); + this.shader = shader; + this.vertexIndex = 0; + this.isDrawing = true; + var gl = this.context.gl; + gl.enable(gl.BLEND); + gl.blendFunc(this.srcBlend, this.dstBlend); + }; + ShapeRenderer.prototype.setBlendMode = function (srcBlend, dstBlend) { + var gl = this.context.gl; + this.srcBlend = srcBlend; + this.dstBlend = dstBlend; + if (this.isDrawing) { + this.flush(); + gl.blendFunc(this.srcBlend, this.dstBlend); + } + }; + ShapeRenderer.prototype.setColor = function (color) { + this.color.setFromColor(color); + }; + ShapeRenderer.prototype.setColorWith = function (r, g, b, a) { + this.color.set(r, g, b, a); + }; + ShapeRenderer.prototype.point = function (x, y, color) { + if (color === void 0) { color = null; } + this.check(ShapeType.Point, 1); + if (color === null) + color = this.color; + this.vertex(x, y, color); + }; + ShapeRenderer.prototype.line = function (x, y, x2, y2, color) { + if (color === void 0) { color = null; } + this.check(ShapeType.Line, 2); + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + if (color === null) + color = this.color; + this.vertex(x, y, color); + this.vertex(x2, y2, color); + }; + ShapeRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + if (color === null) + color = this.color; + if (color2 === null) + color2 = this.color; + if (color3 === null) + color3 = this.color; + if (filled) { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x3, y3, color3); + } + else { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x2, y2, color); + this.vertex(x3, y3, color2); + this.vertex(x3, y3, color); + this.vertex(x, y, color2); + } + }; + ShapeRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + if (color4 === void 0) { color4 = null; } + this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + if (color === null) + color = this.color; + if (color2 === null) + color2 = this.color; + if (color3 === null) + color3 = this.color; + if (color4 === null) + color4 = this.color; + if (filled) { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x3, y3, color3); + this.vertex(x3, y3, color3); + this.vertex(x4, y4, color4); + this.vertex(x, y, color); + } + else { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x2, y2, color2); + this.vertex(x3, y3, color3); + this.vertex(x3, y3, color3); + this.vertex(x4, y4, color4); + this.vertex(x4, y4, color4); + this.vertex(x, y, color); + } + }; + ShapeRenderer.prototype.rect = function (filled, x, y, width, height, color) { + if (color === void 0) { color = null; } + this.quad(filled, x, y, x + width, y, x + width, y + height, x, y + height, color, color, color, color); + }; + ShapeRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { + if (color === void 0) { color = null; } + this.check(filled ? ShapeType.Filled : ShapeType.Line, 8); + if (color === null) + color = this.color; + var t = this.tmp.set(y2 - y1, x1 - x2); + t.normalize(); + width *= 0.5; + var tx = t.x * width; + var ty = t.y * width; + if (!filled) { + this.vertex(x1 + tx, y1 + ty, color); + this.vertex(x1 - tx, y1 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x2 - tx, y2 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x1 + tx, y1 + ty, color); + this.vertex(x2 - tx, y2 - ty, color); + this.vertex(x1 - tx, y1 - ty, color); + } + else { + this.vertex(x1 + tx, y1 + ty, color); + this.vertex(x1 - tx, y1 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x2 - tx, y2 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x1 - tx, y1 - ty, color); + } + }; + ShapeRenderer.prototype.x = function (x, y, size) { + this.line(x - size, y - size, x + size, y + size); + this.line(x - size, y + size, x + size, y - size); + }; + ShapeRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { + if (color === void 0) { color = null; } + if (count < 3) + throw new Error("Polygon must contain at least 3 vertices"); + this.check(ShapeType.Line, count * 2); + if (color === null) + color = this.color; + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + offset <<= 1; + count <<= 1; + var firstX = polygonVertices[offset]; + var firstY = polygonVertices[offset + 1]; + var last = offset + count; + for (var i = offset, n = offset + count - 2; i < n; i += 2) { + var x1 = polygonVertices[i]; + var y1 = polygonVertices[i + 1]; + var x2 = 0; + var y2 = 0; + if (i + 2 >= last) { + x2 = firstX; + y2 = firstY; + } + else { + x2 = polygonVertices[i + 2]; + y2 = polygonVertices[i + 3]; + } + this.vertex(x1, y1, color); + this.vertex(x2, y2, color); + } + }; + ShapeRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { + if (color === void 0) { color = null; } + if (segments === void 0) { segments = 0; } + if (segments === 0) + segments = Math.max(1, (6 * spine.MathUtils.cbrt(radius)) | 0); + if (segments <= 0) + throw new Error("segments must be > 0."); + if (color === null) + color = this.color; + var angle = 2 * spine.MathUtils.PI / segments; + var cos = Math.cos(angle); + var sin = Math.sin(angle); + var cx = radius, cy = 0; + if (!filled) { + this.check(ShapeType.Line, segments * 2 + 2); + for (var i = 0; i < segments; i++) { + this.vertex(x + cx, y + cy, color); + var temp_1 = cx; + cx = cos * cx - sin * cy; + cy = sin * temp_1 + cos * cy; + this.vertex(x + cx, y + cy, color); + } + this.vertex(x + cx, y + cy, color); + } + else { + this.check(ShapeType.Filled, segments * 3 + 3); + segments--; + for (var i = 0; i < segments; i++) { + this.vertex(x, y, color); + this.vertex(x + cx, y + cy, color); + var temp_2 = cx; + cx = cos * cx - sin * cy; + cy = sin * temp_2 + cos * cy; + this.vertex(x + cx, y + cy, color); + } + this.vertex(x, y, color); + this.vertex(x + cx, y + cy, color); + } + var temp = cx; + cx = radius; + cy = 0; + this.vertex(x + cx, y + cy, color); + }; + ShapeRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { + if (color === void 0) { color = null; } + this.check(ShapeType.Line, segments * 2 + 2); + if (color === null) + color = this.color; + var subdiv_step = 1 / segments; + var subdiv_step2 = subdiv_step * subdiv_step; + var subdiv_step3 = subdiv_step * subdiv_step * subdiv_step; + var pre1 = 3 * subdiv_step; + var pre2 = 3 * subdiv_step2; + var pre4 = 6 * subdiv_step2; + var pre5 = 6 * subdiv_step3; + var tmp1x = x1 - cx1 * 2 + cx2; + var tmp1y = y1 - cy1 * 2 + cy2; + var tmp2x = (cx1 - cx2) * 3 - x1 + x2; + var tmp2y = (cy1 - cy2) * 3 - y1 + y2; + var fx = x1; + var fy = y1; + var dfx = (cx1 - x1) * pre1 + tmp1x * pre2 + tmp2x * subdiv_step3; + var dfy = (cy1 - y1) * pre1 + tmp1y * pre2 + tmp2y * subdiv_step3; + var ddfx = tmp1x * pre4 + tmp2x * pre5; + var ddfy = tmp1y * pre4 + tmp2y * pre5; + var dddfx = tmp2x * pre5; + var dddfy = tmp2y * pre5; + while (segments-- > 0) { + this.vertex(fx, fy, color); + fx += dfx; + fy += dfy; + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + this.vertex(fx, fy, color); + } + this.vertex(fx, fy, color); + this.vertex(x2, y2, color); + }; + ShapeRenderer.prototype.vertex = function (x, y, color) { + var idx = this.vertexIndex; + var vertices = this.mesh.getVertices(); + vertices[idx++] = x; + vertices[idx++] = y; + vertices[idx++] = color.r; + vertices[idx++] = color.g; + vertices[idx++] = color.b; + vertices[idx++] = color.a; + this.vertexIndex = idx; + }; + ShapeRenderer.prototype.end = function () { + if (!this.isDrawing) + throw new Error("ShapeRenderer.begin() has not been called"); + this.flush(); + this.context.gl.disable(this.context.gl.BLEND); + this.isDrawing = false; + }; + ShapeRenderer.prototype.flush = function () { + if (this.vertexIndex == 0) + return; + this.mesh.setVerticesLength(this.vertexIndex); + this.mesh.draw(this.shader, this.shapeType); + this.vertexIndex = 0; + }; + ShapeRenderer.prototype.check = function (shapeType, numVertices) { + if (!this.isDrawing) + throw new Error("ShapeRenderer.begin() has not been called"); + if (this.shapeType == shapeType) { + if (this.mesh.maxVertices() - this.mesh.numVertices() < numVertices) + this.flush(); + else + return; + } + else { + this.flush(); + this.shapeType = shapeType; + } + }; + ShapeRenderer.prototype.dispose = function () { + this.mesh.dispose(); + }; + return ShapeRenderer; + }()); + webgl.ShapeRenderer = ShapeRenderer; + (function (ShapeType) { + ShapeType[ShapeType["Point"] = 0] = "Point"; + ShapeType[ShapeType["Line"] = 1] = "Line"; + ShapeType[ShapeType["Filled"] = 4] = "Filled"; + })(webgl.ShapeType || (webgl.ShapeType = {})); + var ShapeType = webgl.ShapeType; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var SkeletonDebugRenderer = (function () { - function SkeletonDebugRenderer(context) { - this.boneLineColor = new spine.Color(1, 0, 0, 1); - this.boneOriginColor = new spine.Color(0, 1, 0, 1); - this.attachmentLineColor = new spine.Color(0, 0, 1, 0.5); - this.triangleLineColor = new spine.Color(1, 0.64, 0, 0.5); - this.pathColor = new spine.Color().setFromString("FF7F00"); - this.clipColor = new spine.Color(0.8, 0, 0, 2); - this.aabbColor = new spine.Color(0, 1, 0, 0.5); - this.drawBones = true; - this.drawRegionAttachments = true; - this.drawBoundingBoxes = true; - this.drawMeshHull = true; - this.drawMeshTriangles = true; - this.drawPaths = true; - this.drawSkeletonXY = false; - this.drawClipping = true; - this.premultipliedAlpha = false; - this.scale = 1; - this.boneWidth = 2; - this.bounds = new spine.SkeletonBounds(); - this.temp = new Array(); - this.vertices = spine.Utils.newFloatArray(2 * 1024); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - } - SkeletonDebugRenderer.prototype.draw = function (shapes, skeleton, ignoredBones) { - if (ignoredBones === void 0) { ignoredBones = null; } - var skeletonX = skeleton.x; - var skeletonY = skeleton.y; - var gl = this.context.gl; - var srcFunc = this.premultipliedAlpha ? gl.ONE : gl.SRC_ALPHA; - shapes.setBlendMode(srcFunc, gl.ONE_MINUS_SRC_ALPHA); - var bones = skeleton.bones; - if (this.drawBones) { - shapes.setColor(this.boneLineColor); - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) - continue; - if (bone.parent == null) - continue; - var x = skeletonX + bone.data.length * bone.a + bone.worldX; - var y = skeletonY + bone.data.length * bone.c + bone.worldY; - shapes.rectLine(true, skeletonX + bone.worldX, skeletonY + bone.worldY, x, y, this.boneWidth * this.scale); - } - if (this.drawSkeletonXY) - shapes.x(skeletonX, skeletonY, 4 * this.scale); - } - if (this.drawRegionAttachments) { - shapes.setColor(this.attachmentLineColor); - var slots = skeleton.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.RegionAttachment) { - var regionAttachment = attachment; - var vertices = this.vertices; - regionAttachment.computeWorldVertices(slot.bone, vertices, 0, 2); - shapes.line(vertices[0], vertices[1], vertices[2], vertices[3]); - shapes.line(vertices[2], vertices[3], vertices[4], vertices[5]); - shapes.line(vertices[4], vertices[5], vertices[6], vertices[7]); - shapes.line(vertices[6], vertices[7], vertices[0], vertices[1]); - } - } - } - if (this.drawMeshHull || this.drawMeshTriangles) { - var slots = skeleton.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (!(attachment instanceof spine.MeshAttachment)) - continue; - var mesh = attachment; - var vertices = this.vertices; - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, 2); - var triangles = mesh.triangles; - var hullLength = mesh.hullLength; - if (this.drawMeshTriangles) { - shapes.setColor(this.triangleLineColor); - for (var ii = 0, nn = triangles.length; ii < nn; ii += 3) { - var v1 = triangles[ii] * 2, v2 = triangles[ii + 1] * 2, v3 = triangles[ii + 2] * 2; - shapes.triangle(false, vertices[v1], vertices[v1 + 1], vertices[v2], vertices[v2 + 1], vertices[v3], vertices[v3 + 1]); - } - } - if (this.drawMeshHull && hullLength > 0) { - shapes.setColor(this.attachmentLineColor); - hullLength = (hullLength >> 1) * 2; - var lastX = vertices[hullLength - 2], lastY = vertices[hullLength - 1]; - for (var ii = 0, nn = hullLength; ii < nn; ii += 2) { - var x = vertices[ii], y = vertices[ii + 1]; - shapes.line(x, y, lastX, lastY); - lastX = x; - lastY = y; - } - } - } - } - if (this.drawBoundingBoxes) { - var bounds = this.bounds; - bounds.update(skeleton, true); - shapes.setColor(this.aabbColor); - shapes.rect(false, bounds.minX, bounds.minY, bounds.getWidth(), bounds.getHeight()); - var polygons = bounds.polygons; - var boxes = bounds.boundingBoxes; - for (var i = 0, n = polygons.length; i < n; i++) { - var polygon = polygons[i]; - shapes.setColor(boxes[i].color); - shapes.polygon(polygon, 0, polygon.length); - } - } - if (this.drawPaths) { - var slots = skeleton.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (!(attachment instanceof spine.PathAttachment)) - continue; - var path = attachment; - var nn = path.worldVerticesLength; - var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); - path.computeWorldVertices(slot, 0, nn, world, 0, 2); - var color = this.pathColor; - var x1 = world[2], y1 = world[3], x2 = 0, y2 = 0; - if (path.closed) { - shapes.setColor(color); - var cx1 = world[0], cy1 = world[1], cx2 = world[nn - 2], cy2 = world[nn - 1]; - x2 = world[nn - 4]; - y2 = world[nn - 3]; - shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); - shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); - shapes.line(x1, y1, cx1, cy1); - shapes.line(x2, y2, cx2, cy2); - } - nn -= 4; - for (var ii = 4; ii < nn; ii += 6) { - var cx1 = world[ii], cy1 = world[ii + 1], cx2 = world[ii + 2], cy2 = world[ii + 3]; - x2 = world[ii + 4]; - y2 = world[ii + 5]; - shapes.setColor(color); - shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); - shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); - shapes.line(x1, y1, cx1, cy1); - shapes.line(x2, y2, cx2, cy2); - x1 = x2; - y1 = y2; - } - } - } - if (this.drawBones) { - shapes.setColor(this.boneOriginColor); - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) - continue; - shapes.circle(true, skeletonX + bone.worldX, skeletonY + bone.worldY, 3 * this.scale, SkeletonDebugRenderer.GREEN, 8); - } - } - if (this.drawClipping) { - var slots = skeleton.slots; - shapes.setColor(this.clipColor); - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (!(attachment instanceof spine.ClippingAttachment)) - continue; - var clip = attachment; - var nn = clip.worldVerticesLength; - var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); - clip.computeWorldVertices(slot, 0, nn, world, 0, 2); - for (var i_5 = 0, n_2 = world.length; i_5 < n_2; i_5 += 2) { - var x = world[i_5]; - var y = world[i_5 + 1]; - var x2 = world[(i_5 + 2) % world.length]; - var y2 = world[(i_5 + 3) % world.length]; - shapes.line(x, y, x2, y2); - } - } - } - }; - SkeletonDebugRenderer.prototype.dispose = function () { - }; - SkeletonDebugRenderer.LIGHT_GRAY = new spine.Color(192 / 255, 192 / 255, 192 / 255, 1); - SkeletonDebugRenderer.GREEN = new spine.Color(0, 1, 0, 1); - return SkeletonDebugRenderer; - }()); - webgl.SkeletonDebugRenderer = SkeletonDebugRenderer; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var SkeletonDebugRenderer = (function () { + function SkeletonDebugRenderer(context) { + this.boneLineColor = new spine.Color(1, 0, 0, 1); + this.boneOriginColor = new spine.Color(0, 1, 0, 1); + this.attachmentLineColor = new spine.Color(0, 0, 1, 0.5); + this.triangleLineColor = new spine.Color(1, 0.64, 0, 0.5); + this.pathColor = new spine.Color().setFromString("FF7F00"); + this.clipColor = new spine.Color(0.8, 0, 0, 2); + this.aabbColor = new spine.Color(0, 1, 0, 0.5); + this.drawBones = true; + this.drawRegionAttachments = true; + this.drawBoundingBoxes = true; + this.drawMeshHull = true; + this.drawMeshTriangles = true; + this.drawPaths = true; + this.drawSkeletonXY = false; + this.drawClipping = true; + this.premultipliedAlpha = false; + this.scale = 1; + this.boneWidth = 2; + this.bounds = new spine.SkeletonBounds(); + this.temp = new Array(); + this.vertices = spine.Utils.newFloatArray(2 * 1024); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + } + SkeletonDebugRenderer.prototype.draw = function (shapes, skeleton, ignoredBones) { + if (ignoredBones === void 0) { ignoredBones = null; } + var skeletonX = skeleton.x; + var skeletonY = skeleton.y; + var gl = this.context.gl; + var srcFunc = this.premultipliedAlpha ? gl.ONE : gl.SRC_ALPHA; + shapes.setBlendMode(srcFunc, gl.ONE_MINUS_SRC_ALPHA); + var bones = skeleton.bones; + if (this.drawBones) { + shapes.setColor(this.boneLineColor); + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) + continue; + if (bone.parent == null) + continue; + var x = skeletonX + bone.data.length * bone.a + bone.worldX; + var y = skeletonY + bone.data.length * bone.c + bone.worldY; + shapes.rectLine(true, skeletonX + bone.worldX, skeletonY + bone.worldY, x, y, this.boneWidth * this.scale); + } + if (this.drawSkeletonXY) + shapes.x(skeletonX, skeletonY, 4 * this.scale); + } + if (this.drawRegionAttachments) { + shapes.setColor(this.attachmentLineColor); + var slots = skeleton.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.RegionAttachment) { + var regionAttachment = attachment; + var vertices = this.vertices; + regionAttachment.computeWorldVertices(slot.bone, vertices, 0, 2); + shapes.line(vertices[0], vertices[1], vertices[2], vertices[3]); + shapes.line(vertices[2], vertices[3], vertices[4], vertices[5]); + shapes.line(vertices[4], vertices[5], vertices[6], vertices[7]); + shapes.line(vertices[6], vertices[7], vertices[0], vertices[1]); + } + } + } + if (this.drawMeshHull || this.drawMeshTriangles) { + var slots = skeleton.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (!(attachment instanceof spine.MeshAttachment)) + continue; + var mesh = attachment; + var vertices = this.vertices; + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, 2); + var triangles = mesh.triangles; + var hullLength = mesh.hullLength; + if (this.drawMeshTriangles) { + shapes.setColor(this.triangleLineColor); + for (var ii = 0, nn = triangles.length; ii < nn; ii += 3) { + var v1 = triangles[ii] * 2, v2 = triangles[ii + 1] * 2, v3 = triangles[ii + 2] * 2; + shapes.triangle(false, vertices[v1], vertices[v1 + 1], vertices[v2], vertices[v2 + 1], vertices[v3], vertices[v3 + 1]); + } + } + if (this.drawMeshHull && hullLength > 0) { + shapes.setColor(this.attachmentLineColor); + hullLength = (hullLength >> 1) * 2; + var lastX = vertices[hullLength - 2], lastY = vertices[hullLength - 1]; + for (var ii = 0, nn = hullLength; ii < nn; ii += 2) { + var x = vertices[ii], y = vertices[ii + 1]; + shapes.line(x, y, lastX, lastY); + lastX = x; + lastY = y; + } + } + } + } + if (this.drawBoundingBoxes) { + var bounds = this.bounds; + bounds.update(skeleton, true); + shapes.setColor(this.aabbColor); + shapes.rect(false, bounds.minX, bounds.minY, bounds.getWidth(), bounds.getHeight()); + var polygons = bounds.polygons; + var boxes = bounds.boundingBoxes; + for (var i = 0, n = polygons.length; i < n; i++) { + var polygon = polygons[i]; + shapes.setColor(boxes[i].color); + shapes.polygon(polygon, 0, polygon.length); + } + } + if (this.drawPaths) { + var slots = skeleton.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (!(attachment instanceof spine.PathAttachment)) + continue; + var path = attachment; + var nn = path.worldVerticesLength; + var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); + path.computeWorldVertices(slot, 0, nn, world, 0, 2); + var color = this.pathColor; + var x1 = world[2], y1 = world[3], x2 = 0, y2 = 0; + if (path.closed) { + shapes.setColor(color); + var cx1 = world[0], cy1 = world[1], cx2 = world[nn - 2], cy2 = world[nn - 1]; + x2 = world[nn - 4]; + y2 = world[nn - 3]; + shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); + shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); + shapes.line(x1, y1, cx1, cy1); + shapes.line(x2, y2, cx2, cy2); + } + nn -= 4; + for (var ii = 4; ii < nn; ii += 6) { + var cx1 = world[ii], cy1 = world[ii + 1], cx2 = world[ii + 2], cy2 = world[ii + 3]; + x2 = world[ii + 4]; + y2 = world[ii + 5]; + shapes.setColor(color); + shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); + shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); + shapes.line(x1, y1, cx1, cy1); + shapes.line(x2, y2, cx2, cy2); + x1 = x2; + y1 = y2; + } + } + } + if (this.drawBones) { + shapes.setColor(this.boneOriginColor); + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) + continue; + shapes.circle(true, skeletonX + bone.worldX, skeletonY + bone.worldY, 3 * this.scale, SkeletonDebugRenderer.GREEN, 8); + } + } + if (this.drawClipping) { + var slots = skeleton.slots; + shapes.setColor(this.clipColor); + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (!(attachment instanceof spine.ClippingAttachment)) + continue; + var clip = attachment; + var nn = clip.worldVerticesLength; + var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); + clip.computeWorldVertices(slot, 0, nn, world, 0, 2); + for (var i_5 = 0, n_2 = world.length; i_5 < n_2; i_5 += 2) { + var x = world[i_5]; + var y = world[i_5 + 1]; + var x2 = world[(i_5 + 2) % world.length]; + var y2 = world[(i_5 + 3) % world.length]; + shapes.line(x, y, x2, y2); + } + } + } + }; + SkeletonDebugRenderer.prototype.dispose = function () { + }; + SkeletonDebugRenderer.LIGHT_GRAY = new spine.Color(192 / 255, 192 / 255, 192 / 255, 1); + SkeletonDebugRenderer.GREEN = new spine.Color(0, 1, 0, 1); + return SkeletonDebugRenderer; + }()); + webgl.SkeletonDebugRenderer = SkeletonDebugRenderer; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Renderable = (function () { - function Renderable(vertices, numVertices, numFloats) { - this.vertices = vertices; - this.numVertices = numVertices; - this.numFloats = numFloats; - } - return Renderable; - }()); - ; - var SkeletonRenderer = (function () { - function SkeletonRenderer(context, twoColorTint) { - if (twoColorTint === void 0) { twoColorTint = true; } - this.premultipliedAlpha = false; - this.tempColor = new spine.Color(); - this.tempColor2 = new spine.Color(); - this.vertexSize = 2 + 2 + 4; - this.twoColorTint = false; - this.renderable = new Renderable(null, 0, 0); - this.clipper = new spine.SkeletonClipping(); - this.twoColorTint = twoColorTint; - if (twoColorTint) - this.vertexSize += 4; - this.vertices = spine.Utils.newFloatArray(this.vertexSize * 1024); - } - SkeletonRenderer.prototype.draw = function (batcher, skeleton) { - var clipper = this.clipper; - var premultipliedAlpha = this.premultipliedAlpha; - var twoColorTint = this.twoColorTint; - var blendMode = null; - var renderable = this.renderable; - var uvs = null; - var triangles = null; - var drawOrder = skeleton.drawOrder; - var attachmentColor = null; - var skeletonColor = skeleton.color; - var vertexSize = twoColorTint ? 12 : 8; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var clippedVertexSize = clipper.isClipping() ? 2 : vertexSize; - var slot = drawOrder[i]; - var attachment = slot.getAttachment(); - var texture = null; - if (attachment instanceof spine.RegionAttachment) { - var region = attachment; - renderable.vertices = this.vertices; - renderable.numVertices = 4; - renderable.numFloats = clippedVertexSize << 2; - region.computeWorldVertices(slot.bone, renderable.vertices, 0, clippedVertexSize); - triangles = SkeletonRenderer.QUAD_TRIANGLES; - uvs = region.uvs; - texture = region.region.renderObject.texture; - attachmentColor = region.color; - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - renderable.vertices = this.vertices; - renderable.numVertices = (mesh.worldVerticesLength >> 1); - renderable.numFloats = renderable.numVertices * clippedVertexSize; - if (renderable.numFloats > renderable.vertices.length) { - renderable.vertices = this.vertices = spine.Utils.newFloatArray(renderable.numFloats); - } - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, renderable.vertices, 0, clippedVertexSize); - triangles = mesh.triangles; - texture = mesh.region.renderObject.texture; - uvs = mesh.uvs; - attachmentColor = mesh.color; - } - else if (attachment instanceof spine.ClippingAttachment) { - var clip = (attachment); - clipper.clipStart(slot, clip); - continue; - } - else - continue; - if (texture != null) { - var slotColor = slot.color; - var finalColor = this.tempColor; - finalColor.r = skeletonColor.r * slotColor.r * attachmentColor.r; - finalColor.g = skeletonColor.g * slotColor.g * attachmentColor.g; - finalColor.b = skeletonColor.b * slotColor.b * attachmentColor.b; - finalColor.a = skeletonColor.a * slotColor.a * attachmentColor.a; - if (premultipliedAlpha) { - finalColor.r *= finalColor.a; - finalColor.g *= finalColor.a; - finalColor.b *= finalColor.a; - } - var darkColor = this.tempColor2; - if (slot.darkColor == null) - darkColor.set(0, 0, 0, 1); - else - darkColor.setFromColor(slot.darkColor); - var slotBlendMode = slot.data.blendMode; - if (slotBlendMode != blendMode) { - blendMode = slotBlendMode; - batcher.setBlendMode(webgl.WebGLBlendModeConverter.getSourceGLBlendMode(blendMode, premultipliedAlpha), webgl.WebGLBlendModeConverter.getDestGLBlendMode(blendMode)); - } - if (clipper.isClipping()) { - clipper.clipTriangles(renderable.vertices, renderable.numFloats, triangles, triangles.length, uvs, finalColor, darkColor, twoColorTint); - var clippedVertices = new Float32Array(clipper.clippedVertices); - var clippedTriangles = clipper.clippedTriangles; - batcher.draw(texture, clippedVertices, clippedTriangles); - } - else { - var verts = renderable.vertices; - if (!twoColorTint) { - for (var v = 2, u = 0, n_3 = renderable.numFloats; v < n_3; v += vertexSize, u += 2) { - verts[v] = finalColor.r; - verts[v + 1] = finalColor.g; - verts[v + 2] = finalColor.b; - verts[v + 3] = finalColor.a; - verts[v + 4] = uvs[u]; - verts[v + 5] = uvs[u + 1]; - } - } - else { - for (var v = 2, u = 0, n_4 = renderable.numFloats; v < n_4; v += vertexSize, u += 2) { - verts[v] = finalColor.r; - verts[v + 1] = finalColor.g; - verts[v + 2] = finalColor.b; - verts[v + 3] = finalColor.a; - verts[v + 4] = uvs[u]; - verts[v + 5] = uvs[u + 1]; - verts[v + 6] = darkColor.r; - verts[v + 7] = darkColor.g; - verts[v + 8] = darkColor.b; - verts[v + 9] = darkColor.a; - } - } - var view = renderable.vertices.subarray(0, renderable.numFloats); - batcher.draw(texture, view, triangles); - } - } - clipper.clipEndWithSlot(slot); - } - clipper.clipEnd(); - }; - SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - return SkeletonRenderer; - }()); - webgl.SkeletonRenderer = SkeletonRenderer; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Renderable = (function () { + function Renderable(vertices, numVertices, numFloats) { + this.vertices = vertices; + this.numVertices = numVertices; + this.numFloats = numFloats; + } + return Renderable; + }()); + ; + var SkeletonRenderer = (function () { + function SkeletonRenderer(context, twoColorTint) { + if (twoColorTint === void 0) { twoColorTint = true; } + this.premultipliedAlpha = false; + this.tempColor = new spine.Color(); + this.tempColor2 = new spine.Color(); + this.vertexSize = 2 + 2 + 4; + this.twoColorTint = false; + this.renderable = new Renderable(null, 0, 0); + this.clipper = new spine.SkeletonClipping(); + this.twoColorTint = twoColorTint; + if (twoColorTint) + this.vertexSize += 4; + this.vertices = spine.Utils.newFloatArray(this.vertexSize * 1024); + } + SkeletonRenderer.prototype.draw = function (batcher, skeleton) { + var clipper = this.clipper; + var premultipliedAlpha = this.premultipliedAlpha; + var twoColorTint = this.twoColorTint; + var blendMode = null; + var renderable = this.renderable; + var uvs = null; + var triangles = null; + var drawOrder = skeleton.drawOrder; + var attachmentColor = null; + var skeletonColor = skeleton.color; + var vertexSize = twoColorTint ? 12 : 8; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var clippedVertexSize = clipper.isClipping() ? 2 : vertexSize; + var slot = drawOrder[i]; + var attachment = slot.getAttachment(); + var texture = null; + if (attachment instanceof spine.RegionAttachment) { + var region = attachment; + renderable.vertices = this.vertices; + renderable.numVertices = 4; + renderable.numFloats = clippedVertexSize << 2; + region.computeWorldVertices(slot.bone, renderable.vertices, 0, clippedVertexSize); + triangles = SkeletonRenderer.QUAD_TRIANGLES; + uvs = region.uvs; + texture = region.region.renderObject.texture; + attachmentColor = region.color; + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + renderable.vertices = this.vertices; + renderable.numVertices = (mesh.worldVerticesLength >> 1); + renderable.numFloats = renderable.numVertices * clippedVertexSize; + if (renderable.numFloats > renderable.vertices.length) { + renderable.vertices = this.vertices = spine.Utils.newFloatArray(renderable.numFloats); + } + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, renderable.vertices, 0, clippedVertexSize); + triangles = mesh.triangles; + texture = mesh.region.renderObject.texture; + uvs = mesh.uvs; + attachmentColor = mesh.color; + } + else if (attachment instanceof spine.ClippingAttachment) { + var clip = (attachment); + clipper.clipStart(slot, clip); + continue; + } + else + continue; + if (texture != null) { + var slotColor = slot.color; + var finalColor = this.tempColor; + finalColor.r = skeletonColor.r * slotColor.r * attachmentColor.r; + finalColor.g = skeletonColor.g * slotColor.g * attachmentColor.g; + finalColor.b = skeletonColor.b * slotColor.b * attachmentColor.b; + finalColor.a = skeletonColor.a * slotColor.a * attachmentColor.a; + if (premultipliedAlpha) { + finalColor.r *= finalColor.a; + finalColor.g *= finalColor.a; + finalColor.b *= finalColor.a; + } + var darkColor = this.tempColor2; + if (slot.darkColor == null) + darkColor.set(0, 0, 0, 1); + else + darkColor.setFromColor(slot.darkColor); + var slotBlendMode = slot.data.blendMode; + if (slotBlendMode != blendMode) { + blendMode = slotBlendMode; + batcher.setBlendMode(webgl.WebGLBlendModeConverter.getSourceGLBlendMode(blendMode, premultipliedAlpha), webgl.WebGLBlendModeConverter.getDestGLBlendMode(blendMode)); + } + if (clipper.isClipping()) { + clipper.clipTriangles(renderable.vertices, renderable.numFloats, triangles, triangles.length, uvs, finalColor, darkColor, twoColorTint); + var clippedVertices = new Float32Array(clipper.clippedVertices); + var clippedTriangles = clipper.clippedTriangles; + batcher.draw(texture, clippedVertices, clippedTriangles); + } + else { + var verts = renderable.vertices; + if (!twoColorTint) { + for (var v = 2, u = 0, n_3 = renderable.numFloats; v < n_3; v += vertexSize, u += 2) { + verts[v] = finalColor.r; + verts[v + 1] = finalColor.g; + verts[v + 2] = finalColor.b; + verts[v + 3] = finalColor.a; + verts[v + 4] = uvs[u]; + verts[v + 5] = uvs[u + 1]; + } + } + else { + for (var v = 2, u = 0, n_4 = renderable.numFloats; v < n_4; v += vertexSize, u += 2) { + verts[v] = finalColor.r; + verts[v + 1] = finalColor.g; + verts[v + 2] = finalColor.b; + verts[v + 3] = finalColor.a; + verts[v + 4] = uvs[u]; + verts[v + 5] = uvs[u + 1]; + verts[v + 6] = darkColor.r; + verts[v + 7] = darkColor.g; + verts[v + 8] = darkColor.b; + verts[v + 9] = darkColor.a; + } + } + var view = renderable.vertices.subarray(0, renderable.numFloats); + batcher.draw(texture, view, triangles); + } + } + clipper.clipEndWithSlot(slot); + } + clipper.clipEnd(); + }; + SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + return SkeletonRenderer; + }()); + webgl.SkeletonRenderer = SkeletonRenderer; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Vector3 = (function () { - function Vector3(x, y, z) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - if (z === void 0) { z = 0; } - this.x = 0; - this.y = 0; - this.z = 0; - this.x = x; - this.y = y; - this.z = z; - } - Vector3.prototype.setFrom = function (v) { - this.x = v.x; - this.y = v.y; - this.z = v.z; - return this; - }; - Vector3.prototype.set = function (x, y, z) { - this.x = x; - this.y = y; - this.z = z; - return this; - }; - Vector3.prototype.add = function (v) { - this.x += v.x; - this.y += v.y; - this.z += v.z; - return this; - }; - Vector3.prototype.sub = function (v) { - this.x -= v.x; - this.y -= v.y; - this.z -= v.z; - return this; - }; - Vector3.prototype.scale = function (s) { - this.x *= s; - this.y *= s; - this.z *= s; - return this; - }; - Vector3.prototype.normalize = function () { - var len = this.length(); - if (len == 0) - return this; - len = 1 / len; - this.x *= len; - this.y *= len; - this.z *= len; - return this; - }; - Vector3.prototype.cross = function (v) { - return this.set(this.y * v.z - this.z * v.y, this.z * v.x - this.x * v.z, this.x * v.y - this.y * v.x); - }; - Vector3.prototype.multiply = function (matrix) { - var l_mat = matrix.values; - return this.set(this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03], this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13], this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]); - }; - Vector3.prototype.project = function (matrix) { - var l_mat = matrix.values; - var l_w = 1 / (this.x * l_mat[webgl.M30] + this.y * l_mat[webgl.M31] + this.z * l_mat[webgl.M32] + l_mat[webgl.M33]); - return this.set((this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03]) * l_w, (this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13]) * l_w, (this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]) * l_w); - }; - Vector3.prototype.dot = function (v) { - return this.x * v.x + this.y * v.y + this.z * v.z; - }; - Vector3.prototype.length = function () { - return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); - }; - Vector3.prototype.distance = function (v) { - var a = v.x - this.x; - var b = v.y - this.y; - var c = v.z - this.z; - return Math.sqrt(a * a + b * b + c * c); - }; - return Vector3; - }()); - webgl.Vector3 = Vector3; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Vector3 = (function () { + function Vector3(x, y, z) { + if (x === void 0) { x = 0; } + if (y === void 0) { y = 0; } + if (z === void 0) { z = 0; } + this.x = 0; + this.y = 0; + this.z = 0; + this.x = x; + this.y = y; + this.z = z; + } + Vector3.prototype.setFrom = function (v) { + this.x = v.x; + this.y = v.y; + this.z = v.z; + return this; + }; + Vector3.prototype.set = function (x, y, z) { + this.x = x; + this.y = y; + this.z = z; + return this; + }; + Vector3.prototype.add = function (v) { + this.x += v.x; + this.y += v.y; + this.z += v.z; + return this; + }; + Vector3.prototype.sub = function (v) { + this.x -= v.x; + this.y -= v.y; + this.z -= v.z; + return this; + }; + Vector3.prototype.scale = function (s) { + this.x *= s; + this.y *= s; + this.z *= s; + return this; + }; + Vector3.prototype.normalize = function () { + var len = this.length(); + if (len == 0) + return this; + len = 1 / len; + this.x *= len; + this.y *= len; + this.z *= len; + return this; + }; + Vector3.prototype.cross = function (v) { + return this.set(this.y * v.z - this.z * v.y, this.z * v.x - this.x * v.z, this.x * v.y - this.y * v.x); + }; + Vector3.prototype.multiply = function (matrix) { + var l_mat = matrix.values; + return this.set(this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03], this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13], this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]); + }; + Vector3.prototype.project = function (matrix) { + var l_mat = matrix.values; + var l_w = 1 / (this.x * l_mat[webgl.M30] + this.y * l_mat[webgl.M31] + this.z * l_mat[webgl.M32] + l_mat[webgl.M33]); + return this.set((this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03]) * l_w, (this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13]) * l_w, (this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]) * l_w); + }; + Vector3.prototype.dot = function (v) { + return this.x * v.x + this.y * v.y + this.z * v.z; + }; + Vector3.prototype.length = function () { + return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); + }; + Vector3.prototype.distance = function (v) { + var a = v.x - this.x; + var b = v.y - this.y; + var c = v.z - this.z; + return Math.sqrt(a * a + b * b + c * c); + }; + return Vector3; + }()); + webgl.Vector3 = Vector3; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var ManagedWebGLRenderingContext = (function () { - function ManagedWebGLRenderingContext(canvasOrContext, contextConfig) { - var _this = this; - if (contextConfig === void 0) { contextConfig = { alpha: "true" }; } - this.restorables = new Array(); - if (canvasOrContext instanceof HTMLCanvasElement) { - var canvas = canvasOrContext; - this.gl = (canvas.getContext("webgl", contextConfig) || canvas.getContext("experimental-webgl", contextConfig)); - this.canvas = canvas; - canvas.addEventListener("webglcontextlost", function (e) { - var event = e; - if (e) { - e.preventDefault(); - } - }); - canvas.addEventListener("webglcontextrestored", function (e) { - for (var i = 0, n = _this.restorables.length; i < n; i++) { - _this.restorables[i].restore(); - } - }); - } - else { - this.gl = canvasOrContext; - this.canvas = this.gl.canvas; - } - } - ManagedWebGLRenderingContext.prototype.addRestorable = function (restorable) { - this.restorables.push(restorable); - }; - ManagedWebGLRenderingContext.prototype.removeRestorable = function (restorable) { - var index = this.restorables.indexOf(restorable); - if (index > -1) - this.restorables.splice(index, 1); - }; - return ManagedWebGLRenderingContext; - }()); - webgl.ManagedWebGLRenderingContext = ManagedWebGLRenderingContext; - var WebGLBlendModeConverter = (function () { - function WebGLBlendModeConverter() { - } - WebGLBlendModeConverter.getDestGLBlendMode = function (blendMode) { - switch (blendMode) { - case spine.BlendMode.Normal: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; - case spine.BlendMode.Additive: return WebGLBlendModeConverter.ONE; - case spine.BlendMode.Multiply: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; - case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; - default: throw new Error("Unknown blend mode: " + blendMode); - } - }; - WebGLBlendModeConverter.getSourceGLBlendMode = function (blendMode, premultipliedAlpha) { - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - switch (blendMode) { - case spine.BlendMode.Normal: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; - case spine.BlendMode.Additive: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; - case spine.BlendMode.Multiply: return WebGLBlendModeConverter.DST_COLOR; - case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE; - default: throw new Error("Unknown blend mode: " + blendMode); - } - }; - WebGLBlendModeConverter.ZERO = 0; - WebGLBlendModeConverter.ONE = 1; - WebGLBlendModeConverter.SRC_COLOR = 0x0300; - WebGLBlendModeConverter.ONE_MINUS_SRC_COLOR = 0x0301; - WebGLBlendModeConverter.SRC_ALPHA = 0x0302; - WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA = 0x0303; - WebGLBlendModeConverter.DST_ALPHA = 0x0304; - WebGLBlendModeConverter.ONE_MINUS_DST_ALPHA = 0x0305; - WebGLBlendModeConverter.DST_COLOR = 0x0306; - return WebGLBlendModeConverter; - }()); - webgl.WebGLBlendModeConverter = WebGLBlendModeConverter; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var ManagedWebGLRenderingContext = (function () { + function ManagedWebGLRenderingContext(canvasOrContext, contextConfig) { + var _this = this; + if (contextConfig === void 0) { contextConfig = { alpha: "true" }; } + this.restorables = new Array(); + if (canvasOrContext instanceof HTMLCanvasElement) { + var canvas = canvasOrContext; + this.gl = (canvas.getContext("webgl", contextConfig) || canvas.getContext("experimental-webgl", contextConfig)); + this.canvas = canvas; + canvas.addEventListener("webglcontextlost", function (e) { + var event = e; + if (e) { + e.preventDefault(); + } + }); + canvas.addEventListener("webglcontextrestored", function (e) { + for (var i = 0, n = _this.restorables.length; i < n; i++) { + _this.restorables[i].restore(); + } + }); + } + else { + this.gl = canvasOrContext; + this.canvas = this.gl.canvas; + } + } + ManagedWebGLRenderingContext.prototype.addRestorable = function (restorable) { + this.restorables.push(restorable); + }; + ManagedWebGLRenderingContext.prototype.removeRestorable = function (restorable) { + var index = this.restorables.indexOf(restorable); + if (index > -1) + this.restorables.splice(index, 1); + }; + return ManagedWebGLRenderingContext; + }()); + webgl.ManagedWebGLRenderingContext = ManagedWebGLRenderingContext; + var WebGLBlendModeConverter = (function () { + function WebGLBlendModeConverter() { + } + WebGLBlendModeConverter.getDestGLBlendMode = function (blendMode) { + switch (blendMode) { + case spine.BlendMode.Normal: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; + case spine.BlendMode.Additive: return WebGLBlendModeConverter.ONE; + case spine.BlendMode.Multiply: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; + case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; + default: throw new Error("Unknown blend mode: " + blendMode); + } + }; + WebGLBlendModeConverter.getSourceGLBlendMode = function (blendMode, premultipliedAlpha) { + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + switch (blendMode) { + case spine.BlendMode.Normal: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; + case spine.BlendMode.Additive: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; + case spine.BlendMode.Multiply: return WebGLBlendModeConverter.DST_COLOR; + case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE; + default: throw new Error("Unknown blend mode: " + blendMode); + } + }; + WebGLBlendModeConverter.ZERO = 0; + WebGLBlendModeConverter.ONE = 1; + WebGLBlendModeConverter.SRC_COLOR = 0x0300; + WebGLBlendModeConverter.ONE_MINUS_SRC_COLOR = 0x0301; + WebGLBlendModeConverter.SRC_ALPHA = 0x0302; + WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA = 0x0303; + WebGLBlendModeConverter.DST_ALPHA = 0x0304; + WebGLBlendModeConverter.ONE_MINUS_DST_ALPHA = 0x0305; + WebGLBlendModeConverter.DST_COLOR = 0x0306; + return WebGLBlendModeConverter; + }()); + webgl.WebGLBlendModeConverter = WebGLBlendModeConverter; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); //# sourceMappingURL=spine-webgl.js.map \ No newline at end of file diff --git a/spine-ts/build/spine-widget.js b/spine-ts/build/spine-widget.js index 9560df0aa..b0f3a08eb 100644 --- a/spine-ts/build/spine-widget.js +++ b/spine-ts/build/spine-widget.js @@ -603,7 +603,7 @@ var spine; } var frameVertices = this.frameVertices; var vertexCount = frameVertices[0].length; - if (verticesArray.length != vertexCount) + if (verticesArray.length != vertexCount && !setupPose) alpha = 1; var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); if (time >= frames[frames.length - 1]) { diff --git a/spine-ts/build/spine-widget.js.map b/spine-ts/build/spine-widget.js.map index 7f55ed63c..3a24e7291 100644 --- a/spine-ts/build/spine-widget.js.map +++ b/spine-ts/build/spine-widget.js.map @@ -1 +1 @@ -{"version":3,"file":"spine-widget.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts","../widget/src/Widget.ts"],"names":[],"mappings":"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AAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChH,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC3G,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG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CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,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"} \ No newline at end of file +{"version":3,"file":"spine-widget.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts","../widget/src/Widget.ts"],"names":[],"mappings":"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AAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChH,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC3G,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG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CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,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"} \ No newline at end of file From 57eab37e115277c3f535da4ab9f76d25f944d9a4 Mon Sep 17 00:00:00 2001 From: badlogic Date: Sun, 4 Jun 2017 11:06:22 +0200 Subject: [PATCH 10/17] [as3] Fixed deform timelines not mixing from/to setup pose. #920 --- spine-as3/spine-as3-example/lib/spine-as3.swc | Bin 99786 -> 99801 bytes .../src/spine/animation/DeformTimeline.as | 2 +- .../spine-starling-example/lib/spine-as3.swc | Bin 99786 -> 99801 bytes .../spine-starling/lib/spine-as3.swc | Bin 99786 -> 99801 bytes 4 files changed, 1 insertion(+), 1 deletion(-) diff --git a/spine-as3/spine-as3-example/lib/spine-as3.swc b/spine-as3/spine-as3-example/lib/spine-as3.swc index ec7e3fb3cbcc3b6f101f5f2d050e483d95d8ab06..29e0cccddfcb7ff71923f78be067cd54a10183d7 100644 GIT binary patch literal 99801 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 DT`S4gShC_aYlyqzwB}Nu_m|1U=<>$7>28{ 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 literal 99786 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 O6A%^wX{T03APE45!FW#q diff --git a/spine-as3/spine-as3/src/spine/animation/DeformTimeline.as b/spine-as3/spine-as3/src/spine/animation/DeformTimeline.as index 26fe20894..03f653327 100644 --- a/spine-as3/spine-as3/src/spine/animation/DeformTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/DeformTimeline.as @@ -72,7 +72,7 @@ package spine.animation { var frameVertices : Vector.> = this.frameVertices; var vertexCount : int = frameVertices[0].length; - if (verticesArray.length != vertexCount) alpha = 1; // Don't mix from uninitialized slot vertices. + if (verticesArray.length != vertexCount && !setupPose) alpha = 1; // Don't mix from uninitialized slot vertices. verticesArray.length = vertexCount; var vertices : Vector. = verticesArray; diff --git a/spine-starling/spine-starling-example/lib/spine-as3.swc b/spine-starling/spine-starling-example/lib/spine-as3.swc index ec7e3fb3cbcc3b6f101f5f2d050e483d95d8ab06..29e0cccddfcb7ff71923f78be067cd54a10183d7 100644 GIT binary patch literal 99801 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 DT`S4gShC_aYlyqzwB}Nu_m|1U=<>$7>28{ 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 literal 99786 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 O6A%^wX{T03APE45!FW#q diff --git a/spine-starling/spine-starling/lib/spine-as3.swc b/spine-starling/spine-starling/lib/spine-as3.swc index ec7e3fb3cbcc3b6f101f5f2d050e483d95d8ab06..29e0cccddfcb7ff71923f78be067cd54a10183d7 100644 GIT binary patch literal 99801 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 DT`S4gShC_aYlyqzwB}Nu_m|1U=<>$7>28{ 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 literal 99786 zcmV)GK)%0FO9KQH00;mG0LfOwN&o-=000000000001E&B0ApcvVQg<_E_iKh?Oj=O z+c*+_pI_nfdo0`lRZgayWTtkfCYwy0nSFH86lHTm9VJq6{O=bObx=IO21SZe;&PSC zvIsQMXaL<`AGrSY`y{;h<}adPHhq1Guh8X%KlNs#VESFLTH&F=jxZ#Ef>LpORH=%+k4cEj1jz`1<$%f-d@y6Y(Upg$(v zWT=tLi^2Mvap-^FeZ{Us@+$YsARN8EB$Ob0c`*s5!DKnPUC!sTMeL9M**s0JQ1bMu ztLs6Q+i-v=trB*vhA{{x+P&kRg{d$hT%tRg0U&!*b$J|4( z;|?|~(_z}9agUyb?tSQ=!m8Ao$KZ?qJsIYoGk4^}r7B)^SGyVo(L8jY zhi`*;;?5yTLtVS7rBc?eRRzKz&t@^|Uf6aj7F4*16r4!JO}p5xSHn*BW#LYv@oX`H ztB<8k&P2yc&t)K&vET?x_F<;mb66Q!^*%iz8mRYFs}v66QbE=GBBfT8b&$kmq>l{m>u=L|@eJGvw=Mq+ zqS&AMiwHLHt3?M>QI>HKM#J}km(X$T-|R~;@xuVTw{P36Uh%J`zwE;BESspt4OcVV zAvTtwnL=1rEVbAUQhUyFdJ7^8750M2nm3m{ku___RU!*shB^L1+Z9E&swH?&H3_Pj zUkQo76Gqt5dB1R~-Isfqew-R2=bEN~_dL0LF?NRWsuu063(;Mn#i@>cnLB@A*iNc7*~$)nkk# zCQKSMtzo9up2oFvo>}PqNGq9GuRN*M<9jmvDL`j5zBL(*SM#xON4wBdfw z?Jg{%_XMOam3UBXDHjd9PPOX{<+rotH1XfRo!Jh2ubYGk&0l|?g&%_N&Bya;rhBlR zLXZKRKKk#kc5{8WvR|zgHNnUBL0k*1{CKi*9+CjBdgX>})WQ zy`3k#63(Wa+oI2n8MreD{G^{Y*l!7(AG*1I@FV-ZDbxO47|iuQA8ZEzjg1c`?Axya5KPYiy_V}>x%g&@d02+-g#L5{@zPZ58gR6;O4q2dRV#Ikwn2?Q zZa@CVw(r_w{9qi!0$Z*;sZSZds61zDM6nn(*CAp8JeZpx|Jj4NnbcJs%q^gbpo7_J zrp*U47^y2gn5$ZY;D9WE`t~{YZx##J8b7r}Dr?SrxHy%c_h#bIu+97!Zy$ZPu?$#4 ztPLUxHW+6yO19bhT5mOt#lAu{F~5E>WY-FdhZ1Yxl+WrtfGq|rVg=O&ERdcXg17Ty zA=STYVRbFSUL|8hac%}*SFrP@=iZ^_9m~NHZK8iW9)gA-Er#dKhW)$-#Yq(lXtV6S8$*(JI4|Whbma8MxIKipmCR?a^%Rk z_Hg!Y6w4CfZenJX!Vg`#QC7%&1V1#XqKFV|Og+f=-I>@mcPnUJHGF;m3t;Qw+873a zj=oM)-y8iQh)MTbbfw7#PN`4`OXMg+G(xpq*aGx=NFvlvk>$4)N9c?ShY5@nGCA$H zo%S@S&8D#d_TiDt$|00tW*l9y_m2Gx;6qq1rNEs&EJGJ8=w&VXl*UaW8F+(nB%(+O zQ%=IJ*WNYVIxG{s3K5r*6Ku%*wm?u@@o46#oP?S5)993Ge%^*RxAR31!==e#icrdo zXiS=#mnUH9J?k!BrdbTTy$q&w9{ky4?H$qu^>cL;(`#_i0 z>djU$VwMa5W!N^&<}EHQ7=_I~d#r;ab4Y@rd_)wY4mM@Y?;jo+BJG|Z2c+znduV^( zg1@mfX14dn=GNth`cb?onRKF!q;dU26|Sz8f*iuRa$q`dmI8=@;MBU~=F7DZU)nVD z%`S7Ru`I&RwtStD{(Kkv{&sM_gOe1G5l9)0)ojnb8>~71I@m0iiZF$NYc)sYJUnn9 zMW%(Avp($B({U1}@fYB{8%7afM3~^_w8vhp$W!#JzEv2-2fj6B7VaHQavkNtZrM`L-99jgE1k-L>XezyjK@A4kKRShe> zMIlmN+=5XenW(UXx_UW-T@gJ;u|FB!`rcAMTWeMv8wJl)6e&sZ0w11S63P*SDRX6% z&I9?d2nv0HF^albJ{t~Ps+nVlAtVjxp)u>Ox1n!q8CiIh2t&sXf z&EcHNQo1b%1!S9T@?$K$&RIsZj$PV1w?P_!mAcRiEKQ>2l?s_G+nZ})7>M&@DewN*3LMnaEE1-pq&+5dt(|K>%tC1ep##bXypO|y(&qJO4!~R6ciVyI7v4ctVf_9=0oH07RA)qbvs8+h zJmDM7uTD3FKq99G!tE*n?pGCso;DImf+XiKQzJ*DFJ=1&4aeyrEI*UN2shHSeX4)M zE{4hwIEVGLU+xFW62hoN3YqZiTp=Noe+zp1An4+@?pc<>ccAi1n85~xHuL}ICTC{xa7rrQ%+ zNPCxP0EaB7!qNtMFAM10HJ!cO5wKg(k&ZD+eLp3orxlYrYoNP;&^v&T6q#-r zOna>H581~dw(KSY4{IRHn_l4>0`pIzLpSx%+D!i_4S^h+cYZe zr_UQ(@9KLI&S0p6N+uW~kc(Dp3oN%72?r~O=1v1^R=91-|d6w}_hupi=^g=r8 z%h}4Ovc3JK%d3ByUy0Sxok2%U>Pl0I;G2|EM3I^#wp^Z4t)FT?3(6u-Yd?9%qG2|9 zr$@K!)~d{3^9P;}#U-NBbZ8hZ6YL8hf2mv3YSp8vYYM@M&k|wG1UD36hu)0Xl}d6# z{+gz#I6sYa?#G$|%Y!nKcu5g5mBi0Qv7MbJ`eN6ew_TTwqRI!JfZdalBpz)9&9cbT zF){%h^n6wk%DFpSp{fxPL`sSoEI}(rLuBB~dB0ue_M&M`Deq=MWDs&+-|3>-~M9WF65 zAr&RIU(Y7r2_WKq+_auf77fQ|wOFOtxlgxLoDQ4Z5ADer!;#6vk$uN*zhgM!|z0#Zgu!R{vQyzWvwDE5b!8 zQoinZ?1qtkwQp{?)L%Oz*B`m#u^LhCDejCp_3+41T#kJt#vbzS>Dc!@=`l&}8Bc1E zQsN0ujj$)l_)-%bY~N+D_cGUmFt}g1i|6Fy=0o7GzP%m?;rg$^`cFNwC-2QK{|8V@ z2M7+hgPWob005J+002-+0|XQR2mlBG$yUTl0000000000000003jhEBY-wV0VRCsc zb9ZI{4?yt0LswG{$nF9Fcmce933yyrb^p6>nKy4XjYg|2%NpCVCE2nyn$d2@k-UtT zIJV;@v6CpyywQxMSeArFl5Gf}I3y%MArKNEK(L)aAYm&ZtOe52vJ@J$KoXV~5-15! z&?6KQXsQ3dbMJez$cmlz`|_8*yUg9!bI(2Zobygf>a&s*_=qG`GHFZkB1w|oSn^3G zNgGD{(p~$u#KR|#4-RFz@awX={;{!!BendIoe$k@Q}P?!o#n8V{^m(|tTrS>JWg^rAm4)P-Vl1-_> z)bZ5NSf;6YT{8;mOLnD)M~^4QHYP?!1_zP}Dz53|+D!j&^4N*QL~3n%Fp=rs(3DF^ zdBz6D22&e*`i9L^xF<<@_Vc!cdvc}lJR%`w>B}{DBabQwK!TBRb8sNjpBmjbK6Gqo z_{0!Tl?$aplB21_*l=MACye3;6GKPG6Gu}Ux9;Y-v%h%@5@V^2JI9B@Esf!5q`6(R zf&w=*(E#QRs2zei+9(Br{TfnX%Etz|h#1#8^TKO6w?3 zM_o5*c+UaXjU^I+etzS1y>Mwk4|Z0+!iJI64BjE+7(CoQ-dSQ$Z$q&?re!^!=rtvQP=MA<7R3U zA?-00!_(>-ON^ok?)`(qd=((DJ?29uUc{BdeJS7GydP?`Inw5(DM!~R*1JFFM`TN< zXLNWB%bMam`?6j{bw&ci>2xMF#zWCQH5!d}x}B=jXe`>Q+a()zAp<9USfE3hK`L?J zq{fF#jkZQx)M#5I=5~6IUu~_S3zvv%k9iZ8&k|>FXeG@bAynMfi2;eUc{HZE%H?vs zLU+3>*FN?) zS*oiwy0T1Hm+MNcuCCOTI$dedl{LE3s4HuAWu2}x>uO9_T8x;CEh}Shx{4-M$z6;s z9D*sqUX-OkDJv_7Sp>5frWz&;vjS!nOg+qMm?oGAOth7iwZUy?RZHBu#EP_TKm;av zx+Sl~n9?n|B_{j2CBMX!K(|yRF*VpN6-!JDbxS1@bCvRxdKq`z<-(~DPNi@bZIWbW z7@H)8c^3CbD)R!gXsl`rTI}<-rXq7pmDX4*rg~YL^~z~^ zKieerQ_K#@YMc(2x+SSsZS?O{nPRP-n(o)Ebtpk*Ox1iSAu<)Qny1prb_vzmVJ!%2 zol0v6Q=PC5gmq4(4TNdPtW-@!kUQL4-Mb{cBtq69sk*-kVKpfJYo))G^WkD*Y%G!N z7pGKD*6+Z^$|ZcOuFFf+m6vMt)q;;rc@?hDRp`LTR}8<3FKB+<1tEDIYRXk*L$j3^ zP40lJi>Gon?Il1~tP?;Z+L5=%u}3|5EqWz;8*r`-d%HQ}(pb4%;V#F%mYHhkvZgD# zE_-xY)#YMcEz#vtqlDp%q@Ac3*og{Owc_KuQ1i1u5lj#!RK^13a4VP#yPsBgx1=DC zN}GadJy@NzqEzOh?Ev7Bza3<3hc#GwE5vqK0S{JxEmprrlB|`ztkJa-Yt~wY^)Fj> z`Rl&{>w5K6TFzhpYZ10?Dy`D`&tL2AUOlZx$fC9G%C7a-885fiuTG7QrB3EX*IDsb zi1Vvp#b1#21rO~O20z%h`)WFgHvG!LmF+kNu#>Z0E z9j$ah^L?Z-yBJHgu z1rxoCk0^jrb9?E6&5pKpbb9k@S6id4E&p4H6>V;71;pxT_YuS@*ULRxq`bMJ*&QW} zWO0lz5{{2}yv(&smtDHz)@7qwW{R$QbvdM~wYt0#;7pgxba@pb5V}^Em+SI6U2f9l z23=mF%WHJGv5Fy9)8#f@ZP(>4-L+nqyLEY!E^pCYabvx#%iC;-$h1k-RZ;2ns$OsF zq|YBH3Kp|Pi#sPf2x96R*kv1GE{ExX*$lIFJG*QL+?{OkQnvy8z|$@H04I%ZNd-u( z;;4kYqz6z_sV1nYa;UkOpr+;`sHti;5+Ng?6hI6hkdTN5z`^Mq%vwX>Q44FXXWWR4 zPDR3#YSLRPC4De{m;g)>Oc16RCRCp+sZW;HC(G)S<>5&!Sy7){RG(a2pRB4+E~!se z*C&_OCu`=IPm0blKZ6yJVHGK`f-0S9<+L+j^QO$n@U>4rJBtPIxj^2_Gfii)ePn5oUyvX7Xq zb7wM7SuN9P*QB1*t=8$Z8$EMdZ9r?_F|78fv}e+n^jMdho^a{EO41ywtK2ll>KARE zV-1V9%(2x~u+}Vr)mXj7>NeeJ3`hWorb$H^R?l=gKm%ZHGAq(WO2?B+t*tYeq|ekcNq_J#T2m>S>-cSw%>HY^_%|Lvir}U zw{~r_cGpUXu=bJ@w5}qjD7cnt-)DNL_DnKh?Kgd903{=@&pKcR%>aBzZ5Huzi_D^# zvhSk2t4$q)SDvi2t`VbBdLBpbA>Ji3SgV}NB#VR3P~nGbrSW8$bsah7*7a1?>c>&K zsIS)ym_Aey2)-4G=UB^9(>h{SiUy_2_~71%5h)gflOS()a7_M7=0jCuCCxI72S%Mn z1fz~I!K9oqYtEga2K1TbJi0_gm-6VK9bInSVEU+4C|yBwifI_ij-#V#J^^JI+oR5) zm*dBw`~j{!e?C~lBdLun%XFq2M2BI0nUV92dheG;cVDv%~QrO8lC6 zBQYvQ!t|P1wJYm!Y(KVqX^>N0-KsO_!k4X4AA-lgfK+yeep z-M=`CfV~+zFh_*hJUlo&$}ufqj8X^g)gaAu@lfrW?K=)^m6Uy3w`kk;ZQZ(C-L&iA zR{hGJZCiIA=t;a<2-kXEInV+&%8mjjNeJ9Pw5f?lItWs7FmZgOB(KR$xZB4^hmQ-? zN#luG(xxWyUrq}CL+MYQbS3)}qdjAnMmN|BS7zJ!OfAex zm{l-!F!eAEFsor2Vb;M!V4^UwR<^7SZaedp)1At2bxR(m05=h?%Pm|T$ODDDLxeUM zC4@G3N;w6htVhzA&)Xxpm><4woZ(E8yJa|_df*<%WVKs`qiEe49F^(JN4Q3y$c;RT zdX%=cEG@f%P1Q2-ze!CnARKJ@4KjsE_-6={=a?q1xIvks-*%WX$6QM74Jw6ED5X>9 zKrUK&gC_EdFb$9d2%M^||GirfMGR@p9P=<(UKy58S!0t#a0PUM5Hi!R zU{D=X09*iRs@8;3)>A1Z(t2yd6p#*NybP|6tQ+CFk@<4C26A^(HdRBmvkdt*Q@%23 zv$bWqR*L&sW91_u+?uCrSv0l5vBNXk*B|Xi{Hmn`gQcb}y?M6d)iDBAB z!vxDK!}2M+tShIc(yr+^PdIlZ8N(|dRD%AxFf_5ME z{~+$)SEGbl$%mUY=04$~CRx`|7z+S*#@wUu!zeqKM(1g+rLb%o-MSvN=F+%%nqCUa zrg2+G(4JfxgQvNX!m?=$D?v@v9cq9Zl&^~3@^pEGETRVZ&~8Eb(g@?mzU2_IX)mry z&aHoqM?g&;cH^sd*ii8}YkUKEhe+U^fSyCse*-(GR6Cx0lHzKMSK3=RhKf|9tKj$Y#U=^)y4Ys_UgDjGpRG#Y8s?ed6j-l6f5 zaPG8rs?_3(6TI=b*Upa+?}Y?!cd42qdAl9rH&X$YnXYi!w+33bUsnRUt4LQvx~D{U zm4W(Q1uFO=BOnt=yogBRVO?3FD=T%i&Ztv#z$`2_%{Qq^a!|q!ET1f9-lD~mUdda9 zMJP+|C9HZWObyI3nB_3FFstfWbpzbhtQ3bDDAXWgqXbFqmgtsPOh4{NZRP>HI5RM?JO&6LY4HRC49qE-}_ohO5M4=@O%&!l~TvJF;r=JCvvGq}Q) z{Sw$|E3$*st!jjwwxf+5D4Af9)rlBDs~i!$j0o=$vIrE=omzl`C*~2s@$TAmAa!zV zd^ELdIDv;F2Qn;{hF>jk03tW4U0+Zw(fCFZN3qlJUb%s99grfCtg9fIcvD;`rfU$* z-%BMBQAuFfBAwAgo2Sli{H=V*7Xf!Mg|k7Jevl_jweR8;N@C3xi{k#E(Os} z8S4*b@G?7?%B6G(uP2ufX9>NERxVg$ZELf=OL*0nK6VQqpNhr78wTw=Ow9=|U%oti zd_2Qn(i36PmM|i74eSaxUwr5nm^J&V#9>2TQDJ(rPlHC^7d|n7%IQI>D;yY24FQCu zMs1|v#6TY?QcFLyRvXYUUYv) zn`3RbueP^m!2#}^&C&cVA8ToA%ir>`)>upE!u4@+ydv5X<2U3s;1%U+xvcri0~G;x z5r0ZwqPTGciqU#n|P z*w}U3OXX$^5L+pKm_thMRWNmp z>e7nuIDg*la%KlIn7fMccI5wZx!DML9TE?Xxcs<=h)-_N&zWJI zs6xOS;ss?v?Z(T(kp&ro6`0BtAe)=|Kb(9!uyiFO^$ zxN&uM5Yf&}j0i-uBRZU}0|w$=rFeBUpsTo10S<K&{3)D`NL-|HJVan1!X*qK z6t92aA!;>BnNCnok=%x-coJY%asvz+<&xy7fLqBgSU{~7SHUcSsfG!|EQhIuSp`!M zvl^xmW*tluOa!JGCJNKi#um53?O>itqS6I50X|*b65jV1(dt0k^73as#m^lTEJh%< zX+_*|fz!wb@||8RTz7~E8ztQF2r%p|B}NKg8F3f+%QxXd7pR~MT@iq>i+O^>PA=(2s{YWoV);>1Su(9!JTYT zZ)LhNLKeX*PZnPFV@d&+Z1M~}hda3HE}J~V!(Kh|3>8lous(oE&W~WzW(+%`Huira z&4{hK024zYKr5wc=d)p!ngHAL1GOWRRO7sy;@JUw8hBYT`VynZIQ=~U+RcIC{i(6> z5pXl6Y?2Liqlv5>_agx*`%Qz#Qo#hN^24YJ6lNT8*fVU%$8$Jglp@Qq;XRUL*|5PO zPn-*-x{K?rj%FqOamrWv@F(1G&UWK9PSFY8`ohlm3qp<1#G3O3>VN}&Ql7y znikYG@T2h~fUePHx>}*DmAVGT(rR532=NM?)e>oqP6QkTt2tvSSWN|QX%q358m{VU zqQc>jxJ*}ibY-iqZqt?R#x^{O;HZ!#udf^@h2({7fNwEw<4YtdSR=90;Ht^xAhp#` zu8`ygNh$?b_>zb?K%y+x0)xXf)&|oK(*e^7(*?60W&_Mdn9E_hVK%{RhS>rW-@#%# z;a^0jtJoT8qS8Lfd4oZWTw~9+29V- z*-f>p#E*{1R4<78;(w>Ef+o>SFDT(hLICRFNj-=* z6{MKd@v;-0ihF?3#_~^`R-78(`zSbZIuX{Dcj6Gvd>O(vA}sCCKXW!Abn{fYh@UyY zqg#-2I~|kDrR{hkNf%9*;)vO1?L^y)tSjg>B<)WZ_lNLe!fA*l)|F_DPHen{gYTid zE2KUAX@n=8K8wUxA&r|TkVH{DfI1J_1x=+xXHmBSs;qV+;tnAWk0I`b?9-rLU2W1KNaq;3|8YBaRYoscm&~vQ{qKrRm2y|{gqY%Z2)OW z+#r&ur;p00Lharh1$24u%HG;^ZGw4FP%UaL^#0s5>PnW=EhCo z>crr9imnXwV$tSFgVZ6ya#9DKATDvS2%eUpHb8f@xitr7qj(oLvMqaMur@*r{5EzC z+}dXH#iKVTGJrfO2Z_m7=14Vo>WJrek*?wme2G!@ay-9oo98zKw~Y9GVJcx3SF^xU zxHZh{BP`ejB7y=Sri$kXz%l}2fMp0&z$1@s0a%2$Y(OD!$`cfF>ByIZLUh4xz(TAO z_-h?JKvnB)mUxFHxB**KwpQoE20So;%23D>Y_rMJLqq{fu)o)r_C?5|b??ot`-iag za#&{WRL?XCYH;p6=UV}YKJhfWbV+){0<6IoI_&4S+Wa4f zU4z32JS3dMy7(0p?%}9Dn&=wWsshEEv5D7>#XKavyPxr%sCMSOVNw z;Oo`}xA`I4JzU7(y#UAcKE6P5ySQmV)@8c)5ahlnoF}wvGN8F^c%fEE-$?*kC#ibdxU=pEvIw6zUo zw?&Y8LeK84y3(dA?Yh#TE1kO1 zr7P-V~=YZ!oY>>1SD*je&p4@nOch4qu#oCqY)?GEZHC{x=kyLYl9lRRm8kj>c zhheUTxen%fm|mD0V2;4t2$O&@VUjR?Fe#X$FgL**gBgT54l@KZ3^M}r8kkX-F_;OM zldoe3Z-)DN*4pNVOk4HhxU>$mC20v<8N``txOgIzm%>%S8&CsR1DAOit_#QUGPt_J zT+89QL6d@Pn<_E)BJLQVVyP&_1Ns%YUXZ8|>%-jyjvw-KZ~{2_@orGm#K~a6NVn81 zv0~g?5ElZe3r-0rU2sZqi-A+-;Z8YdWB65}bxSKHRtby&&Y~#2bS{n&s!-KJd&)w;p;vkYjL=WfeZ?mN1LvmF!5QL? zR;``0Q|V$#kkqUzOcgf{9^s-JOi6EPx-?yOZslj$1LNSNzmk5NI<6SwV5i@0|Ej<* z!`d@zx>0N;3i4QcXHDbWc+v~@ag_%zLa-0)<|+^OgWFuoCJ%t!T;t(I)gLWoRm0 zV+KSl7{%~2jMyT|3m!52T!vU)@(ujwa+J(tk6<npTOPg2LWN+;)7oWUxRVQo`jZC6jtv8eXiITmxl+M&O0j_q{Ay2609 z%LD65@6B^;x9?`_6ow9c*R0o0r|ZU(uIY3=Et=O&ryH)4ylQ)uoIr;ry5}%pHWVp|Pr`!PNzKiDU76gLh9pN4d_aa=U z@Y8G-?1qs2coU-{7K`F;<3E;&@@`+Kyf?p0d3QMFy@eN1Ey{Z<|FKk*_qK(~`M0xMzKf$4ACaWpfB(z`AT%Mm9#@z*BCt?-`}p2;MT> zOKO{&FMX%Tzc#puDme(jfLD(JCEJhn7c|#{*U03ttwUp@r);z=SeT|Z!rup6c$!Qe z%V_-OZa-S4h=`Igb`504QbW)ip+i##Nl|)-hjt7>S;Xl0$e1=fv~{S@7#`Xp7$7{u zLz^KI2ocH@lJn9$TLw6{W@7Y|m-A_?8y_1O%y>sehev=RpW3k{<32uc5^OIAhUZaA zhGc=1(})@n00rCxm_(yvgLF z${=ORV^Nuipk?C$4!l{^relbBkQgcw)NtETgFHEuJw#TJ;Y$o;7ETWfUAdC5B#Td zjdA)uZ>u(qj1Ej-pLfk~rgNvFn@pD6uXE)xslG~w{y(2|R-7H<%;tXRa7p!rj$9C= zpy9d6pn>$$ywbkhOftcImg!eU9vILP)Ttsa3Yr_lAia(_U7`|Ac(AV|S5`JGlr1wGG6REu-ncFGU7zA86KpV_W zzAb2*(l;<_(D)rB@af77932`zt|ZJ%*Z*di3fGW^rj4EoWEV1r@4oC$fOdDEz1@RZ zaCOZn20YcL@r9rc4iAsGi6}uZKl%!rlDBk&SVVw{19XBAQ+}VH!zt&NhqJ~bLGsw@ zOB9|~>7J7z~|eu>Vq z%mMElApl?uH~0%R(@L1ER`0v3mX7Hy-Q_4;e{D!Ndg$< zmSi!yU6|xj-Mt_~rsWdNc2-TnqO-+Dj4OK%9l5#(5~P=^*C~ase?FrQYw9cAnt6Bx z2SU7%BJ{@rptNc`Utwo1Jcuu~9R)xn{K|kvH-UIw3U%XKIE$tVVVX;|uprOw;jw|V zt-vmG2^wlA2&CXXBcdtjmqLJ)*cJqpv=bE17HEI~`v8)(f=2DoI% zSM4By)D9ww3IZq+gO?#je7!N3je^Bmkf=2ZdTARykad7hLTd&`T(gGiV=dks;L2!F z+!bljnp?p)0lPic8p_|OV!vt4ZP1hjyS=$3l)s^z==RoVo7UXk(TS2e+S{6oFW49w zn7~$OH;TKZC%w_Kw8`fdx~7 z1f4C-fh-Kvj1W-PfzjM|3%%t4SRX5G~nyI}5yxfkX=Feh~RJ~;1(`2fs^V9vmtgT(Gf;C>k9A()TCJOcA^m`}od8u6cj z`&pRJ!~7l0*I?cY^Ek{u!2A=;w_yGm=2;kY?N@Mq3uD3jC(NH<{u}0hU?ycFVc@4$Q6ryiF-TH$gi-;9n9$Z zD%HUA7=Lf)`5a?W|fXuj62^G&XjPb zg)<|ZS>b$NI6n~1lfrpQI8O`bhr;=haDFVDp9tq)h4XL1`KfSzCY)!4^K;?+LOA~} zoL>s(IpI7noL>v)H^TW3;rvcGbHe$(a9$A3AB6Kq;k+oEmxS|Y;rvB7|0SHi3g^6V zZjo=5F<5Vs`C#29vpbmwOiuDDyeNRJO2do7E^rHg_J6s=bi5J-@Y;Y^0yqX<3E+6} zN&tu68sPY#h!2h*igFg?tpSSo%J9|zMSLhFcv-j9j<<$zw-m$cM5wx3T7t)hH`3!l zX@njR$|e~x&6f9&KzzlH9xz5#?(6|$)S_DuVX(zF5oc7@>K@6VJdRX>L)=$E@2x|Z2CB=E0s2Y zw}KaCqz(Rv;)Td24*(Md5Ac&TM_^|_0#_0^zPK-FHQT;o@NG!jX8l!o z$LU?t&2}zf{nh9RUT+u}#9%c~E>*!g z_;#p~!TXD;rdK3ttzF!=GO^0qJ&hog3%dGV`0AjBs0l9t^ss_orgk<_NAD^;g35`b zoc;9sF3NJiR5AT^(AA@+>#6n7U*igwyq;7Zb-J##u0{AN)0M6}OQibiOo-VRU610g zH}PVCe7$&q(Wj9heC|x50lIRi)&^6fA4jHUOxLRTYNa6v26;%%BdsgFh9cKkCcKTj z!W+p4ElZHJ?F)VsE$l)0{k&c^z4p@+t0zbuK?4FB!;egaRv>nO1}L0ZZrwDMt}@m5 zIxxB&gZ_nh6Fh^#B$5n^^!HMBgT!V`2>(RniBKnXZIk{QJcFP_nkc-3sNqCo5ZwHR zHAW@6d5PoDUnCM_On12S88nd8*kt>+jY|p7mR+$3U3v&;ZiWit=ewg%BE&#sF9fW+Y!G8V$jrn zh!`~B*L1ptMx&TUV>%tKl`tAK)o*6A>DF4Qlvw!gU=a9eOf*_|lBX@vX1#@>X|udT zZ^P5hcIzE%c9yT9yU0UJ=$+(gn3=UF@m*{hwL$!u=5&p9H>=wYHhZI3)t=VSr+b-L z@U+nDlkWN?R3;=n;mJ;+8!SAzKIyMZ2EvmYl8_m5Cxdfrk905kUCHi)y%&fFc7^gm z*z42}GV49e=ESOOyo&F__oBs@kviomXlQP*?!!<2q88y{Sg{e zS|eD9*gl_{2+=;l5pA7et5D+uNR;lT_5UFG8p9=}80il)Q=c+j)A1e|n@x)b@h9=(n5;KFn+tb@04bkX)nN69&X{evl@g|4%l9>Fb%_7oi z_F*#+-{EfHT&Q0`Cee?AgrY}Z$nVje*pZK;P&@+1cghXc-?JG2rDfJXpoON9SYdsg zJeZNhN-P^wg&HqxUsEgl?qAPa-=KZLx9m6BEEc%Ss8qF&>R90a%oq4BuHvqgR&W`? z^K!g+O8<-@+r!A-B!36?0p$tUmFknQ`?aTF54gx~)t`oa&`tK$#t&g%w zdi(??fF9|;ha@ck0bn+?rogIzFg}(u1Vs>q*Ll^N#SjQhCOm=lB!17PulxkTN4~{^ zK*7V4mrq`fgW)M2x%(3nNf)Ks1CMS!jRw%Vowb+k5Ai#@YJVht@J0J$_-R4;te?QQ zcM^kX{TqC_mGx6vSy0%3FlS-?j1us5^(=Neme0=-&^?`Q!~QC^e!)n;o2j0~uaNcc zyyGR-FWD@nyw!S+uf)>e$M|t-mOjs{=V>LDVxwaMgYTq;|C+KtGsF6gDEvQ|3H5s= z)^AzxY1&6~*z2g%vV(umf`3oJe-Od{07pQ$zlqu@^&eUAVG4dx1ixel|CwP)Q(agm z)?b)e(tB0<4)1!%Y1Oi+hJb!-g`SbW; z{gq&Qt66degY-YlEEC&tDGED}ol`c0?N~yr4rXa?7hZ?hTVykMZ)gL2r)ATXJw{Q$ z{`CGw1&E|p-YT1Ve(Ztt0Xr4~a@K7!RRNd;1`brSibJL6m|2RgSPEr)p0YhSJnxkG z>J0!!PJuCm@8!41Sdx4kp#MJEG|~sL>^;`|A=!I1eqDowbO@mT1L(P@R!T4T0Ryl; zD1&7LI|i%Tn_iSYoH%UVkHXGTBGZ#zMl+kf_H2525iOMmWRWT_?z%JShlJdn8Fmv$!Q&+4{ULw&wUhjgvu8JFKr{>nXLq%KfCH5!IGikMq`iY9d*VT`7Hf z0`TD<iuYUpf;DLRvm@j$93iaVC**AqY*D?c_EQ=AcnbSC485zkI)Q95g>gQ} z$iA1!({SFy6ms6n)EPMMW7;g7O4pOHLC<;$&RX}=u-6$+%hohtN^<2x0*eKXjS zv*?&+%_4l2sXYk(BkM_mF*xmTuwjBSNnj=%0Sm?n#QzA84V!T}HOTrgrZNo{EgzwV zgmnKz1gHTD03f#h6@^s+Z;7XIF8>gl0U*x6mhhB)24MIZRC|;Z6aZtS`_Y4+nh0WW zXG}GF!I@6in(8MeXti3;^1|Z%tRV;mz=ri)ep{aBRnPLK6eIDkM9sXhy!Kz_*Zw$a z{|$|^L2|q&FwDQjFwe33ne;mvGG@_`$(C&Wj><_7O#Hx_Bj2jTfMwCRWbdk|%&>kh zPtC+{VhxD1??1mn4KE-ER09L~`U7tb^8P1zID+*@s@_Ao;=V?gq8Irz<8nL4KoENo z)i<+0!@h^flZy3{jC(S0`y!CYwpo9sa;NEFebV}i42duv`rlOa48PO-4>gCbeUr)z zu2aD-v=P{ua$2!YD?pcUBCFP|;E)ryXu3VVNkMM=)_9vTi>se?I}-5An6j$)tLV<1 zNP;W)F}h>Em6G#*yiGwrye{0F>IC}7I1gYrn+LrW(X~YCV>X|2%30JE0aI!)gG4_yTng_%G2gtS?fLd>wpAF-giC%#ozB zBWQia>F!t1DGVh!=r1`P3fb4IUsbHHB7bf`HS25CrTGK;IMt|uOEEr9I8Kr7R<#FY z)bVxHfeSa^GGC`68QG|XoDPNT&oT8Ia4@RhRjhx!U{t@6H=N((!--`S#ErqQzD?so z2}n>a2ei(-8y*J#=;kt)Ds5@iUCZ4n{UW%QK4g3|if*rGbf! zDzw|5Rc2=rE!NM;S!?}5p=)5VhW&8}r99`9@*FRP><*didzkVo#d==B#lsJDVs_>% zc&C5m6g`WH<6HjM=o6Lx8}6>P{sS(`4=GqQ@1;#LhYILosiBe5918w2V-}pX@(Zxn zDK99NMMDdS{G|1J@)1OS0lm*W#UUhavvd>@`B43XV*LS0ytDicqFMh*Q&oc1jisMH zHXT2KL+J%&_VLV9SX*WPjLH2Il{kYEUnCD-*Dn!(C?Q$Y7~1z2J^%o3e^IReQUp-; z>2y^jfV|!MZ>kTfNY4Q1|5XX2Z>1{wc9)F2lPZBm0GCMs`Rf_kSgPcFjw$5a!_-?; z>lU>aOzPF~lTzFuK&e@$aXp_-9J6kPJCoRKy$SAY;;3~yT)?v{tv3tLZtD)=*<-y$ zc#_sz;h9OFO7vN8qoDI3lm3nHtgzl864hCE2~UIdP7$@rdYAC5wC;w7R$%(ISPk!{ zP?iW=_XUZNGNiWNJK$-fUNFfe5#)3+1j@ zKyE&WF^IAIRqK8gY|uE}f}~HxIs>{Ep!MqjtIn!3Ji_{r3i$XeX6ylVI*g6=po&>4 zR{ZG11 zH+8o@S@r|#VbohOx$8;m5fx=UWqll5H=oFM8DD0AET2%VPY~@5ofH(bPpU*OCM5S$ z@XgLl$8QF#{51TcoII+_m(hnusqqyumRKFy{+P2&9#gH)srI>#t893?^?9m=))~IA zN0QHUWPJ(AtuG^@DE)eVxcwdcLEHZo_=|1-SK$xY{;$DbV*4M5ztr~sJ+)*JNqv-| z=&w`J|A^?S_!~fT{3nWBOmfZDP<GPnP04uTe zh;Z$RO?gTR9SP?yp~V8~C%{*Oj{w0IvQg6US4+~_*7%rL7Z{{h*sLM*n~~pUuJ>(W zWsVo+z5tg&luK0GEKMZ8)xu8NGRvJYt~02)O-L@{^*`2W%P7L%*2cyiLFQTt>{N;fLQ%V4*JM@U)cj^gHyYH)|XTLL8& zE+2PvKX=>#?ihH+MVtrExNyA1JcAF1Gfj690uGKX11? zjDhpm(}@R*Z+sf<7DtfVNj#4sktco?1-YGS=Sd$>wSWf&+>W*kLMY3McwiXZf5chl z&uZhLeDeh~S})FTMp+gZAtA@$+i!n&iBdVT+D@An7^Q&PX{nOiq?1 zmb2A^J-(2KGbc<^D9x}iZzqYlVh9}Z<%_n9r?iVu}*whl7D^911_=}cbK@ypbir{ zaruWOHGHZ`BNe*DECz@g(zOzuzTX5*6#%5-gALWtktwgxNp-~<`jV3tF(R@~U=pe) z=yP@WwgJA^;PF;W;^Rz;;c|JGO$LjLWUtFr3lF6ncDqxJ@9k@8;B2s9f;0YX(v~FTF(V%}@<63@QEJTnD7+XFhBUFmC ztYnp2)IwHuCnE)!Ld^x#THwo01l|bf(U%^fj0cL_#FrikV;@2o*X`yf-EINW?N%hi z3M#AKvBTA}U@)kyfhQ!#^8B)3EBreMj?8>_g=%uZViklwh2|At;3kkWjOOV2=A z_nFy*-&&6nH7aof5k`B289c@0||EwiDc?H21)26 zUwFWg_8^k*GJ`p>xn2AN4L%489!vFI38}hNre=YrrZA|gkKsysydW`5a_@Vq1>L_=(xDpS;mvSLSzc1tI9C{+?&qBUDGE@*H`VJn5Q)FhXT}V#zy;%8;;cQ-7!9pSZx`G=< zR&Z7A$F~Y}C;`eq#9fdiY-)s(9?7_{Esmx#9^veTSfBlIS)pFpBOHF+APF&2@T2k1 z+gI%6YNo?9eEC9Rq$DXTsc7p-4xkBpP7Lj}C9Q3xOt!LQTTgPKzG{*^77JlPoz?t{ zIU3Cv<_0!zAGL&gD1@d~sOnPtpuUxhS(fcb#03r3?LF*#c1)k(+NaAFm1Rx(~ z{T?CJO2Hnxhw$q7DAiF2lDVCtAkus?)u-DTiwZlE(Fxc9^w9U5hYV^QKjFBK3&HVg zKJ|i!gFct&%Yi{ZNmOOwv2I^^=_}H7_1%vm?Jb?>C15Xx2GK!^$R7?r)?=5R;dWN7o?zzDvp zc{CT~9y>L{0gg%@`?EiRT>Jrql6pSH96sq4O4zuJzb=rFj5b15s7Vw|niEQfQYYqX z5pyVN*=7($-8pRS16vHTQ11rK4<`!e!2U?Me_*ITH99aRzGqESn!_vji9=tu9>8bF zefih{pfI%i;WIE9W0dQE!&IvM z5PG!x#F>jvx9uNErTSbPE6s!`b>SqGA?U(+;2&16cEZCL$_uu%jzHQm_W4a~)oa?T z0JGz!IiSfEbfLoahT)7wTH@ZzXLnPQ1_qlT(V3C3(6zN)0fQ)oDS%MH@JVpn{W^g2frb zzjp!rE_w||7rV^93ppwt+++4!1|5%+M;jbC+CR2@#}Gzh zpf5aT>-Y#0EaIO{O7LCK6_&&GtRbgLf}b9Q#_`i5NWOeHZod`HQ&ypIC?JqBS~wd2 z&P6dF%KU|tRc68w06({#2K)EZneP0$Xu}DUgSvryY{oNi%*h(0Q#^mg>iA6xE{pRs z@a~mlCp))TMXPC=odPSUzy(%&0njxG76VHPg+G``8Y}5ndzgv zP9v%dGus%36I((_bA1r4;Cq0h4|zMxJ7%v0TB-sVrTTngT?<$h5I>xvtHqWKC$a}i z{(A5`aE@;Sp?E^Y7cEC@{j)i}E!@X(+~Vxsaq8g63t#-cY#iEWV~rUDAJP;mbFz<{ zyoZ5oIR9w~2r@G7rTCQkni9c7b8Szu^1%B zwOC6e8iS3`UcrV0y9Q}|eE1o9MDZDbXe;?TBS9)QA495h-bjlYxGKq*L46mAg>aT`aOGmk!No=|Iz3TbsGv(t7cS2Z$e|$xtvrSvt_a z)|OaD5MLs|w`anb#tZYKq$J}4;NrK`L7hi{;=^eU1|CrzaXbmeMYxmH)M z)0J!Z$3=T}D-c*$ z-VFokauwXY3Z&H`ET${>!-d4Uat7uc%mXkF!a!B^&U9%H)qa|nh!y8=0O<;yT%fq^VLRJpRp5&aJ^Ux)ce7>KlczX1c0cK-~L z+ynD{_@6^- zAya=V+;_@Y3+T2&=H1X@dk@ULFz;rvoK&k5&w;rvQCzY)%V2eh$!T^Kbnwb|u&Z1u!@j#p*YHVDFiW5f^qIY) z;G!*f04N40I(QvaaQK0O&vZPW-9q|Hr!{&$Q>AI}Bx;OomrS;<%xKn(Hr=SF*`y5K z%UR7-?+t-~zs>qSyp6t6VuAmGHZvPnz_U&a@=qdMd>n5Xem#XK;s=F{6J%q!EpuB* zv$&=;SWlA-xvb$Uy@%0|AMu8iNk2m6qraZUMRsihEnTD?cV%?$d&uG0x>7rhL+P|L|uZ>lZ>MaKA;rh%XlJpsqAaFzXli0RaI>Cz^WMPa&CEhlCIdF|6nF63(7O z(&zG%l9cqXkpg{D!6KxB4^6RtYxm{1Xl)H6dzt(@*vpkU*eg^EcCBV<*6-|IJY~&^ zPH-vyS<#0O`eyMyXb3^uNP-aj{+LJbMY_Qjjj3`|<1I7*jpq$5`!QPd0@9#GTDC=h zv|IE?)Lg^JUMBwu_HyM#*eleRVApCdY1W^zEqYP3s3cvoA7X!eR7=sKmo9A4pD%3D zOY>Xw7ttaYF|*RQAGXrMUL$SA*IH=y`UYjLVW12V;Qoo@k-Xg6h83vmYgO$n#O||` z*eYdwcd|0+f`^3q<)oV|gDg+@wxl;axj5+yPcBOODJX!TAf+#cCj?Uh0|C-12$0^E zEQhHGPcBJTQj$gC$?D|d@Z{2D6=hw5k838YAxFKGe$^mpI6N6nE~DV(t-N`k`wWtS%X3D#}R{#z?6}%Fmd#CARFOP<3mtVzG)K162%FS(jZf2#EIE)1Qrb+0Rf2rHrKTSn| zQ@}dd>uJ1_S9eYCs-3H($yJ#6L&QE^XI(ejxQ7EB4LS$3iO>Mj_tJ`N+>4D=&ovHc zjRyQsIKadArP(+Hy7BDX0H)l;YU@TGyuUDb4b%}(DF+IJ8=;thf)Ap=wboJ0NZoAX zHEDJ_Ss#2OWJ}F@vu*{Z0gU*Eg8h&oEFQ4>`J6*Hv)*_p%`o-Q&K#QH19A+7g&?Ow zi^3W-i|-}rp5CU$>&?)aolSsOL%o#%7?CtYj~Z(L5Q}$KDoE@iwavYL1XiH#Y;R8E z>*Q1E=5qdX9}$zL#0=MN6C!Uu3dhT_lTo4Kpq4J6Nxor4PAh*N1DOKgK?2PEEhFMaD5I}9_(jkf?5nF#5$yfb{2pU)(=TW3Y;TPZbtUl%3aiiFvHu!B@WsOg<% zC2!c>jD~T_9>$04VWgFeWqCc=!W^K1VZ4nk`Y5wL%6h9&D2-z^ql3Wu7&8|mu5 zP%2?ZE)3fCkctVBdtunNm()&(1OQ(1ioXh4DC|gpu6dFBtiN+2FN9M2t*;^yZN4jS zS=^PsEDl&-6Di)Am*SoIDGowi1ux@Wc`4qNpW%xxA8VB|3}~H(EbLZ2CHCTRK7dH_)r9^o{(KzR~)Tll8$1vzpeADQhn^J8f_! zG`K`HWP=jW8sn5_^72e*)8G?zktO)ABE?0PAT)2N>7-f3m(Mr(^7)~?e4ucnv4>+@ z9_ZVk5IVoQF>pojxv{$8GE3AAza)|lR%HH@%Xu9E|2 zz>?F+)xmphxP=l*=5Rf)ejX)!j4k~YoD(&_=Gr<`vn1ZfGRdW+7-NZ9!V9f|Y78`F zjahR#*+{CP471T(gJQySY$E&{26Y}&W{nvJ?o@3qHN&PFPicfYTTt+^EL>8AbM&`P z+_HEYEU3R`(Z)5!j{yocy4RqUbgbNH!$he6P}4`r;FPb%UFY}6o34YzD~YH=0SA_B zb)p}mLook&8|MEBSXmj}1*{jvsQGBrK0uA-_#!R{bL>-W*-Pl{r`htqFbj%9@ZfMS z*XN+7`zLFHKnzhf0wG*ISwncg^=D=-zn6r@0nq`P5hq|e6pSp#uVXNS@#8XG51>}W zT;Zezs78!P``_dr>K!&$Kn6H50(~I#JN_C7IlajHa4mXH*wlF_U4T%P0ev5{ja&HG z2S~d|U?TKMlHvRUTk$5@dJ}LCtcn2j?@qgan2g#v_C;2E8*UL_Vk>W#N$*F%tmTEQ zv~HJsmzlLYmod7zSZ|iiRp!dZ(lpCt@!Cvc)Vf22{~b0;KKh=4b`YN7tBAPG&e15} zmKd|%0-^r&xVefiy*e0(g=xfTy_n5vaT> zrd!}^aSNP$oqY|&g+bf{iMVnvM(H8O$oVLf$*BQd4p%sp>~AuS^p1Rsxk&LySpNX* zA@>Jm>pk)`$6Dq5lG8`a&n<3lGe-H zUU1f%?sJK#^`ISn!AVciG3)>F_8x$79QVEdZM(e+9NGZ{2@)hh5+p&Q7dEkjMQkD| ziIfD&cSoE^iy~+Oq{z6zvSiC$u5lMhN$#Z#hSsHZIW1rn}b z!I@0X-T-~bFOgkjIdvcy#SD2fH3I20Kg_OwHE*=O;i5S zfQ*kSG9C&)+EUmH0BI5%d^z9eC%D)d_5Rn>w(~f)v#GgaWz%z+UXFW~ZeAa*bG;Q+-)PVi*`D(r??{lh}Pbwlu2=<#N+n!_;1ythF z^O;u|K%_9O4$YAt^g$j@tM_-$vDF6;W=eb~P$@$X7?W)fD#qXgGzXuf_aze>dO<{s z4!+XhtNyao>p@cer7`%RVP+mOygwo;o5;M%04OCJSF_<)B~@gy?XM}Rv}+>F}pDdb!7 zTglmYLRV36Q+WH^!P~FnZRQj2&zMJpwH-J5nL_aP~^y895 zwCfuTZ^|sG!zl1K(^9btAaH{E{JB}=ac&98jCR%diBa<%)BBFhrs>JHZn?%nVf6X;>gKWdF<@4tWowxpy;qP>Lf1^?zD@nz4F(XyC_kES>Zb=1AAbGL* zAXOow9`A39-^dRN-^dSn?>T%UKPEXp>+gb}^$0(UWk3*Is)L{PQ_7j7{e%PY_hz=H zxu#cE*q<7;|6qFm0Adk@&{0Ei7yc0dt!5!BApxL@YV@N1Ph^&@%e>hDsbxl2deW8E zC0+Tm;*a{5!jJk_GI$O@>fcGeGn)ESKHT?%L<6VeQMJD0-vYzKhb()9ho983Zw+FN z)Nc^`+dB4bL9D63&;D4)!a&eDSgC!a{g#e>nICDVfa?T_M;5dEJA$N6YB8}t(Xnhc zbOzxf9-6E0(A-FR?w)Jc+&lj3+L!;Y{EhtL+Hd{h+NED!yZ=|$cmULlpcX_0f9MC| zUTb;3FsG(7a5a9Z zCnT>pA=%!qfapRhP&-7euQ4z>TZ|g4C}4z#$9ccS1@>m#66t{}=|)+n73=*KKt_N; z#F5u*KVUUy;djD zjDP*S8hYV%U}z}n@Ac*N_z>-L)%aH<@&+pUZ$=bcn>SbhPEw~8QV%ta0dxcy4y?hb z`r_Y29a+%qE0+MXOdTT!?-8Erx6}(N*_)}7hlHbV3rGJwhH&%WYvh`UoZp&T z(3)#*%`I#dKK}cRfRVph82OuXODSoYWYyX{{(d93ym|alBe$Y8x3V?Y)|y)-;)2!9 z8(-n(OD$fCv-TNM383$FCT*6(L^&2?7)~tCyr`MUak8*mwS@$VUZ!puJ=JZCh{)e2lH2jG0 zP3D|;B8_^)Z2Ut9;3P#S+unQiXYwH<{~<#pMdKef_=?`g$05LBk6V+%cIMYsdQT9S zyFJVH;z;UWEw&d&vbVFnhml650`OX{^QJUmwEFO26%qq)IXac@6%G< z)3xn_nD;Jo-tSnzDh<6?SNFYCS3U^ucP%#Qs=B}LSNAg|)%|d3b=mbaeU@H*w>ke0 zIK9VQ@HtNJHJb%b>3!xx0F{7Yifd|nzV`Cq;y2wlN}4Vr44R;)uNvnT|0%6>#ccT&r;#P!w!Cjj zTV0{gnUlbE;zmguTD)&rLz@9ARsRttFefeXzC9~$DTq(mC50wd7rrE7ez1j^U);h> zSlOkdX$kf_Ex~@LB}m*-Ogt&StkC>R@^CtqUZmGmAC61nnE(d2y z_YAMIIc(HnNsDg=RF8v!i=cZ+UYk7ae3A7w!4>Ej>$?%=WR4&bhI zcl^ETj^Fn`lz$GoV>#V%wb&iYr8}1U-2n%ezq0Q52p@_kzvpA7;*=t?S|6>h3s-qwEqrLxvN|XG5ZXuXa4f#vIA%9iUkPnqML_<*fH51#4% z08mT!$FEd>yvXm5hY)tFiE9P@@hZD8(XWvHSmF1_qeh;;vi^|I<6&F)l7-Kss`z>Q zP<;`> zw)aMRnjO(+X>iCPf%2+W%wbt2AF+p!?MXLX;;|4)0_@d3jc{)DAb@I_&lv!G>80_l zQrb~j8t+K`rgR5ijanM78m~0k-$ro{7#(l71^O$Fz%LN~$#s!)bS~H7yYV=xZ^fwn9y$%+y*?Eap_>9?g#RiIO z8Y%G~(yCCLppk*rTt^Pl=vV9^M5NN_mw7C-DA;7#?rDTlU8>PPZ-7#!8~urrM*n_! zqd#JFe}LlNZ1jAP(_4(*4{>^{(f45+P%~P%DCLmr(k|!$%!~v@A%|R-Cg}A(BngUQ zHn}cM&<74035rrSxh_r64<=f+yV!9(+1_klwx7;}EcmG3c|6yh_pzY!o=}}v?{^;H zXim0U?N>fg?7D90x^BPgE*p9N%DV1R)pf&u*L{kvdp+|keV6t=t@|!5eTV;`;DZ6) z`g3Og@6ddIXb$`yr_Y;fK4Sx~Hl3{>{DQ121K_J=2MX)T7lHTH>&ou|?w-pIkUzTz z?=yBbokit@!qx(}roNZ8^1VD%y2|{4on2d4W&Y4+(!64*S=pb6ALp(b43ewHm&~=F zx4kdedItWYBz@ed-NNMYC3^^2sEna6GKOTo;(gi9u9+l>3B#*S^FlX>0W8n{!-TRubS(pz%;gpP(zRwe2m{O8$EB@&Ti1Z^w0fY`kj(r z`qI*0>OCpr|3;tKQBHd_>J+Hk>{_pF&LCGJHE(YT0X5lmH+T5uOITM2p5^r+u;33e);X$2KiLB z7C)6aB7E8KW83>NAIBUeYs=l_{lrF_WR7~%_5M!Y^!H~!FOGZoAYU_Y`l;>xZ{7^{ zaz7OYjo##K^!{Eq_D0!zeOg|GBA1OF+@p>E#8>%sbJIU_@{G+_IsLJ@#pCoR=GK3) zy??N?8w;P*KiS!v0L`yJwm0-{BmZvW)oS1F{eO0LQ@{*_uUw(O;D07I-ytx;xy{~H zxp|lHe71O=o!uR+Wv$0xV~;BQb8bgRb6dTCv4sd4at7; z-{fjj=F5inAN(qztN&Ae-Hb>moe$X`C6G`9U8e#$q^?f+$a|0Uzb)7>!W z{a-sf*j&4U@Ac{XIkQV#ai z_7yTCVUXFby1yc;hn?)^cU1S#46pI4fjT7IxY9Sb$orRg`!&V4x7K}^x8LZ{8HF!x zyPkC3N&((K8$i6HLX#GS9s zo3!4fx$8YJS*Fb0@8vXY-u!-eEzS@=bQ+nzo?!S1r^$OSn#ZWujplCl-lv)=;k}1aP`k0g5n@s{HYsjPImsIz+ zgc^QCw>%ycDLgUniL&gn`|{DtD$o7i2h?wYSvH!x#rvTAprhG+vZ}%zFHoTey$^x= ze6a1Od^v+YqsYldSh7Xgs=W<)iGHZQdOh$y=4AJ0ZxNQxEi7kuW)H~afs8@VebmVw z$VO_ByLca$pKyS;_CX2r`Z~cnneVJ}LtQcp1L>BNm zy+3lYw+4ELh^*8@JvV>F8Tz0>gyOc{y8D9&gM=^Yebvd{Ms%(0F+}l$OY|Ys?0jqf ztf)hLO{e%=VHe(V?#zaM#g<{iafy$kQ15@aynwYIxNr8!GAc668>rLHQ|Y=6DPgbh9{;^ z-0QtA40POyQ{L;ttY7+K)5v4XgV>6$ZJxoFVwC; zh1n=zQ7H`G_CZWtGh+c@*g}m&1!#}p^Xg|#=G2)JnUHchej2!oixsEN;buH@Iybyo zo`lcdlkM&6jd05J@K5ds1_snU=Yi)9$jV3d)wRUx(Z#-$dY!UQV_vP{-pYQ6|62tn z%Ew|VMfVNsd~RgO34&O+Kst8d61k&apm@bYG8nvqsY}q^%hR4tT>AF(^!e~tH@2bd z>KV|`w~jafPNx*`ZDpBrUl8QXh>Pu%32GyLb1Pg^*+-g9(JH}{voP_B#gpT4m}OQd zUTxIWa@298IqEqYIOcFPa?ItJH{YmPz`5B-B%=V+nvqSR7zR*L1uz@I4r|azFi^}v zlapZ$TAWOK5b#G(?FJoAc6cz%$#Dl=PGJCM6Ug$+D86ekxw1!Ptec^Q$Bc=VP@B2M zJb}>AHWnQ-Ct8d)n|lO@j=A`lHPK?WIo!hs3R^A5?1>huEzCWHk83YE=1jEMZ7%mr zJP~K3LhP72B#_T2K@J+_@Jk5bOTL%D*0(*dBo4ls=FsWq3#_fZ zfFQLlD3y_3fNzTMnJPR4g)I=zgZHD2nn(3l8wG9P+!+uUhNJhLya0y9{&QpfJ}y`A zbJhkKYs|hPx?17E+RT|Vr!Fc4HVw!Z2~3K8XtPqpG9ScDgEIsOK^vcYnP7$lkWjmh z%Qw65Y4ZqvK*Q6eaMTaD;inA_cb_1i6wBnJ?&zP1I9I@TU@qwE45y8BB3&6tr<+W} zNxBA~C}D+brChVB3E)!KsCEr}YS+8=T-TW&oo}!sH~7R%%L)U<8XITK3P5Wpf+rk6 zoaL$2V9aUcn8&ezf$W4VGpfJ`W1B^vI3FCSgajHTQY;^Rl*q+H34tJt`@{Gs zieJ|o##;s7FK9b8mSr*sg@1qkL;rZo@4tWJ|9#mDKR5Q)3md!Dzv+!PfA6Jt-FoX+ zv0{*a-J6ay&1~_5%mDZwqhPe#fru2jlv5_n}>PY!8k84}3Od zb>iD8!P@YLYR$|fEj>Lm`~8{mhReQzedq4W4xjb0YF6H`ncB-rmx2EO^mPZw_Jyyz zEc^DS{gTVS*Jr45*>~cjE4JPES1Mdd1@a(h)w&ZDZi9xpDVcT3E6fB2L;=_!8j9gY z>3noaD|eyO%3b8R(8amS9=q?%1qm)X$B!S+Ur^yiTP`KIXmP=D5d=oi>5S7FN%2Mn zsTu}wUkcwzLtjMqg2Qp^*vV6)PVQ9ZzBA65v%}|)sPO2j8#fPaqH;Yjd^QKf&5ft3 z&Q8dV&R)Tk?&u}x?I=!5P$K<$x`PT?(>rrY>k}mE{+@nW7<9YZT?5?%CE%QP*P7mL zL8(#ou|aw0ubfdkyN4{wu{WO`wbR`P;B`lDPaKqp7(oB=`gkOvP$H7)xpq`7;4&FT zf-A#bz*OlPmSE``PBe-Yc7HoDDn ztwDwP08qruuC>>-_6ypBEl>~9Ll*NQ82Ta1^CNCF77i!F6%}*Ft7~fO()A6Y$O6=! z7lr_;UOc{tuw{Ia6ODxV*E_yw$j)S)v8*k%$yD_gR$_fFL#imdd^Lm}k@J?E=ufz3Qpr+gg!M={n5g+T( zMzNBQ%@r&8IL`(ly~OMJpcytTMX7~Z41`pRIPxT_asLy^7};4iK>tFPEfsI)LXla< zGVyjU#F%Ziinnv2!yIcl-p*rUI&NG(AwEEOYCEfc=0Zi0K_t}11vC|&%kd*5UJ?%( zxWKtAhVEBjW}R>~iDlrOrH!{bnl`h`P+ad(3qPy@m6C-GkW18HNAm~iOtEsHONV%)>0A6oW1U*%^csr&Zp`o+( zrFH{JW_ViNIr`4^cA{B+8T~YVYrDyFu|F@pkK!3UEbm8f3>8C*jLRsOac}ojyLBZS zzLbr$qk@K$$Z5HEk>Bh4q_;;m(I_f6duayvj+NfNY$Xb66~aKNkha6mD(!I~n>d$C zWs~CU@|J9cwCp9t9jX>5<53)|S1Nth6fV`(`&5^=vsJu%7>->`%J*)CArj{*>D`90 zjH)mW*W-SDk097j@HFKe#ldBgD^(WY1yqIHtLxql%j8aaCgLP)=SLFaeeaghfhOZYUHRg`VzA7 z@cfwz;f!=+{{u8(d6Cy83TtPjY3b{D?o{E8N#yI%jEYbiO{!A>^EZolD6d?5`K{29 ziJ;vDXVQmx4EQ5O*w9%tTX{x8sTKD_B{Z8xvJ1e!W>Ii6a)Fi@RET%t4&*wh(DEyX zOTac~)4$JdW2>MZD+Cj@2!mNbDAQ2NQsv4So4G;F-u!h)=vy5eyJ?^>odo zHhVkzi+G1!0)nRZA6)}|y)(cbe;snN3s+S5%<4))PKE&;bL)Zj7jm*OnvSI#(_MBf zAS9!)B6Vrl%c2g1BzR*`jX;i7x^_w+$E<4Cs+kLZ(;PSEG$kNBT%<} zxQ}wJe%Bh{8LzDsbTWILYpr*!4Q^tio7ltyK*}~Nnlk_yv-d~$L5Lo}N4fY>aVo~~ zCr}%*;*ObY01v9(jn6a9`R0NJH;vD0O3z==yiig`w-{Tuact)pS(Jflq#^(tEf$8I z8-W0ZzVb1UY|{yEf?urYJR3T1)x_j3!&{9vmArDq4xuLmp14X;QH5y#f$a&F63jIx z+(16?sl9F?5TV*4Ee%ghB+#)xm-40HRgrZUp1Nxg0x96-y&FG6Er&n z3&RA9T->58j@$%;FuEDBW^BtNuTatikt4~6vEv?uOomWZFDzw`2s#~D*st-cv z)eyARo`KG*dl7VA`Yd!_{U~%^!aYY5LdgzY&9Rt*CCnnZpNOiE}N`@(2(ls`B>#@ zkq@nzb6C@Ac^xZF3CZSw-qcOWw~N@WGMmH&dJ5gaD8MvWN@1g4nUB#$XnsQoRf-{L z-4DQV`Yx{=rLu45e24#2rL(*{(cY|YuH8fY5SI-UQ|%p7nWt7tzITh+PCh0M(qEv8 zsL_RFYc6M>Sl37fPxqO|l4G8O&a*zfMjsEp7gn>E_Q9KMsBFxBn~H4$^z6t1oc zrBUpS2MxbF%1bZy%PWkMT3}b6+D<7C`&oBN)~_ka8dMhVI^_Ch62TROC4XlZ_Fhafqr z05Z4fgt(Q`(tu9`Oi*N_1{`pOWjz{50&=yAx-DQt`%ho^e9^S)%Buk->+>{gXFX`? z_8k^IH&&*5VC2-rdqz&j&*<}kk&#o^$4H+|*(C!MZLrjb!BN&Z_|7+Hv{8F`g%!nA zAOvF?#(Z;z?U>MaqeaMA*U!~B>61!|3M}AvQ*!hSRaPWliL(af;W9T|K<2(4B6n?W z!On zj`}W-%719P{%K0MQlP>Dv59foJb4m0aA8a;ylDJ5;L9O%VFoU(9%co{FeO!-;TFbE zs1uwX%iz95p{Sb|I?aon=7lcvVwZ8B@6BmOMdhVkr^j#=f=`LjL&Nvn2ct5qx_DIc zi)VJ}j5mB|D;4GW3cP!RQWOYq@K$aIKZR2v~5ZYjwF6 zkiR#%)kxz1=cSpzwmu;b*-Zc-xp-xyP45p?1U;qX5-v>t>abIp~jw& zIj^Rscf7sB=3G;=Zk%lk4qX>+7+-JNH8q>$3Fn%cE&7RRZy%o+X$9|3j90xfLbKJ&pJI4`@J2>v*IQ9Z#SB7)eSh!k<`YNdTC9+}I6j}NiQ(nKJ9bwH?>MqZc*oJj!aI(w+zh~K zylo2rtBF-xP*{<*EnzGac+`qY*+Ud?QSrg(Y-SN`g_d7jvJu!KZs^3%B0B>(f(l8} z@s^aQ2=f}8V&!?!P1w$d#KIWyyx2%O(C~mtx&kU`Yg=O+7K+rq+90Sg+u#*jtJok2 zn>g+Ccx{vU$aw52Z`E`@E_}E4i9DHP;$8FV?S4LC#GHrb;72_;g3=xl!A9g3KVZLr>3G!IDFUET!L*>h@DZ3L9oBNZW_lBRPk_!jvNG&wa-~Kj|IR zSC5=~D!8B{4@nQug8X3ViQiQ{Q5Qz(tjWEVjaCFB+SSq9yu&2nS4$JR>`o8`NR7PP zP4leTJol7$m)yZUO~@_Py^UOiF&)iDv$48IXzfGUA{Oix?(d$MWWV)- ziK$H5%S=pX8oVqzT$wpuj)t{GPer!bdD;H9hu}+h760Cim0% z#N^cABAoV$yH>Oh6FW&f{l(FzkSr+W=m(8viitR`?Tk^(Yg93Pq1TXgzaim(Dd8HR z=jHQ!En%DUS_5>=@=vc-%6y%aDc{+o;8hPUwxyRSSE6a~>p zCRO&_(3>b@tMQ1zc8zxh4tMlP@6EqrbGxi`ZUP^i*YV}C z4PPC>7H*Sf*{^-NWY3$<%DSg1kxiY_X!Lh>^PWCg%dfS=D>z{c-z~0HM$6q~)`~La zOh1Lr-4d()oj+YewLeWgebr0f!_m_uYF9N8I@+i0pDvx$<5?sd8_}*2pMfgxVX72A zeE!A`(zahzJv+L5&wE_=cNE>zLA`f$m-(n8rW=-b4(FbDUE!|3C!)OJs5{=C;UQ1B z<{g2XJZ}2e1itdv2y}J^Zt*0)BeFH}H_0xhozF-?kY;TWt*(XXN zeOiEk9tiG=yZQ(EBSG_^3(~XZ>D+8SI~9-K9u!&!)(qf{yqqVWj+X2P(CZKuyd85L z#f5j2%3RcGa$&mrK0ma>j|GbKhwg{yR}?>fKCD%))gBQ1J&G$2iN8kk;-l+Kc%;H< z4_A)cp$LrAFw)hqsMndHx>}|;=d%S)M*XKcU+vC@l8@0E1@Foq&hhj>J+Y2 zCpV=|5%~3};YO>~DORIS@mh6CK=$)2Db5pOF{1*yU(S_t#8Y~zaSOctDzrju)GUOz zKW`hqwWd~h`$amQ#Z0DWc=Ccs(lwiy?-EkI+s8h)+mgFc<@I_{oOP7La^aLI*Xg2& z0e9YF`c?WG;!Yj5ywJ1?l0QhdiMY)=PS|WpkZhrDJ5!JxOw%u=----2e;Xc5%RNcW zSqq|b&l^k4FQLdwOBQ2Vx;wN)@3}G2{Q0E7ZK^B#E$x2(!sUV46BQw&QjH74p20aW zJRqO9<(^ma%cEMQ%)dM0^OgKu+RKqcT$7eP1bgsdb zQZVt%U`1SCv#df`5qST$VhH|(=}<2`2sHtzDaK}s>4>&l5D&s6h=)+JGSlOUq|Mnh zmyI{fX#@?y3^}+^Tfx!BvAWY(-o?2a-{G=}xAZI!LVcG{0QFtevl!)CeOD-^vQLx` zYyltBVm_RO2rS=0%JaS!(cZsh?H;(;#qyrr=$x*V4dY#$mRMx#L z8`;Z`sjML_qnEE-noN*m*1?9;@w&4(0=B(2(Qjg_g^!TwI#62KhRYmdS+%zF5t}wx zD{YWy%_UoN6|K3-)?BJJSJkRSf^6nPYuU^j1dS%aT#KN>UWbg(K>*kkCYbLc1zZr> zhPP7tw)gzPn72t< zHJ*A2rg}&mskNw74vjb5wTE|Vl+H1cXfUHL7YL=G6uCa)kX zN=TU%Z2qI!1XqVfLw>S^_c>f-9@lK9DwpRazobaAqJhqr^GRaJtbYrLJ= znry6CKutDTESj6rCoxqte2V4S8a1NSE|~Xi^$M#u53+W#@R}(K*E>ec=ww{oEGlX= zKJrl+GI6*-PTfm>bA%W}^;*2A`Q)ocASzLkwMs?slG+2w? zVWi8&JcR_Op0`zLW?fjG0?|idSt+<3)jnixd~j#1Go2SWE?Q^0ICqJb^Jz!4Nsg2$ zAKeB|e2&PbryfKYe_L{G`wh{^Q$E zj-3z%rWq2EnaQ+$&g@=3IU1x4h>@b_;7a|&@gc0ePl`w6f}AjU#upeW;hmP=Bs2x2 z9UA*Y&ACqVyf3>l&vlvSyL?jST(^0?+c;y4*2)iIKm;ohV(*2q2Ghag24%1x+> zh%;$E-|&bU;uRxjPu?T8jk+w=ar_|Kgz;Y(l)>-Qzn2_>h&_DoX0FRTmr)LxkErly zSe!E-=~AboT__2j8p|Bfr=v-gbMSsm*`02PxUQKRgWBh(N^}IGl{y_o%*N?Rmp&iu za)grYnjr$+D*Zw|)o8vE<>+AY(A&X&9N}132NY{p$ABoG^>W1)nqW;QyJ0ae=;^}3 zp{IXMRGLxOuB&&TU-b-QJs8Y3a<+cEyRWAwRve&q_nMBLWLa+zMb-n|YXt{umcBu{Vn$BKCWa-MZ>C~ia>uV!*N=Vj)GfdHi!sMYSD_icGqK(#sIhPQo z(5Q{BGuJidMN?QpK%iphz^=I2mx&pRU87Y*VU~!(TnkT_t6XCluVY@e8WPrZI^CGk zV6(Ia+ghHn-$sNM_@Wdal=z=?wBJeedD*dstvPI;LoG@+);_*usS%#rKfWXs9)NeZ zCS-@Lg{GAmch;@n5NQ^I*fcHcH^#SY9o(_|<}8ZgW~lnb#!Ftx@iLB=bBr4VuaMvY z30^6|gAzO>!K);ASc2C|@Hz?JAiM}Cn_A!uwPwh7Bu zwbSM#J8e#~)8^!`#m0ss%odwFmo4_ZkP)fh6lw@5S(s(ST4diGUm%jQ#1fH|C6|h% ztYVQ!$|^%ft#U1hEyXgCj-{&DhZlF%PNijkUW8h2)v&q9dvY-jk&Qr7+U*n6M41AvxiE{MnS%<^{tkD5qBz-17^GkoPTymy<-%cLTYL92s( z4_rzDf@%jK_I}y2`-oH74@ecxt9?g0{sh0YJ|SU4@&hK2_I{-j#Tq5O4}dPtK0z!N zJ}3#Mz>0A)j`tx|H{%lbs`f;En5c?uf~$|n711cbIfA5LD!F-pI)2QQEtLp4Uq&yk zX6J>F)7|ZcFc(I;8O6dMjejNGjEQu!G$QUTEssdBB`ZsjWaFhG@E@o0sPvYXr$|vI z8@qODVYzJV#zmgfDN2q{HIG}l2z!N4Cwm2hAYme#Oj-nvjexSrS%bVSyiO#URn0ZN zQ9?IDrz)>^Dqk)8r@jd^(JVT*pZ>Blwl^>}iS&@(QAS)!q6)i17#X#a78tk?QcOI%x-Gd$S}oh!~S!sQq3d z)kN-6m2aBN&(~;J6N3wI6tI&Pgw13->v$2rg-AAer&bNVJrm8e$zH;GZ{I{7T}fJE z|AdH7xi~-rsEb?3A}m>mpNm6efxJLs6Ztq9BUVdr zqF0lgT<;DVfVxDyJ16q>bZgYRiwo&fv@F#Q7IjP!k=y8EGKFx?NJnNc&QHX1UQW^^ zQs1|w`!^?!116lr+GcA7!L~}In%h$ZgHp%WHY&&3l6UL8Q}V9NbN;*c`R}HS@79YnQNQr6Ai$qkDb4}G zWY5jRGvGX2EiJf2&%ZniKs)Hg=#4f7aj#Uu!)2*|(X;rn2a)*Iw@P@|@>dfMt&s58 z%7+Q>#vR&K;{~gbIigCsG`mc?wpA|tzFqF&E>MbVWuktSy5vcAId`u%0Cbg~g6}-_ z6IY6_z~<}<`6Vl_T*|g!8`mcKrHdtQQ6X-X$Ty8_+vV&k-d>GhQ&m2dZM%Z%=_=lA z$gW0()>H>DF zv~vX+UMjS6C3oOiN;-caP~i`%*T|-Q)VsxsrS_zG`Xd_DCvAWg2xQ4Y~LM2FK z6Vr8#Kfi`cJr;x0<9&m_{(yO zm^(wC=L6YlNH}OpxWkfgw=Ln#j)d8;ggIBjOlb}@i-?_Z&m7hSjt?*(dqa2ai?k|ys!2z z2~XEaIFkM=!ZY;}zNq1E2+z*>KH+Gigm=#UTf(t^!8=A;_AV9dyMt$3%C zTTKSnscTIHr^O9jO}37CrJlJ&W~T=4Z>YWWw)cH5Xi1@U8-v;5Z&i)wr9P~|75=Zq~eYA?@x^EqH3IM;Ia;)tXXx%|CY;z>hhR3-ta?;`A^6ce&KR_&<%M z@;&@5vm1>(nw!Ub*jTq87Bb%E=1ND_R!~9Q%(2g7*#E*nU+J2>U!-rxO?4X(xDNnc zo=vJnT7VB<$x}v16F%hBP>G0_I6cl^WoDbyXNWUJ8F7s6rBw@mc};x3q1;x3Ojo?U z>5^Zkwo_G7B{j;bwS)E7OHyKGC^N^sj>4JJs)(vq4%VgiZa-C7#KJTzaDHqTq%JEF zO|adURuXJ3kbC6Xj2O`vN0K-PIiRVqd?bls(W@|e{zW@pu{Bf z#(B8g_Z>dCYx|*4^uWRGx7~es*WT?hb){?`X4*tMD)vF+`5Fr)h*&qSHe+Qr)=$eb zzSGjz{mjDsU)QXA?{jPUXXxBnhTiEj*BuOj;df2>W2IxT{yEl2tOw4HoIwxa;;!Q} zO~Re?nN#P6X90}exXs)7V2k$Q1)HCU2&rTkKRe^^7-|pxH-G>^e*~4~zZZLMn9ai# z<<(J=5MSb@t-NR3au;o_6Q#D+l{7{vYERE|Y|CHY^tz)@tggG^es>NC`d}yA@2=ii z_SZdY6q1i_-LAeh9R>UAH68QIn_=d}@$1-QcXtVx;lMybzzpldPCOmf@IH;nbVYjU z(^z9WEv^Zt8x1bUwZP#q1mF-BINGjGjceArW}R!MQP42wx#ki#zRWdSU6YrVyUr@t zT_w6?)?@VcarAQxaIE22%dwv0CXP+pjNa{>2aV>1 zqV3_pdq(HWauu7|Zptv(JM%^9BfKC3m)YeQG~oHOCJdSp*p7m(7-8x+1hdCRIRrLw zGi!nwiH3REcG^W<%M2|6v&TnKTnZb=Tncc{uTGd?_FNOp9(3ct>@fng9w*%PvxtU4 zjD}VU_#sx@WpF)Wwo!`Jqb;^0g4N@73da&-;<&QdP82M**N~@z5NZgCjf6qaX!d%2 zlPa^(?_kcIcPFPZNd?oR&{Qr>bGL?d&32Pc_y;CA0MvuJ3i}{IZc!ElO(8Tg<{Jca zOo9a#L9=LSEOZDKg$WkBSZ%jNws`B6fpr27mKa!XKph>%R6dzNhaGe4uyQ2~H3omM zI#ca!+<^f#N%+gxNG&htla&~Vc-sn*K-^r)qc;#uJtT?@E20ABBiKD{@!j5zq1t>c zNvGxA!8%JgW7u4~xIZnthh2q4NFKoM45fKSV&I7`i=}V;vQ7>UnPRwo>@v($F+bRo zjp|1Nr^BP@Wwbotq(?#F2`j36zYvo0ON9KBvo=Yt7EESvc@ z>QphPz|+U~jvOBj%uh>o3+e*7nNG~I+|t?E8}hMNResOB;MS^itB;=?J##8^ajnj( zr95(*ez-sTLX;UGiNvaK`0Rr6M7zXzFq0cQd45SJ=W%J+ah~!-E(-?fjvjVhqfNvzJ1@B=Z!W} zH7FPb7aBY<>WeN#(LJ{9BtL&dAVcE1#^(gGE^_}_)*}on?Ja15>!s4UxNYSA(*?8C z=-oj+wc2V`S;iJrvm-2rvS6PrEZwQhaScbh=j76X%AEq6B`9*# zQR7J)*{*)ZB4`Z_?wUD%UND!Xg>PKFljk#I!)uE_=4rG;QU{0cVHgyZSHk|+tb6C4 z;gS0)wvL<{Ia}yp|C3eV(DBVPpiwI~GHQ*UJRKfAaWX%4M4ygQ*VFut;j?%>F z?BtnKC+UZKD(^WvJbbz&2F49Edr3s5G9$3w#hCE@VgP?cpN>|jyMyxkspgTmx>em; zdVN&u6kUIKmyBdzGunrcy6(pi%sFD_al>soRu1Td^a>VHUsspXi|Xp@gEH=0(`9#e z40NHaRr(#;-C+0va0xBl-HUp2x1{Uu?CU95sOt~H*Yl{HG5;samWrxb3ro7}d0{U|}#-=)4ifYstYm7H0pr%vlhV(;J!>uz!@H@cOZ zTzk7~54!da*WT&cTU^s>YBQQ$d)HjswZY)L)3xt%?IG7b=GqyzHtX6s*FNsn4!d^V zweNB56Rv&IwO{Dk_qz5e*S_7gkGS@IuD#c_PrLSrYoBrL7rFLX*B*84G1orl+UH&S ze%HR>+815>H(Yz4YwvgM1FrpI*M5m>ztpu~=GrfJ?N=C7g<3p}1q!M!&RdM=TYze| z-)gwkZ!_G=w{yIM<2Mbg`Y@shH7*}d8}sYh$5)2tcZRs?9`7RTlkkplV|;U{@&O^F z!lC3V4dX%MA$+NEdX+xCTAyB{Pp{Rd*Xh$6^y!WI^d^0JM4#Slyi;;{m%e+qVH{h8 z){7BCmj$&HW7($A9qc4b3`Oo@&%xFsj@k=2q0sU}YR^$Gnk{aVXtqSqZvj7a#TGPM zM1f_KaVNivt;jLiY@n+yX`)KrZic##3D}dR&AMCcEyjwLkU)Lr!x?u)i=i$fa%rl| zs9aj=GL~^O!p1THtd8CDvpSRu*uJDgYuFnM#h31mBc31*g@?5Qx4tw}f#t|h<>c;4 z;{+g`NErsJkmYZj7^=o@`9zJkX{dInE?<{VBbgqoHJ5vv{Rm70=ctG+6lY3t3n*@@ z6t^<8)!Q~SSG_lHBHskM&T`O_*wFC-#8#4Q2fLh|ehQVdq}b(0sGKEYH?P=|b0@Ft zk(|3id(a{X>b7s9d9VqY#(uv_sw}DF0bX=0D;n$K#e@1qtfG62L*60vGKP?cCos9K zxxD13?qh=s$mCX_>1({(cr)zQM`NFk@ahqrZ2rc$S-bT1T`gXzt zv3D5Wv8m~NyHp(w0w=Hb9| z-RG1GkVL-coS=^8iRv6$l3(&_X({iXY{fgO?~^Ux-L)qWOxK+RoHLQ{EvBjSPL|}> z6Xe!SZfWm@LraigBzG?{Rc`l+_+zM#^!*$I>QSFPv}X63(BN7;=AJ@wRFUcQMuwJV zD|Rn6q@R#CRxZt~10$-EpRoRs%zEsX<#GcDPWAHLk6p=Z0GdWfWPNU*B@aCF=BYmY7JJ*s#5(tszQifo2|ZbInyuLQBv1| zM~JUh@jT58AlM&Tw0luVbu*HEH@|gg@$SW;%r=qiW4bW7ox%4oQbk5X*3GnwoZgjP zG-GElzazgh-=5jwA%*A7{5JUnyf-3rkx{w}AD51V*gU9H=4K3#gJ*lxvpxFRo-3KX zN?5Po+ozuG)6e!@$?V5AIe71YdUilRJ8&g)i%9e-9C(LqB6)Z62jv@7Hp(mVhs0E& z<=SXUG_VZ3ip7xTOCg76K8TA1UtFc#N^8AKU*1LoA-k8@+q1DN+4vP29T(RUafAql z03M{}?x;Mw39WD4WlA4CV5+hUvK8#<);{r`xxd zZN~NfTGtET4E(;)DLfT(Aud+l)PI zBoelebk*ZYBa&(wPs<}`0gP&nMI4J)8_n&UJB;d@z)}&4FjOT>Yojt#uvDxTwP$Uq zh<~4n4rUp{wqo%C4e>B!PVP4GN4eWDkY=vr zebY2!@mAhnCGRIgtCWf1pabmzrjIok=AvU_a=XjApkU!G(yu3dx1>*py1gEfO%BEK zu`7dd67_N`)?9;0Zu-lqvRKQIOxsWeE~)7`q)pA$AO<^XZPE`h0!I zP(!|_}LU1YcO!z>ebSBIMbD!WHdyWf2@Txf|U@Y zdH$Gyh2jKJ!Y_^qFj`Z%;MU6g8Y|{kQHVcz1_T9vo~R09M*}Xz zl9__HViqOcVxJlrITJa44%;s{7l}eM@jELDH>x3o&62zKFqJBx?rDU(5}A2P5ilk; z2g5+UB*@S)?Qm)E?8tr5LhjL1J|lG0XL4!tuIp!8RAn&7Mv^+a!y_8V8YZNc!EPIk zil9`DyGW2G5nSxyk($V*aYqZyIjW46lzmwx(pRZ-(E8RH+9-%HPGVs+w(Gcg@_0G4 z^V51-DnLohSXX0*ZryTd`z^P^ZjGPFj0OcbgS!qMI*gT+1G^G_H1*!*_m8`6*MYnD z?mA*|_Iag+W-R%RM0y=SNXNeJR zZssE3ARPnx%aF*VBvWlDcM(-DnK8x!F0b}LhC7+AZkK+QPO4xu4WE_iWwWptV`Fd; zPpM1sIs@)u2NLA&&W^6stWOHra<5j^fmugmbg$_iuzPz42GZB>1sgtK*R!(F>h2uq zL2TVO0E~DVbmcnqXN*UGq7)-A}aIwfz?rc*x*q;t(fG_lKj5X%C4Fr5utYNOHh;nt6C`yd)S14rq0ID^;|X;p z>B6W7=qnfdp`l1VB2s_f&Z%2R#Pe|#k$~J%DPY;Dhzg2?hu1HpoQ18q zZ*s0CrltqyS>tixAxwF)Gw3`M|V66 zpE8ld?~RKFbIafo9wtN+esF1spYI)?#tf!q8TD?2Q8dim(o74yH6S;KmgSe_TQe=G z5A)=n$>xs=$^@*q<&(Umld6)7{>I2y8o6%ncX1&Y2GvSNYenBeu@LH8@@zn&1>#x?`{n=bRE!Z>}Y zn98Wef6{xYut*E-Z)nPy?Vblo9pB{Y= zDlQIt6(6f&@zCJV_Wbq^2}B#Wh*j|gBo6$A6oG1rur%&zH<)C})X!7`j=USYfn!E;n4+b7k*oDyOz! z-@@s(l|x&u#e|gPwiBD^U|#$gFt{=^2A$}DdF6;Or9%SgM2jSPGx-|oQ|!b79oDWk zSOHxd^yk`HYNzGNop12Yb`+1YX)9X&9%5iDR(6_%a>?*`;@D%1{C#PZ&0s-DeUM=mKFc3XnOz}`=IT6`vsspTL7 zoFe8Cl>3x?gMfv>k6Wbh$dMx}Jn|TvIH#!=xw5r9y29d$R2_mzj)2_ii}qSBa{?c` zf+bXtgz1o(4BKucR)jcL}I>GZPkx$_#D@Bt)gBP)%zRUE51+BrHox;c9KjkW>K zYmB+`Adu^gu%!SELe3^U2piCoOjst8VC)O<7-<`JrO1GVgC92L3LzPG(N--IlHwR~ z4QmmAV#3Z_#s%b^kdHIm{snK?XPuQs7~EHz49_iPcJ_keH%Y zic%@hZ1DjkmL*D|v|bcSYYlWsg{?Q0kAtF(GO05;#f32MoCv1zpB2-1)JLJkG~(G@ zQ5>BoilYspINBtNqw_^^bb%<2HjCouLU+5jK5M^2JJ`8tYPw<}gu%v%$tmTQr~+$V zM}$s;l`f{~E!WOHnG(WgGs0PG2utY{#MWTg$R{dUJiIMhpVUI-G@)S)1|^}oRcPBn zOGU(CiD;|tMx8KDWQKZUJ3S-kT7h54Cup7n*$4y-%AizMp|6R7JW8*spiiE!`UVt- z=!Ig~UZg3ShUVqxbx0t~(OlY9FGrs(TaFIhd-8O!_H2kLIs;`m;$HB4DKH|rIeD5@ zr4;Zs>c_Q!AtUeT9Z@ln7B)C@J9Gn!qS$Hp?b6XIY)=@!bGH5=Zk#EV?)ctNML zG$-Mr6mrtcXupU;?5M15HO0Pd4-j=r;|ln&0s~c$1G(^;q!koAmiEgs!~0&vD36OZ zkZHbnS8$bc@^pJf)o1gmQw3d9TXKGeB}7&a;3Jde4F+&7th4@Zf;E5yb$9d+6u6Qw zmwGy)h0;*|>gs-$3rRl=xQ_0AY#U}RB=L0P^_P;lvXo$$Al`|Su2U&YA>jpyHG|b4 ze&%p6$EuNJt*{p=j9XTjR`F_K1Lec&!D_{&e6%y#nH{t!_mhvu+~_$j`Mn>c8XD1A$>11U2SruYJ0? zHWCUA*=@Dztqv4fa5Gm)D{+BC;!Bx`*D06z=sUz2f?O&W3z?`urbztMG}qk}L``jH z8wJ5jk%E9%u?>QG=787lXUtZvd8f8*$VbP`r@S@O=f&V)dWzeG?A)8j6SB6+YFGk_ zD?qtU5LW_<8xG>Ov1)E-MkgHtK>QBNLbpqle=2h}d5Q**i3ZR^q5zZ-1)zigel7}O zrm)x`s5Wsi++yAA?Uv1`ce7YmOy*PK4&&1-8fhH<-b%GuX)Zs8X&yi+eh@Y{8|_e`-KUT4L^`erf!y8li9?4sst0nJ-{-=Dk|;3 zl68w<1Jy2*jA|kW(SVv}fvq;B)_6*YDlQ1iSQJc_!zsGU+uxN;RDBG;9LY$+J0g2! z?`Cn;vDJ6gaR)slIt>1vc*#(s7SkcCll4nz484Bc!+^Nnb_zcA=}|xhmG-oVI@Ge} zTE7&N$P(j7x_Fnyu`3tJl)ro(gUGNlh&-ZCM`vz#j3dU;`=75hv&0~B*3Z1|22BHe zm$nAUTKf8)d10Nk|5Vm*!DgjYs#m^c>sIT_jha-%bmfh#A|$K1;QOeOFYJ zzLhMb{h156;Vw+Hvacs(DzDOi&u&bssw;qdP0%QV3#G>W-(!a8D^nM@l(X8ly?pET zT%5jk^sugWb^*iJDF}RA67o=8@f(1 z?P{q_Vf^~<(M_Rhlrx$|g~M4W`@iraZFd-kwH5R24r9LEVa&HXjM>;9I)hHk zL7O-{7>rPhgV-W4eWu4HACsjL&D-fG@~lP3OTWBx`G zu|ysVKxLg+p{x^8ln>v|bG4all+EN^u}+*Pcxg@63=_rZx|1r!ln5k>YgllkCq?{G0Tfp)%j2eL1tn3LfOhjXV+bhL zid*1VM@0!5Z$bhAE!Xuxnc)F;7wOpuHb{$I&R15pl6;zH5MHcK9`yDpuci@g>)42`W5N>)#Dq3=RQa&io7m6pe?RSf75v3rc+&{lm*hs1^egSv)0b?Wd9Sq+p-eNNrPD|%(ArY zWp}ey=9%P~ZK(`EbzzpG z;9*8xGv=Cc7aG9^W1tZ$DX4?yhMSVj76oi#hN4V29 zdxS(t^tmQ#9BbUfS~szde41Tzy&@boyB2yJPz_KX+fnF%V=Ehe!x=|Dl?b`>7epcp zBa0Rdj3+B9Q&rWV;-l?(ld*9V$Ce$&#+{sZ8B3OmoshX$$be8w1~Py>5&PLCvY_+Z z*rGdOUz5}1=gIzQsotV5Ws5Fg0j+x34ZCxAwu1fXN`XNYzX&Y5YU*aQYPnTm_cabF z*q+Z^7_~D7(e7lwULl+IN|PXE5mea()eb>Tn4s2eS6(7e?Tq4~p+2@&)Ih`IQI^M! z$$U(i7RA-}u}iOyakW0;BSNi@J!(!*=Kp`*z5_6>qs)Kj)$O}l^}dqUYL+dnR@HWF zS+>`$$%Q+7E6vP%^X5%^)4%WgeO`zYb(_~dOy0d)jkRKa^wUA?xrEEt zgXv)%W*MkY91bJ`XQ5%yk-(dffN%o7R6GDfg7v_M2QL37Xtr!|4S>M!hT?{mp3Nkf zlqia0wnW4n8NiL{nr1H%D@8ZR??q$;4gm21$WXXww%iPy05`pwH(P=Yl~U%jCBX!E zp}j%Omf%gLCt|kD%JWup(!^Gno{LG7Kj&G8W_YZ>ii-HM0NM&sLpxAIu9(mN4JuTp zch_YW@$KTE19bAeN5oAiUwcI~!13Y-())1hC4X$;Y0mdU527CE!aKJNS0n(M2et+} zQHDH6HRJVpnESgdf4}etI3eD-l|S=Y&z$0!4>Cv;m*4Vt34cG-#XG32z$r6*V3MvMgIcFSCujFhkB^TnJ;3HjJekb+32uJ; zbjHIR-m}iRuQj&!_G3>N?$gY%JwTiQkar~xd+_Md5MB+YDP4jWFlGvb^sA!~`@dpc zDZvR|dbp*5)y3Q%7=I~qm%%M36fX>(vNQk~FA(wuY(zyfLCDdLB<2t!EO8Gk8DT?W zgbe{jnnu`0F~VBSH8|`NI!VA|)j^Ey+!D=|z$Qg=9mBRD(_EpGN;UHi9 zM2nwoL2DTQePx4ipETW{ZP@YM7vFyH;1@SMS@ZH=-2CL*H~jV`cYJF0^`|#P_-}E; z-@KWAPiZ#c96=ojT=ccOc-m`m)Hn=6aXWtfeV-#Qtwi~DIJ~wGJda;B` zYcS-8DCw1>$)8@dhs?_eag1 z1gH$5nLBBxlOEzs&eN+n2Csa=P?;s`p8r5SO2PR-k*TFoEL?e~w4BYa6hIimx2IhOKLg}U8vN~X!P>4-OyfywTyt1; zkmS{NnA=D4bTP`nNMO@>W75(=%VlPX@?x&hoty`p=T0|s=Nz2?`V3#b67~h(iMYV3 zJ~zFS54E%_VKFw!~QspU0(=j#% zSjx=WeQf;LzSx*Fc3K)clZ)WMl5EC8xlr*5Pj&)X!c9kllhBb8J3cvPX_U(uU)lxc z3-ByvCwve-7{y1ha^W@a&AO4H8${(D!<-h)|)_q`0zOm=$KYf0LMr>9$Jw3!wX4ohPZvJFeJCqQJb5G0 zMpr+sx=DbeClWEYvk?jti9kDQZwEB6hP%4@`(gL>!tMrWi5l*~iV1eOqmO`;c=qYG zuQN@(#w~;&^Y9C=k9>_pu`=q4kQN$Ub(g56y4}NN9K0n1%M!1p!=wt4$sF0#?r;Gs zg9|3A1-iMb|wMvKfM5RUta)<_;4~`t7068Q?3{pxXN9}9jq-_o! z;@m*sAvh=pHi*&*Y(8DtOqd}KS9LSVIX=&14~_}3KCG;2N;#ainw2(N&A3f%4es2v zYu9U8D$x@;HlfyNtvg$HzJaCIKg6Pw4*&;{dpw->aMx(ouXX3HbMT+OYbH56cj|70 zj@VkxW1(012rTWLu=c)-)_tn2^fAWX!`{od^FHCcUpOBS&Ig6_A>n*jI3E$t6TvB#?I5lMf59O1_Y|}Z+8ivff1}OG3J+|wxmXe2iL#w0Eo3KX zAvQTG?*uIbM=b0hE#QkwJcwRa_=;V!HC#quSc=pD6vpQ#SQ>lr4-+z0@!&O9)JLV~ zG@M$1X0KcV-NS|x4JT_S9y*+J(~&k8oX|-UBiqAH0vXvJ4iH9iJe**v%kgmKAUTGd zgM_Kl4n7JTpGaLeFcEAKp0=_fpa2=+1?#??-*UMw^NI3_atMXYCn_c?jJ34oA*KgE>gpyODy_f3Wg9lYU)EPD>gU~fu#wJ^ zN|7B1ZH$%^4@5=tXl3(gRr6>yQ1i*7ws|zzJX+U0S}#@)m9&K#4)TV%_VH*VL zg>3=VMS`_jj$UT%3M_{Tc8LxR>=I#p2aZ4NJ8}Hsz!^xF6IM47M0(t?sy%xyvtBPq zBYi$tAwTe2`U`+dvL-MN4J?JQ))m3JsW<^`D^wUr1n%WDMEI|o2mrA#ZX*J)TIa; zWe4Ce>J#;ehR09gNNgwkL#Y*@7VU~V2+<_b2!E$}-GplwNwfG94WQw~odiM=cPIUz zLUJW30I2Yg@*97u1?Njpext`du?7gbB=l74s4oc151x%g8NrC`kGn{WL!lhnPX)eD zXGYOdh_-AkI}A#Wi_3Hzgx-+28*v;W1tRqNVPb?VBSk3?RVnws3G5=!|56TVnC%si zh8e1awWA8wVD)Vv;&|g_z?;E`Hg1Jtl(s~}+-N26)+-XLaE?T}Dk>7IaaE1eq4q>O zK-sI#LoG!0`Loduz?;;7sN)KN^8@EWW$~KWN*osX;$@$0MHWU|`rP|z0~F*22&ibO{{|HI}fWLW;I9o zC+4Q%HHkHewfFi_4dU`O_oBv%jVb;mLNe48_%Cr?3AfhHLG?j!4)`;fdcO-=FDer2 z0Neum+#*P6>x>!hcN5@UDiSwwzncJ76Nr~mX{rELgG*9PfV*l))l>oGpR~_Z1K1zh zXP~CW6*z<{y_-G@1*(B?4HO?0Zln^9)SWTT@UIz+2hT&pKpp>@@ftc2T{w?;p}EF* zAVdY!y{y@WSOWla`8zJZw**gKpS}%A=P7Icdiau(8Olgv z<7?d1Qs0oiM<^Z*)YddDprJKEUyYe%QGz#Fx1t09yQ#>^GrlG;Z^$P^rDz0vP(Oj* zRAl8H9~rPQ*NreuFgXgiaKGv@OW4k%`SdWdBNExi zWU?m|vg_1GU^i%w!tT}I347B1ZrFD?$iCD080_P&_rN~kCi|p^>?!Z>VNd)12>UKS z*)s)XCj(^97Lq+zME0p-vhOY-`*i8^u+Nl{{lapx|DuBI7gdt|;wrLVQcd8X2i!tPK99DI z0sh@|iw6$lF*cvrOf$`UaIu9Z8h1#01XBy~0Fa8l$KfA+IM6AhQ}#8y4|%wsg+2i1 z0k-1fa9+V0KhB`-XFjo&>Yg);jY~C^BHQa*{+1a}@|Y=0Eyhy>&eVcNs6#(c zT!)e><5ST75@>Eh6qw!^) zxOWJbU!f?$4pLZ$o3Apuq$s~eQPOuimlNwZc&sbVr6V3f#NTB8?T9$ZXY#?;1!gSJ zcWI(ZSZOR$S}VO+CJ@||@hyxB7#ShjYCOZA0HCbZ-$bA3Rcz%YW?bU$Vx*_n+l+5h zAZY1Y35$Y49gp9Om*)`=zE@LY!2|eOP`J|+_ZCjz!S``VB_M@6w1UDCrv(o^PzczL z$Nyv&Ovx?S4|o;YcwwP7g{qKCd;Ew8ZwhJD%0u?73jVQG!DvBFn#N&E+?Khma9icJ z#%&!oKE@)gnm~1Hi8s??&&py;$oBZD=ni)anwi-Y8@Z0DMrx98!~h0WJdSO~zfcRB zLrI`~hm_M1GtR$K6XnaSU#1)DuXu?hgi-kCGTX&vv!KxJ!XKI5P^?4u5)YbKi4Fn1 zI^@I12c?Ux^shsr|BkNsG<7{_$)T7j_5Vz#{$J_Te{H3nRb#)yQz)lLm-;+lX9^E{W^53@Y@pOesK#PBt%teJRo725(r`P zix-`3C;DX>Dc&iF7jnO1;a5%?cmi19U_>O!W69Ze2|+7J(+(+vBJYB8@lxSkX+R%O z8QzaqoTU}hUrX_Fx~s%pHR<6AAdYstQg$|8(XP;pT4TJLVk+R?CA^sL|$ zY)u?%*V=e3UoPQ|6~=2N%=uOP<=07gRE^78D5NFjMYybj`dCt;hRbTGkiB9w4`-rz zVIth8G{3h=@e(2=zg>!B-YLM>HakTy zq@m3R5zJHUgjDufXp+qt_s>Zf_o=I&7Y#&=_>VxBQtpU<-ipy2@!utp5PU0^r|-s# zw8VUm*}^c?i}9WY|L=AC>&?m2G~SIX=c?^g^7&_&5(o!!hrSe5j`p`4f`= zMF@@6qr>_bBVDaZgsNt6W@4*`H!58y;FnL!RmvVaWw{v>%cg!BF=l0<5nmria***9lq^13r8sPV&cpYZ& zdi00yOSJu5<-eW2=|5)r<3DBk;}0_3`iGfr{Ua$}zchCA#CqeO5q%sxC?0)$6~5%E z_^Ob-_^tSu&t{VNNhXP(UOBR#QC{slvY+Sl{(s5o{lB4ucgk@CedCqJe`FdnPUejNl;REM!s5R&jTuC7<2U@JbYuQ+1k7sAsEJnN zccMN28y=w+8X5~;hbs63^{#e1MsreC@r zshUeszre5$xfk44SUcM8g|3!|7$YYtkv%Ds{Qy(QnO0v0`!0>_TXnK;vy*+)@iN(X znT%67)QLu#zIl_^Neeix;u@U{T>55Dzu8u!U@F6TPW{hiokVl%bU zcsch*Y;g!i(ZPxn`%V7jFU1om=yW37{dCHyr3>>4voNnf)=(I7q7vDYGTA5$In(Nc zu8JX;)LiVgm_MArcDV^-Q?PO0n$bNu1$%(kg zej{_g4$hmHhnzPvFFAk1eB``^`N?@JD|kJex3K^@Z)b(%yn_{yGgSN#>>VW!$;NAC zAm(rk6+4!Z!@K9ByV)s-`PteXfYW)MJU@>fxf(%1LuL8T1U#~$@dZRP3(cc%kqC0 z`M;a{2jK6<88nw9(~SDzTZRuM4t0=4l4J*wqTsYSkD6wnxEu|4jK;t&+7S+)3F(+KHc#)?O9pbesbUbot)uWALDsT7V@XtPbR4p<08XTH!>r+N%0K%^K*DL zvbNma*HN}irg=pBS4+*=$ywPH$9*=% zb06{jsXmYlVG65k)y!Xmt6IS4LJJ#YqKMjP(}~)MApwlkc0l6FlEB2ZJ21Ln!~y`2 z!>MrqAlz|{1ilL$bQ+eBg7Z;XYJs;*>I5urHSJAotM>4P4&c&q&Ob;vb!2e^dK2Cb zLTBR^X9*-GRy*SROi@f1;}jQw%!q=vXSgWyB~b?J^Mxgs348j+F|k@mscV-en=6xI z^6!-`8!prp$rn4h_TZ4i-@1G5L>yYY1gMb73gU~UIcImrPK+nJuU%Ek)HHGCn5<#p z>xkegI73<7a%pjzBrq7b&}+wa#0^f8D`O9Nb4$BKJZEXe|CuCUsR#lv!jyp_Mn#1f zdzSLsWpV$OqcoX3MW<%yHC`1N1fv`Uoz2%#Lst`pydqB; zA-15tY;o8Qiz}!TVxECak*uzIeLOwk-iRduy9AOVRMNC8SC6tHgKk7)B)~s`O5rC> zKo(RfVN(EVyg_$zTq6RhXa=T{KsS)xbCcq-ndOgV2sJ_~M_CDhQZV zxe3^$j+4xcn>4RAVvu*?H9Duu#)i;32q>AY-&N^a~1@e(PV5`P}T{B4h8&G*8Ll~CW zLr54_WuSlq0I41uNlCXa3xJdcst~voO97AwG&2tXiQ`m=g((+=;SlB-0HiW7Z+Bw- z86nwL695Tha*|tB2;HI;&wFWiSZeD9kP(AbF7=XpDv*$X?*pk+b$$^SYcSrcid#{? zPVf*AMFk!Npn*nRkSZk+)M^qzEh7=s8WKURB@xshiJ;bz2x>Wrpw`>hUuG`HW|Fbl zWvri1c##vFhxtIz*$~(1m>SF8mbi8*uo`>n0SJ2d69q^HvMtz61|O$`_FyVN#6*B% zKwL9gD5V0x&;T+LbZW|}Vo*@FEb?Psx0`6CQOM}5gu68p*S2fKHMG^(jVPc~Q>XpB z+vmsod(2zHsw8Qan+dl)?!+!JS}G$L{0UN11!|?6GJL=)+*PxE5Otabj1(FU35A)^ znn~M%`ZVMH+p$=n?EoK8Ot>1(Uz$Dq1Ej!O*f#{tp(j0`B-dp1bA;4{jyM}M%aIzs z@Vi>3uk=9@XJ!_NX0>4!IN$>2PqmWDJF} z0B(&B<`GwL7$|##C2JL zLg7A$F#w-tb&Ov7(^j+&9?M>+n^Z~XWKzVsj}I@pIm(#pT&O~bjX4I-%#I6n0%Etv zLG#UpE3{?C#tt5cQkXn|v`$fy;EA~;$25xt4~R1H^n+6~!Autx#avyQRVY#K;>&o< zH$^Z2bD_}Wg~5@kM}@q^afr2`G}SrvmMU(=cbu3!X5;$`&|ePqYT?a7rdf(c2- zlIU4D*c%-$UFIcfdX>xgQ*)uV$(6L81e8Co{XGeF%goHwjCcDH8j7}id6DMLoAQvxQ=`G&=6-X#_!a^PQbU}Kur<<&v{ywFr zzdwA{gBVP=99$K87(^uh$iDtGBFY*C;_3Az*3=`!t7ba{g=M>x*jfG$G> ze^5x_>oSSp>+)7z-logjbr&=%?9^R*b%$2n&mH4Akf^Sx;CM^ zw?n(C2DJ(&b!}SL<{Y;xjv5t;gCzXf0NkgjQm^LTkt$aSW-S%6_1=utCEqHIrH(R9 zn@o+{v^%gmz01Z{`%a}Q>8XDo+kXJ&Aj~0{TVRgB+y-+u%xRc2FfWAp3z!$ZnC*WF z+?T>lF3(2W)GxnDFp5hJ+(7?3>o{ebY^R-{jrk@PPC)$W@MN zn+I&Gv7jg*{(8HABbFo%@ZbYO8$6v(hD`y)VqMaD+F;?MZpIYv^2{!1n{T&pWrGsgX&GjO^Z=K0QWUxeOwC`VdH9S@V`~Y zmTWPuMGF``0Xh(v*K9?oc4JVypG1gF;3N+;5G!nhwhur9(vW1M$c-%^!f3I8v2`)7 zfSEre716$ITU;G3LN08HVzBoEQU`zm+=B^^Qe#MjZvo%AN-DBM;6yR$Ot2p9!6TB} z=kefCCBOqLA4CM7Dr4UwnEinl2%d6vxF%7PsEq}|LT+8x0slvDixkmj?~v(R9}D`| z;{Fyq>E=%kr=QgM>+s|Vp7a!z;_6luPsCNu7m4hLl%h8v?ib@Bor0`RtlrPE z%9B+Tekt)L#4lxjIjBIn=S$OZZAV-wuu}eyBkKU0wpFoEENain3zV(iZ~2%_xfATx zR_F(kO#rL$xFm!?Eoh@2Yb?>gvR(l7HQPb6r2 z3gx|%feH61c7evoXTWwl-*!A2WzeepNwyGrz6jfH@Zb(_ZJU}uJG2#p`=?QW1rVvD z+ZYB<#Ol;_Mg0y`U|=Mit^;NMcOigECxZN%boXY`6<;vvD;V1vjGxK3wqgK2JJv z_?$(|xXJ}STE*3K(d`m)8rx!gokH=Lh@n>jtX*ucmArhx z4(YF?oCp_Z&|`&}kfL z)o~o{+d3r3u6$2+o|A4$1xmWIYEhgbq#IsZ$!@MzU2I8p%F5iy zS#MT?xOIrQapfCL!=~_nK=zmd_6!sqPP(&;A!N+`^f0@qg<0`h@GGShXqiHLa|;xp zV0&{unw`9;DW(zHMaMD$7kC5WyKQGC*Cxt`EA2Br1|SH0Hft;Cph$U36L7GZTCOs04o*q+X6c*Dr}^TtV)o;1-Qmd$c*5i@Uhn);QNeTiZf=Q+z~l{XWAR!8F= z4(>ri89Ob-fL9{L&e-|s6UY^gm~{ocU4UUZtjB~aZjYF^N3`U`cx;BAa#!5aQ@TCk z&ITPZ0b~SKf6YN_95r!i(ghRQ(?sr`hp0*s7t@}r?WndMiVJ97~= zJL{=8_tq01KRK4x>M28oSW)?-ee=OYSFgJ!tp(pWBbD*tlPl0T1DJxZfX{;TB23q}`|mcT;7 zjekF^AgSU=5S49BFuz``H>hP?@fqq&KRJFk#g(N>f~v@y88Rqc;sVHY(PguVbUaj3 z=^|a3$02_l&xsrd))WP$T9ccJ{EsPkA~N4;xoCLhmSnP?U1jbzRNhQ5iPY8v{gi0- z)BMkc@@1m&re`aW(cIhojOLGMR886QmC&4(DF{7Jj|iL6^Lu{hpkTS9s0#JASPafW zL2Yr~03ik&6aFiW!(tvT=YLQOR>r#vwAxImHF4CgBqv`8Vgzt{6i^TjlXXNn5j%~m z*y$rBB2a!E6wyoho&|gN?B9N1`=KpIx9^T_-@X07k%HY@wrCe{Xkp(Q=cB8ir0Xpz(C{^Z<>gqYp8M!+m|dDwqv>BVH6O zYfyz}xT_n}p%_PTi)^QX*l-)^?c*JrhI!td;MW5zAFH#gVbG}&cO()H!|v%o%8{O4 zq!|H#A&`M0eZ6JN^-b#Hc-+_51>m4?N53bhi@~oa687i!6(9#iy8BA6&_(dHx3eR# zOwS1Sh9k&cFRB%GcXz~*{=&HL>FG+tzg>e=(ASCY4El{1T$^C*E|E$VyN?qH{3ZKJ zZnvK<`xskJ&9X@-uzQ&FATW5AlHXkp5Bv*sV63x3oxpj4&jiaGNUU=U76LDIbAuWyYJSO7wXDi=*o+AA%G*G8>xUZQUGVf-T?PaFmHo-2Moa)orie@=EE>gz`UI~KFVZd=a}yN z1cQqs5x^WNpM%DtFT(v2%vWH(2J>~8Z@_#H=KC=J1oLwk;sSUM=HFrd6Xw@2Z-n_H z%sr^~m%+Ro=6)EI;-m0>CHN@*8n+)~j=z?a20`6S`4{2*LOA~_oL>s(SHdxb^KZiW58?cmaDF44 z{}#?~h4VY%{9ZVJ5YF?$NlCmW?iJ2`!ud<#JRqD`2}fBt^hX`0?Dalz;+z;r&8|7l>@d$u*Xyn*qXo|Q#)X5M$>Q(*cw310tX>p zupb?;Z2+5%poBRS1GZyKX0Evb+bQ5e-7OrD!N}JGIv97sTPQK_N}`wfRuR3--$s0f z1>FQg6z3k zoUIt&Xsck2DYns8$(rtgQ^lI^g;UL1UIwRzwcZD(maTj_oFHraOE`4^OR}+g)FYAY zR=1-{(nrEfb1Ui_3E;bra5UIOkeMz8Q}QUZQYoWqFr|Vh+{y$fWCFs9fkm-Y0xVORd;nxN1z1BB>g`590F{WY zwr1GdRs}*DX@Z=e@Bv1Or({L!H`e1c*HV5pj`Vxr8=#LbCdczoX&ewqR#K9nC7acP zFKGb1sd5;ky9+}V5|8!(Mf5#0qFY2n!1d-4RTH!m)o*ofL}(49g&cY%DiP7) z?1*j?5rOc>BdRrS7ZKIwMuZk+Kv8+^a7|phFjONVx;;ChqZgt~ zKF0_&%pFWsjCz8ps!?w+RYN-3SKENmRl_C$_a)r{xGx#>y%uGfbhO_ElrU`u)IU85 z^e;QCZU?L$=d3Z#Rj5B>Bp`tYD(5k9y7G%je3(?|qHzZ#$1fRolKi-09H$#-WydwC z8+RBdAjDYM1mfWF#n;YV0>P>H=QyjMMlGirQA>BBmQqb9N4)8R7@r9eXi5SX-eE}oZ$|E5~1VuyI%;poeGTkLaGPgC3zAp ziPlAq!||dEaZhw5TJ4MdA3`@e6L-HB5yah4d;U3OF9o6n?g{<@F|G3mfFyu}ATCrV z!6A7?WQ1)54#K!M+J@NfWBwRCK*h7-a}<9H@d4{4E57yK2N>ZW={!Ds83I1?W#W4f z@%cb$YylO{1W!uG=j8F-E$Y%${0E=`yoMsT>Kx3#4&$}#0@ZqSHKKS8v+A9ox?abL za)i+LX(IPL1ac1zR$y4%WP1qIoy}M*U1nP(BGUzB5a`|jM4FD2cF}kkaqQxWXU5l`SU9L(JRBQE0H{GTz1(xz{-!RyE!Z>K4ej(J;^hKlpIK zL8=I$uZDLvBGEbL`Q;-NWuhqBi9$S@iJ}or>77&xMS&9BkIN_pV0b#H0E8>l2;4;o zj!J|jv_pO`?65*GJDutWVeizQfW1X0#GPICPcV+#(~;6I0=H)YA0U8+{9ar|c%eY( zOLPSb!BKDl7ep)VmRmsVyMT~A!N)mR9hg{J_&q|vCqVT2_cMe?5bKQ(@UO3e8c3}` z14<9MpqREKdZ}@1eqh@;0LQ~$>qYx7v|c4ZAGA!+^5a_ZckuzAK<@fd{pcqjMFS#i zvnO~BqA@AawIJ(%Tznpk)xcD-^DYEpAx}_HK|v@4ksE37&jsurD*;FG50JnoGhg7- z=4)Kj?%!FjnV$q;KA9H*fXMNCkW)YKvm6BA!_%Oz^_lFDL~4DSKA%dB@KeOQ|M~1j zNQA~MK+nYYk-iK&EQ3<`1rRI~9X!8Z62-d+@*j;dmq10NvMHb+&Z9op1#ZI!_?qzZ zV+u$2jbgzL!r=m16E#-VAVeQEQNZK-CKdMzjqz(BAENR>VO%W!7!dJV5%mQ#YVcS% z0LTLhC1T|EfVf2Irol2%cFK|{&2 zJO`msl_G-CVeIH}wr43HjO>{76WDS2XAHPL^VD|lPp!FR{FE)4x%e5z4u5JRvi5Ui zEyyX?|6-0i{uB);HOjvtim>`i#sPpZ4k3%bMCL(4_Jd~(pL-XG*XZxM!3-p(#I;sX ziM2#w5`6}cKVV7&A=)kwQl6v2QJ4hulJKucAt*e;*^4pj8^5Agltg*)dEERbmDx_B zjyqB0U-NON*7j?p7i9my%QGk&;l(ivSS?t3)?1Ypr~bWZWY`N4OYPka#tdAWo{of5j>*XZLtAn|zs3t9(OT?yMOkYp`;5cVxfG9P` zC7|{!MsLQN=OG>*(;5%|Fcpalxsw9#H={(x-$)mt`w;LgaQDM~D+O_5yR9zL!1E4K z>SwS{LdmPJl&>MBu(h_cD0n}61ok@VG1%+n4@v;tLD?~ALyxQ`@}tF7l>QmxoHQRj zfauRkotj!e`O)mE@rW57YfQ}#ac(jel(McGV>y^k6#mC2on`0ze*qc{p|$cs%^_NbHF5K5=<#>{jD39_Q0$oF6pf z#2QocuTSR)g*JfGgJBNQ-WI#f_^@?zd+c_C=n+pS!6&R6O7ep|@+Zy6KSp)yp+S8N zRr?8EwK}#LVcV0a!AAC!WIT!Vlg}7W!MTKG`@L8qhA0=xVgpUVe~VUDI*;D^49#~7 zSi^r(TA+$WWj-Z!DslnTzS|W$7+5GRuO(#m8T!*mz;i z2Q&|MUVp{-*6V^O5E_Q!r+I-F2)$xnqR%`$PsuE71AGsa;h)ShEJ(z^6re8n5+rv~ zB!}LI%p|E{J&UA+!wu-XxAfUJ#tC!Iu;C zFm4mWFGqT1G=u*=jlqN?6S83-(l3G87DozvHh(L#y@CK@=1&FQie~ppMARi#nSUkE z)3P)g1DEeTG&hFXt00)vD7{)XUM2I!@oG4u8t-a4=e!crx{eBeI|HH%;9jVW#E~2T zR^rO308St=XDhFh2~q`Xo9L*-R{=myQ8_a6BDg;L0C_@liScUikZXLvrUk*9WgI~q z1w;voUryCXdZpfmQt{9GHstLcjJ-`ZfL6jQatxfu*;Dodwjph06AglgRmRr4}rN)Mqdz_F+0Kssje>> zAIh%llQatOB^07GK8&grU2%`7-j9IyPv#%kcmjnhB+lcH$`=-?K6rJ14AmXvYRWz? zquB3e3uoINV`t5F_9RE}!Do0%-fDbO<_f|;#6JaaA^Fo0%I`(zh_}Y@RzAnC|6nf)Ep$qCz^h280RRyKZ^sh7`)@BO1p7yGR6`Df(4G<6)U_s8<^vBa^&3GD5x z3yoi#1jws(VK<&d)q>RJ;6eZ#)O9dYn14#%>Qfb26!p_IAuZw6!>Q`1ON)T z;5P_xN8mTI@f*Ar_a_PoehL@hOQq{V#CsmKCJMcmE#U zVON8zdli81W1v#c;pSzyVc527baS7A=3Gx)vvr(nwt4s!Z1@3|cz|^XhgfItr=e4@ z$$s9R%_f^xw%)$c!Z)#`PIp>@eb$3DnIKa)igh-F1hY1s8VR9t`L(3UJ*WU=X<7!v zk}@%QY(fWi5ix<9yq(0N=F5IJ6z=%b5myA0#_HJ8vbV<}n>cf3Kls2#Cvt#UauoD7 znbL*Vh#<@+6%v5EN_r$s7n>33Da5VgAdU|%@Mj;Jn~4#>Rvzyxh05o?C{MqY|3t7! zIgh3TEK!`BuFgy=F}bJGNF!G%Z#rI+xk>O`*s0hDP!i6-0>R#?X>I%zslHNU$EPP^ z4)6yEjyOoJo`w|Rp1E0e^2(a#I39}N>&W_SlmJzgV9LpQkSP*>k@KkvP?t1ofW@sL zv;qr0w`F6X>ZY2m%78O)uu39UI$h3eVkN{emG{#CJw)pj#RerWDubm-uyh&fUhE3!iVk&;v4f^= z#n?HYV2h6c5F3ITP^N;DJQBx%Slc$>ji@2^ZaQS!g?Y`md45=mlOV?8`KZJa@`8u( z$@g(D#N^j;cOVYtR~2Gxz}n=r%0qDy##lVR4FYWNJ1ZhI_BIy05A)TLkPS;BNzr8R zVj$PUBG;3SRmdMvI|1x(=By@>87NnB+c7gH12RE^Qbf{!Abpl>0YXe6?7 zD{?s{aydo0gr!NaisWhNZ&s#_XW6i-7E<4xRMa;sZ$wuGE#&Wpo6a&S29HIami{WrTtUgQ}P!D*0a|1xGFgJ8` z3A7nEsVtVEW?s@wycy`82iOePJrB4psTd4zCdQ1WJ5o9tqHNQ>%;$$GfC<19!W5M- zUn$%&f-zLU3!@B>>NQy%uz_7h0nbX5K~203crtJZPllAn%S^KU zDOfRRpeDA9W;D_3x~&OA8Ee8FqzRkRPZj7vTYy-1E5fF+T{I&&?99eFoUo_iSU-^0 zNYip8?VC&>qzp@|*^pl%SGNYp2tPG^ zz(0V;QwD^mgHSvrm#!25o6b>y`MXe8iqP;0BSE&OFi%56w;NbVFur2uDS=xGwoM0C z6V%k<*rWkiSUga>)~HoWvW$DQZ2{S-K`}TTUhr0`*qWf4dziKJzYqwD%7jF%70S8^ zyOY|fsaw8b*e=>BN9zQmPscDU46A_U)Y1d%NKTtgv!;`NUu#e;F65thP0mB@B*D%c zxA~?{9zVmM9Os*pl9N+h(J=NYduH~HCytMgav778Q(Vt*q3LEno4iqNdTmaQ(S%Jl z`yB7~oI9~A@Z|ViqeVu*G~5A@kxp=9V_5CM*a~DXb68cvef@o6&~)-a6YAa5gQigU zj@DEN&82*}#2kxBPPS=Qn}O?xDS!#U6j9s3FiA^>D4+uQzzBy1MmQ3Hw)p57RpBUR zgJLSMzA#E|$c&PJs{j#GVT7iIYn-JEBrU?Vuu!ycokq~YwMru|N_Qb$WM zYG}6e~ zK^Cpgl=Rg17ihkjPn@$p6X;Xcx304enzGkAA_(M_AmE#vwP|A8tDTsf-W8iJ63%Y% z&~yrg=T3fHlIv&QiARC#aKh^b9%oURtaY9!Q~pZNIyqTddTXsG-n+tTFBj$O8ttx& z0AC4HFif&4VVXHR`{5Vq#}L&`em#Uj*wbkZR@V@Z=;`UsS_AT_5V)-Ac8h6B63aj| zU<_*5`+EsOjnujx}37kRdX2h)$dd`UrA=aKQ+e)w`vz55R+Ov)C5m)g&BJB>- zYfmRSpm*4l@N|$x9ng&!#0KeZY+bWEV0tmvzL%glmn=NxeNWb4>G|yqMIYGu!xt9) zYD2G>9I)w^%h;F}Frx;8J>D=$66OP8K`@8%cYTy%0c0fAAuQIth8-P1i|f?Y2s*a4osfKfUwI1Y zdHqc(ep0G6vzAtvl`yMd+PhdwH{2dpQEA6kS;Hp7i-AECPCz*3mIDWwSSXZ}WC%^) z3ag-jQBkogS-SnOz|f3FvHbwEhqe7^;oA?sO$Ps{z73lT4wvdAxKtP5Qdi+<=|TdU zyVdg-654!1KYw;UVLuxKdMb!p{E1UManTbuJ!xOSd66t@ntl@T0h}7>thP>Kl#dVt z4lK9ab(wjUZlG2dBnmEY?cZ}3t?MF&Gp#OY{#MT~@)U_3wHx=$vc zMN1@lF;RLRsnQ{?xrqu5R}EJusyhe^tYf$`QOPZ_iK<9%qE6>*qSADv_ANx>IFN<7 zTxzX;(v+ff5H&d)o0+vaFj$Yz%*;*C%GeoOppka!-vF{1S2@+>1}zlYW>fVm{f;kq&d!ZjWOrTBdZ6)kET!e8JL30=M0n)pCD_xruV|)iO5S)@nJu z>HttYj-A}rvKhUDj-1fhd@z2P0+;|yAxsfW2}9rIdnpZz2%I+25*iLIq2bUX0uC)A z;Lsuhj*8WTPU~tMJkh#(M`rPGwRQECwp11%G2Yek*4~cvcAlS&IxzJ+NMfghESmcD z=N#tL-;X_G*3@r(r1oq%bc-~`m*Kknhv%Pv-uFkcV4nBk?98^^I)Jj?U$fl%`j*`X z_HEy?-{#o6Z_A;h2e$9pV&_-8wjVC!7lT`NZ$7$t`@Suk4s74EJHJ)P2$vJz*xAudCrETo5A*>V0ml*{HUw<&(7-R`VO zRa910>;4M6z1m(=)0qm^Rn~(ups1fh*JVB7?X%ohKpImsldfF;v}*# z<`Jhxp8tG6DmL@ljNTEMWNF#FSj}!8U5_+Bv z=IjdS6%Ms&1QgT>bp%?s#T=r5D$ zs#b<~IQelHik%YfgeO$?PEh;K(kcu~LhTkj=ak3_qC{2_C9;Yrk=1fHXpKBZaFO?d zcsaii^O0&0$FOsrPKwR~&2|x9P!htuAO=fbaRq*)FGSHjs`hmS@k3t-WHv}oNFC`3 zsU$ri^`s}Hf%JrgNKeQL(i751dP17)`;Z04evm+&5W;P79W-u&bO#YEeW?K0uhxUI z3GCT~&)onz=LYEb0Ny0@h1em0RhTG>6#<=ATo(f$bJJEMN-qpMVI@kaKkm`*0rpAx%Zmru-@Vn?H(W}hwvI*0d$bJN(;cL3 z1SN_)NSiuUdcsFin+Mdbm=w=}2#< z+CZI}wUHeas$v9fO2rahAs#uW5gJ}G+?Z(W7!D;u+@jU{L<63Plao_dJUPj1#&-fs zetgC{!)&(QK+R*B^MWkhVE$ywrZ}AZq{=l@GbI z^vGigDvy{`IaHi^u5!z@)4I;=QfS z0_Pq$9sw8`HAwh?MpIlv%1LQ(nvIs6jYp_v<-pFzs7{OG-)WX!kG{CHY zX<|MQs&&n=5u0P1lMaoTixxkUo8Uxb55b8jUgCiOU+5PDj%UFq*BZ(8SK3vkPUe$)&z@#%`;r<4?L`|xF*OT9>9GwUvlY8 z1Z`wc1T!-}vxjRd!b}L=HC#0gNQk@&O%*vA1vI8c8V%c~gNML;B^1keL=N`ks+r00 zJ>n8!xPBVw8zMDmLOV^a>Y73`s;j88Das8ZVp)5=pAX~7zPy@QIsq33n@<4OFQ-cL zCQnnz(m~Tb1RX?Frh}d4#i35Kl!D-GolT^_k*R1W^L@<08~Mu}Q5r3Ka?z+3>vh&1Mr?9TR{_dr72#!xXmzxc7g3zbFb@eSf<8}3fyRR_gb@g`j6)!vXT;DlF2RJ9dKGCfcS9*!7q_U)w zGhs!zk~_N&NH{wBEz)IvvY=F02MJ(A$LT^)m+Ew>UY8nlDWpp)bg5C7a7fV%H7s=Y zAgv^5Jvx2>v>rcrP!V&NuJmvw^*&wd*QGVYtqyIW$_8E8s4JTs+i;>Wq)R(>X}2!z z)uny9bU;@Q>C!EnDg!dGwetzYF$lMx!RRNVWYxz}GtlC%?SBVxy!mtk!E&^xY z^4K;|HNf&ou>A4>Rl_E#hAmVLQDY#x8a7(hFlbgocUCoQ8V)WD1z9SHYS>K4q8hd! zlgm^?lzT6!hOIoaR1L8@QqqG^R2i{)QqY4Ns*+fPF~o1EVxXF42fqmb`U0wY5QZuT zQVqDG%Gu4YsB$3N06(gnz5I$Q=VpFIm9vjm4i>kHT8_FoD4NJYs+)txq2b1bp+-`n zfmN>va6|++LII8#w+=Tg3^h>zEQdt^F4*9)L8igWhK-To=7phV3cz7SD2bSeAw~gW zMtrzsVW@=yWU;S@p!Kmc(b+*3k!ZqrO{{Z$L|?^1n@=%zz^zI_M=foNNTV7!Cn3LNg9=oe?n7IE66pdKD1<43DTOJAsf4M5si|XudbkZB zU=p`5jqWD5Fb(qd0dR^k$;pR&*(JE;-Gg*4jqMoDrP1CL2JL2~MVjdO>9L&}JgK>{ z*ojF-#$tLmg;iLaK7=>G{yq=p;#M#si6I%=I3cEj5t$FSX#RA>t&(1rF#I}6v5y8{ zqM(~H9l>G$urJ~3Ad5OhMu*G%73h{+>4-(T;N8Tf{*K6$zb9)6>5?|F`<9a4NOOr5 z$ud++jT0;P31_Qt28FXRpJ)lCbX(aV+nBsjoij@iHmC5*k|+!FgM_;KZyarMrMW6j z(0u~uEqr2l8kzSSV$Y$6v7H6>~LbN$qA#D8rJ(-cKkrBFOti2XQ z75L!k<_Szee-GN3NkwFnS0YAUCw);jBVEF8kz2O^1%WX_l0QAbDhE3ijgDLubz}*F zu``>%*aJj!AvYW8h(tU&dHJ7F7Kx9vw@*+O9bm0;*aMugs<5P}Wc8IOi&&gzQx>u8 z2XWD<kV@+<2!74;hF$`B?FF;hr6}r=3T};xbt8|w|U6jCF1u@k03O{S7 z;994Vjw#JC8r@s?=-wK`>Rty zM8K>i0%nj1m~|vdSx=&r4Qd`K(*sgwA(1jYP>f0R)3Z@8NSTF1%H&=kr;-bCF)|!40!Qp;{?ywGJRP=zVJ*FZ@>j@Lq**xk3GHmlGKr%+XFuvwdfAeSo zD4jMS4L1?oaIFNZS%%f3z-m=tt<+$Z=-3Ff*|8A_I<})YPFVFWSPky&*fbqlQFA7#`HlOr#EaLQ>*ImT zeBd%}C#YJ)PE7z0+~xzfF$`=GdO+;}4?N}rk8zabor`b=4_RrdeQ3xeRFh~ea8mAr zZ`}Mgqj}$E+`RWEf_MjSCW38W1OQ&*8v%?{GU$t_M#U5U0V_Bt1^9?R@?GR%-WCxPT~a(pJO z>As~re{GQo@_)hMm`)ALER+4qm+cn{cjvDJuf5L7=JK*f=T36zH|NpgR^gXS?dcTT z(^nRCBfaKIKWR_L!{IfoJ4>Hh?vAd^dYr$jGnXq%*36k?Vq-#ex<(4eN5_L#{7~&P z<0qz0jVrO4V_?^so<4r&Dq$y2o|?MzT8h*o-3}|?No?Y}`((-taYca?!P9~glYULa z1yWmoha;Wu>)h6bNg%7E&j~%?D$W$OQq8V&oC~{>VP(ofyC`yCvV~X{b3*tI_!U@& z_;d{uX#r{UF4VOmT?2zR6m~=DH`uy4T~1zsX-%hX9>6HjfgpS0lmaOa?BbNi<}5?^ zmX@cxHG<{_x?3|V2=H})x%KnV_KtzhhKbt8kN2S68pnI+ZW=4tjOf6QmA%!Iu{Ep3 z)~o?rv$}lk)eUq27ed!g@9G*6tO+|f+SL(ITokXiic^nPI`vouh1TM{u5DOr^ABm* zBCbOC`KV56O~J}7w3@cVk2Zq#c^oKp&}>Js?Lcgti`zq7++GH@Z8Ns6bZp(3*m@9K zA$UcIqljXoL_#d;0+w5c@HH1wk0b;DgwgxK;w$@n7LDJ-V0eHdjNeRbN zx@fFh2+l{{czrFQqy5Chd%Ov8Y1y0A!r?$7&_Nb$Rtu1V7}ff5n3x&W4$Mr(P9B?s z$m>*^D#GObRDMh8->WS^cHKQ%cu zm$X2X6rz?DS;{!{YKuWM@U1J}ph35zGV2hrXL?u3e z^xmoCXO2M?S8?tw7-gx}+-B`zr#S>9BMrES>I@&U8wr zBhs0O-K^5Ebc0PSOV?*!W5RVOzU!cASIyQ{C0w03nsa2%(L zv=`=}22cuyS&r0=VSd8a9Q*S~U%xBsGeK&zyVsFUOX=?D?Yh1xuR9DJgT9^~n(|zj z^4z6vyN6GC0VO@rW#&Gx&OvSoa!RtF#5Wy<)tF{#V|7 z8C;q2N`#PgoF8gEy4H&uumDHlV5h#7^i8o{x_qZDpU~wgY@|7@463sg&CbD|binuU zUuCMe1OQJJnlA4DKYMQ;AIEXtc~2iRJr@Rp!C-I^BuES{UKrc}Pmm%(>Xs--TNeFT+=iTIevzzRZ-Oao1 zyxD!N~XG&vQ*fGW(_cOx4t8o-=6>8VgXO*g0{)*&Lb_<9kkB|=tKiPTJm0ky6M z11ecpBVLO|Ej(YbwSeHQ1Z)EA9X2G6m=Zgd#8F$IzGLAJ62~JSGC|^Y?d!{z(bK&C z(_kzapB5yi50WW}OL7(g>6hTz$+Q`HmEB*M z+qPJ7y`uWp6ncdorqL~LlL56ZK_g3ar^rY@I%D}{h;f|imj3F?qlkg9mJzim1 zfaC|4OBp1;;OUNBDoYhWvpMdI=NT>7y+mo_mAtn zyRQQ_YQSnBRd1E>67IQ55gj8c@PGROBK zWw%ofDmey=#2;z-rI7JYy7o5&%xy*>;hM#T!wG>D^JZOJ^weE9E?0}?n~!@3dm8Qq zAoVnilL!cKvh3Yp*;8I<<|I?bU!BeCGu1Oc>&e?Cli%9`5akEvXYgoeK+z}^WyhzdKWp!Zsv{_r8jxg z@5uA&EaacPpw2`+Uwm`D#Z{PS(am=Fm+N`G-=<#gFfV9Ca|8Q|slI?0NN$GENXQb( zuXL||qseOPE4KF)*Yy=U`ikrOiW~ZhoqffPeZ@^&>muYkd4IY&=ppnH`ozglzpMps z<83#HBIeuSG+OTvCgTz?A)CVzcShbzJn4Lhct`ZZ#5-d@OuQ>D@$Q7UDB6>hcyFD= zQz?n})l0lTE%99q;=t%YM!7L+{J7!0opt3~-aCMrTWaRHztfPnR0RGRK{HgYZC=JO zIL&&(&Nbb_XuZ>L!(W#|VVv%WYnyk&cU7y&dnuV%YGr*9k4{p=sjBDwTt)YwT+jPf z*7E_wUzI*&RMzy9{Aju@v`@4|qTUZ0deQMdtc$3fgd#9XrAUMs{EFeSAhWjpFb?atEyPG7wCnxc}&6f@D6L^*3Ue$Zt#39q!Kg-D(#u&jn z{z-Q2CRsR=;_b<8QYB%g;_vB(ECq}3Wq(W#{R{OT?w@2?5dJ5ApZt|U)}_lv@AJhL z?}`Bzu_^oWOy8^A2dll!3YzskWr)o)V8z)I*=|-cEl%R*~s-XoP0)38j7^ z%Zk|E$e=LYiFqN2Egq&6Y{Xj>i%jCPf=S4>-OqZ%Nv4k;{ESqbR&U5>iegrZ1~m z5mm>(bjyc|vnKseamW;NldAP!mBTu9_*FSfsl#8B!+Lf2>vE|3k2|KI|G#m|$%Q8- zwWDeGOiikeZ^+%|)ZuSdZv40O;KCqwQ$Sz`qn^MOliMVl-K)&)ymdKvOI~4J`hB{f z#zvUTe^414+$i~D?dy}qe$Lr+V*GpQ-LSX6VOL%*0$QZsdTuxmetU3nw*$+ue0;hr8b0;C8AR+l4nLd6)C)a|%TL zc>e$39-rv`H^gu1`M1PR_WlL&Oy9o~hfZ!Dd{w#43Fap*og6o>2BF*gbHnZCF0Dqj zsdDw-kRh+iLa_(GP8`#_g<`Mw7jjJR7K(k|zmu_$8d$J#>g4vjxJ3hHRl1zUZUG-$@Kc)n4D;YW)!t(;kuu(YuDrh7xVzEaerPM<<{%3X^P{+r=8$iw>YdZZa~H~)2poWYDV{Q$(kA62j2$C%yUVO-RdValhALV0|*de(f8 z=D8fo?&YTcL0$0)0X#aD*McRpYL32Bo%p3*#<@rXD~RkrG!_1adb9GOmXEXlyq9k+ zz9p&@z&6Zu&TJ@cC`csiL%}ay4+a0V?6+$az{-d#z7kltW!r(H-`Ny;vhu`SX z80?(|L6OO6?o#>kfDa#|jobxeW>pD|EE87t5m=I+6+i91U;CHm>YGf=>E6_jy9Tl|%@L$jl1OG*Il39<~0#PV%oWxR$ zIJFc5Uea+gOZ90`C7njp3_>uVDHCfla?OMmLMx$-u#T{v&`H=t=mBstW}_|!Ut$VA zPQ(aVQ*qT~;;&}MH-RgtI^u}nBe+o)x`)KVWpA2@9gHJIDI zf#vH-xI}n&DlFefadhJ_-?04123*q~;723+MN1pQmXyFp(~sP{pjm!`?t__+rBW&`SI7G z@wff<4bi@gkJTO?M-FoMil7ALN$;^plKOb>Xnb}yYJD1|3sa*3eZeg zRTmhNzRm}y71y3WH-ED1>fzSXC#@VDNU3VI;%>XG2%5I9BZrc4q2sm>aDDC7l@G$- zP-->n?f}imHYQ?(2|+6}bJ1{fb2QqbRO(vW+Ax{f4q6#2pN8u&tWBcA%noCM)X1&` zSYr-;e?kLrU^jyroid#Xvq1$GGvPibjK$0rAFU%f;3Nti%?A3;gAS^6=9ptmIM!rr zf{kW}W9?L0&j1^Tm(W*EhMa6uF4vlCYuk){3%gndjv+eH!^X%cVSJY{vYT{|(Xn1c z-e$WfyM@-xihePRsBLtx8?kuTK$GDd!pTBnb<1LIhq~EN1nQ!f^%=~>h$CwI{jhO2 zs}0C1*{FmmRV3LyoVtkf*J4+JGIJlyLU^fK3u_Hq6AVroY@$q*5!9(7tDkJ4eNda=aQgZ6$!*xt? zA9OZ*$>oxRqwVwuL_um(O!%?!oq%8@c6pPcOD%vV6tBQM_&-3@%?~urLxaM3*aM(~t_=UHaxJES9q0{+8Ieo}ecd1266AeU zEJm&<=!=9PU0_TiA9Cm(N$g+n4)RoLfYl(DOPz(8jirq~x*8B`qDs^;C;q(j4*C>( zcV!3Ne+IkHYGmpbpDZq42vDh`vnNl2f%yEX=(CGwF3zKt0?z?*_3Rr*9GCkb#PPWc zh)HM9_(W>?(m?r0b~K-oEa%;Jg~3F8m{%NeAv!Ul#5)8w(BSyk>y!Ucyox|w6GTlL zoI{{y0}wS(17k~3Av)KDQELK14H&g%A4bgxPYH6r9kPwvpsD%zX=tigim==%udeAM z_wP3<(8PHZ?kl*|d6P4tFd--HYk7+^oB3pzn3c8ujiZejqF|$!!TZCt_-W1>_-T$m z$(nCrhfupr-#>pT*eVr?wkC+$z5Tb}bgL=}cFHOwwS=}wc<|`HqX$#!_~?;+4?J=o zrz;7b$Pra4Rxa?4|K-$Q)xFeGe!eQlhFgxGP%vXdcUCaDJxNldJyL_GcGv5E2rJ0W zs#{t`ayFc=Au%Z$yya_=mw{J=TTm%g4b_sC8j(&>sEVeHT{w3U1r5q4`C2%;Ale$7 ztio@*`~*G_^s>e@{ZXI`-EfD zU~B;r+p3=E|+aZBsHO(sxSxz-Z9Vbz(XI9-GEC zOK1xS1(~L<#J$I$tjD-VF;!3qYKnYrtRSfcsB2APmH@{m^WPaA?a$@&3(lijbO(H1RW%LX;M)aPUGmiyL*df=rBf#ZK+e-| z6os<0s%c0IO*QPO%B=3T-klOvS8ux!Kz0koEq)RTV}Y_=6)FAy4euRIsC`r(^8RyY z1K&T^w!7B-m%kWm+xs_jfBF8e{N2CX^E*ad&4e9NDE#7qb1$3?J^h9~SZRbOs)&a& z(=BoyFCln<)gD;mewqBJ&zZk7Sy@duDkS{aQ^mRYGbgFF)_`J7llWUZC4EXP-eXS% zkhacKx}zzKI**=vByeyVe6n(D1Jd`XL}EN&rc-c9@L~muf1x;g=F~ACZ7H%ahZ_{m zBst!)c%CLT=>Jh6$4dBQdVK!koc~Hn%>%lOLfiEfkgKwlzku>jHL(d8&~fw3ta-*Y z&lJrwCq;fEQXXT$JU?rmcg^!f^ZZG3_L4dKVr*8?r~Jg3)gATIQm++HzOvT5MF}Oz2@O>a0^IaiW=Pz6`d^W=O>Dx-1_NX_*ANAVdl_%r# z9s|aJJfPa?;rrTB&q(Hzd>%AcUb%r_c1gZ3FjHmqTw7T>nAei;uZybm3*zh|@St$) zwpWkK)wZf0sNX7QUh0QyUsAua&d;ATPhK)lzG%+RnjFu&=6un-Fl%0L%?liyv`(J7 z=&SXse(7fPl-;K%OnG*ORl{QVbD(xeRQ}O(_nqTS37?TTqT*vZIbJ<{>cY`;kIVhn zsUHTTQ2laL*BD%{Q$G#Ps!Lbb8C(yAX1dIcm#z=OWS<}@-M zdsNndS@+B-`8<$qO0>rdqZoE;e`F&9sy{BwB60fzk|EKU!j+~RAW$OU>n%~LvNPvE(z zHt)DSF*Y=qQ04Tzv?s=g$Ez|ZF)=ck(_L9Puk6X;!dO!MI+#R*h4IP3Wc71JUmpib z+3Hfkqvq1cXdzo&y6V#S@K~by!4D#L9x6kUga>ip9Jo2S1CM`V6jK4vNJNJ}ma}s4 z=6DoNUYn6iu5GqUFU?AE0S==2{$@ng_C7B3y`GM>R4@#B~D2kt3w&DZSd{a ztb$_=iu)03*s(?&Yt*se?~gmSu=pKI`1_8v%ds$j+wE9;9BVK5B#yPuvG$|zFUtPb zVaK}Lu^x1+ha79OWA!UU@P{4yh+{qCSVtY}QOA1Bu^xA<<4!EvF)3DcPP@s$gcE+7 zW4*(%mWA$!OJXM1xG@xJ>B*>r5A|bvheVU(v}|b@J;v`3;?X-S|xz!QawnzYUP+5ezZ+8QWktgMed16f(Q% zOd(AIZgeWN10FOM91}>Mu;3txV8KD+V8KBWtyf75Lk`a37;=y#vMNb7siZEal2o%w z>RVKjZdFM`n@Te6Q=uuQz$SH;?NUioUM0D1l{ELLq@`CSt^3sv+V0wiT&w+n*l@1P zhz(~)RBSlc7xn|uw&9@o6z|-*AH9u@)B8g)W7DDifIM^^-XBUB`MdXrl1BGE`$Kg` z&%OIXDWmtkeW7}z@BV!#UH3n*FVtXcesEtXV{Cb7U#QX8`tZI`*4P#@HclDzHDojy zrU=ot4}d0tPDj*dz4JZDnH@g;H@2V=px7ap0};U-0RBRG8!ai74rRn(Q3kt&y}oy8 z8#_>N=DaB%I>_GIpw9OJ9Tdjv^YyuicNc!H9q+)k>1e25iGj>0Mi$*PcNpQ^-Pcgw z#i{_H0yO-umFm&U65ZPjZl&*`Z@8V;h3}{E1Gg#sAcbvvgB|{AimH!@U1+@6)K|>) z6`T8tEq%q-zA6=Ibo)a`(Cs&f+D)Q$7Ey;yv_4FWvfiC5ZZy z0EKO?BifQW!8p}F4Fp5_C5#Xnh_+{l1{z-ieSLW@3)=eixh5dWZp`Jp$F8~dT(kH1 zH8(uh;vKu@M&??*Cx$0C!cm5GOUlf@Flr zhRV1hsn!xz22om-b*fk1*kWYbYV(Cl3y$W*-+}nhQfR6HMe2;s+++eh^!v@ z`P;6!jbvqYRxj10ciHF&zSF20pO=mD&6fx0T`CX7zw!vZyHct=MDGbomB$E8bWwb! z7cL&AxWV_SjJRYZ$>{RXMn~0|5*QYck@tQ;Wl#dM0y4V24;Y7HD4bXI@P~|RwOyp* z59_?3i`4u|RVmd)D*s5il-}EX_r>Xqq!E`pR;k0v_5tY@ZVP(!DL9A;5N zS3hWU8>Tm#aucO3ygWDj+16I z)G=C<6Xy6Ldf+Ij3t&idWqzZCE;%ig$M@-=O!?vcOi-r$@IF)h@UAe%KU@9qt}w(u zxANir{K|*-StETxsZZb2@+AiL-qv3vzOU_9i0^OzRpJNMebw;3pxVAc_vBUnqJOrY zvpVlfGI%K&Ud0$}^?p$XmW-^nbPz1dproDE@g+to$fYjpuRcV&$jtHHH??6jxEh*00jnRR%B0 zI{#Jr1{rNqqQifcep6*oqQifcehVevLTOO&7)!&SeN}W$s^%`5e$S`HNe9cBELox; zEs&wVZLrI9y~6YU9XaZLh1cfycq!AL{ao4vY@aPVuAq_n&NTjV% zKhsFxN9Mt-s zUEjI+@4s_%`nxwj{XO|3%ljAHYJ_E3Zs1=^w>Q1Q4F1FNt^AR?u9syg^T%=}{|alw zwen3~7qE6QjSL@S2mMzD8}2vdVxg3nOL(v8!z6}{-_nP5;4l4&K1|J}(56>q>p^$_ z*ZMF$m-hZtA2!T2pw3PGqJ#=ypp8;I_5V5D5|~pb$o&h+{Y&XAxzQl^KS=I>B-bG~ z7UceC$^C0`1+oJ8DnYxjy>Cmdr)DR2$Us!q5{e~)Vt*^e{+nN{n+IM~EGc%N8>#L8 zkz#-67u!T__$j2)yn5@XuP!L~9Vz%-zhD>jQIKl8gMz6@#t#2km@40e6|4exazgLH z$aSkStlg#zYqwisQahjwYm4EJaC|cIQQ}jM#HFYh#h#A6N<0_;1o3?0lf-XM{s{3i zbw5gcCiP>)&({CA>Al-j1jT#MVc)rAeiMClh_91{iw;kESGxN8XRtBxzx*1)cau* zqKblU)O;=qgR{E`Mu2fc+%IcOZY_Cj_^5n0&5Ve~m3j-{b)vdC+Bnv|8NpmSW%Kv-8`=+4N=8yKGV@eN}9Kq>2Xb3b%v9qvlUB;8)AluvcIk z1Qk@Z=Q6IJ@(a{syj0$c=W@yc(Wg~kn!TU#%cNw(NlPWtmlp3c>Ux{^v!r^DPGk2} zuH_07<>yUa?s}Y(hreVn$$vqadY=#d0<&?q@j2o>ro?+KiKlFdp9_DUxHa+x;x^|C zruR8+na9qwSo{_P$YW=g$YcNfs>l8X6HV>XE}lIj;b8JE$NJHKQ7)}~__MpbFOhGo zeEj79qVzl+<`d{iI{szV@rBTr>C{EzE5wWDS4{6Kx;^HkG=*!?Uy_XL@_-RlcFC0P zxlCohERB$zmuxlDdnNlTn?LzdRBsy1E-eU;k#jb9_)Z2p?*{hFeXmZu>EUXvYh zSqOx0dB1MzcXQKqUYPuit5>M_28UhOtKS^fqD)Z#*Hry4hQ6li|GKLG>!$bhwd?>ctc) z`d`SoyyjdNBKlvN*Lner{zDn|tn3$Qdi_WA+WTYrQYh`=cA88dq}E0`?2(xxr6UE2 zM2Fv`wAMg8is7IED@Spr2g)4GiW0Q1uWtnsGB9dyZU|kQdcWZ_`Pcf*8wPI%ERZh; zs`L;EnwEN&MNKONYFd)ky7o`=;}hSXNX-{e=&A*OzYnPmru>HtI@MsHl=V zksDP4Ck~WMFY=VMybxBga+nn@&7VCfjCc)${nZ{ z;Q9RTGTzVXT9smwlF4a-1->`X>_T5PqplqB&+Y(yK!U#$VTR7y=PsN(gNN^`tf186 zBFv~QrLr^<+nRT!IpOBTS@WW6UM!jyPu6MUu_LESXHFF_rnG~UfRCNjr;jM9qW}{H z!nrCzp8mZr`nP4+qtBi@IbTBNXIv2Zp~w-H&`t~N5X%K_Sp4*O4aePg$nMMi5I$bS z`5EH8pf5@+T77cdbYHBIGHNBcHSb@`nbcSZ1FMEitm$l-w_A0IHJd6y ze0_?3L!#)X#XLD1L66yNN8?J&lUP&CW8M$kypr@JankD8^$wCAyV0?;j*Y)CrekUyGcOk@jw-I|6 zj>h0#^S?2>VF?LNt_$a7@R4#45gs96{+l}q!?*;ca+(k4xlrifJX^OJ%APTvJxe%8 zI8S(vaDlKuxJXzeyg;}_c#-fH!b^m=65dXD2Vuz|df9l7VLba@IeedC+;cCYh-o8( z3<8L#5aNbjIO~WM5@@C)k-(zUimJqpsU#d%NyJt%0q2ki1ENhL3=k+O+la3dVL+l? z{Iw+81YD}_uz*XYnnf5;4*+D`NZ-8=VF1X6M$))P`1zT}I>pbot`#753@c)X|5yNw zFrDmNGQI^vI0Ss7V{8_DA#~M5-|Z1YY1G>kx|^?ylsT-h9i#Z>48zd}#LL_2bM(V- z^yPdTyzB_ZmdhmvZvFsibS?_w@^UGL8`(k9IM7H#x(R@qm9!w~4WmWK$6MXY*k`x$ z?JmerU35z!30=QYN=?@r(}*uTycpXJz$q|)Ww;36V2t~MRudx50*$!< zp3rm?vIKD+E9R@=BjlsD=)~}sQiDJ69*ia3sv|6-)aZm`XpsYdEWD?~p zq7EBH#I51`kq$(NwmU=vQKCW&V4uM_8j3@ShxiamJ}ltM$Q?#fN4$Gsb}WALS}7{u zLoxXtit|0>-G^+1zJ$eRN(tk62;R~LLB|T0I{EG;*(l$!0ty6Y41@=@8(?`*01dO88FXQ7K1x%#DdyEgG#*`o|jW!6RbB1WVk!T`Iw5RD9-w8QHCsWNc zXgj9mE`*oQT?j9qyU3Do7foO_Z!T>{voSKg#Z-sF8Qx-EaT72lb6^hTB)7CRC00jI z1ZP+yUlAVjdNSV>WWJKbggQ8(gsR|4H@D1v=e!wJdv1CgA0N&B@pg_|yc2u|H@lgu zAR%S>@>maIvt%?%MiUtuyr;=%krK_6xIEh_q8KtL(M*ZUc*b#oD{1gfU1wO3BYUN5 zSfYhwqz7jEMXUlik(?Dcn{&gQPY?1!%u`LeG^7fb`sMHna*Wv_?v`^P%(R~O&Z%2sr1{-?KI}`K68O3s;T~JP^XhU$u}YXQI=jt# z&TWPLfD8vdEUaKYJDW?Rmv6vWXod6A>RnL%SPvVTVOdZoopRFYUG&@AKr?#X1=Yj`X<~zSNu6wzla1bs>c-zHa6qZQl{#g=G+Ey-(AjKbJD%XaNFISo4m}Yt(t}J)twNz3teN%_>bj%pkks*>p;!;`AK4Qp}z#WaGK4FMxYRv`iqvY!q?uU^)-e!sWnDM&TxR0y%%U|TGm$+BCP^Z?oPauS< zTIBZni`*ya?(X!D7)ZXV*0~=M)T9Q4Te8yC>y_@uDLIyrc)U^KiLAtXntp*N=98@0TT=)y5R>_*lQJa*KMxeApu{W5q*~^r_@tU$ zSGcAZxvRSFwN|-L(W}~J?x%H5)j9`Y(~5--pr#co-DmV<{CPvxI_NOqf?7Unc%NmM zZJAQuFEDFm?Te_j?{jj-wTN2#KF{+;;v{R|7o=uZJSkl2*UR1)b>6W2MCT17EK`&J z%ScN@sgI~Nuk|a2_Z5AoH7gphLcszCUXX~vkcdem>k*-`fc>&Q>y)!j4^fz`6g6v< zUxO@3eholDNevt1Hyee_E0Pp5Bx!c+R1u5a5m9^)Ol+-8MV2A&^&Dw*wNv%C%VN!N`Q3kq`1!tLe zC2L6BWJ;W~B<`>UiK;dHuZV{u-y|M!zG;9Uwe~V{oqWBF+>m8t{8bU7x#8&@P|mzlU&XH%2OwU(oqU0gj55_8`U}*(;)p|ES)iX{rK3s*dd+_9qKpxU>hS z6~X&+*{y>Br~^gH6#<15Nl|34n^Hyeo}Hpd3h5j*Pl*HsbSQZd_EYtLmD`_k>s9G) zb^G8%-RAazj)G7q?c@Do&z#*SfKiy&a8GermASMZ?6tel7y>5DVdvw$b)!v#AV&Rn znSD+)4XUfmJ`v{$Ex*R>ld1Q2Jld=wag!-=&XTyp{(Iuq@OOxZBi|(+alUIH6iv&ZQx7SjKlQ#_JN2ISr{4Fd{n6MGob$)x?;?IYA@Q-K00JMcllY0$hfVK$ z)l=^uWRU$CuBYA-LMc7<-YH@V0n%rvm~(o<`4j0~QmT3)z1x&^TkMJ6W9o@iGm8Mc zQnRRL3jKgoQayz}V9H`FQ|N=ptE#6^?Gk)drqGAX+9_1K#!@8ZeOMY$Q|J`{x2T#; z5CIo6Ncz$3uVwY#M=7`FoB$E5GABOCocNeX1(a-AJ}6%mslX?Y3Pef=4wt3NmiMEQ z|6`I*Zd}WpEe~m3L5b#)5wKB5hWun8S+I~S+&6P?>E41wB3Tf(s#>z} zpZFlDNERM>=G2)}7tfs)MsffF^bX&nK+Ux`&Z9teGsp~l1Dni>?ELWSb`Vf)Xj7Iw zXpVgJ5ge(>y=w1j_9M^CpA9b%EmXWoMovACozFsSUtmPN(g;3YhE!Te-~CL59VqqI z%~xeC+=^wNy||j?zmTal+?Co^+Bo~H{pz6^s6J6*j|XO-JtfTYTG2;~usY>ZXL0uI z*>e{=-BX=s7tfs8Ud=k!Vu^Omgs!f5AP{2st}}fe|C&XV6}i~4M;91uX|g3aSlPC6 zba$)fwIxHTf|7tM2@u zOq#m#%uv;p&pOISlE1P_B__Jno$d=}p?Hn(p}VA#boE4&F0Ze>zOoUY3BIb|)f2dR zjcF-WZ@$HZScBQTRu$6S-ZiRTYb>;t{f<@LT%#%V{HqWGx^L0T+Se*`z6MW0`mkwr z*2>Yl)db(i+=@aUu}Ag>}eHRI!|K>5YAM+zf@ zx`1?cgyJ!&LA@vT$k^zxDqo)7_Q>SKP+Ce<&qy2O!-;0eU1I{+qvIpv>uzyT_i_xA zq>PlPeNgt;`0${rwl-h?Xk46NjE@(FlGW4j4rVfw1p!JJ9s?+0rFW-XrsZ(B;^m_3 z_`*MkCJcM0xO%c<;#ksFjwP|5!M_1>HH^wHQWacb#2duh6M_|7%_CT`%2qVu_6cD~ zc$45cT0LSZgQKWcBSlEZ4p}57L9(!4d59!Rh!gN!i3Q9t$9lrC-sD&_j&;JZo^~wP zu}(Tx$+6}f>&=dJ#<9*i)_KRe;8+(O>v_kzq&#Z8gq=<7B|9xbj!>u#u|uwFsoiMK zbrajU%}c!;Zy}E429~xO(cJJ-!HDN3mPU+ZZr9Qz?7cn2&AEL`dyRDNE_FP;bRd+w zTM14&?lJDYk8nTX0m6fXhY3drj}VR$9wj_RI8Jzy@DyQ|P$ZlpoF>c@o*_I-I7fJn zus~QOyg+!7@Rqk4_r8tv?Z(8UV1RXCc!8xt$eIduAm9j3h1P4a$_9iSof>QivC2ja zJ+SxKqzyf~F!ZROl93P}9ql0_mY+g7(}?%z1ZxcHO!VobUu7mYtFyW-B92LI6>&`c zHWA09w~IKYVL-$&nSzL88V5xjlO5WJIHqZMA7o)}M8q-8qx-PUXc^mwZAR<3*k%Ce zWz-uJBA{tsm#z`eAh38<1T@3Yj5vS*Q9#5pzI8>9&QJj3IGYHAXrxNu%TSeYKr~Ys zI3H9QF=RL@1K)xwBZ1>gm7zRkQb!%GBvb~_V5&qt!W@;6E~QmQ1AVzWtvQYu9fy{VTLq_jE!nTPA8z$7yoESf8|q_DgFA zq_qRyT`O8UP~93Io_MU+4M_vM13-Qr@az8z>YvWvqyam)r+ej|Y`Ldik<+X*5W;kr z_j~u1Tj^8xbiZyTTy;U+As>Yg5!dkP2l^r+lZZ|G5J4e3XR z`8e{C&TJGROlGTY?eXf?)IA;34OQ;x@v3_|uI?!!_jHUwJ0bTJ!2#OV5SA$0jHkV) z%Jpwock{Gzh~~VELo_shV|Y90;s@UB^-BFui%+z_^nIeaasvpJb^WKM{wVbqLZ@Nr z8uQ*TgvtCRQ124>PJFZH9pDL zyth{M|E22s-zN3PrT(WG|Cbdq+avh zV^p>BZbO>+xBg>zuOaOuq@8oL^8wm{lN|a0Z8RI=iea7kgTx)y4;tPFEA36Gd-@Q3 zhWe$p*Dxeuc75wQGntmvLkg>j4$6dc#utYgmp{HQvW<;|~JQM=;Z+3rkcg zW+P$gi!2V|!~7!X%rc$%F*O8r!4UkE8iE6%pHjUL!mf*qBK#&s05gz+n0}O6FcHW^L$I$~-jhbwa_!){(0h1B z^_9>4O*1=YCQFkAiR5#Cg5T@U{Xb!Ks(kLxUc|xKz&?o|g4PSZ`19JNf4jQ8qjLF~ zHwt27K((~9+!EjY`rCG87b<;KUrGMw=N;%~Oq&ICVfJD|eG=$8BhxAiA`MCu=j@R?pF(mEh8G{dFnd1Xmy=`BD6E8IMA0IN))CT#455k8OlTu? z5H@TyqMJy&jC2xQZzE<*QG=q4I1|bU;6+h5ArXZW>|*V>N`x{>YRV|3DI*eQFffd1 zAx&a&tC}qSo%(U~c!=*!-%eH3mlf1&TF{p}ifiFFmc#JeASAgUk{Ik@=7y(|F_ zU}tULcxyCppK`qEGtRQB%H+pJRbYly zmi^GF3q`n3+864r?@noumf?QBFIYlhEe!I7J2W_on&RLDJPG2Ju!JMSBUP}3V};SO za^v7os&*dyW3UK^@K=d)q{bo)$8(A1L^P?;rt5O4+^w((?YvXv5g~@31GC;Sag(6b z6-|~)V5f6@Mzd7LV;%K;Dw}06!flSZ-LVH8vmkiW3BU+PDADGaqmH@TF%=4-Xdxbm z-30{U!3bX!tVhuX@N1*ZAuAP)MB10|DCwkHIf|@XH?-8TzI8+A#!XT(K4y$h5GDyb z2s;V82zv-qg#FXT_#x86M(0NPG!?mnzo{rD636lM1ccm+$VI(3LK3^_^}nWNqqW-Xsy_@=mH zc9yTt*71Eh%Uut4XxMBI>k> zHin5dMTpYQF5s=BAP(eXd$G8WqX^fNKoPDtiI!Pk-BGmruyapi*R=<|K)Q<%ErXid z)D7i7s7`@x@AJX7MO4^W%FbrJ{fE4RlmITTNxpZllW$11@6{0)m*+zUKXKj+`Gq(i^O&&iUn-ETV%G3Lm;z_d-tl^vm$qs3cdRe z;czck%3+QsotbV1wmX5QPBefZtP@%8BXVBiu+BR=)8Zy@yNFCIkI8f06;)KB4Pq-M zXoD@L2*@5&`SKh}bqIK+YmeW)YsZx2G^NGK#~F=LZuW`W|K?5Q!SZh?y`LY=_#+gr z49khz*YnhhVVPypl<^21FF&(srmNKD*U5a+gvNd}8P_5-)?iE4P#uZz zcZA^hu0-FHsEP;y89x+ybc;`;27CNkh66#BYY-#10dLmM5FWW}-+c%D!@~#n9a%{V ztb%k7t6zj4k;3o%U*X;3He76dj8sx~yal0F+Rj8)NRlV$pB zczAHA{WdSvKZaNv9Twr$@URAsj)fa?v1mpSYmK>VuIE<3(c6VsvuuUhh0MZntf&Y@ zEF~1N>SAfgH=)<$3pdOcE~J=z2oJ;D~Y8Bcw--&07>f zmzfIjWo!Wzg$HoER}pl5ilFP)1YI10F69$+DW9NA`2<}Gg3bs}hg0~^G9uHFRD{%- zcHjmWW^_85iju~rW2qQvd^(;2t3U|A&D8|pbD99`fdC9^0hg{O+6uDfqoP`$QNDF?=Edg%}Y>;eFr6IEN@1C8~?{op2x+ofA>$%IFEa9L~i~ z#PjxCoPF025_0R`q{P{^_|V!aRvwU$+po=F!69GykdQ*GC?c}X8>kSGDQ^%Wa!5Rp zl+vXJMMP#45eZ;hWRW_@q|WuBF-SgxsM93cXc29)iMqmL-ngzCsuE(dZu$Cbqw*BJ zEMB!Q-{5SAWX~Y!K*@(wWD1-@w&Gu$Q)og?5qn&ABb@G5)MsNj@_&bEeXp>6n`%`I zF-55-qyb;RjswCn1hLs~5N$AtHd{nnY@)4UqHPhPoHK=Ha}<%pfcTg$h_S|?U`h`q ziH7SQ^w2`8!-s9u+rM0DxmL=Q8u3IM^A2drv@v-QD(N63)(+BXsHHaPl}~!MmD({< zKCCFBw$i%UbwY7UnNr7W2lS;rUXOO_eTTe zS+C)&8%66+Xvum-pqDsLdPmi{!ldTB&U;jy^PzBAuBX!9ks2rJvCo)HW1q33;RF^K zofr%F6zfJP)-+ZZQ8Ymnt*lxR=;?G-D}p+m*2veYl_%ACxfMu8u1kXr-iet_6lHz| zklGDGa1s<7T|4(d?2dGBdc6xPrk2ih~J^Et2YjOcE|6{R>GvO4q3i zGF`X;^{jqThmYx$x*!vW3n~9X$~(nVa(POn@>4p^6NuygHX-p9MaQ>eq9K`p&`7K^ z*I}$7nH{uAtTQ_V7>m>Ov`4Hn*Qbxt!Wk~aRK3JOz0aylsW(=s_pHj4dSjJ(qQ zH&(9Kd#;*}#uJfY-+gsJ?e? zXgsJ`V1Z4&LPm95*xU!^FPP^qnde`$&M#adyl53k&n*lRhD`p7m&_uWFI*zL2!_S^ z^F9>snL+c+kU2YO&JLO97RoHHHGx{KSyx+KYm!bAV`9v0&-xbK=IpHLy5`A~VoY8f zG>bz~c>4R!o(7PXgJTZSf%%1ta&kP1mrwuF>?JPEUecFlFC90YGcOd(3xmc548w0Z z8beB*P55)74pkvlg*z!ZwW@Ym;o+^+Ai4v7H_k{e)%gRA(h##L(1WagHq6WX_}HDl zZmKmPHH%S6Ps$2Ck!lnIU#YOVoq_6;RXUDk7NQS0(4vUk9o4_llPIDn+CiNRtu?wD z5I`Gy`-)OE)dYsmYh9C37PjwN*8&Br*CQ`NlWEKz85x?avg{TqkvMFfM4PHGB$Vu^ z*l|ykIhtc50!2JISvJkacpI?d;ljv7*(4iN?x8}m`hH%YDfZydc-a)&Y;MRkgy*93 z$`t#}Yno!)upyPAP%TT-F`EN9kWVFx|5qCeY~^GRFR(sY3=NF8yEw2%#62xR1SaGFm~-mDmG@tyQe|}h^x@l0jJg4 zHig*CuzRLLEpTCbwc5|5=;}CV=7f#t4$;+#trHy8_)gK)NrcQH@o^g(79Y0;va?-6 zbtmiM)q<~R(z3rH&Hx`4qSX$;e+(N$5tGQVh@v)}$XNKOP}nGQBpjk-^f95ZiBj>$ zy(7yd<5e-iTb?#CGI?aVWT7b%_KxNaMBHIQSC0ObwtE_6ez1w433?1gM&B+ zQMh?hf}&!}>s-BpRpv5Y^f2mGIbnr?BQ>ZCKD$pG`@v|8O{Yvvk@K5|E6b$}ze{+> zmP?KKP%?&yJ%JZqMK>K+hpBp~ktaC(D^p6Qn>l?Gr+)}{tls~@UzzF$PcGAq;8ngt|rtx z<1bKGr6kjY!DmJ={&0Iy?vSVa3@+?L$#zX%DnQm}dDsik{b%zxF>OqzxO5(c404{! zb0LM%F7UERvk6ZWk!$2%mUvJXvol``sGp> zD_d{@u-pa}07F}RVv0@M+tjp#2EH=gW(*jgf4k(?7tPR(^m%t;$qC19erud@aDO zx-F`E;H+{aT||?HBk3k;GaRX|e#qc0ZFF-|J7(Ryovk;xChumOYjY$oXFIwwSVB{% zU5vr8zjYn5*KvxSWSjg@@}lH*U~&u8q+bJCHEyO{$t!DBvVM(9Hh3Q~)DW(BvD)6? zZoo9S-B>JkUI#~2Kra`I8$GOKn=`*GUvAUgA2(3faW`U9Emr_^UFWV7G|UccwmaQU zy0_8Yc=bx&8j2{WiTI&y5Suu26EcWt{v!s1hY^6MwyKKO@-d z_Fd)CHUU7J{|An_vRK?gA%UIS3Jk5g#ocl>Z@XKu^V2jd(lALj0u@?q|d1N1QA{k-8$xD!|1{yGtDeO8z4S9w=x zTs_rxG0@$tYH4>T7zplSlVFuf7u((VrzqZe#f^PRjZqhXrRk@Q5N5bipwzio+{T<} zf)$STaYzvvnI^(Zk#)Z(fri**4{Ge)0Lu&xvD$5--`MNAIr{7UI%Vm<_s=oYm#%+JiVmlw=+{-zK~Icx>Ai?K zyx%q4es{nfzRa_#>){8#7Yt^B(RH^6S+i5}HeZ)xwa0G~B|z_n zoL4q^xyHC`!ZLPQEGOM=s*D6%d_I&9sSW;{ti-Cx*9^DI&0qGLybh^Br`$T-a+jFG zb_Ff}i5#nzyHv{<#dcM-EZ1nc3lrJv81fVz_L%H8avdM2Ps`Jet*>oc{2Q(Cn zaD?VSp!N#S69iP@V=0yBevhdu$Tj_fT!WFlk6hFBEu`nAe*Q`wC^2rH-eSyd^#%mI z=1+a_nn3}t*;d-lrMYe15dF3TJHZinrlZ%U2iflh)CSctJN#+6AGEF0kJ1QEn?d~O z$Lf9SHR=FtbXy55(VpocyWiWDUX&txX2AaNi}Yg)UsJMI3J*v6y}fB9`Z0y>IjMU4 zO;ojwWgo0qPy=@7O?_%qaE48VGi*kU_TRmE(|rEs%^$gWlOt~*z4eiMEueD>!1|9EXa5)=3jVh z!B=0h7M~BSI~n;$P|w_(*?yEBJFUQLn8#cB?T&*e($ zerr7?VfbjHubK*KyYIW(di1dc#Vt!OoLfW@tI|l_{Morv7v?V>I3?<+3EwfB)DdX2 zRUYJu*`paK`iFs2ru51?yz?{F?zyBz;gqCmyC1Jy)l8x&wqY0Ni>DSEUl43ZX->}W zQ?gJz@6OK(e{CT?hux^o44*oQ#n|`N4`jl3P~V+YlEYDZQK`)q1SoHCP<)SzHz+tU zL^y9cuguhjCMIsBemg9dbH0-)su&qUhiydE*G4AB>h!aIuvDTu$8aweMk(UENJh2SR>L)^&3B${-B^@s6Z zA*Oj?GKq!@Za+~ru^PPoSj_bI1KTO4bvV{LP+?T$6zi*J)n9qYyHY?Oo_;m1jPa5^Xk zW#Y2wUdOs0$4y+OS^PBNq^UpFhg9zgN0>vX9Y>e!P#P<&#%z9RW2mV&WTcx4OMKLs zp^iagXqYfU7$b}mCJ2*+9fVzky@V;kKEi&&U4#P!kY9!l6Ye40M|gnn5aD6M5yB&c zM+uJ;juDQ($ryT)bjE1PMp4IWk57f@RR|4e5~FoWY{N`*iY&uwQvzNaId2o3BW%M! z?2Bxg5;Z}mYYGYn;i}S=jyWoc+bT&!RFbSyKd9?gXDRqkXjRw4e&9JcQJUdDHyr1`SZAdYQ3jY>#sn^ zh?5}8WK=gZOp4jJG4wFbf|frkcg<~b*A2mU2hv>fprf&n~Ib*VK3dWx8yQvFe#C9rj>qXqvU63t#Jc)~6@~J;;c%#5kst z#d^HC{rMGJVZxX!1;(2?R#swF>pMx>vWQct8Oj3^e7TZ0c%S zYEXJv)#K+2k!qE)?m!R}h9{NkybuItE}ClzuWOD*I}|~%zHLLU(~29WEF7KFxCyWu1^){2jMoJg+|VgKLim`ZCtGT=lCP6T>l*h!8! z$x(ibG18c0jytBm{l|7AHxeI?@cU$oH^OZ3Ml$5IwbQ%k`t?Igb*cJvgLu$EJ~UxW z?jY>iXH4!Vz026RDaHnDqWo?ep-$P~Sb7ZG*eH7%_fx&6$-0?knd;ViS~q)|>|njJ zgPE+etz7G8o!u;IAlMb#=oTq;5*A&{sgF4S-lD`drCknymP@1wMbuyuWx_;_5u&WK9nOAq07ido5=MV~k}v;KWGRN|WdOFbv{XtgB~jrS)G9oQ zWEac%5XvFKIT?nt7=zc9noW5l{&79~%-A7shgQ%@&osagDJAOrD83VBO0<-o$&@me zg;^fQ7+U8vmKs$~BK>p19qdn_ZL~SbF1@AhE^n_a>!Nl;RntwV-6Xv!ewVDOXP-JR z*W&G$b7`W^yK4q`N%?7@R)g}3{J6Q)Op{u5JZFmP_(7PXa;2rzB3I(V$AKLaM^j1k zZIUysrB=CszKyz&Kv^l0ksG@^7zba!J>{z_)s^b`sc5{{rza?PpDHJsDvX({)Wp%a zk?ScSY-KF#)ir)4D&+P0TD{t+MPTRedHI~FWH4R}!z*`@Rb3cZmE-RXg**RLZG_5ZPQHqh!P7bV;`vjtavy@7I{3H^2!ByG#}h*fhvsort%#f)!yKh=D0ZzFQ;NxR#$CT zHW;Tvi|19jRTgur@BVgb%h6zLZ@&Q+#62|H6@0JrAzm|_WKE7&X)TYAjt6@s7%mN~ zy7M|!EKuJNQ?dkTEqoy7oMtB)RVo&-TK7A{y$c|O-*#3vHdzP8wh$#;{|>}?Xw-kfOmW=vFhsQ?AuxM=c*mv3+&#$e%a)((GH zwrh;RI+s%7%~Yubq)3%2uHb!O0Jcud!*XIC)*%}~5gP4bPig{SZVO!i7MgMkF z3|x?|_(8Vt!~19r<3fMNSlX9-q2wrrmYBF(6CrhQ*DbI<<_BGX6K}6#%_h zkVRd|1GYR)M|ZmwywX4C6LIe$QRR&)YqPs3#sMfJQc=R2=F`@KIUi3>v$q{$FWgCb zn7hI2=gY+mToD8X8MmQJZkA0FW3J6#=a)d6H@dVIZS)QgWf~g(1X)2Q+Th)L$a_%g zoZ+LKCxEHfv~85)_2Bz^fU)Z=w*NGQmv=<=bTV&DXYhx0MW}+K3^&_;e5p?Kd37fr zbL(Es?4>-wB5U{S*joL1ysBUFEe}mn|AhC1ssnJ0jL53=y@?jEX!%y%TFgz$U~+p; zNHyQ|Z%#C79xPvK<8Fxl zomg=Fy+r>*qT8BwK};h|4a5ZH)qiEp!KX~9^7)}ZXO8IPkWTjNWZ%j?*U`49eGGrbaGWQR?fzpWJ-gd6Mw>7DW+#03wW8-%w9&Z2Lcx%#PwGGaS zhdZ#cN2|W&qZj?31Vlkh_Exn)ZeK}mtgP(z)PZrqIF0V_ta)L`JUwK(L+O>j@4sUM zYmg6G{_~He9~3NOfRM?JY6+6k#Z9Wl&ONK%j@ZfB3&33>UGizKf3m%l<5wR(BUp8` zc;Ojq_T$zb9%EwGt}NQe(e@k`JiU=2@eoDHR;^eNNP3XK9)n%G5`Y!SE+x7w~6NF zfRh+>;<=6vwmdxUBzDLLy0()t_s9o&SZjl#1d2i^%mJ+{+V7b6IEnk5#Qppd1NjFW z^Kr*KF8ZS3nbFR1j{;o+|6x zQ)PX7sx0_Uh(bOcX}@ zMPZbvK0%aD5;fEjWl}_q_5GM<;okK`0)wr@i6jPF$rE)LY}K7eVHuV>QJ;^@)t^Y` zow+o-t8c=U6@~~@QD_^qoUl^{t_iUq{DNu|u0~IM1i@wz9Dpp|dJ5j~OjD_;lq)qW z6Rs9*!W9okzF|;cTq@0n#v!Q;q8^i|*COh(iTcAtnijrnU2S5=<)8D-ZF))kv1%AqD2g5VrB zh`LRp5sPTlCK?M9jYo*qIgq0hQOMDr80KKTVjb2e)?xi(9k#iSXiJJ{YyE>FENNU? z50~lSa%lqyQW%1DLRcQsOs2Nv79k`dC`Hi-=1K`IK72TAobEFEg|$-3tMj}%uULb1 zYiqE!`j>@Zn@VeIuWm{Nk6Sf#Si!z3%6m| zNTJ7DuP$I&DHq^~sSEX3jiuEEP#fh!+P{$Y&br~ekrl2SmSIesIK52b<+mT5q4R3$ z;0MM{=MBk8|ESEA!`TaHUN$Y@#D`zVtVbD`NhVVtW#C9g6oeL0F|16&=h1_cGd%?_ zaV?J5^v%MsqrIlm7Il>5XsbFxORuy|j;6QMj~DrM%FX%Z>p9Zp(;TVt`H(925^rr8 z4kC*g+xW~xX`(PQRvJ^0u>9s)d7<@p!)dN~B|wA3!Sm!#)t)?OMMH zEP-xI1P)FP3AE6tL_!G`hK4J&EvMsSsoAosjzC63F%~9cE{16*?>~3)RBV56#04?K zA00!_WK0Z)#wJH920=sPV`F6q`qxJy(luoa6hU$m#VaFRD%dudz+)P(@q!ghu#J|6 zQqe$CV{L!|xLVh0 zw6zn~5r7MBTTkdDY$9|MdI-IQKEmd0M%#AM0VC5GL*$Y`g#pHq@R<H}FBINEqQ>i9}wJFz7VEpMr?gdGM!%Ar&T1XHqlbu1VQjkcP6qz!U;!(4Dv8hbNg@OI&7SEoXKYM!rxhlQ4U=?Zzc(>)5 zyRc*JAH402TAqM;EUQQET(fP~Ewy6p_P_8d<=5`(+PCblD616-o7QY}l_H)0D!yI? zE9*R#sH_xYw^~%VI5?s48Xb9GMU;v_6)20CxJ(t)#)KvBnJ@C>$b==FsyFJ=$YG-h zL3s`3MVHBs8WHbNSve;VWNy@xf1|faQQlqbU{KhB0KU*`rkJglu~eH9L7AX^Xy zti!&oFT2=Sq1M7!_F}RphsF4qjZ1_u$X}|qD^w3xS^vJyZ3|wC?@oB7fW@jn;Tv{V zq$+kGRSBc|$3~_w?vbWY(6NxFXnjL=H6$jR902{S?pWURbp|5!$VwtGt|O>X@v_7l zjcgO4h0sc9C#)xQ5;hXLdW>u@X`j)M5uSnQ-vMA6a`bj(O@%PgG})l!y^{@!Z+1Jy zMfrATkAkC+RvZQ19NTD+7c?r{UPVv>uy}X}uUJ`7(xn9=N=5=Ox?B;-iEl4pv*Xz8 zNMavQB_omD!@NYoT7{ zM6?)~$Z%DmbOZ`9gU!I|AzJv>5!E3f4NlXx}f z7G13~^Jh=Vkk^dAyooD0`!!jg)6s!)m5E@$PM)h-8B3O5lW zZwyQ#LZO-{3zb!fKxL{EsA3;}6SQIlRgB=&+!AYHk5jC|hNh+ex3_C+YTJmylC{!W zk}YJDOfED)Vi7``1Q}nz=>^EeopjQfFm$Hvq=+%LTqpz+E@|_|FX*r6^rbWX9ewI3 zbV`3gXFAgt_YdHHXSKE|P&$3-!)m=}&+baHw0m^+eCJ@#NmH_rC{IeDBcPEKdL4-* z(HxS8bW$Rn0PXf2_3B;Z_ed(mdaAl}N(RQW3gSKk%d0AhY62PQ|Bxl%9}}4dZ%W7* zoGBsGd6gqG;7SP@H>)PHBpfLrGoklGh7GwCG8JMqgsDQ1j=U5~X{Za+#lVTYG)fNihE6FMh&%_S0f-%t?wNk& z&ulwKBFUhV!w*bw9ws!mJtpN6u@{$xFXxkDZdS@7W9Hctm53O#uov$2rm4qQrL@?a zrjGG!{SU8we>lAKPH#?Kgddnt3MlU1c)Wb!98p*W1S!QOz4`JCL-)F4m`eG53$LNtR^2^~$i@9w`CpysE@ zol0TqEQ6cTvkh*>q`{4DbDePnM2e#!85yoa(*c9ji$YSo+!YarxpkdvaIz#d=Ex*x zjB7W!CX8^j39jGf+6iPznQQNJHgC>r03OiSn4a2as$~!EJ2+kv$1CDEB#zhiorGm) zM)sXy#qtr2Q^YZkf$0niog>Ln68ip=DsuIQV{ajzcdmd}S z8do#RKRo^pYON=Gf3UumE!&*N^}U9{+@MzGtirq`)xb{|CY(sqJQ(xBba8=w&y7rx z#LJI0HmdeZsOsKGJg@A2u&htwsogBbKLY(q4Vrunnm0Cf`kxa#yCGhA_SvSpFE*V& zu5Ri-Ve*VxhYif-N;l;j=N?vEA9u_%H2Is>&;E5nH7a?JyUY&EI%Ven;kCmBJD1lg z^8)`ybA9_YrKgXr-mzj%yyi1)>AU9xB!r_Y*}RoX7yb>rvS-54@UQG0Z;Fe*HW}<- ztgmJ)GiiU*wvdzj*0y*>7xi|7QNVex(0#mtx>i{lJei7c5orEuHQV z-6gN#>Al0>VKwJ0<;+>pOlvhWm?s^(^Ljz8X2!ZDFKbt9Qe1G#?UF=Rsns!a_qpGg?^SS$loRN!!y^|`p29t&K{>L_s4zyyJ-KU@7b*O zXQroXJ@q;puX#O5&1`!4hAUqj%#EWl7 z^Xx@@3=ESuF)(m5po8SZlEj?+biIn)9CVGyhN5b`4Kyw%GpQ)Cs8X-EJT1VRl?`Mr O6A%^wX{T03APE45!FW#q From fcf9d3bb35b50c08020581cb4a91ac68065d6c59 Mon Sep 17 00:00:00 2001 From: badlogic Date: Sun, 4 Jun 2017 11:07:04 +0200 Subject: [PATCH 11/17] [lua] Fixed deform timelines not mixing from/to setup pose. #920 --- spine-lua/Animation.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spine-lua/Animation.lua b/spine-lua/Animation.lua index 21152a388..20a82d503 100644 --- a/spine-lua/Animation.lua +++ b/spine-lua/Animation.lua @@ -769,7 +769,7 @@ function Animation.DeformTimeline.new (frameCount) local frameVertices = self.frameVertices local vertexCount = #(frameVertices[0]) - if (#verticesArray ~= vertexCount) then alpha = 1 end -- Don't mix from uninitialized slot vertices. + if (#verticesArray ~= vertexCount and not setupPose) then alpha = 1 end -- Don't mix from uninitialized slot vertices. local vertices = utils.setArraySize(verticesArray, vertexCount) if time >= frames[zlen(frames) - 1] then -- Time is after last frame. From 54cb4dfa02f465057743c0f17e43a263a44347d9 Mon Sep 17 00:00:00 2001 From: badlogic Date: Sun, 4 Jun 2017 11:47:15 +0200 Subject: [PATCH 12/17] [ts] Closes #914, loading of PathAttachment lengths in SkeletonJson was incorrect --- spine-ts/build/spine-all.js | 2 +- spine-ts/build/spine-all.js.map | 2 +- spine-ts/build/spine-canvas.js | 2 +- spine-ts/build/spine-canvas.js.map | 2 +- spine-ts/build/spine-core.js | 2 +- spine-ts/build/spine-core.js.map | 2 +- spine-ts/build/spine-threejs.js | 2 +- spine-ts/build/spine-threejs.js.map | 2 +- spine-ts/build/spine-webgl.js | 2 +- spine-ts/build/spine-webgl.js.map | 2 +- spine-ts/build/spine-widget.js | 2 +- spine-ts/build/spine-widget.js.map | 2 +- spine-ts/core/src/SkeletonJson.ts | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/spine-ts/build/spine-all.js b/spine-ts/build/spine-all.js index 5fd916d37..66157d710 100644 --- a/spine-ts/build/spine-all.js +++ b/spine-ts/build/spine-all.js @@ -4954,7 +4954,7 @@ var spine; this.readVertices(map, path, vertexCount << 1); var lengths = spine.Utils.newArray(vertexCount / 3, 0); for (var i = 0; i < map.lengths.length; i++) - lengths[i++] = map.lengths[i] * scale; + lengths[i] = map.lengths[i] * scale; path.lengths = lengths; var color = this.getValue(map, "color", null); if (color != null) diff --git a/spine-ts/build/spine-all.js.map b/spine-ts/build/spine-all.js.map index 273854ada..a4bdce1df 100644 --- a/spine-ts/build/spine-all.js.map +++ b/spine-ts/build/spine-all.js.map @@ -1 +1 @@ -{"version":3,"file":"spine-all.js","sourceRoot":"","sources":["../core/src/AssetManager.ts","../canvas/src/AssetManager.ts","../core/src/Texture.ts","../canvas/src/CanvasTexture.ts","../canvas/src/SkeletonRenderer.ts","../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../threejs/src/AssetManager.ts","../threejs/src/MeshBatcher.ts","../threejs/src/SkeletonMesh.ts","../threejs/src/ThreeJsTexture.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts","../widget/src/Widget.ts"],"names":[],"mappings":"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AC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,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C,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChH,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC3G,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,C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AC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CA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"} \ No newline at end of file +{"version":3,"file":"spine-all.js","sourceRoot":"","sources":["../core/src/AssetManager.ts","../canvas/src/AssetManager.ts","../core/src/Texture.ts","../canvas/src/CanvasTexture.ts","../canvas/src/SkeletonRenderer.ts","../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../threejs/src/AssetManager.ts","../threejs/src/MeshBatcher.ts","../threejs/src/SkeletonMesh.ts","../threejs/src/ThreeJsTexture.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts","../widget/src/Widget.ts"],"names":[],"mappings":"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AC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,MAAM,CAAC,QAAQ,CAAC;YACjB,CAAC;YAEO,8CAAmB,GAA3B,UAA4B,IAAU,EAAE,IAAoB,EAAE,GAAY;gBACzE,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAClC,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACnC,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC3B,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC7B,IAAI,KAAK,GAAG,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;gBAC1D,IAAI,UAAU,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;gBACjC,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3B,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,UAAU,EAChE,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,UAAU,EAC1D,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,UAAU,EAC1D,KAAK,CAAC,CAAC;gBAEX,IAAI,WAAW,GAAG,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;gBAC/C,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;oBACrD,IAAI,CAAC,QAAQ,GAAG,WAAK,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC/D,CAAC;gBACD,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC7B,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,EAAE,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBAExG,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;gBACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3D,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBACxB,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBACxB,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBACxB,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBACxB,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;oBACzB,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;oBACzB,CAAC,IAAI,CAAC,CAAC;gBACR,CAAC;gBAED,MAAM,CAAC,QAAQ,CAAC;YACjB,CAAC;YA9QM,+BAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACpC,4BAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YA8QhC,uBAAC;QAAD,CAAC,AAhRD,IAgRC;QAhRY,uBAAgB,mBAgR5B,CAAA;IACF,CAAC,EAlRY,MAAM,GAAN,YAAM,KAAN,YAAM,QAkRlB;AAAD,CAAC,EAlRM,KAAK,KAAL,KAAK,QAkRX;AClRD,IAAO,KAAK,CAulCX;AAvlCD,WAAO,KAAK,EAAC,CAAC;IACb;QAKC,mBAAa,IAAY,EAAE,SAA0B,EAAE,QAAgB;YACtE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACpE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1B,CAAC;QAED,yBAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,IAAa,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACpJ,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAElE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;gBACtB,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;oBAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;YAC7C,CAAC;YAED,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC/C,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACpF,CAAC;QAEM,sBAAY,GAAnB,UAAqB,MAAyB,EAAE,MAAc,EAAE,IAAgB;YAAhB,oBAAgB,GAAhB,QAAgB;YAC/E,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YAC3B,IAAI,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC;YACzB,OAAO,IAAI,EAAE,CAAC;gBACb,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,MAAM,CAAC;oBAC1C,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC;gBACnB,IAAI;oBACH,IAAI,GAAG,OAAO,CAAC;gBAChB,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC;oBAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;gBACzC,OAAO,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACF,CAAC;QAEM,sBAAY,GAAnB,UAAqB,MAAyB,EAAE,MAAc,EAAE,IAAY;YAC3E,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI;gBAChE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QACF,gBAAC;IAAD,CAAC,AA9CD,IA8CC;IA9CY,eAAS,YA8CrB,CAAA;IAOD,WAAY,YAAY;QACvB,mDAAM,CAAA;QAAE,yDAAS,CAAA;QAAE,iDAAK,CAAA;QAAE,iDAAK,CAAA;QAC/B,2DAAU,CAAA;QAAE,iDAAK,CAAA;QAAE,mDAAM,CAAA;QACzB,iDAAK,CAAA;QAAE,yDAAS,CAAA;QAChB,+DAAY,CAAA;QAAE,8EAAmB,CAAA;QACjC,oFAAsB,CAAA;QAAE,kFAAqB,CAAA;QAAE,0EAAiB,CAAA;QAChE,wDAAQ,CAAA;IACT,CAAC,EAPW,kBAAY,KAAZ,kBAAY,QAOvB;IAPD,IAAY,YAAY,GAAZ,kBAOX,CAAA;IAED;QAQC,uBAAa,UAAkB;YAC9B,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,UAAU,CAAC,CAAC;YAC9E,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QACjF,CAAC;QAED,qCAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC;QAC3D,CAAC;QAED,iCAAS,GAAT,UAAW,UAAkB;YAC5B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;QAC5E,CAAC;QAED,kCAAU,GAAV,UAAY,UAAkB;YAC7B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;QAC7E,CAAC;QAED,oCAAY,GAAZ,UAAc,UAAkB;YAC/B,IAAI,KAAK,GAAG,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC;YACnD,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YAC7D,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YAC9D,EAAE,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC;gBAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;YAChE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;QAC7B,CAAC;QAKD,gCAAQ,GAAR,UAAU,UAAkB,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW;YAC/E,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;YACnE,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YACjF,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;YACrD,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;YAE7F,IAAI,CAAC,GAAG,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC;YAC/C,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;YAEnC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/D,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBAClB,GAAG,IAAI,IAAI,CAAC;gBACZ,GAAG,IAAI,IAAI,CAAC;gBACZ,IAAI,IAAI,KAAK,CAAC;gBACd,IAAI,IAAI,KAAK,CAAC;gBACd,CAAC,IAAI,GAAG,CAAC;gBACT,CAAC,IAAI,GAAG,CAAC;YACV,CAAC;QACF,CAAC;QAED,uCAAe,GAAf,UAAiB,UAAkB,EAAE,OAAe;YACnD,OAAO,GAAG,eAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACzC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,CAAC,GAAG,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC;YAC/C,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACrB,EAAE,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC,OAAO,CAAC;YACjD,EAAE,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC;gBAAC,MAAM,CAAC,CAAC,CAAC;YAC5C,CAAC,EAAE,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1E,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACd,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;oBAClB,IAAI,KAAK,SAAQ,EAAE,KAAK,SAAQ,CAAC;oBACjC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;wBAChB,KAAK,GAAG,CAAC,CAAC;wBACV,KAAK,GAAG,CAAC,CAAC;oBACX,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACtB,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvB,CAAC;oBACD,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;gBAC1E,CAAC;YACF,CAAC;YACD,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;QApFM,oBAAM,GAAG,CAAC,CAAC;QAAQ,qBAAO,GAAG,CAAC,CAAC;QAAQ,oBAAM,GAAG,CAAC,CAAC;QAClD,yBAAW,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAsFjC,oBAAC;IAAD,CAAC,AAxFD,IAwFC;IAxFqB,mBAAa,gBAwFlC,CAAA;IAED;QAAoC,kCAAa;QAQhD,wBAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,sCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACrD,CAAC;QAGD,iCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,OAAe;YAC1D,UAAU,KAAK,CAAC,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;QAC7D,CAAC;QAED,8BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAClD,MAAM,CAAC;YACR,CAAC;YAED,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5D,EAAE,CAAC,CAAC,SAAS,CAAC;oBACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;gBACnG,IAAI,CAAC,CAAC;oBACL,IAAI,GAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAClG,GAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,GAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;oBAC1D,IAAI,CAAC,QAAQ,IAAI,GAAC,GAAG,KAAK,CAAC;gBAC5B,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAGD,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;YACzE,IAAI,YAAY,GAAG,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;YAChE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,EAClD,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YAElF,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;YAC/D,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YAC1D,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC;YAC/B,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACf,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC;YAChD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC3C,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBACzD,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,KAAK,CAAC;YAC5B,CAAC;QACF,CAAC;QA7DM,sBAAO,GAAG,CAAC,CAAC;QACZ,wBAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,4BAAa,GAAG,CAAC,CAAC,CAAC;QAC1C,uBAAQ,GAAG,CAAC,CAAC;QA4DrB,qBAAC;IAAD,CAAC,AA/DD,CAAoC,aAAa,GA+DhD;IA/DY,oBAAc,iBA+D1B,CAAA;IAED;QAAuC,qCAAa;QAQnD,2BAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3E,CAAC;QAED,yCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACxD,CAAC;QAGD,oCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,CAAS,EAAE,CAAS;YAC/D,UAAU,IAAI,iBAAiB,CAAC,OAAO,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC;QAED,iCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBACrB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtB,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACjB,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC/D,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACrD,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACtD,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAC5E,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAC7C,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAC7C,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,iBAAiB,CAAC,OAAO,GAAG,CAAC,EACvE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAErF,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACzD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;YAC1D,CAAC;YACD,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAClC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAC7C,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YAC9C,CAAC;QACF,CAAC;QA3DM,yBAAO,GAAG,CAAC,CAAC;QACZ,2BAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,wBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,wBAAM,GAAG,CAAC,CAAC,CAAC;QACvD,mBAAC,GAAG,CAAC,CAAC;QAAQ,mBAAC,GAAG,CAAC,CAAC;QA0D5B,wBAAC;IAAD,CAAC,AA7DD,CAAuC,aAAa,GA6DnD;IA7DY,uBAAiB,oBA6D7B,CAAA;IAED;QAAmC,iCAAiB;QACnD,uBAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;QACnB,CAAC;QAED,qCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACpD,CAAC;QAED,6BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAChC,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACjB,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3D,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBACpE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YACrE,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxE,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,aAAa,CAAC,OAAO,GAAG,CAAC,EACnE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAEjF,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC7E,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAC9E,CAAC;YACD,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACjB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBACnB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBACtB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBACvB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;oBACjB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;gBAClB,CAAC;gBAED,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACvC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxC,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACxC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACzC,CAAC;gBACD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;gBACpC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;YACrC,CAAC;QACF,CAAC;QACF,oBAAC;IAAD,CAAC,AA7DD,CAAmC,iBAAiB,GA6DnD;IA7DY,mBAAa,gBA6DzB,CAAA;IAED;QAAmC,iCAAiB;QACnD,uBAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;QACnB,CAAC;QAED,qCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACpD,CAAC;QAED,6BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAChC,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACjB,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3D,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACjD,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YAClD,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxE,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,aAAa,CAAC,OAAO,GAAG,CAAC,EACnE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAEjF,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxD,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;YACzD,CAAC;YACD,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC;YAC5C,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;gBAC5D,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;YAC7D,CAAC;QACF,CAAC;QACF,oBAAC;IAAD,CAAC,AA7CD,CAAmC,iBAAiB,GA6CnD;IA7CY,mBAAa,gBA6CzB,CAAA;IAED;QAAmC,iCAAa;QAQ/C,uBAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACvE,CAAC;QAED,qCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACpD,CAAC;QAGD,gCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;YACrF,UAAU,IAAI,aAAa,CAAC,OAAO,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,CAAC;QAED,6BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAC/B,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACrC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACrC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACrC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxE,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,aAAa,CAAC,OAAO,GAAG,CAAC,EACnE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAEjF,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACrD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACrD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACrD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;YACtD,CAAC;YACD,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;gBACd,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,CAAC;gBACL,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YACvG,CAAC;QACF,CAAC;QAhEM,qBAAO,GAAG,CAAC,CAAC;QACZ,uBAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,oBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,oBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,oBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,oBAAM,GAAG,CAAC,CAAC,CAAC;QAC/F,eAAC,GAAG,CAAC,CAAC;QAAQ,eAAC,GAAG,CAAC,CAAC;QAAQ,eAAC,GAAG,CAAC,CAAC;QAAQ,eAAC,GAAG,CAAC,CAAC;QA+DxD,oBAAC;IAAD,CAAC,AAlED,CAAmC,aAAa,GAkE/C;IAlEY,mBAAa,gBAkEzB,CAAA;IAED;QAAsC,oCAAa;QASlD,0BAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC1E,CAAC;QAED,wCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,CAAC;QAGD,mCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;YACzH,UAAU,IAAI,gBAAgB,CAAC,OAAO,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QACpD,CAAC;QAED,gCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAClD,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACvD,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC9D,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACxC,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC1C,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC1C,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC3E,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC5C,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC5C,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC5C,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC5C,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC9C,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC9C,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,GAAG,CAAC,EACtE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAEpF,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxD,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;gBAC3D,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;gBAC3D,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;YAC5D,CAAC;YACD,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACnC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC1B,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxC,CAAC;gBACD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;gBACtG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;YAClF,CAAC;QACF,CAAC;QAtFM,wBAAO,GAAG,CAAC,CAAC;QACZ,0BAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,uBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,uBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,uBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,uBAAM,GAAG,CAAC,CAAC,CAAC;QAC/F,wBAAO,GAAG,CAAC,CAAC,CAAC;QAAQ,wBAAO,GAAG,CAAC,CAAC,CAAC;QAAQ,wBAAO,GAAG,CAAC,CAAC,CAAC;QACvD,kBAAC,GAAG,CAAC,CAAC;QAAQ,kBAAC,GAAG,CAAC,CAAC;QAAQ,kBAAC,GAAG,CAAC,CAAC;QAAQ,kBAAC,GAAG,CAAC,CAAC;QAAQ,mBAAE,GAAG,CAAC,CAAC;QAAQ,mBAAE,GAAG,CAAC,CAAC;QAAQ,mBAAE,GAAG,CAAC,CAAC;QAoFrG,uBAAC;IAAD,CAAC,AAxFD,CAAsC,aAAa,GAwFlD;IAxFY,sBAAgB,mBAwF5B,CAAA;IAED;QAKC,4BAAa,UAAkB;YAC9B,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,KAAK,CAAS,UAAU,CAAC,CAAC;QACtD,CAAC;QAED,0CAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACzD,CAAC;QAED,0CAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3B,CAAC;QAGD,qCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,cAAsB;YACjE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC;QACnD,CAAC;QAED,kCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC;gBAC5B,IAAI,gBAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;gBAC9C,IAAI,CAAC,aAAa,CAAC,gBAAc,IAAI,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAc,CAAC,CAAC,CAAC;gBAC3G,MAAM,CAAC;YACR,CAAC;YAED,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,gBAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;oBAC9C,IAAI,CAAC,aAAa,CAAC,gBAAc,IAAI,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAc,CAAC,CAAC,CAAC;gBAC5G,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACrC,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAChC,IAAI;gBACH,UAAU,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAE1D,IAAI,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACtD,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;iBAC5B,aAAa,CAAC,cAAc,IAAI,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;QACzG,CAAC;QACF,yBAAC;IAAD,CAAC,AAnDD,IAmDC;IAnDY,wBAAkB,qBAmD9B,CAAA;IAED;QAAoC,kCAAa;QAMhD,wBAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,KAAK,CAAoB,UAAU,CAAC,CAAC;QAC/D,CAAC;QAED,sCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACrD,CAAC;QAGD,iCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,QAA2B;YACtE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;QAC3C,CAAC;QAED,8BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,IAAI,GAAS,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,cAAc,GAAe,IAAI,CAAC,aAAa,EAAE,CAAC;YACtD,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,YAAY,sBAAgB,CAAC,IAAI,CAAoB,cAAe,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE9H,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,aAAa,GAAkB,IAAI,CAAC,kBAAkB,CAAC;YAC3D,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,WAAK,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;gBACpD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,IAAI,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAE1C,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,IAAI,WAAW,IAAI,CAAC,SAAS,CAAC;gBAAC,KAAK,GAAG,CAAC,CAAC;YACjE,IAAI,QAAQ,GAAkB,WAAK,CAAC,YAAY,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YAE7E,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,IAAI,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACpD,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,WAAK,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;gBAC5D,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACtB,IAAI,gBAAgB,GAAG,cAAkC,CAAC;oBAC1D,EAAE,CAAC,CAAC,gBAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;wBAEpC,IAAI,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC;wBAC9C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;4BACtC,IAAI,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;4BAC7B,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;wBACzD,CAAC;oBACF,CAAC;oBAAC,IAAI,CAAC,CAAC;wBAEP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;4BACnC,QAAQ,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBACxC,CAAC;gBACF,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;wBACnC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBACzD,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAGD,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACjD,IAAI,YAAY,GAAG,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YAExG,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBAC3B,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;gBACzD,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACtB,IAAI,gBAAgB,GAAG,cAAkC,CAAC;gBAC1D,EAAE,CAAC,CAAC,gBAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;oBAEpC,IAAI,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC;oBAC9C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;wBACrD,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;oBACnF,CAAC;gBACF,CAAC;gBAAC,IAAI,CAAC,CAAC;oBAEP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;wBAC3B,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC;oBACnE,CAAC;gBACF,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBAC3B,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAClF,CAAC;YACF,CAAC;QACF,CAAC;QACF,qBAAC;IAAD,CAAC,AArGD,CAAoC,aAAa,GAqGhD;IArGY,oBAAc,iBAqG1B,CAAA;IAED;QAIC,uBAAa,UAAkB;YAC9B,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAQ,UAAU,CAAC,CAAC;QAC5C,CAAC;QAED,qCAAa,GAAb;YACC,MAAM,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,CAAC;QAED,qCAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3B,CAAC;QAGD,gCAAQ,GAAR,UAAU,UAAkB,EAAE,KAAY;YACzC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;QACjC,CAAC;QAGD,6BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC;YAChC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAEpC,EAAE,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC3F,QAAQ,GAAG,CAAC,CAAC,CAAC;YACf,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;gBAC7C,MAAM,CAAC;YACR,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE7B,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,EAAE,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,KAAK,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC;gBACL,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACjD,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC;oBAClB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC;wBAAC,KAAK,CAAC;oBAC1C,KAAK,EAAE,CAAC;gBACT,CAAC;YACF,CAAC;YACD,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,UAAU,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE;gBAC1D,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC;QACF,oBAAC;IAAD,CAAC,AAlDD,IAkDC;IAlDY,mBAAa,gBAkDzB,CAAA;IAED;QAIC,2BAAa,UAAkB;YAC9B,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,KAAK,CAAgB,UAAU,CAAC,CAAC;QACxD,CAAC;QAED,yCAAa,GAAb;YACC,MAAM,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC;QACrC,CAAC;QAED,yCAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3B,CAAC;QAID,oCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,SAAwB;YACnE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;QACzC,CAAC;QAED,iCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,SAAS,GAAgB,QAAQ,CAAC,SAAS,CAAC;YAChD,IAAI,KAAK,GAAgB,QAAQ,CAAC,KAAK,CAAC;YACxC,EAAE,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC;gBAC5B,WAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACjF,MAAM,CAAC;YACR,CAAC;YAED,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,WAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAChG,MAAM,CAAC;YACR,CAAC;YAED,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACrC,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3B,IAAI;gBACH,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAElD,IAAI,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACnD,EAAE,CAAC,CAAC,qBAAqB,IAAI,IAAI,CAAC;gBACjC,WAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,CAAC,CAAC;gBACL,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAC3D,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;QACF,CAAC;QACF,wBAAC;IAAD,CAAC,AApDD,IAoDC;IApDY,uBAAiB,oBAoD7B,CAAA;IAED;QAA0C,wCAAa;QAQtD,8BAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9E,CAAC;QAED,4CAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,YAAY,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACnE,CAAC;QAGD,uCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,GAAW,EAAE,aAAqB;YAC7E,UAAU,IAAI,oBAAoB,CAAC,OAAO,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,oBAAoB,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC;QAC/E,CAAC;QAED,oCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAiB,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9E,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;oBACrC,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC1D,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAClE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBAC7H,UAAU,CAAC,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa;0BACjE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;gBACrE,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBACnG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;wBAAC,UAAU,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;gBAC7G,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAGD,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC/E,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,oBAAoB,CAAC,OAAO,GAAG,CAAC,EAC1E,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YAExF,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACf,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACxI,UAAU,CAAC,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;YACjI,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC9G,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;oBAAC,UAAU,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;YACrG,CAAC;QACF,CAAC;QA7DM,4BAAO,GAAG,CAAC,CAAC;QACZ,8BAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,6BAAQ,GAAG,CAAC,CAAC,CAAC;QAAQ,wCAAmB,GAAG,CAAC,CAAC,CAAC;QACtE,wBAAG,GAAG,CAAC,CAAC;QAAQ,mCAAc,GAAG,CAAC,CAAC;QA4D3C,2BAAC;IAAD,CAAC,AA/DD,CAA0C,aAAa,GA+DtD;IA/DY,0BAAoB,uBA+DhC,CAAA;IAED;QAAiD,+CAAa;QAQ7D,qCAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;QACrF,CAAC;QAED,mDAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,mBAAmB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC;QACjF,CAAC;QAGD,8CAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,SAAiB,EAAE,YAAoB,EAAE,QAAgB,EAAE,QAAgB;YACtH,UAAU,IAAI,2BAA2B,CAAC,OAAO,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,2BAA2B,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,2BAA2B,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC;YAC/E,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;QACxE,CAAC;QAED,2CAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,UAAU,GAAwB,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACnG,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;oBAC3B,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;oBACtC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;oBACzC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACpC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACrC,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,MAAM,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;YACpD,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACzE,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;gBAC7D,SAAS,GAAG,MAAM,CAAC,CAAC,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;gBACnE,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;gBAC3D,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;YAC5D,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,2BAA2B,CAAC,OAAO,CAAC,CAAC;gBACtF,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;gBACjE,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;gBACvE,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;gBAC/D,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;gBAC/D,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,2BAA2B,CAAC,OAAO,GAAG,CAAC,EACjF,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAE/F,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;gBAClF,SAAS,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC;gBAC3F,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC;gBAC/E,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC;YAChF,CAAC;YACD,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;gBAC3B,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;gBAC1E,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;gBACtF,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;gBACtE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YACvE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,UAAU,CAAC,SAAS,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;gBAChE,UAAU,CAAC,YAAY,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;gBACzE,UAAU,CAAC,QAAQ,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;gBAC7D,UAAU,CAAC,QAAQ,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YAC9D,CAAC;QACF,CAAC;QA5EM,mCAAO,GAAG,CAAC,CAAC;QACZ,qCAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,uCAAW,GAAG,CAAC,CAAC,CAAC;QAAQ,0CAAc,GAAG,CAAC,CAAC,CAAC;QAAQ,sCAAU,GAAG,CAAC,CAAC,CAAC;QAAQ,sCAAU,GAAG,CAAC,CAAC,CAAC;QACpH,kCAAM,GAAG,CAAC,CAAC;QAAQ,qCAAS,GAAG,CAAC,CAAC;QAAQ,iCAAK,GAAG,CAAC,CAAC;QAAQ,iCAAK,GAAG,CAAC,CAAC;QA2E7E,kCAAC;IAAD,CAAC,AA9ED,CAAiD,aAAa,GA8E7D;IA9EY,iCAA2B,8BA8EvC,CAAA;IAED;QAAoD,kDAAa;QAShE,wCAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;QACxF,CAAC;QAED,sDAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,sBAAsB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC/E,CAAC;QAGD,iDAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,KAAa;YACxD,UAAU,IAAI,8BAA8B,CAAC,OAAO,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,8BAA8B,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QACxE,CAAC;QAED,8CAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAmB,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACpF,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC9D,MAAM,CAAC;YACR,CAAC;YAED,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;gBAC1E,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;YAC9E,IAAI,CAAC,CAAC;gBAEL,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,8BAA8B,CAAC,OAAO,CAAC,CAAC;gBACzF,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;gBACrE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,8BAA8B,CAAC,OAAO,GAAG,CAAC,EACpF,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,8BAA8B,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAElG,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,8BAA8B,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC;YACzF,CAAC;YACD,EAAE,CAAC,CAAC,SAAS,CAAC;gBACb,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YAChG,IAAI;gBACH,UAAU,CAAC,QAAQ,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAClE,CAAC;QAjDM,sCAAO,GAAG,CAAC,CAAC;QACZ,wCAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,yCAAU,GAAG,CAAC,CAAC,CAAC;QACvC,oCAAK,GAAG,CAAC,CAAC;QAgDlB,qCAAC;IAAD,CAAC,AAnDD,CAAoD,aAAa,GAmDhE;IAnDY,oCAA8B,iCAmD1C,CAAA;IAED;QAAmD,iDAA8B;QAChF,uCAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;QACnB,CAAC;QAED,qDAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,qBAAqB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC9E,CAAC;QAED,6CAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAmB,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACpF,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC5D,MAAM,CAAC;YACR,CAAC;YAED,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;gBACzE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAC;YAC5E,IAAI,CAAC,CAAC;gBAEL,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,6BAA6B,CAAC,OAAO,CAAC,CAAC;gBACxF,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAC;gBACnE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,6BAA6B,CAAC,OAAO,GAAG,CAAC,EACnF,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,6BAA6B,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAEjG,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,6BAA6B,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC;YACtF,CAAC;YAED,EAAE,CAAC,CAAC,SAAS,CAAC;gBACb,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YAC5F,IAAI;gBACH,UAAU,CAAC,OAAO,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QAC/D,CAAC;QACF,oCAAC;IAAD,CAAC,AApCD,CAAmD,8BAA8B,GAoChF;IApCY,mCAA6B,gCAoCzC,CAAA;IAED;QAA+C,6CAAa;QAS3D,mCAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACnF,CAAC;QAED,iDAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,iBAAiB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC1E,CAAC;QAGD,4CAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,SAAiB,EAAE,YAAoB;YAClF,UAAU,IAAI,yBAAyB,CAAC,OAAO,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,yBAAyB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,yBAAyB,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC;QAC9E,CAAC;QAED,yCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAmB,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEpF,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;oBACjD,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;gBACxD,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,MAAM,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;gBACvE,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;YAC9E,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC;gBACpF,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;gBAC/D,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;gBACrE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,yBAAyB,CAAC,OAAO,GAAG,CAAC,EAC/E,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAE7F,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;gBAChF,SAAS,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC;YAC1F,CAAC;YAED,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACf,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;gBAChG,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;YAC7G,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,UAAU,CAAC,SAAS,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;gBAChE,UAAU,CAAC,YAAY,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;YAC1E,CAAC;QACF,CAAC;QA7DM,iCAAO,GAAG,CAAC,CAAC;QACZ,mCAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,qCAAW,GAAG,CAAC,CAAC,CAAC;QAAQ,wCAAc,GAAG,CAAC,CAAC,CAAC;QACpE,gCAAM,GAAG,CAAC,CAAC;QAAQ,mCAAS,GAAG,CAAC,CAAC;QA4DzC,gCAAC;IAAD,CAAC,AA/DD,CAA+C,aAAa,GA+D3D;IA/DY,+BAAyB,4BA+DrC,CAAA;AACF,CAAC,EAvlCM,KAAK,KAAL,KAAK,QAulCX;ACvlCD,IAAO,KAAK,CA6wBX;AA7wBD,WAAO,KAAK,EAAC,CAAC;IACb;QAmBC,wBAAa,IAAwB;YAXrC,WAAM,GAAG,IAAI,KAAK,EAAc,CAAC;YACjC,WAAM,GAAG,IAAI,KAAK,EAAS,CAAC;YAC5B,cAAS,GAAG,IAAI,KAAK,EAA2B,CAAC;YACjD,UAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;YAC7B,gBAAW,GAAG,IAAI,YAAM,EAAE,CAAC;YAC3B,aAAQ,GAAG,IAAI,KAAK,EAAc,CAAC;YACnC,sBAAiB,GAAG,KAAK,CAAC;YAC1B,cAAS,GAAG,CAAC,CAAC;YAEd,mBAAc,GAAG,IAAI,UAAI,CAAa,cAAM,OAAA,IAAI,UAAU,EAAE,EAAhB,CAAgB,CAAC,CAAC;YAG7D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QAED,+BAAM,GAAN,UAAQ,KAAa;YACpB,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC;YACxB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,IAAI,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;oBAAC,QAAQ,CAAC;gBAE9B,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC;gBAClD,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;gBAE1C,IAAI,YAAY,GAAG,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC;gBAE7C,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;oBACvB,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC;oBAC9B,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;wBAAC,QAAQ,CAAC;oBAChC,YAAY,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;oBAC9B,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;gBACnB,CAAC;gBAED,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBACxB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;oBAElB,IAAI,QAAQ,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC9C,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;wBACnB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;wBACf,IAAI,CAAC,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;wBACnD,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC;wBAClC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC/B,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;4BAChC,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC;4BAC7B,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;wBACxB,CAAC;wBACD,QAAQ,CAAC;oBACV,CAAC;gBACF,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;oBAChF,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;oBACjB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACxB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC1B,QAAQ,CAAC;gBACV,CAAC;gBACD,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;oBAEzE,IAAI,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;oBAC9B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;oBAC1B,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC;wBACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACrB,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;oBACxB,CAAC;gBACF,CAAC;gBAED,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC;YACnC,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAED,yCAAgB,GAAhB,UAAkB,EAAc,EAAE,KAAa;YAC9C,IAAI,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YAE9B,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAGlD,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3E,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC1B,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;oBAChC,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;oBACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC;gBACD,MAAM,CAAC,QAAQ,CAAC;YACjB,CAAC;YAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;YACpC,IAAI,CAAC,SAAS,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;YACzC,EAAE,CAAC,OAAO,IAAI,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,8BAAK,GAAL,UAAO,QAAkB;YACxB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;gBAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAEtD,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,IAAI,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;oBAAC,QAAQ,CAAC;gBACnD,OAAO,GAAG,IAAI,CAAC;gBAGf,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;gBACxB,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;oBAC9B,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAChD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;oBACtE,GAAG,GAAG,CAAC,CAAC;gBAGT,IAAI,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBACtF,IAAI,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;gBACvD,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;gBAC5C,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACd,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,aAAa,EAAE,EAAE,EAAE;wBACxC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACtF,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;oBAExC,IAAI,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,CAAC;oBACvD,EAAE,CAAC,CAAC,UAAU,CAAC;wBAAC,WAAK,CAAC,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,aAAa,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;oBACxF,IAAI,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;oBAElD,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC;wBAC3C,IAAI,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;wBAC7B,EAAE,CAAC,CAAC,QAAQ,YAAY,oBAAc,CAAC,CAAC,CAAC;4BACxC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,IAAI,CAAC,EACpI,UAAU,CAAC,CAAC;wBACd,CAAC;wBAAC,IAAI;4BACL,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBACvH,CAAC;gBACF,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBACzC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,OAAO,CAAC,iBAAiB,GAAG,aAAa,CAAC;gBAC1C,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;YAC3C,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,OAAO,CAAC;QAChB,CAAC;QAED,wCAAe,GAAf,UAAiB,EAAc,EAAE,QAAkB;YAClD,IAAI,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;gBAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAElE,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC;gBACvB,GAAG,GAAG,CAAC,CAAC;YACT,IAAI,CAAC,CAAC;gBACL,GAAG,GAAG,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC;gBAClC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;oBAAC,GAAG,GAAG,CAAC,CAAC;YACtB,CAAC;YAED,IAAI,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YAC5D,IAAI,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC5F,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAChF,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;YACpD,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YACzC,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACrC,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAEzC,IAAI,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,CAAC;YACpD,EAAE,CAAC,CAAC,UAAU,CAAC;gBAAC,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YACrF,IAAI,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAE/C,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,cAAc,EAAE,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;YAC1F,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1B,KAAK,cAAc,CAAC,UAAU;wBAC7B,KAAK,GAAG,KAAK,CAAC;wBACd,KAAK,GAAG,QAAQ,CAAC;wBACjB,KAAK,CAAC;oBACP,KAAK,cAAc,CAAC,KAAK;wBACxB,KAAK,GAAG,IAAI,CAAC;wBACb,KAAK,GAAG,QAAQ,CAAC;wBACjB,KAAK,CAAC;oBACP,KAAK,cAAc,CAAC,GAAG;wBACtB,KAAK,GAAG,IAAI,CAAC;wBACb,KAAK,GAAG,QAAQ,CAAC;wBACjB,KAAK,CAAC;oBACP;wBACC,KAAK,GAAG,IAAI,CAAC;wBACb,KAAK,GAAG,QAAQ,CAAC;wBACjB,IAAI,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;wBAC/B,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;wBAC9D,KAAK,CAAC;gBACP,CAAC;gBACD,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;gBACzB,EAAE,CAAC,CAAC,QAAQ,YAAY,oBAAc,CAAC;oBACtC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;gBAClH,IAAI,CAAC,CAAC;oBACL,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBACZ,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,QAAQ,YAAY,wBAAkB,CAAC;4BAAC,QAAQ,CAAC;wBACrE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,QAAQ,YAAY,uBAAiB,CAAC;4BAAC,QAAQ,CAAC;oBACnE,CAAC;oBACD,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBACpF,CAAC;YACF,CAAC;YAED,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC;YACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;YAEpC,MAAM,CAAC,GAAG,CAAC;QACZ,CAAC;QAED,4CAAmB,GAAnB,UAAqB,QAAkB,EAAE,QAAkB,EAAE,IAAY,EAAE,KAAa,EAAE,SAAkB,EAC3G,iBAAgC,EAAE,CAAS,EAAE,UAAmB;YAEhE,EAAE,CAAC,CAAC,UAAU,CAAC;gBAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAEzC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC7D,MAAM,CAAC;YACR,CAAC;YAED,IAAI,cAAc,GAAG,QAA0B,CAAC;YAChD,IAAI,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;YACnC,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACpD,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAClD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAc,CAAC,OAAO,CAAC,CAAC;gBAC1D,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAc,CAAC,aAAa,CAAC,CAAC;YAChF,IAAI,CAAC,CAAC;gBAEL,IAAI,KAAK,GAAG,eAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,oBAAc,CAAC,OAAO,CAAC,CAAC;gBACzE,IAAI,YAAY,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAc,CAAC,aAAa,CAAC,CAAC;gBAChE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,EAC5D,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,oBAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAElF,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAc,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;gBAC5D,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBAC5D,EAAE,GAAG,YAAY,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACtD,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YAC7D,CAAC;YAGD,IAAI,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACxD,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;YAC9B,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;gBACf,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBAChE,IAAI,SAAS,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC;gBAChC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;oBAChB,SAAS,GAAG,CAAC,CAAC;oBACd,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;oBACjC,QAAQ,GAAG,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrC,CAAC;gBACD,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,IAAI,CAAC,CAAC;gBAE7C,EAAE,CAAC,CAAC,eAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,eAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAEtF,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;wBAAC,SAAS,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAC9E,GAAG,GAAG,OAAO,CAAC;gBACf,CAAC;gBACD,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,GAAG,CAAC;gBAC3C,EAAE,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC;oBAAC,KAAK,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC/D,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YAC9B,CAAC;YACD,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YAChC,EAAE,IAAI,KAAK,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAC5E,CAAC;QAED,oCAAW,GAAX,UAAa,KAAiB,EAAE,aAAqB;YACpD,IAAI,cAAc,GAAG,KAAK,CAAC,cAAc,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YAC7E,IAAI,QAAQ,GAAG,YAAY,GAAG,cAAc,CAAC;YAC7C,IAAI,gBAAgB,GAAG,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;YAGlD,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YAC7B,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnB,IAAI,OAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,OAAK,CAAC,IAAI,GAAG,gBAAgB,CAAC;oBAAC,KAAK,CAAC;gBACzC,EAAE,CAAC,CAAC,OAAK,CAAC,IAAI,GAAG,YAAY,CAAC;oBAAC,QAAQ,CAAC;gBACxC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,OAAK,CAAC,CAAC;YAChC,CAAC;YAGD,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,gBAAgB,GAAG,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;kBAC7D,CAAC,aAAa,IAAI,YAAY,IAAI,KAAK,CAAC,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC1E,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;YAGD,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnB,IAAI,OAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,OAAK,CAAC,IAAI,GAAG,cAAc,CAAC;oBAAC,QAAQ,CAAC;gBAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,CAAC;QACF,CAAC;QAED,oCAAW,GAAX;YACC,IAAI,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAChC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACjD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,gBAAgB,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAED,mCAAU,GAAV,UAAY,UAAkB;YAC7B,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC;YAC7C,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACtC,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC;YAE5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAExB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAE1B,IAAI,KAAK,GAAG,OAAO,CAAC;YACpB,OAAO,IAAI,EAAE,CAAC;gBACb,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;gBAC5B,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;oBAAC,KAAK,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;gBACxB,KAAK,GAAG,IAAI,CAAC;YACd,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAEvC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAED,mCAAU,GAAV,UAAY,KAAa,EAAE,OAAmB,EAAE,SAAkB;YACjE,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;YAE7B,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;gBAClB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC1C,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;gBAC1B,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;gBAGpB,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;oBACnD,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;gBAExE,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;YACnC,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,qCAAY,GAAZ,UAAc,UAAkB,EAAE,aAAqB,EAAE,IAAa;YACrE,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YACpE,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,aAAa,CAAC,CAAC;YAChF,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC3D,CAAC;QAED,yCAAgB,GAAhB,UAAkB,UAAkB,EAAE,SAAoB,EAAE,IAAa;YACxE,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACpE,IAAI,SAAS,GAAG,IAAI,CAAC;YACrB,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC7C,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;gBACrB,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEjC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;oBAC7C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACxB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC1B,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;oBAC7B,SAAS,GAAG,KAAK,CAAC;gBACnB,CAAC;gBAAC,IAAI;oBACL,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,qCAAY,GAAZ,UAAc,UAAkB,EAAE,aAAqB,EAAE,IAAa,EAAE,KAAa;YACpF,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YACpE,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,aAAa,CAAC,CAAC;YAChF,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAClE,CAAC;QAED,yCAAgB,GAAhB,UAAkB,UAAkB,EAAE,SAAoB,EAAE,IAAa,EAAE,KAAa;YACvF,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAEpE,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;gBAClB,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI;oBACvB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC;YAED,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAE/D,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;gBAClB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;oBACvD,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;wBACjB,KAAK,IAAI,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;oBAC3G,IAAI;wBACH,KAAK,GAAG,CAAC,CAAC;gBACZ,CAAC;YACF,CAAC;YAED,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,0CAAiB,GAAjB,UAAmB,UAAkB,EAAE,WAAmB;YACzD,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YACpF,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;YAChC,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,0CAAiB,GAAjB,UAAmB,UAAkB,EAAE,WAAmB,EAAE,KAAa;YACxE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;gBAAC,KAAK,IAAI,WAAW,CAAC;YACrC,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3F,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;YAChC,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,2CAAkB,GAAlB,UAAoB,WAAmB;YACtC,IAAI,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAChC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpD,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC7B,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;oBAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAC9E,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,gBAAgB,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAED,sCAAa,GAAb,UAAe,KAAa;YAC3B,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1D,WAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7E,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,mCAAU,GAAV,UAAY,UAAkB,EAAE,SAAoB,EAAE,IAAa,EAAE,IAAgB;YACpF,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YACzC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;YAC9B,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YAElB,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;YACzB,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC;YAC9B,KAAK,CAAC,kBAAkB,GAAG,CAAC,CAAC;YAE7B,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;YACzB,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC;YACxC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YACzB,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;YAE7B,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;YACpB,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YACrB,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YACzB,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;YAClC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;YAEpB,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;YACzB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;YAClB,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACnF,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,oCAAW,GAAX,UAAa,KAAiB;YAC7B,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACtB,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC;gBACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAClB,CAAC;YACD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,2CAAkB,GAAlB;YACC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAE/B,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,WAAW,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAE7B,IAAI,SAAS,GAAe,IAAI,CAAC;YACjC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpD,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC3B,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;oBACnB,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;oBACxD,SAAS,GAAG,KAAK,CAAC;gBACnB,CAAC;YACF,CAAC;QACF,CAAC;QAED,mCAAU,GAAV,UAAY,UAAkB;YAC7B,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QAED,oCAAW,GAAX,UAAa,QAAiC;YAC7C,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAGD,uCAAc,GAAd,UAAgB,QAAiC;YAChD,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7C,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;gBAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,uCAAc,GAAd;YACC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,CAAC;QAED,mDAA0B,GAA1B;YACC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QA/hBM,6BAAc,GAAG,IAAI,eAAS,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACjD,yBAAU,GAAG,CAAC,CAAC;QACf,oBAAK,GAAG,CAAC,CAAC;QACV,kBAAG,GAAG,CAAC,CAAC;QACR,sBAAO,GAAG,CAAC,CAAC;QA4hBpB,qBAAC;IAAD,CAAC,AAjiBD,IAiiBC;IAjiBY,oBAAc,iBAiiB1B,CAAA;IAED;QAAA;YAUC,iBAAY,GAAG,IAAI,KAAK,EAAU,CAAC;YACnC,mBAAc,GAAG,IAAI,KAAK,EAAc,CAAC;YACzC,sBAAiB,GAAG,IAAI,KAAK,EAAU,CAAC;QA6EzC,CAAC;QA3EA,0BAAK,GAAL;YACC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QACnC,CAAC;QAED,oCAAe,GAAf,UAAiB,EAAc,EAAE,aAAgC,EAAE,WAAmB;YACrF,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC;gBAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;YACnH,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC;gBAAC,aAAa,CAAC,GAAG,EAAE,CAAC;YAEpC,IAAI,QAAQ,GAAG,aAAa,CAAC;YAC7B,IAAI,YAAY,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5C,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YACzC,IAAI,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;YACrD,IAAI,YAAY,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YACzE,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/B,IAAI,cAAc,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;YAE7E,KAAK,EACL,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;gBACtC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACxB,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC;gBAC7C,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;oBAC1C,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC;gBACxC,IAAI,CAAC,CAAC;oBACL,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,YAAY,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;wBAC3C,IAAI,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;wBACzB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;4BAC5B,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;gCAC3B,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC;gCACzC,cAAc,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gCAC1B,QAAQ,CAAC,KAAK,CAAC;4BAChB,CAAC;wBACF,CAAC;oBACF,CAAC;oBACD,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC;gBACtC,CAAC;YACF,CAAC;YACD,MAAM,CAAC,SAAS,CAAC;QAClB,CAAC;QAED,gCAAW,GAAX,UAAa,EAAU;YACtB,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YACzC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC/C,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,qCAAgB,GAAhB;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACf,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;gBACvD,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;gBAC9C,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;YAC1D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1E,CAAC;QAED,qCAAgB,GAAhB,UAAiB,aAAqB;YACrC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YACnC,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC;QACxC,CAAC;QAED,+BAAU,GAAV;YACC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;QAClE,CAAC;QAED,4CAAuB,GAAvB;YACC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QACnC,CAAC;QACF,iBAAC;IAAD,CAAC,AAzFD,IAyFC;IAzFY,gBAAU,aAyFtB,CAAA;IAED;QAKC,oBAAY,SAAyB;YAJrC,YAAO,GAAe,EAAE,CAAC;YACzB,kBAAa,GAAG,KAAK,CAAC;YAIrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC5B,CAAC;QAED,0BAAK,GAAL,UAAO,KAAiB;YACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC;QACzC,CAAC;QAED,8BAAS,GAAT,UAAW,KAAiB;YAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,wBAAG,GAAH,UAAK,KAAiB;YACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC;QACzC,CAAC;QAED,4BAAO,GAAP,UAAS,KAAiB;YACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,6BAAQ,GAAR,UAAU,KAAiB;YAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,0BAAK,GAAL,UAAO,KAAiB,EAAE,KAAY;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,0BAAK,GAAL;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;gBAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAE1B,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC3B,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YAEzC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAc,CAAC;gBACnC,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAe,CAAC;gBACzC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBACf,KAAK,SAAS,CAAC,KAAK;wBACnB,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBAChF,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;gCAAC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACrD,KAAK,CAAC;oBACP,KAAK,SAAS,CAAC,SAAS;wBACvB,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;4BAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wBACxF,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;gCAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wBAC7D,KAAK,CAAC;oBACP,KAAK,SAAS,CAAC,GAAG;wBACjB,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;4BAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC5E,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;gCAAC,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAElD,KAAK,SAAS,CAAC,OAAO;wBACrB,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;4BAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBACpF,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;gCAAC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBACzD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC1C,KAAK,CAAC;oBACP,KAAK,SAAS,CAAC,QAAQ;wBACtB,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;4BAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBACtF,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;gCAAC,SAAS,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBAC3D,KAAK,CAAC;oBACP,KAAK,SAAS,CAAC,KAAK;wBACnB,IAAI,OAAK,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAU,CAAC;wBACtC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,OAAK,CAAC,CAAC;wBACvF,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;gCAAC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAK,CAAC,CAAC;wBAC5D,KAAK,CAAC;gBACP,CAAC;YACF,CAAC;YACD,IAAI,CAAC,KAAK,EAAE,CAAC;YAEb,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC5B,CAAC;QAED,0BAAK,GAAL;YACC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,CAAC;QACF,iBAAC;IAAD,CAAC,AA/FD,IA+FC;IA/FY,gBAAU,aA+FtB,CAAA;IAED,WAAY,SAAS;QACpB,2CAAK,CAAA;QAAE,mDAAS,CAAA;QAAE,uCAAG,CAAA;QAAE,+CAAO,CAAA;QAAE,iDAAQ,CAAA;QAAE,2CAAK,CAAA;IAChD,CAAC,EAFW,eAAS,KAAT,eAAS,QAEpB;IAFD,IAAY,SAAS,GAAT,eAEX,CAAA;IAwBD;QAAA;QAkBA,CAAC;QAjBA,sCAAK,GAAL,UAAO,KAAiB;QACxB,CAAC;QAED,0CAAS,GAAT,UAAW,KAAiB;QAC5B,CAAC;QAED,oCAAG,GAAH,UAAK,KAAiB;QACtB,CAAC;QAED,wCAAO,GAAP,UAAS,KAAiB;QAC1B,CAAC;QAED,yCAAQ,GAAR,UAAU,KAAiB;QAC3B,CAAC;QAED,sCAAK,GAAL,UAAO,KAAiB,EAAE,KAAY;QACtC,CAAC;QACF,6BAAC;IAAD,CAAC,AAlBD,IAkBC;IAlBqB,4BAAsB,yBAkB3C,CAAA;AACF,CAAC,EA7wBM,KAAK,KAAL,KAAK,QA6wBX;AC7wBD,IAAO,KAAK,CAgCX;AAhCD,WAAO,KAAK,EAAC,CAAC;IACb;QAKC,4BAAa,YAA0B;YAHvC,uBAAkB,GAAgB,EAAG,CAAC;YACtC,eAAU,GAAG,CAAC,CAAC;YAGd,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC1E,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAClC,CAAC;QAED,mCAAM,GAAN,UAAQ,QAAgB,EAAE,MAAc,EAAE,QAAgB;YACzD,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACrD,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,QAAQ,CAAC,CAAC;YACtE,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACjD,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,MAAM,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;QAED,uCAAU,GAAV,UAAY,IAAe,EAAE,EAAa,EAAE,QAAgB;YAC3D,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACtD,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;YAC9B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QACzC,CAAC;QAED,mCAAM,GAAN,UAAQ,IAAe,EAAE,EAAa;YACrC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;YAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,KAAK,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACtD,CAAC;QACF,yBAAC;IAAD,CAAC,AA9BD,IA8BC;IA9BY,wBAAkB,qBA8B9B,CAAA;AACF,CAAC,EAhCM,KAAK,KAAL,KAAK,QAgCX;AChCD,IAAO,KAAK,CA8CX;AA9CD,WAAO,KAAK,EAAC,CAAC;IACb;QAGC,+BAAa,KAAmB;YAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,CAAC;QAGD,mDAAmB,GAAnB,UAAqB,IAAU,EAAE,IAAY,EAAE,IAAY;YAC1D,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACzC,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,IAAI,GAAG,uBAAuB,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;YACjH,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;YAC7B,IAAI,UAAU,GAAG,IAAI,sBAAgB,CAAC,IAAI,CAAC,CAAC;YAC5C,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,CAAC,UAAU,CAAC;QACnB,CAAC;QAGD,iDAAiB,GAAjB,UAAmB,IAAU,EAAE,IAAY,EAAE,IAAY;YACxD,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACzC,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,IAAI,GAAG,qBAAqB,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;YAC/G,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;YAC7B,IAAI,UAAU,GAAG,IAAI,oBAAc,CAAC,IAAI,CAAC,CAAC;YAC1C,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;YAC3B,MAAM,CAAC,UAAU,CAAC;QACnB,CAAC;QAGD,wDAAwB,GAAxB,UAA0B,IAAU,EAAE,IAAY;YACjD,MAAM,CAAC,IAAI,2BAAqB,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAGD,iDAAiB,GAAjB,UAAmB,IAAU,EAAE,IAAY;YAC1C,MAAM,CAAC,IAAI,oBAAc,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,kDAAkB,GAAlB,UAAmB,IAAU,EAAE,IAAY;YAC1C,MAAM,CAAC,IAAI,qBAAe,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,qDAAqB,GAArB,UAAsB,IAAU,EAAE,IAAY;YAC7C,MAAM,CAAC,IAAI,wBAAkB,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QACF,4BAAC;IAAD,CAAC,AA5CD,IA4CC;IA5CY,2BAAqB,wBA4CjC,CAAA;AACF,CAAC,EA9CM,KAAK,KAAL,KAAK,QA8CX;AC9CD,IAAO,KAAK,CAuFX;AAvFD,WAAO,KAAK,EAAC,CAAC;IACb;QAGC,oBAAa,IAAY;YACxB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,iBAAC;IAAD,CAAC,AAPD,IAOC;IAPqB,gBAAU,aAO/B,CAAA;IAED;QAA+C,oCAAU;QAKxD,0BAAa,IAAY;YACxB,kBAAM,IAAI,CAAC,CAAC;YAHb,wBAAmB,GAAG,CAAC,CAAC;QAIxB,CAAC;QAOD,+CAAoB,GAApB,UAAsB,IAAU,EAAE,KAAa,EAAE,KAAa,EAAE,aAAgC,EAAE,MAAc,EAAE,MAAc;YAC/H,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;YACvC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClC,IAAI,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC1C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;gBACnB,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;oBAAC,QAAQ,GAAG,WAAW,CAAC;gBACnD,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACrB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBACnD,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,KAAK,EAAE,GAAC,IAAI,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;oBAChE,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,GAAC,GAAG,CAAC,CAAC,CAAC;oBAC3C,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;oBACvC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC5C,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;YACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACX,IAAI,IAAI,CAAC,CAAC;YACX,CAAC;YACD,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;YACnC,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC7B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;oBAC3D,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;oBACnB,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;oBACnB,CAAC,IAAI,CAAC,CAAC;oBACP,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC3B,IAAI,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACrE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;wBACzD,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;oBAC1D,CAAC;oBACD,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACtB,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC3B,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,MAAM,GAAG,WAAW,CAAC;gBACzB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;oBAC1E,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;oBACnB,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;oBACnB,CAAC,IAAI,CAAC,CAAC;oBACP,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;wBACnC,IAAI,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACjG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;wBACzD,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;oBAC1D,CAAC;oBACD,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACtB,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC3B,CAAC;YACF,CAAC;QACF,CAAC;QAGD,sCAAW,GAAX,UAAa,gBAAkC;YAC9C,MAAM,CAAC,IAAI,IAAI,gBAAgB,CAAC;QACjC,CAAC;QACF,uBAAC;IAAD,CAAC,AA5ED,CAA+C,UAAU,GA4ExD;IA5EqB,sBAAgB,mBA4ErC,CAAA;AACF,CAAC,EAvFM,KAAK,KAAL,KAAK,QAuFX;AEvFD,IAAO,KAAK,CAIX;AAJD,WAAO,KAAK,EAAC,CAAC;IACb,WAAY,cAAc;QACzB,uDAAM,CAAA;QAAE,iEAAW,CAAA;QAAE,mDAAI,CAAA;QAAE,+DAAU,CAAA;QAAE,mDAAI,CAAA;QAAE,qDAAK,CAAA;IACnD,CAAC,EAFW,oBAAc,KAAd,oBAAc,QAEzB;IAFD,IAAY,cAAc,GAAd,oBAEX,CAAA;AACF,CAAC,EAJM,KAAK,KAAL,KAAK,QAIX;ACJD,IAAO,KAAK,CAQX;AARD,WAAO,KAAK,EAAC,CAAC;IACb;QAA2C,yCAAgB;QAG1D,+BAAa,IAAY;YACxB,kBAAM,IAAI,CAAC,CAAC;YAHb,UAAK,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAI9B,CAAC;QACF,4BAAC;IAAD,CAAC,AAND,CAA2C,sBAAgB,GAM1D;IANY,2BAAqB,wBAMjC,CAAA;AACF,CAAC,EARM,KAAK,KAAL,KAAK,QAQX;ACRD,IAAO,KAAK,CAWX;AAXD,WAAO,KAAK,EAAC,CAAC;IACb;QAAwC,sCAAgB;QAMvD,4BAAa,IAAY;YACxB,kBAAM,IAAI,CAAC,CAAC;YAHb,UAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAInD,CAAC;QACF,yBAAC;IAAD,CAAC,AATD,CAAwC,sBAAgB,GASvD;IATY,wBAAkB,qBAS9B,CAAA;AACF,CAAC,EAXM,KAAK,KAAL,KAAK,QAWX;ACXD,IAAO,KAAK,CAkEX;AAlED,WAAO,KAAK,EAAC,CAAC;IACb;QAAoC,kCAAgB;QAWnD,wBAAa,IAAY;YACxB,kBAAM,IAAI,CAAC,CAAC;YAPb,UAAK,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAG9B,kBAAa,GAAG,KAAK,CAAC;YACtB,cAAS,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAIlC,CAAC;QAED,kCAAS,GAAT;YACC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;YACxC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;gBACzB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACV,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;YACpB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClB,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC3B,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC;gBAAC,IAAI,CAAC,GAAG,GAAG,WAAK,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9G,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACnB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;oBACtC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;gBACjD,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBAClC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;gBAC5C,CAAC;YACF,CAAC;QACF,CAAC;QAED,oCAAW,GAAX,UAAa,gBAAkC;YAC9C,MAAM,CAAC,IAAI,IAAI,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,IAAI,gBAAgB,CAAC,CAAC;QAChG,CAAC;QAED,sCAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACxB,CAAC;QAGD,sCAAa,GAAb,UAAe,UAA0B;YACxC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;gBAC9B,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;gBACpC,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,CAAC;gBAC1D,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;gBACtC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;gBACtC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;gBACxC,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,CAAA;YAC1D,CAAC;QACF,CAAC;QACF,qBAAC;IAAD,CAAC,AA/DD,CAAoC,sBAAgB,GA+DnD;IA/DY,oBAAc,iBA+D1B,CAAA;AAEF,CAAC,EAlEM,KAAK,KAAL,KAAK,QAkEX;AClED,IAAO,KAAK,CAUX;AAVD,WAAO,KAAK,EAAC,CAAC;IACb;QAAoC,kCAAgB;QAKnD,wBAAa,IAAY;YACxB,kBAAM,IAAI,CAAC,CAAC;YAJb,WAAM,GAAG,KAAK,CAAC;YAAC,kBAAa,GAAG,KAAK,CAAC;YACtC,UAAK,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAI9B,CAAC;QACF,qBAAC;IAAD,CAAC,AARD,CAAoC,sBAAgB,GAQnD;IARY,oBAAc,iBAQ1B,CAAA;AACF,CAAC,EAVM,KAAK,KAAL,KAAK,QAUX;ACVD,IAAO,KAAK,CAsBX;AAtBD,WAAO,KAAK,EAAC,CAAC;IACb;QAAqC,mCAAgB;QAIpD,yBAAa,IAAY;YACxB,kBAAM,IAAI,CAAC,CAAC;YAHb,UAAK,GAAG,IAAI,WAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAIpC,CAAC;QAED,8CAAoB,GAApB,UAAsB,IAAU,EAAE,KAAc;YAC/C,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1D,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1D,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,8CAAoB,GAApB,UAAsB,IAAU;YAC/B,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjF,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;QAC5C,CAAC;QACF,sBAAC;IAAD,CAAC,AApBD,CAAqC,sBAAgB,GAoBpD;IApBY,qBAAe,kBAoB3B,CAAA;AACF,CAAC,EAtBM,KAAK,KAAL,KAAK,QAsBX;ACtBD,IAAO,KAAK,CAkJX;AAlJD,WAAO,KAAK,EAAC,CAAC;IACb;QAAsC,oCAAU;QA0D/C,0BAAa,IAAW;YACvB,kBAAM,IAAI,CAAC,CAAC;YAbb,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAAC,UAAK,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAC1E,UAAK,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAM9B,WAAM,GAAG,WAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAChC,QAAG,GAAG,WAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAE7B,cAAS,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAIlC,CAAC;QAED,uCAAY,GAAZ;YACC,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;YACxE,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1E,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC;YAChF,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC;YACjF,IAAI,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC;YACxD,IAAI,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC;YACzD,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;YAC5C,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,SAAS,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACtC,IAAI,SAAS,GAAG,MAAM,GAAG,GAAG,CAAC;YAC7B,IAAI,SAAS,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACtC,IAAI,SAAS,GAAG,MAAM,GAAG,GAAG,CAAC;YAC7B,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACxC,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC;YAC/B,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACxC,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC;YAC/B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC;YACrD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC;YACrD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC;YACtD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC;YACtD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC;YACvD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC;YACvD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC;YACtD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC;QACvD,CAAC;QAED,oCAAS,GAAT,UAAW,MAAqB;YAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACnB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;YACpB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;YACpB,CAAC;QACF,CAAC;QAED,+CAAoB,GAApB,UAAsB,IAAU,EAAE,aAAgC,EAAE,MAAc,EAAE,MAAc;YACjG,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACrC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;YAE7B,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YACtD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1D,MAAM,IAAI,MAAM,CAAC;YAEjB,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YACtD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1D,MAAM,IAAI,MAAM,CAAC;YAEjB,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YACtD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1D,MAAM,IAAI,MAAM,CAAC;YAEjB,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YACtD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3D,CAAC;QA9IM,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QAER,mBAAE,GAAG,CAAC,CAAC;QACP,mBAAE,GAAG,CAAC,CAAC;QACP,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QACR,mBAAE,GAAG,CAAC,CAAC;QACP,mBAAE,GAAG,CAAC,CAAC;QAEP,mBAAE,GAAG,CAAC,CAAC;QACP,mBAAE,GAAG,CAAC,CAAC;QACP,oBAAG,GAAG,EAAE,CAAC;QACT,oBAAG,GAAG,EAAE,CAAC;QACT,oBAAG,GAAG,EAAE,CAAC;QACT,oBAAG,GAAG,EAAE,CAAC;QACT,mBAAE,GAAG,EAAE,CAAC;QACR,mBAAE,GAAG,EAAE,CAAC;QAER,mBAAE,GAAG,EAAE,CAAC;QACR,mBAAE,GAAG,EAAE,CAAC;QACR,oBAAG,GAAG,EAAE,CAAC;QACT,oBAAG,GAAG,EAAE,CAAC;QACT,oBAAG,GAAG,EAAE,CAAC;QACT,oBAAG,GAAG,EAAE,CAAC;QACT,mBAAE,GAAG,EAAE,CAAC;QACR,mBAAE,GAAG,EAAE,CAAC;QAER,mBAAE,GAAG,EAAE,CAAC;QACR,mBAAE,GAAG,EAAE,CAAC;QACR,oBAAG,GAAG,EAAE,CAAC;QACT,oBAAG,GAAG,EAAE,CAAC;QACT,oBAAG,GAAG,EAAE,CAAC;QACT,oBAAG,GAAG,EAAE,CAAC;QACT,mBAAE,GAAG,EAAE,CAAC;QACR,mBAAE,GAAG,EAAE,CAAC;QAoGhB,uBAAC;IAAD,CAAC,AAhJD,CAAsC,gBAAU,GAgJ/C;IAhJY,sBAAgB,mBAgJ5B,CAAA;AACF,CAAC,EAlJM,KAAK,KAAL,KAAK,QAkJX;AClJD,IAAO,KAAK,CAOX;AAPD,WAAO,KAAK,EAAC,CAAC;IACb,WAAY,SAAS;QACpB,6CAAM,CAAA;QACN,iDAAQ,CAAA;QACR,iDAAQ,CAAA;QACR,6CAAM,CAAA;IACP,CAAC,EALW,eAAS,KAAT,eAAS,QAKpB;IALD,IAAY,SAAS,GAAT,eAKX,CAAA;AACF,CAAC,EAPM,KAAK,KAAL,KAAK,QAOX;ACPD,IAAO,KAAK,CA8QX;AA9QD,WAAO,KAAK,EAAC,CAAC;IACb;QAeC,cAAa,IAAc,EAAE,QAAkB,EAAE,MAAY;YAX7D,aAAQ,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC7B,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAC3E,OAAE,GAAG,CAAC,CAAC;YAAC,OAAE,GAAG,CAAC,CAAC;YAAC,cAAS,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAClF,iBAAY,GAAG,KAAK,CAAC;YAErB,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YACzB,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAEzB,WAAM,GAAG,KAAK,CAAC;YAId,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC;QAGD,qBAAM,GAAN;YACC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClH,CAAC;QAGD,mCAAoB,GAApB;YACC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClH,CAAC;QAGD,uCAAwB,GAAxB,UAA0B,CAAS,EAAE,CAAS,EAAE,QAAgB,EAAE,MAAc,EAAE,MAAc,EAAE,MAAc,EAAE,MAAc;YAC/H,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACZ,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACZ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAEzB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;gBACpB,IAAI,SAAS,GAAG,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC;gBACvC,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;gBACtD,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;gBAC9C,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;gBACtD,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;gBAC9C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC7B,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBACpB,CAAC,GAAG,CAAC,CAAC,CAAC;oBACP,EAAE,GAAG,CAAC,EAAE,CAAC;oBACT,EAAE,GAAG,CAAC,EAAE,CAAC;gBACV,CAAC;gBACD,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBACpB,CAAC,GAAG,CAAC,CAAC,CAAC;oBACP,EAAE,GAAG,CAAC,EAAE,CAAC;oBACT,EAAE,GAAG,CAAC,EAAE,CAAC;gBACV,CAAC;gBACD,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACZ,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACZ,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACZ,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACZ,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC7B,MAAM,CAAC;YACR,CAAC;YAED,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YAE9C,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBAClC,KAAK,mBAAa,CAAC,MAAM,EAAE,CAAC;oBAC3B,IAAI,SAAS,GAAG,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC;oBACvC,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBACtD,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;oBAC9C,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBACtD,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;oBAC9C,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,MAAM,CAAC;gBACR,CAAC;gBACD,KAAK,mBAAa,CAAC,eAAe,EAAE,CAAC;oBACpC,IAAI,SAAS,GAAG,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC;oBACvC,IAAI,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBACtD,IAAI,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;oBAC9C,IAAI,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBACtD,IAAI,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;oBAC9C,KAAK,CAAC;gBACP,CAAC;gBACD,KAAK,mBAAa,CAAC,sBAAsB,EAAE,CAAC;oBAC3C,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC1B,IAAI,GAAG,GAAG,CAAC,CAAC;oBACZ,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;wBAChB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;wBACpC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;wBACZ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;wBACZ,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;oBAC7C,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,EAAE,GAAG,CAAC,CAAC;wBACP,EAAE,GAAG,CAAC,CAAC;wBACP,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;oBAClD,CAAC;oBACD,IAAI,EAAE,GAAG,QAAQ,GAAG,MAAM,GAAG,GAAG,CAAC;oBACjC,IAAI,EAAE,GAAG,QAAQ,GAAG,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC;oBACtC,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;oBACvC,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;oBACvC,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;oBACvC,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;oBACvC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,KAAK,CAAC;gBACP,CAAC;gBACD,KAAK,mBAAa,CAAC,OAAO,CAAC;gBAC3B,KAAK,mBAAa,CAAC,mBAAmB,EAAE,CAAC;oBACxC,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACrC,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACrC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;oBAC7B,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;oBAC7B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBACrC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;wBAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC3B,EAAE,IAAI,CAAC,CAAC;oBACR,EAAE,IAAI,CAAC,CAAC;oBACR,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBACjC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACzC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;oBAC3C,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBAChD,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;oBAC3C,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBAChD,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,mBAAa,CAAC,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;wBACvI,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;wBACjB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;oBAClB,CAAC;oBACD,MAAM,CAAC;gBACR,CAAC;YACD,CAAC;YACD,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAClB,CAAC;QACF,CAAC;QAED,6BAAc,GAAd;YACC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,CAAC;QAED,gCAAiB,GAAjB;YACC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;QACtD,CAAC;QAED,gCAAiB,GAAjB;YACC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;QACtD,CAAC;QAED,6BAAc,GAAd;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,6BAAc,GAAd;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;QAMD,qCAAsB,GAAtB;YACC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;gBACtB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;gBACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;gBAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;gBACnH,MAAM,CAAC;YACR,CAAC;YACD,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAClC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACvE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;YAC1C,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;YAC1C,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;YAClB,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;YAClB,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;YAClB,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;YAClB,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YACnC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YACnC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YACnC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5C,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;gBAC3B,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBAC5B,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;gBAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;gBACrE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;YACxD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;YAC7D,CAAC;QACF,CAAC;QAED,2BAAY,GAAZ,UAAc,KAAc;YAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACzD,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YAC5C,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,2BAAY,GAAZ,UAAc,KAAc;YAC3B,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAC7B,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAChD,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,mCAAoB,GAApB,UAAsB,aAAqB;YAC1C,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACjF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;QAChG,CAAC;QAED,mCAAoB,GAApB,UAAsB,aAAqB;YAC1C,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACjF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;QAChG,CAAC;QAED,0BAAW,GAAX,UAAa,OAAe;YAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrE,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC3B,CAAC;QACF,WAAC;IAAD,CAAC,AA5QD,IA4QC;IA5QY,UAAI,OA4QhB,CAAA;AACF,CAAC,EA9QM,KAAK,KAAL,KAAK,QA8QX;AC9QD,IAAO,KAAK,CAqBX;AArBD,WAAO,KAAK,EAAC,CAAC;IACb;QAQC,kBAAa,KAAa,EAAE,IAAY,EAAE,MAAgB;YAH1D,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAC3E,kBAAa,GAAG,aAAa,CAAC,MAAM,CAAC;YAGpC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACtD,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,CAAC;QACF,eAAC;IAAD,CAAC,AAfD,IAeC;IAfY,cAAQ,WAepB,CAAA;IAED,WAAY,aAAa;QACxB,qDAAM,CAAA;QAAE,uEAAe,CAAA;QAAE,qFAAsB,CAAA;QAAE,uDAAO,CAAA;QAAE,+EAAmB,CAAA;IAC9E,CAAC,EAFW,mBAAa,KAAb,mBAAa,QAExB;IAFD,IAAY,aAAa,GAAb,mBAEX,CAAA;AACF,CAAC,EArBM,KAAK,KAAL,KAAK,QAqBX;AErBD,IAAO,KAAK,CAcX;AAdD,WAAO,KAAK,EAAC,CAAC;IACb;QAOC,eAAa,IAAY,EAAE,IAAe;YACzC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,YAAC;IAAD,CAAC,AAZD,IAYC;IAZY,WAAK,QAYjB,CAAA;AACF,CAAC,EAdM,KAAK,KAAL,KAAK,QAcX;ACdD,IAAO,KAAK,CAWX;AAXD,WAAO,KAAK,EAAC,CAAC;IACb;QAMC,mBAAa,IAAY;YACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,gBAAC;IAAD,CAAC,AATD,IASC;IATY,eAAS,YASrB,CAAA;AACF,CAAC,EAXM,KAAK,KAAL,KAAK,QAWX;ACXD,IAAO,KAAK,CAyLX;AAzLD,WAAO,KAAK,EAAC,CAAC;IACb;QAOC,sBAAa,IAAsB,EAAE,QAAkB;YAHvD,QAAG,GAAG,CAAC,CAAC;YACR,kBAAa,GAAG,CAAC,CAAC;YAGjB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAExC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;gBACzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QAED,+BAAQ,GAAR;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,CAAC;QAED,4BAAK,GAAL;YACC,IAAI,CAAC,MAAM,EAAE,CAAC;QACf,CAAC;QAED,6BAAM,GAAN;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBACvB,KAAK,CAAC;oBACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC9D,KAAK,CAAC;gBACP,KAAK,CAAC;oBACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC5F,KAAK,CAAC;YACP,CAAC;QACF,CAAC;QAID,6BAAM,GAAN,UAAQ,IAAU,EAAE,OAAe,EAAE,OAAe,EAAE,KAAa;YAClE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;gBAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACtD,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;YACnD,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACrF,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YACvF,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBAAC,UAAU,IAAI,GAAG,CAAC;YACxC,EAAE,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC;gBACpB,UAAU,IAAI,GAAG,CAAC;YACnB,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC;gBAAC,UAAU,IAAI,GAAG,CAAC;YAC9C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,GAAG,UAAU,GAAG,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAC5H,IAAI,CAAC,OAAO,CAAC,CAAC;QAChB,CAAC;QAKD,6BAAM,GAAN,UAAQ,MAAY,EAAE,KAAW,EAAE,OAAe,EAAE,OAAe,EAAE,OAAe,EAAE,KAAa;YAClG,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,KAAK,CAAC,oBAAoB,EAAE,CAAC;gBAC7B,MAAM,CAAC;YACR,CAAC;YACD,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gBAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;YAC1D,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;gBAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;YACxD,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;YACpG,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAC7B,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACb,GAAG,GAAG,CAAC,GAAG,CAAC;gBACX,GAAG,GAAG,GAAG,CAAC;gBACV,EAAE,GAAG,CAAC,CAAC,CAAC;YACT,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,GAAG,GAAG,CAAC,CAAC;gBACR,EAAE,GAAG,CAAC,CAAC;YACR,CAAC;YACD,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACb,GAAG,GAAG,CAAC,GAAG,CAAC;gBACX,EAAE,GAAG,CAAC,EAAE,CAAC;YACV,CAAC;YACD,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACb,GAAG,GAAG,CAAC,GAAG,CAAC;gBACX,GAAG,GAAG,GAAG,CAAC;YACX,CAAC;YAAC,IAAI;gBACL,GAAG,GAAG,CAAC,CAAC;YACT,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;YACpG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC;YACtC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACR,EAAE,GAAG,CAAC,CAAC;gBACP,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC7B,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;gBACd,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtC,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;YACvC,CAAC;YACD,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;YACvB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACT,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACT,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACT,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACT,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;YAC/E,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;YACnE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;YACpB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;YACnE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACpF,KAAK,EACL,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACP,EAAE,IAAI,GAAG,CAAC;gBACV,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACZ,GAAG,GAAG,CAAC,CAAC,CAAC;gBACV,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;oBAAC,GAAG,GAAG,CAAC,CAAC;gBAC1B,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC9B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;gBAClB,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACnD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;gBACb,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;gBACb,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC5E,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBACrC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBACpC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACzB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACZ,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrB,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACnB,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBAClB,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC9C,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACjB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;wBACpC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC3B,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;wBACzC,KAAK,CAAC,KAAK,CAAC;oBACb,CAAC;gBACF,CAAC;gBACD,IAAI,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;gBAClF,IAAI,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;gBACjE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;gBACxB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACjB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACzB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACpB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAClB,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;wBACjB,QAAQ,GAAG,CAAC,CAAC;wBACb,OAAO,GAAG,CAAC,CAAC;wBACZ,IAAI,GAAG,CAAC,CAAC;wBACT,IAAI,GAAG,CAAC,CAAC;oBACV,CAAC;oBACD,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;wBACjB,QAAQ,GAAG,CAAC,CAAC;wBACb,OAAO,GAAG,CAAC,CAAC;wBACZ,IAAI,GAAG,CAAC,CAAC;wBACT,IAAI,GAAG,CAAC,CAAC;oBACV,CAAC;gBACF,CAAC;gBACD,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACnC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC3C,EAAE,GAAG,QAAQ,GAAG,OAAO,CAAC;gBACzB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC3C,EAAE,GAAG,QAAQ,GAAG,OAAO,CAAC;gBACzB,CAAC;YACF,CAAC;YACD,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;YACjC,IAAI,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;YAChC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC;YACnD,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC;gBACZ,EAAE,IAAI,GAAG,CAAC;YACX,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;gBAAC,EAAE,IAAI,GAAG,CAAC;YAC9B,MAAM,CAAC,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACrG,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC;YAC3B,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,QAAQ,CAAC;YAC1E,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC;gBACZ,EAAE,IAAI,GAAG,CAAC;YACX,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;gBAAC,EAAE,IAAI,GAAG,CAAC;YAC9B,KAAK,CAAC,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3H,CAAC;QACF,mBAAC;IAAD,CAAC,AAvLD,IAuLC;IAvLY,kBAAY,eAuLxB,CAAA;AACF,CAAC,EAzLM,KAAK,KAAL,KAAK,QAyLX;ACzLD,IAAO,KAAK,CAaX;AAbD,WAAO,KAAK,EAAC,CAAC;IACb;QAQC,0BAAa,IAAY;YANzB,UAAK,GAAG,CAAC,CAAC;YACV,UAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAE9B,kBAAa,GAAG,CAAC,CAAC;YAClB,QAAG,GAAG,CAAC,CAAC;YAGP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,uBAAC;IAAD,CAAC,AAXD,IAWC;IAXY,sBAAgB,mBAW5B,CAAA;AACF,CAAC,EAbM,KAAK,KAAL,KAAK,QAaX;ACbD,IAAO,KAAK,CAgXX;AAhXD,WAAO,KAAK,EAAC,CAAC;IACb;QAYC,wBAAa,IAAwB,EAAE,QAAkB;YANzD,aAAQ,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAAC,cAAS,GAAG,CAAC,CAAC;YAAC,iBAAY,GAAG,CAAC,CAAC;YAE3D,WAAM,GAAG,IAAI,KAAK,EAAU,CAAC;YAAC,cAAS,GAAG,IAAI,KAAK,EAAU,CAAC;YAC9D,UAAK,GAAG,IAAI,KAAK,EAAU,CAAC;YAAC,WAAM,GAAG,IAAI,KAAK,EAAU,CAAC;YAAC,YAAO,GAAG,IAAI,KAAK,EAAU,CAAC;YACzF,aAAQ,GAAG,IAAI,KAAK,EAAU,CAAC;YAG9B,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAChD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,CAAC;QAED,8BAAK,GAAL;YACC,IAAI,CAAC,MAAM,EAAE,CAAC;QACf,CAAC;QAED,+BAAM,GAAN;YACC,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC7C,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,YAAY,oBAAc,CAAC,CAAC;gBAAC,MAAM,CAAC;YAEpD,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACjE,IAAI,SAAS,GAAG,YAAY,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC;YACzD,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC;YAElC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,IAAI,aAAa,GAAG,WAAW,IAAI,iBAAW,CAAC,MAAM,CAAC;YACtD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACjC,IAAI,QAAQ,GAAG,UAAU,IAAI,gBAAU,CAAC,OAAO,EAAE,KAAK,GAAG,UAAU,IAAI,gBAAU,CAAC,UAAU,CAAC;YAC7F,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;YACtF,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,MAAM,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAkB,IAAI,CAAC;YACzF,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC3B,EAAE,CAAC,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC;gBAC5B,EAAE,CAAC,CAAC,KAAK,CAAC;oBAAC,OAAO,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACjE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;oBAC7C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC;oBACvF,IAAI,QAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtC,EAAE,CAAC,CAAC,KAAK,CAAC;wBAAC,OAAO,CAAC,CAAC,CAAC,GAAG,QAAM,CAAC;oBAC/B,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC,GAAG,QAAM,GAAG,WAAW,CAAC;gBACxF,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;oBACnC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;YACtB,CAAC;YAED,IAAI,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAiB,UAAU,EAAE,WAAW,EAAE,QAAQ,EAC3F,IAAI,CAAC,YAAY,IAAI,kBAAY,CAAC,OAAO,EAAE,WAAW,IAAI,iBAAW,CAAC,OAAO,CAAC,CAAC;YAChF,IAAI,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACrF,IAAI,GAAG,GAAG,KAAK,CAAC;YAChB,EAAE,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC;gBACvB,GAAG,GAAG,UAAU,IAAI,gBAAU,CAAC,KAAK,CAAC;YACtC,IAAI,CAAC,CAAC;gBACL,GAAG,GAAG,KAAK,CAAC;gBACZ,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACzB,cAAc,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,eAAS,CAAC,MAAM,GAAG,CAAC,eAAS,CAAC,MAAM,CAAC;YACpF,CAAC;YACD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnD,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;gBACpD,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;gBACpD,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,KAAK,EAAE,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC3E,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACX,IAAI,QAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBACxB,EAAE,CAAC,CAAC,QAAM,IAAI,CAAC,CAAC,CAAC,CAAC;wBACjB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,QAAM,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;wBACpE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;wBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACb,CAAC;gBACF,CAAC;gBACD,KAAK,GAAG,CAAC,CAAC;gBACV,KAAK,GAAG,CAAC,CAAC;gBACV,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACZ,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;oBAC5E,EAAE,CAAC,CAAC,QAAQ,CAAC;wBACZ,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtB,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;wBAC3B,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtB,IAAI;wBACH,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACxB,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACtB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACT,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAClB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAClB,IAAI,QAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;wBAC9B,KAAK,IAAI,CAAC,QAAM,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;wBACzD,KAAK,IAAI,CAAC,QAAM,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;oBAC1D,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,CAAC,IAAI,cAAc,CAAC;oBACrB,CAAC;oBACD,EAAE,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,EAAE,CAAC;wBACpB,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBACpB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,eAAS,CAAC,EAAE,CAAC;wBAC1B,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBACpB,CAAC,IAAI,SAAS,CAAC;oBACf,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC5B,CAAC;gBACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC3B,CAAC;QACF,CAAC;QAED,8CAAqB,GAArB,UAAuB,IAAoB,EAAE,WAAmB,EAAE,QAAiB,EAAE,eAAwB,EAC5G,cAAuB;YACvB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAkB,IAAI,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,cAAc,GAAG,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,cAAc,GAAG,CAAC,EAAE,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC;YAEhH,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBACzB,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC3B,UAAU,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,YAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;gBACrC,EAAE,CAAC,CAAC,eAAe,CAAC;oBAAC,QAAQ,IAAI,YAAU,CAAC;gBAC5C,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;oBACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;wBACnC,MAAM,CAAC,CAAC,CAAC,IAAI,YAAU,CAAC;gBAC1B,CAAC;gBACD,KAAK,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC1C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChE,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACtB,QAAQ,IAAI,KAAK,CAAC;oBAClB,IAAI,CAAC,GAAG,QAAQ,CAAC;oBAEjB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;wBACZ,CAAC,IAAI,YAAU,CAAC;wBAChB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAAC,CAAC,IAAI,YAAU,CAAC;wBAC3B,KAAK,GAAG,CAAC,CAAC;oBACX,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAClB,EAAE,CAAC,CAAC,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;4BACxC,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC;4BAClC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACtD,CAAC;wBACD,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBAC5C,QAAQ,CAAC;oBACV,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,YAAU,CAAC,CAAC,CAAC;wBAC3B,EAAE,CAAC,CAAC,SAAS,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;4BACvC,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC;4BACjC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACvE,CAAC;wBACD,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,YAAU,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBACxD,QAAQ,CAAC;oBACV,CAAC;oBAGD,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;wBACjB,IAAI,QAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;wBAC5B,EAAE,CAAC,CAAC,CAAC,GAAG,QAAM,CAAC;4BAAC,QAAQ,CAAC;wBACzB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;4BACd,CAAC,IAAI,QAAM,CAAC;wBACb,IAAI,CAAC,CAAC;4BACL,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;4BAC9B,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAM,GAAG,IAAI,CAAC,CAAC;wBAClC,CAAC;wBACD,KAAK,CAAC;oBACP,CAAC;oBACD,EAAE,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC;wBACxB,SAAS,GAAG,KAAK,CAAC;wBAClB,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC;4BACnC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;4BACtE,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACtD,CAAC;wBAAC,IAAI;4BACL,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACnE,CAAC;oBACD,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAC9G,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrC,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC;YACZ,CAAC;YAGD,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACZ,cAAc,IAAI,CAAC,CAAC;gBACpB,KAAK,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;gBACvD,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,cAAc,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtE,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,UAAU,EAAE,CAAC;gBACb,cAAc,IAAI,CAAC,CAAC;gBACpB,KAAK,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;gBACvD,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACnE,CAAC;YAGD,IAAI,MAAM,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACzD,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACrF,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;YACnF,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpD,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACf,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnB,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnB,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnB,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClB,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClB,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC;gBACrC,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC;gBACrC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;gBAC9C,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;gBAC9C,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;gBACxB,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;gBACxB,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;gBACpD,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;gBACpD,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC/C,GAAG,IAAI,IAAI,CAAC;gBACZ,GAAG,IAAI,IAAI,CAAC;gBACZ,IAAI,IAAI,KAAK,CAAC;gBACd,IAAI,IAAI,KAAK,CAAC;gBACd,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC/C,GAAG,IAAI,IAAI,CAAC;gBACZ,GAAG,IAAI,IAAI,CAAC;gBACZ,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC/C,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC;gBACpB,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC;gBACpB,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC/C,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;gBACvB,EAAE,GAAG,EAAE,CAAC;gBACR,EAAE,GAAG,EAAE,CAAC;YACT,CAAC;YACD,EAAE,CAAC,CAAC,eAAe,CAAC;gBAAC,QAAQ,IAAI,UAAU,CAAC;YAC5C,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;gBACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;oBACnC,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;YAC1B,CAAC;YAED,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7E,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,QAAQ,IAAI,KAAK,CAAC;gBAClB,IAAI,CAAC,GAAG,QAAQ,CAAC;gBAEjB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACZ,CAAC,IAAI,UAAU,CAAC;oBAChB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAAC,CAAC,IAAI,UAAU,CAAC;oBAC3B,KAAK,GAAG,CAAC,CAAC;gBACX,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;oBAC5C,QAAQ,CAAC;gBACV,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oBAC3B,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,UAAU,EAAE,KAAK,EAAE,cAAc,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;oBACzE,QAAQ,CAAC;gBACV,CAAC;gBAGD,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;oBACjB,IAAI,QAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC3B,EAAE,CAAC,CAAC,CAAC,GAAG,QAAM,CAAC;wBAAC,QAAQ,CAAC;oBACzB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;wBACd,CAAC,IAAI,QAAM,CAAC;oBACb,IAAI,CAAC,CAAC;wBACL,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;wBAC7B,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAM,GAAG,IAAI,CAAC,CAAC;oBAClC,CAAC;oBACD,KAAK,CAAC;gBACP,CAAC;gBAGD,EAAE,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC;oBACxB,SAAS,GAAG,KAAK,CAAC;oBAClB,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;oBACnB,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;oBACf,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACnB,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACpB,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACpB,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACpB,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACpB,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACnB,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACnB,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;oBACnC,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;oBACnC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;oBAC5C,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;oBAC5C,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;oBACxB,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;oBACxB,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;oBACnD,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;oBACnD,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC/C,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;oBAC1B,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;wBAC3B,GAAG,IAAI,IAAI,CAAC;wBACZ,GAAG,IAAI,IAAI,CAAC;wBACZ,IAAI,IAAI,KAAK,CAAC;wBACd,IAAI,IAAI,KAAK,CAAC;wBACd,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;wBAChD,QAAQ,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC;oBAC5B,CAAC;oBACD,GAAG,IAAI,IAAI,CAAC;oBACZ,GAAG,IAAI,IAAI,CAAC;oBACZ,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;oBAChD,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;oBAC1B,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC;oBACpB,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC;oBACpB,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;oBAChD,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;oBAC1B,OAAO,GAAG,CAAC,CAAC;gBACb,CAAC;gBAGD,CAAC,IAAI,WAAW,CAAC;gBACjB,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC;oBACnB,IAAI,QAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC/B,EAAE,CAAC,CAAC,CAAC,GAAG,QAAM,CAAC;wBAAC,QAAQ,CAAC;oBACzB,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;wBAChB,CAAC,IAAI,QAAM,CAAC;oBACb,IAAI,CAAC,CAAC;wBACL,IAAI,IAAI,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;wBACjC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAM,GAAG,IAAI,CAAC,CAAC;oBAC5C,CAAC;oBACD,KAAK,CAAC;gBACP,CAAC;gBACD,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/G,CAAC;YACD,MAAM,CAAC,GAAG,CAAC;QACZ,CAAC;QAED,0CAAiB,GAAjB,UAAmB,CAAS,EAAE,IAAmB,EAAE,CAAS,EAAE,GAAkB,EAAE,CAAS;YAC1F,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACzG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9B,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QAED,yCAAgB,GAAhB,UAAkB,CAAS,EAAE,IAAmB,EAAE,CAAS,EAAE,GAAkB,EAAE,CAAS;YACzF,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACzG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9B,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QAED,yCAAgB,GAAhB,UAAkB,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,EAAU,EAAE,EAAU,EAC9H,GAAkB,EAAE,CAAS,EAAE,QAAiB;YAChD,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,MAAM,CAAC;YACnC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;YAClE,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;YAC7D,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC;YACzG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACf,EAAE,CAAC,CAAC,QAAQ,CAAC;gBAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QACzH,CAAC;QAED,iCAAQ,GAAR;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,CAAC;QA5WM,mBAAI,GAAG,CAAC,CAAC,CAAC;QAAQ,qBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,oBAAK,GAAG,CAAC,CAAC,CAAC;QA6WzD,qBAAC;IAAD,CAAC,AA9WD,IA8WC;IA9WY,oBAAc,iBA8W1B,CAAA;AACF,CAAC,EAhXM,KAAK,KAAL,KAAK,QAgXX;AChXD,IAAO,KAAK,CA4BX;AA5BD,WAAO,KAAK,EAAC,CAAC;IACb;QAWC,4BAAa,IAAY;YATzB,UAAK,GAAG,CAAC,CAAC;YACV,UAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAS7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,yBAAC;IAAD,CAAC,AAdD,IAcC;IAdY,wBAAkB,qBAc9B,CAAA;IAED,WAAY,YAAY;QACvB,iDAAK,CAAA;QAAE,qDAAO,CAAA;IACf,CAAC,EAFW,kBAAY,KAAZ,kBAAY,QAEvB;IAFD,IAAY,YAAY,GAAZ,kBAEX,CAAA;IAED,WAAY,WAAW;QACtB,iDAAM,CAAA;QAAE,+CAAK,CAAA;QAAE,mDAAO,CAAA;IACvB,CAAC,EAFW,iBAAW,KAAX,iBAAW,QAEtB;IAFD,IAAY,WAAW,GAAX,iBAEX,CAAA;IAED,WAAY,UAAU;QACrB,iDAAO,CAAA;QAAE,6CAAK,CAAA;QAAE,uDAAU,CAAA;IAC3B,CAAC,EAFW,gBAAU,KAAV,gBAAU,QAErB;IAFD,IAAY,UAAU,GAAV,gBAEX,CAAA;AACF,CAAC,EA5BM,KAAK,KAAL,KAAK,QA4BX;AC5BD,IAAO,KAAK,CA2JX;AA3JD,WAAO,KAAK,EAAC,CAAC;IACb;QAMC,gBAAY,QAAgB;YAJ5B,WAAM,GAAG,IAAI,KAAK,EAAU,CAAC;YAC7B,WAAM,GAAa,EAAE,CAAC;YAIrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1B,CAAC;QAED,uBAAM,GAAN;YACC,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;gBAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,CAAC,CAAC;QACV,CAAC;QACF,aAAC;IAAD,CAAC,AAfD,IAeC;IAED;QAOC,4BAAa,UAAuB;YAAvB,0BAAuB,GAAvB,eAAuB;YAL5B,iBAAY,GAAgB,EAAE,CAAC;YAC/B,iBAAY,GAAgB,EAAE,CAAC;YAC/B,cAAS,GAAa,EAAE,CAAA;YACxB,WAAM,GAAgB,EAAE,CAAC;YAGhC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC9B,CAAC;QAEO,uCAAU,GAAlB,UAAmB,QAAgB,EAAE,aAA+C,EAAE,IAAY;YACjG,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC/C,EAAE,CAAC,CAAC,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC;gBACzD,YAAY,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;YAC5C,CAAC;YACD,EAAE,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC;gBAAC,YAAY,CAAC,aAAa,GAAG,aAAa,CAAC;YACvE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAI/B,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBACtC,MAAM,CAAC,KAAK,CAAC;YACd,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;QACF,CAAC;QAED,qCAAQ,GAAR,UAAS,QAAgB,EAAE,IAAY;YAAvC,iBAeC;YAdA,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAAC,MAAM,CAAC;YACnD,IAAI,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;YACnC,OAAO,CAAC,kBAAkB,GAAG;gBAC5B,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC/C,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;wBACnD,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;oBAC7C,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAsB,IAAI,iBAAY,OAAO,CAAC,MAAM,UAAK,OAAO,CAAC,YAAc,CAAC;oBACrG,CAAC;gBACF,CAAC;YACF,CAAC,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,qCAAQ,GAAR,UAAS,QAAgB,EAAE,IAAY;YAAvC,iBAeC;YAdA,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAAC,MAAM,CAAC;YACnD,IAAI,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;YACnC,OAAO,CAAC,kBAAkB,GAAG;gBAC5B,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC/C,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;wBACnD,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;oBACzD,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAsB,IAAI,iBAAY,OAAO,CAAC,MAAM,UAAK,OAAO,CAAC,YAAc,CAAC;oBACrG,CAAC;gBACF,CAAC;YACF,CAAC,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,wCAAW,GAAX,UAAa,QAAgB,EAAE,aAA+C,EAAE,IAAY;YAA5F,iBAaC;YAZA,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE5D,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC;YACf,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;YAC9B,GAAG,CAAC,MAAM,GAAG,UAAC,EAAE;gBACf,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;YAC5B,CAAC,CAAA;YACD,GAAG,CAAC,OAAO,GAAG,UAAC,EAAE;gBAChB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,yBAAuB,IAAM,CAAC;YACnD,CAAC,CAAA;QACF,CAAC;QAED,gCAAG,GAAH,UAAK,QAAgB,EAAE,IAAY;YAClC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC/C,EAAE,CAAC,CAAC,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACrE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAEO,+CAAkB,GAA1B,UAA2B,YAAoB;YAC9C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrD,IAAI,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAClC,IAAI,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACtC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;oBAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBACpC,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,CAAC;wBAAC,QAAQ,CAAC;oBAC1D,EAAE,CAAC,CAAC,QAAQ,YAAY,gBAAgB,CAAC,CAAC,CAAC;wBAC1C,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,aAAa,CAAmB,QAAQ,CAAC,CAAC;oBACpF,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;oBACtC,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAED,8CAAiB,GAAjB,UAAmB,QAAgB;YAClC,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC/C,EAAE,CAAC,CAAC,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACrE,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YACtC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QAE5D,CAAC;QAiBD,oCAAO,GAAP;QAEA,CAAC;QAED,sCAAS,GAAT;YACC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5C,CAAC;QAED,sCAAS,GAAT;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QACF,yBAAC;IAAD,CAAC,AAxID,IAwIC;IAxIY,wBAAkB,qBAwI9B,CAAA;AACF,CAAC,EA3JM,KAAK,KAAL,KAAK,QA2JX;AC3JD,IAAO,KAAK,CA8dX;AA9dD,WAAO,KAAK,EAAC,CAAC;IACb;QAgBC,kBAAa,IAAkB;YAR/B,iBAAY,GAAG,IAAI,KAAK,EAAa,CAAC;YACtC,qBAAgB,GAAG,IAAI,KAAK,EAAa,CAAC;YAG1C,SAAI,GAAG,CAAC,CAAC;YACT,UAAK,GAAG,KAAK,CAAC;YAAC,UAAK,GAAG,KAAK,CAAC;YAC7B,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YAGZ,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YAEjB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,IAAI,SAAM,CAAC;gBACf,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC;oBAC3B,IAAI,GAAG,IAAI,UAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,CAAC;oBACL,IAAI,QAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC/C,IAAI,GAAG,IAAI,UAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAM,CAAC,CAAC;oBACxC,QAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YAED,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,EAAQ,CAAC;YACnC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC/C,IAAI,IAAI,GAAG,IAAI,UAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YAED,IAAI,CAAC,aAAa,GAAG,IAAI,KAAK,EAAgB,CAAC;YAC/C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpD,IAAI,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,kBAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;YACnE,CAAC;YAED,IAAI,CAAC,oBAAoB,GAAG,IAAI,KAAK,EAAuB,CAAC;YAC7D,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3D,IAAI,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,yBAAmB,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAC;YACxF,CAAC;YAED,IAAI,CAAC,eAAe,GAAG,IAAI,KAAK,EAAkB,CAAC;YACnD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,IAAI,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBACjD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,oBAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC;YACzE,CAAC;YAED,IAAI,CAAC,KAAK,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC;QAED,8BAAW,GAAX;YACC,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YACpC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;YAEjC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;YAGzB,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,IAAI,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACrD,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,IAAI,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC;YACrH,IAAI,eAAe,GAAG,OAAO,GAAG,cAAc,GAAG,SAAS,CAAC;YAE3D,KAAK,EACL,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;oBACrC,IAAI,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;oBACnC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;wBAClC,QAAQ,CAAC,KAAK,CAAC;oBAChB,CAAC;gBACF,CAAC;gBACD,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC;oBAC5C,IAAI,UAAU,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;oBAC1C,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;wBACzC,QAAQ,CAAC,KAAK,CAAC;oBAChB,CAAC;gBACF,CAAC;gBACD,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC;oBACvC,IAAI,UAAU,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;oBACrC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;wBACpC,QAAQ,CAAC,KAAK,CAAC;oBAChB,CAAC;gBACF,CAAC;YACF,CAAC;YAED,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QAED,mCAAgB,GAAhB,UAAkB,UAAwB;YACzC,IAAI,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEtB,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;YACnC,IAAI,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEtB,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAChD,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjF,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEnC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QACnD,CAAC;QAED,qCAAkB,GAAlB,UAAoB,UAA0B;YAC7C,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC;YAC7B,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YACzF,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC;gBACvE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC/E,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACrD,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAE5E,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACtC,EAAE,CAAC,CAAC,UAAU,YAAY,oBAAc,CAAC;gBAAC,IAAI,CAAC,gCAAgC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAEtG,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;YACnC,IAAI,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;YACnC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE;gBACjC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEnC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE;gBACjC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACzC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE;gBACjC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,0CAAuB,GAAvB,UAAyB,UAA+B;YACvD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAEjC,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;YACnC,IAAI,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;YACnC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpC,IAAI,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC5B,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjF,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEnC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE;gBACpC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC1C,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE;gBACpC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAChC,CAAC;QAED,+CAA4B,GAA5B,UAA8B,IAAU,EAAE,SAAiB,EAAE,QAAc;YAC1E,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC9C,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;gBAAC,MAAM,CAAC;YACzB,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,gCAAgC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;YACnE,CAAC;QACF,CAAC;QAED,mDAAgC,GAAhC,UAAkC,UAAsB,EAAE,QAAc;YACvE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,YAAY,oBAAc,CAAC,CAAC;gBAAC,MAAM,CAAC;YACpD,IAAI,SAAS,GAAoB,UAAW,CAAC,KAAK,CAAC;YACnD,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAI,CAAC,CAAC;gBACL,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;oBAC7B,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBACxC,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;wBAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;oBACjC,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAED,2BAAQ,GAAR,UAAU,IAAU;YACnB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC;YACxB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;gBAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED,4BAAS,GAAT,UAAW,KAAkB;YAC5B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;oBAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACrB,CAAC;QACF,CAAC;QAGD,uCAAoB,GAApB;YACC,IAAI,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC7C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzD,IAAI,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAS,CAAC;gBACvC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAC1B,CAAC;YACD,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YACpC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACjD,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,CAAC;QAGD,iCAAc,GAAd;YACC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC5B,CAAC;QAGD,sCAAmB,GAAnB;YACC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;YAE3B,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,IAAI,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAClC,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;gBACzD,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;YACtC,CAAC;YAED,IAAI,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACrD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7D,IAAI,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;gBAC3B,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACtC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC5C,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACpC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrC,CAAC;YAED,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxD,IAAI,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;gBAC3B,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACpC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAClC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACtC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7C,CAAC;QACF,CAAC;QAED,sCAAmB,GAAnB;YACC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,WAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3D,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;QAC5B,CAAC;QAGD,8BAAW,GAAX;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QAGD,2BAAQ,GAAR,UAAU,QAAgB;YACzB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;YAC7C,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,gCAAa,GAAb,UAAe,QAAgB;YAC9B,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QAGD,2BAAQ,GAAR,UAAU,QAAgB;YACzB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;YAC7C,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,gCAAa,GAAb,UAAe,QAAgB;YAC9B,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QAID,gCAAa,GAAb,UAAe,QAAgB;YAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QAMD,0BAAO,GAAP,UAAS,OAAa;YACrB,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;gBACrB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;oBACrB,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,CAAC;oBACL,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;oBACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,MAAI,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;wBACpC,EAAE,CAAC,CAAC,MAAI,IAAI,IAAI,CAAC,CAAC,CAAC;4BAClB,IAAI,UAAU,GAAe,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,MAAI,CAAC,CAAC;4BAC5D,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;gCAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;wBACxD,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACrB,CAAC;QAGD,sCAAmB,GAAnB,UAAqB,QAAgB,EAAE,cAAsB;YAC5D,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAC;QAC9E,CAAC;QAGD,gCAAa,GAAb,UAAe,SAAiB,EAAE,cAAsB;YACvD,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;gBACvB,IAAI,UAAU,GAAe,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;gBAChF,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;oBAAC,MAAM,CAAC,UAAU,CAAC;YAC3C,CAAC;YACD,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YACzG,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,gCAAa,GAAb,UAAe,QAAgB,EAAE,cAAsB;YACtD,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC;oBAChC,IAAI,UAAU,GAAe,IAAI,CAAC;oBAClC,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC;wBAC5B,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;wBACnD,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;4BACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,cAAc,GAAG,cAAc,GAAG,QAAQ,CAAC,CAAC;oBACzF,CAAC;oBACD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;oBAC/B,MAAM,CAAC;gBACR,CAAC;YACF,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;QAChD,CAAC;QAGD,mCAAgB,GAAhB,UAAkB,cAAsB;YACvC,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,IAAI,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBACpC,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC;oBAAC,MAAM,CAAC,YAAY,CAAC;YACnE,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,0CAAuB,GAAvB,UAAyB,cAAsB;YAC9C,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACrD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7D,IAAI,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACzC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC;oBAAC,MAAM,CAAC,UAAU,CAAC;YAC/D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,qCAAkB,GAAlB,UAAoB,cAAsB;YACzC,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxD,IAAI,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACpC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC;oBAAC,MAAM,CAAC,UAAU,CAAC;YAC/D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAMD,4BAAS,GAAT,UAAW,MAAe,EAAE,IAAa,EAAE,IAAmB;YAC7D,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC9D,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;YACvI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClD,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,cAAc,GAAG,CAAC,CAAC;gBACvB,IAAI,QAAQ,GAAsB,IAAI,CAAC;gBACvC,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,EAAE,CAAC,CAAC,UAAU,YAAY,sBAAgB,CAAC,CAAC,CAAC;oBAC5C,cAAc,GAAG,CAAC,CAAC;oBACnB,QAAQ,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;oBACpC,UAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChF,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,YAAY,oBAAc,CAAC,CAAC,CAAC;oBACjD,IAAI,IAAI,GAAoB,UAAW,CAAC;oBACxC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC;oBAC1C,QAAQ,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;oBACvD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpE,CAAC;gBACD,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC;oBACtB,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;wBACzD,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC3C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC1B,CAAC;gBACF,CAAC;YACF,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,yBAAM,GAAN,UAAQ,KAAa;YACpB,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC;QACpB,CAAC;QACF,eAAC;IAAD,CAAC,AA5dD,IA4dC;IA5dY,cAAQ,WA4dpB,CAAA;AACF,CAAC,EA9dM,KAAK,KAAL,KAAK,QA8dX;AC9dD,IAAO,KAAK,CAgLX;AAhLD,WAAO,KAAK,EAAC,CAAC;IACb;QAAA;YACC,SAAI,GAAG,CAAC,CAAC;YAAC,SAAI,GAAG,CAAC,CAAC;YAAC,SAAI,GAAG,CAAC,CAAC;YAAC,SAAI,GAAG,CAAC,CAAC;YACvC,kBAAa,GAAG,IAAI,KAAK,EAAyB,CAAC;YACnD,aAAQ,GAAG,IAAI,KAAK,EAAqB,CAAC;YAClC,gBAAW,GAAG,IAAI,UAAI,CAAoB;gBACjD,MAAM,CAAC,WAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QAuKJ,CAAC;QArKA,+BAAM,GAAN,UAAQ,QAAkB,EAAE,UAAmB;YAC9C,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC3B,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;YAE7B,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YACzB,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9B,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YAEpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,EAAE,CAAC,CAAC,UAAU,YAAY,2BAAqB,CAAC,CAAC,CAAC;oBACjD,IAAI,WAAW,GAAG,UAAmC,CAAC;oBACtD,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAEhC,IAAI,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;oBACnC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC;wBACvD,OAAO,GAAG,WAAK,CAAC,aAAa,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;oBAChE,CAAC;oBACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACvB,WAAW,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,mBAAmB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC3F,CAAC;YACF,CAAC;YAED,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;gBACrC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;gBACrC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;gBACrC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;YACtC,CAAC;QACF,CAAC;QAED,oCAAW,GAAX;YACC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;YACvI,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,QAAQ,GAAG,OAAO,CAAC;gBACvB,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;oBACxD,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACrB,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC1B,CAAC;YACF,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QAGD,0CAAiB,GAAjB,UAAmB,CAAS,EAAE,CAAS;YACtC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;QAC7E,CAAC;QAGD,8CAAqB,GAArB,UAAuB,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;YACpE,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;gBACxH,MAAM,CAAC,KAAK,CAAC;YACd,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;YAC7B,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACtC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;YACzB,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAC7B,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACtC,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACzB,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAGD,+CAAsB,GAAtB,UAAwB,MAAsB;YAC7C,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACjH,CAAC;QAID,sCAAa,GAAb,UAAe,CAAS,EAAE,CAAS;YAClC,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC9C,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAChF,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,6CAAoB,GAApB,UAAsB,OAA0B,EAAE,CAAS,EAAE,CAAS;YACrE,IAAI,QAAQ,GAAG,OAAO,CAAC;YACvB,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAExB,IAAI,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnC,IAAI,OAAO,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC/B,IAAI,KAAK,GAAG,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;gBACpC,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChE,IAAI,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC3B,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;wBAAC,MAAM,GAAG,CAAC,MAAM,CAAC;gBACzG,CAAC;gBACD,SAAS,GAAG,EAAE,CAAC;YAChB,CAAC;YACD,MAAM,CAAC,MAAM,CAAC;QACf,CAAC;QAKD,0CAAiB,GAAjB,UAAmB,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;YAChE,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC9C,EAAE,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAC9F,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,iDAAwB,GAAxB,UAA0B,OAA0B,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;YACnG,IAAI,QAAQ,GAAG,OAAO,CAAC;YACvB,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAExB,IAAI,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAC;YAC1C,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YAC7B,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACjD,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnC,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBAC7B,IAAI,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAC;gBAC1C,IAAI,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;gBACnD,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;gBACjD,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;oBACnD,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;gBACnH,CAAC;gBACD,EAAE,GAAG,EAAE,CAAC;gBACR,EAAE,GAAG,EAAE,CAAC;YACT,CAAC;YACD,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAGD,mCAAU,GAAV,UAAY,WAAkC;YAC7C,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACxE,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACpD,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,iCAAQ,GAAR;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,CAAC;QAED,kCAAS,GAAT;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,CAAC;QACF,qBAAC;IAAD,CAAC,AA7KD,IA6KC;IA7KY,oBAAc,iBA6K1B,CAAA;AAEF,CAAC,EAhLM,KAAK,KAAL,KAAK,QAgLX;AChLD,IAAO,KAAK,CAiTX;AAjTD,WAAO,KAAK,EAAC,CAAC;IACb;QAAA;YACS,iBAAY,GAAG,IAAI,kBAAY,EAAE,CAAC;YAClC,oBAAe,GAAG,IAAI,KAAK,EAAU,CAAC;YACtC,eAAU,GAAG,IAAI,KAAK,EAAU,CAAC;YACzC,oBAAe,GAAG,IAAI,KAAK,EAAU,CAAC;YACtC,qBAAgB,GAAG,IAAI,KAAK,EAAU,CAAC;YAC/B,YAAO,GAAG,IAAI,KAAK,EAAU,CAAC;QAySvC,CAAC;QApSA,oCAAS,GAAT,UAAW,IAAU,EAAE,IAAwB;YAC9C,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAE3B,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;YACjC,IAAI,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACtD,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,gBAAgB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YAChD,IAAI,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;YAC5I,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,GAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzD,IAAI,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAClC,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;YAED,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAChC,CAAC;QAED,0CAAe,GAAf,UAAiB,IAAU;YAC1B,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC;gBAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7F,CAAC;QAED,kCAAO,GAAP;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC;YACxC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,CAAC;QAED,qCAAU,GAAV;YACC,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;QACpC,CAAC;QAED,wCAAa,GAAb,UAAe,QAA2B,EAAE,cAAsB,EAAE,SAA4B,EAAE,eAAuB,EAAE,GAAsB,EAChJ,KAAY,EAAE,IAAW,EAAE,QAAiB;YAE5C,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACzE,IAAI,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC7C,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACrC,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YACjD,IAAI,UAAU,GAAG,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC;YAEnC,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3B,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5B,KAAK,EACL,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,IAAI,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBACjE,IAAI,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAEvD,YAAY,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBACjE,IAAI,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAEvD,YAAY,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBACjE,IAAI,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAEvD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxC,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC;oBAC/B,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;wBAChE,IAAI,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC;wBACzC,EAAE,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC;4BAAC,QAAQ,CAAC;wBACpC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;wBAC3D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBAEvC,IAAI,eAAe,GAAG,gBAAgB,IAAI,CAAC,CAAC;wBAC5C,IAAI,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;wBACtC,IAAI,oBAAoB,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,GAAG,eAAe,GAAG,UAAU,CAAC,CAAC;wBACvG,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,gBAAgB,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;4BACjD,IAAI,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BACzD,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAC5B,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;4BAChC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACtC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;4BAC7B,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;4BAChC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;4BAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4BAClB,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;4BACvD,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;4BACvD,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gCACd,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gCACrC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gCACrC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gCACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACvC,CAAC;4BACD,CAAC,IAAI,UAAU,CAAC;wBACjB,CAAC;wBAED,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;wBAC5B,IAAI,qBAAqB,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;wBACtG,eAAe,EAAE,CAAC;wBAClB,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC;4BAC7C,qBAAqB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;4BACjC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;4BAC5C,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;4BAChD,CAAC,IAAI,CAAC,CAAC;wBACR,CAAC;wBACD,KAAK,IAAI,eAAe,GAAG,CAAC,CAAC;oBAE9B,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,IAAI,oBAAoB,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;wBACzF,oBAAoB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;wBAC7B,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;wBACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;wBACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;wBACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;wBACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;wBACtC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;4BACf,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BAEjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAElC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;wBACnC,CAAC;wBAAC,IAAI,CAAC,CAAC;4BACP,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACrC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACrC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BAEtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BAEtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;wBACvC,CAAC;wBAED,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;wBAC5B,IAAI,qBAAqB,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC9E,qBAAqB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;wBACjC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;wBAC3C,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;wBAC3C,KAAK,IAAI,CAAC,CAAC;wBACX,QAAQ,CAAC,KAAK,CAAC;oBAChB,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAID,+BAAI,GAAJ,UAAM,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,YAA2B,EAAE,MAAqB;YAC/H,IAAI,cAAc,GAAG,MAAM,CAAC;YAC5B,IAAI,OAAO,GAAG,KAAK,CAAC;YAGpB,IAAI,KAAK,GAAkB,IAAI,CAAC;YAChC,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClC,KAAK,GAAG,MAAM,CAAC;gBACf,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YACvB,CAAC;YAAC,IAAI;gBACL,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;YAEtB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAElB,IAAI,gBAAgB,GAAG,YAAY,CAAC;YACpC,IAAI,oBAAoB,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACnD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,IAAI,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjE,IAAI,MAAM,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvE,IAAI,MAAM,GAAG,KAAK,GAAG,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;gBAErD,IAAI,aAAa,GAAG,KAAK,CAAC;gBAC1B,IAAI,mBAAmB,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;gBACxE,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,mBAAmB,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;oBACpD,IAAI,MAAM,GAAG,aAAa,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC/D,IAAI,OAAO,GAAG,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACrE,IAAI,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC1E,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACjE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;4BACX,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACrB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACrB,QAAQ,CAAC;wBACV,CAAC;wBAED,IAAI,EAAE,GAAG,OAAO,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC;wBACjD,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;wBAC3G,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;oBAC5C,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBAClB,IAAI,EAAE,GAAG,OAAO,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC;wBACjD,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;wBAC3G,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACrB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACtB,CAAC;oBACD,OAAO,GAAG,IAAI,CAAC;gBAChB,CAAC;gBAED,EAAE,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;oBAClC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC1B,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEvB,EAAE,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC;oBAAC,KAAK,CAAC;gBACrC,IAAI,IAAI,GAAG,MAAM,CAAC;gBAClB,MAAM,GAAG,KAAK,CAAC;gBACf,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,KAAK,GAAG,IAAI,CAAC;YACd,CAAC;YAED,EAAE,CAAC,CAAC,cAAc,IAAI,MAAM,CAAC,CAAC,CAAC;gBAC9B,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAChD,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;YAAC,IAAI;gBACL,cAAc,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAEnD,MAAM,CAAC,OAAO,CAAC;QAChB,CAAC;QAEa,8BAAa,GAA3B,UAA6B,OAA0B;YACtD,IAAI,QAAQ,GAAG,OAAO,CAAC;YACvB,IAAI,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;YAEpC,IAAI,IAAI,GAAG,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;YACvI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAClB,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtB,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtB,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtB,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;YAC/B,CAAC;YACD,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBAAC,MAAM,CAAC;YAErB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpF,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;gBACtB,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC9B,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACtC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACpB,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACF,CAAC;QACF,uBAAC;IAAD,CAAC,AA/SD,IA+SC;IA/SY,sBAAgB,mBA+S5B,CAAA;AACF,CAAC,EAjTM,KAAK,KAAL,KAAK,QAiTX;ACjTD,IAAO,KAAK,CA2HX;AA3HD,WAAO,KAAK,EAAC,CAAC;IACb;QAAA;YAEC,UAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAC9B,UAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAC9B,UAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAE1B,WAAM,GAAG,IAAI,KAAK,EAAa,CAAC;YAChC,eAAU,GAAG,IAAI,KAAK,EAAa,CAAC;YACpC,kBAAa,GAAG,IAAI,KAAK,EAAoB,CAAC;YAC9C,yBAAoB,GAAG,IAAI,KAAK,EAA2B,CAAC;YAC5D,oBAAe,GAAG,IAAI,KAAK,EAAsB,CAAC;YAKlD,QAAG,GAAG,CAAC,CAAC;QA0GT,CAAC;QAvGA,+BAAQ,GAAR,UAAU,QAAgB;YACzB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;YACxC,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,oCAAa,GAAb,UAAe,QAAgB;YAC9B,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QAED,+BAAQ,GAAR,UAAU,QAAgB;YACzB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;YACxC,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,oCAAa,GAAb,UAAe,QAAgB;YAC9B,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QAED,+BAAQ,GAAR,UAAU,QAAgB;YACzB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;YACxC,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,gCAAS,GAAT,UAAW,aAAqB;YAC/B,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC5E,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,IAAI,OAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,OAAK,CAAC,IAAI,IAAI,aAAa,CAAC;oBAAC,MAAM,CAAC,OAAK,CAAC;YAC/C,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,oCAAa,GAAb,UAAe,aAAqB;YACnC,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC5E,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACjC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnD,IAAI,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC9B,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,aAAa,CAAC;oBAAC,MAAM,CAAC,SAAS,CAAC;YACvD,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,uCAAgB,GAAhB,UAAkB,cAAsB;YACvC,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,IAAI,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAClC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,cAAc,CAAC;oBAAC,MAAM,CAAC,UAAU,CAAC;YAC1D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,8CAAuB,GAAvB,UAAyB,cAAsB;YAC9C,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACrD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7D,IAAI,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACzC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,cAAc,CAAC;oBAAC,MAAM,CAAC,UAAU,CAAC;YAC1D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,yCAAkB,GAAlB,UAAoB,cAAsB;YACzC,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxD,IAAI,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACpC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,cAAc,CAAC;oBAAC,MAAM,CAAC,UAAU,CAAC;YAC1D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,8CAAuB,GAAvB,UAAyB,kBAA0B;YAClD,EAAE,CAAC,CAAC,kBAAkB,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACtF,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACrD,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,kBAAkB,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QACF,mBAAC;IAAD,CAAC,AAzHD,IAyHC;IAzHY,kBAAY,eAyHxB,CAAA;AACF,CAAC,EA3HM,KAAK,KAAL,KAAK,QA2HX;AC3HD,IAAO,KAAK,CAqvBX;AArvBD,WAAO,KAAK,EAAC,CAAC;IACb;QAKC,sBAAa,gBAAkC;YAH/C,UAAK,GAAG,CAAC,CAAC;YACF,iBAAY,GAAG,IAAI,KAAK,EAAc,CAAC;YAG9C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC1C,CAAC;QAED,uCAAgB,GAAhB,UAAkB,IAAkB;YACnC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,YAAY,GAAG,IAAI,kBAAY,EAAE,CAAC;YACtC,IAAI,IAAI,GAAG,OAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAG/D,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChC,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC;gBACzB,YAAY,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;gBACrC,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC;gBACzC,YAAY,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;gBACvC,YAAY,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;gBACzC,YAAY,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;gBACnC,YAAY,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC;YAC9C,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAE5B,IAAI,QAAM,GAAa,IAAI,CAAC;oBAC5B,IAAI,UAAU,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAChE,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;wBACxB,QAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;wBAC3C,EAAE,CAAC,CAAC,QAAM,IAAI,IAAI,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,UAAU,CAAC,CAAC;oBAC7E,CAAC;oBACD,IAAI,IAAI,GAAG,IAAI,cAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,QAAM,CAAC,CAAC;oBACzE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC1D,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAChD,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAEzG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC5B,IAAI,QAAQ,GAAW,OAAO,CAAC,IAAI,CAAC;oBACpC,IAAI,QAAQ,GAAW,OAAO,CAAC,IAAI,CAAC;oBACpC,IAAI,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC/C,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,QAAQ,CAAC,CAAC;oBAC1E,IAAI,IAAI,GAAG,IAAI,cAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAEvE,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC1D,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAEnD,IAAI,IAAI,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBACxD,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;wBAClB,IAAI,CAAC,SAAS,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACvC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBACpC,CAAC;oBAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;oBACjE,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAC7F,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACb,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,IAAI,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC/B,IAAI,IAAI,GAAG,IAAI,sBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBACpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;oBAEtD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACrD,IAAI,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAC3C,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,QAAQ,CAAC,CAAC;wBACpE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC;oBAED,IAAI,UAAU,GAAW,aAAa,CAAC,MAAM,CAAC;oBAC9C,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAChD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,UAAU,CAAC,CAAC;oBAEpF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjF,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBAElD,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvC,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAChD,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACtC,IAAI,IAAI,GAAG,IAAI,6BAAuB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC3D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;oBAEtD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACrD,IAAI,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAC3C,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,QAAQ,CAAC,CAAC;wBACtF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC;oBAED,IAAI,UAAU,GAAW,aAAa,CAAC,MAAM,CAAC;oBAC9C,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAChD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,UAAU,CAAC,CAAC;oBAEtG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;oBAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;oBAChE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAClE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC5D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAE9D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;oBACpE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAE5D,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9C,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACf,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3C,IAAI,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACjC,IAAI,IAAI,GAAG,IAAI,wBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBACtD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;oBAEtD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACrD,IAAI,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAC3C,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,QAAQ,CAAC,CAAC;wBACtF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC;oBAED,IAAI,UAAU,GAAW,aAAa,CAAC,MAAM,CAAC;oBAC9C,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAChD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,UAAU,CAAC,CAAC;oBAEtF,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;oBACjH,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAC7G,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;oBAC3G,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAClE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAC5D,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,kBAAY,CAAC,KAAK,CAAC;wBAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;oBACpE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;oBAC1D,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,iBAAW,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,iBAAW,CAAC,KAAK,CAAC;wBAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;oBAC3G,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;oBAEpE,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzC,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChB,GAAG,CAAC,CAAC,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBACjC,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;oBAClC,IAAI,IAAI,GAAG,IAAI,UAAI,CAAC,QAAQ,CAAC,CAAC;oBAC9B,GAAG,CAAC,CAAC,IAAI,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;wBAC9B,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;wBACrD,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;wBACpE,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAChC,GAAG,CAAC,CAAC,IAAI,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC;4BAC/B,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;4BACnG,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;gCAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;wBAC9E,CAAC;oBACF,CAAC;oBACD,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9B,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;wBAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC7D,CAAC;YACF,CAAC;YAGD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1D,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtC,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,IAAI,GAAG,YAAY,CAAC,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvG,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;gBACxE,IAAI,QAAM,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;gBACzE,EAAE,CAAC,CAAC,QAAM,IAAI,IAAI,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;gBACnF,UAAU,CAAC,IAAI,CAAC,aAAa,CAAkB,QAAM,CAAC,CAAC;gBACvD,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAG7B,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACjB,GAAG,CAAC,CAAC,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBACnC,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACtC,IAAI,IAAI,GAAG,IAAI,eAAS,CAAC,SAAS,CAAC,CAAC;oBACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;oBACzD,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBACrB,GAAG,CAAC,CAAC,IAAI,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC3C,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;oBAClD,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;gBAC/D,CAAC;YACF,CAAC;YAED,MAAM,CAAC,YAAY,CAAC;QACrB,CAAC;QAED,qCAAc,GAAd,UAAgB,GAAQ,EAAE,IAAU,EAAE,SAAiB,EAAE,IAAY,EAAE,YAA0B;YAChG,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAExC,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEhD,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACd,KAAK,QAAQ,EAAE,CAAC;oBACf,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC5C,IAAI,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBACzE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;oBAChC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;oBACnB,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC9C,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC9C,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAChD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAChD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBACpD,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;oBACjC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;oBAEnC,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBACtD,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAErD,MAAM,CAAC,YAAY,EAAE,CAAC;oBACtB,MAAM,CAAC,MAAM,CAAC;gBACf,CAAC;gBACD,KAAK,aAAa,EAAE,CAAC;oBACpB,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACrE,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;oBAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;oBAClD,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBACtD,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAClD,MAAM,CAAC,GAAG,CAAC;gBACZ,CAAC;gBACD,KAAK,MAAM,CAAC;gBACZ,KAAK,YAAY,EAAE,CAAC;oBACnB,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC5C,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBACrE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;oBAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;oBAEjB,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC9C,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAEnD,IAAI,QAAM,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBACxD,EAAE,CAAC,CAAC,QAAM,IAAI,IAAI,CAAC,CAAC,CAAC;wBACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;wBACxD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,EAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,QAAM,CAAC,CAAC,CAAC;wBAC3G,MAAM,CAAC,IAAI,CAAC;oBACb,CAAC;oBAED,IAAI,GAAG,GAAkB,GAAG,CAAC,GAAG,CAAC;oBACjC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;oBACzC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;oBAC/B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;oBACrB,IAAI,CAAC,SAAS,EAAE,CAAC;oBAEjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBACpD,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBACD,KAAK,MAAM,EAAE,CAAC;oBACb,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC/D,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;oBAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAClD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;oBAE/D,IAAI,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;oBAClC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;oBAE/C,IAAI,OAAO,GAAkB,WAAK,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBAChE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE;wBAC1C,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;oBAEvB,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBACtD,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACnD,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBACD,KAAK,OAAO,EAAE,CAAC;oBACd,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACjE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;oBAC/B,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC7C,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC7C,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAEnD,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC9C,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACpD,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBACD,KAAK,UAAU,EAAE,CAAC;oBACjB,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACnE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;oBAE9B,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;oBAC1C,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;wBACjB,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;wBACtC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,GAAG,CAAC,CAAC;wBACzE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACrB,CAAC;oBAED,IAAI,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;oBAClC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;oBAE/C,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBACtD,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACnD,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;YACF,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,mCAAY,GAAZ,UAAc,GAAQ,EAAE,UAA4B,EAAE,cAAsB;YAC3E,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,UAAU,CAAC,mBAAmB,GAAG,cAAc,CAAC;YAChD,IAAI,QAAQ,GAAkB,GAAG,CAAC,QAAQ,CAAC;YAC3C,EAAE,CAAC,CAAC,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBACvC,IAAI,cAAc,GAAG,WAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAClD,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;wBAC9C,cAAc,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;gBAC7B,CAAC;gBACD,UAAU,CAAC,QAAQ,GAAG,cAAc,CAAC;gBACrC,MAAM,CAAC;YACR,CAAC;YACD,IAAI,OAAO,GAAG,IAAI,KAAK,EAAU,CAAC;YAClC,IAAI,KAAK,GAAG,IAAI,KAAK,EAAU,CAAC;YAChC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC7C,IAAI,SAAS,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;oBACtC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;oBACtC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YACD,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;YACzB,UAAU,CAAC,QAAQ,GAAG,WAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;QAED,oCAAa,GAAb,UAAe,GAAQ,EAAE,IAAY,EAAE,YAA0B;YAChE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,SAAS,GAAG,IAAI,KAAK,EAAY,CAAC;YACtC,IAAI,QAAQ,GAAG,CAAC,CAAC;YAGjB,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACf,GAAG,CAAC,CAAC,IAAI,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;oBAChC,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAClC,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACrD,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;oBACpE,GAAG,CAAC,CAAC,IAAI,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC;wBAClC,IAAI,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;wBACxC,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC;4BAClC,IAAI,QAAQ,GAAG,IAAI,wBAAkB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BAC1D,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;4BAC/D,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC9E,CAAC;wBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC;4BACpC,IAAI,QAAQ,GAAG,IAAI,mBAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACrD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,IAAI,KAAK,GAAG,IAAI,WAAK,EAAE,CAAC;gCACxB,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gCACpC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;gCACjF,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,mBAAa,CAAC,OAAO,CAAC,CAAC,CAAC;wBAExG,CAAC;wBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,IAAI,UAAU,CAAC,CAAC,CAAC;4BACvC,IAAI,QAAQ,GAAG,IAAI,sBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACxD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,IAAI,KAAK,GAAG,IAAI,WAAK,EAAE,CAAC;gCACxB,IAAI,IAAI,GAAG,IAAI,WAAK,EAAE,CAAC;gCACvB,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gCACpC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gCAClC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gCACzG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,sBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;wBAE3G,CAAC;wBAAC,IAAI;4BACL,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,YAAY,GAAG,IAAI,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;oBAC/F,CAAC;gBACF,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACf,GAAG,CAAC,CAAC,IAAI,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;oBAChC,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAClC,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACrD,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;oBACpE,GAAG,CAAC,CAAC,IAAI,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC;wBAClC,IAAI,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;wBACxC,EAAE,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC;4BAC/B,IAAI,QAAQ,GAAG,IAAI,oBAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACtD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gCAC7D,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,oBAAc,CAAC,OAAO,CAAC,CAAC,CAAC;wBAEzG,CAAC;wBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,KAAK,WAAW,IAAI,YAAY,KAAK,OAAO,IAAI,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC;4BACjG,IAAI,QAAQ,GAAsB,IAAI,CAAC;4BACvC,IAAI,aAAa,GAAG,CAAC,CAAC;4BACtB,EAAE,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC;gCAC5B,QAAQ,GAAG,IAAI,mBAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BAClD,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC;gCACjC,QAAQ,GAAG,IAAI,mBAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BAClD,IAAI,CAAC,CAAC;gCACL,QAAQ,GAAG,IAAI,uBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gCACrD,aAAa,GAAG,KAAK,CAAC;4BACvB,CAAC;4BACD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gCAC7E,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC;gCACnF,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,uBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;wBAE5G,CAAC;wBAAC,IAAI;4BACL,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,YAAY,GAAG,IAAI,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;oBAC/F,CAAC;gBACF,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACZ,GAAG,CAAC,CAAC,IAAI,cAAc,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBACnC,IAAI,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;oBAC3C,IAAI,UAAU,GAAG,YAAY,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;oBAC/D,IAAI,QAAQ,GAAG,IAAI,0BAAoB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;oBAC9D,QAAQ,CAAC,iBAAiB,GAAG,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC5E,IAAI,UAAU,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC/C,IAAI,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;wBAChC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,EAC7E,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACzD,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;wBAC/C,UAAU,EAAE,CAAC;oBACd,CAAC;oBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,0BAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC/G,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;gBACnB,GAAG,CAAC,CAAC,IAAI,cAAc,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC1C,IAAI,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;oBAClD,IAAI,UAAU,GAAG,YAAY,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;oBACtE,IAAI,QAAQ,GAAG,IAAI,iCAA2B,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;oBACrE,QAAQ,CAAC,wBAAwB,GAAG,YAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC1F,IAAI,UAAU,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC/C,IAAI,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;wBAChC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,EACnF,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC7H,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;wBAC/C,UAAU,EAAE,CAAC;oBACd,CAAC;oBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAC3B,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,iCAA2B,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzF,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACf,GAAG,CAAC,CAAC,IAAI,cAAc,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtC,IAAI,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;oBAC9C,IAAI,KAAK,GAAG,YAAY,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;oBACjE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,cAAc,CAAC,CAAC;oBACjF,IAAI,IAAI,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oBAC/C,GAAG,CAAC,CAAC,IAAI,YAAY,IAAI,aAAa,CAAC,CAAC,CAAC;wBACxC,IAAI,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;wBAC9C,EAAE,CAAC,CAAC,YAAY,KAAK,UAAU,IAAI,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC;4BAC/D,IAAI,QAAQ,GAAmC,IAAI,CAAC;4BACpD,IAAI,aAAa,GAAG,CAAC,CAAC;4BACtB,EAAE,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC;gCAChC,QAAQ,GAAG,IAAI,mCAA6B,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gCACjE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,iBAAW,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,iBAAW,CAAC,KAAK,CAAC;oCAAC,aAAa,GAAG,KAAK,CAAC;4BAC5G,CAAC;4BAAC,IAAI,CAAC,CAAC;gCACP,QAAQ,GAAG,IAAI,oCAA8B,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gCAClE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,kBAAY,CAAC,KAAK,CAAC;oCAAC,aAAa,GAAG,KAAK,CAAC;4BACpE,CAAC;4BACD,QAAQ,CAAC,mBAAmB,GAAG,KAAK,CAAC;4BACrC,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;gCACvG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAC3B,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,oCAA8B,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC5F,CAAC;wBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC;4BACnC,IAAI,QAAQ,GAAG,IAAI,+BAAyB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACjE,QAAQ,CAAC,mBAAmB,GAAG,KAAK,CAAC;4BACrC,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,EACnF,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;gCAC7C,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAC3B,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,+BAAyB,CAAC,OAAO,CAAC,CAAC,CAAC;wBACvF,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChB,GAAG,CAAC,CAAC,IAAI,UAAU,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;oBACnC,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBACvC,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAC7C,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,UAAU,CAAC,CAAC;oBACnE,GAAG,CAAC,CAAC,IAAI,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC;wBAChC,IAAI,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;wBAClC,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;wBACrD,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;wBACxE,GAAG,CAAC,CAAC,IAAI,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC;4BAClC,IAAI,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;4BACxC,IAAI,UAAU,GAAqB,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;4BAC/E,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;gCAAC,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;4BAC5F,IAAI,QAAQ,GAAG,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC;4BACxC,IAAI,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;4BACnC,IAAI,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;4BAExE,IAAI,QAAQ,GAAG,IAAI,oBAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACtD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAC/B,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;4BAEjC,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,IAAI,MAAM,SAAmB,CAAC;gCAC9B,IAAI,aAAa,GAAkB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;gCAC7E,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC;oCACzB,MAAM,GAAG,QAAQ,GAAG,WAAK,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;gCAClE,IAAI,CAAC,CAAC;oCACL,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;oCAC3C,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oCACzD,WAAK,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;oCACvE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;wCAChB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;4CAC3D,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;oCACrB,CAAC;oCACD,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;wCACf,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE;4CACpC,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAC3B,CAAC;gCACF,CAAC;gCAED,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gCACrD,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC9E,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YAGD,IAAI,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC;YAClC,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC;gBAAC,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC;YACzD,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC3B,IAAI,QAAQ,GAAG,IAAI,uBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAC3D,IAAI,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC1C,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/C,IAAI,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;oBACpC,IAAI,SAAS,GAAkB,IAAI,CAAC;oBACpC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;oBAC3D,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;wBACrB,SAAS,GAAG,WAAK,CAAC,QAAQ,CAAS,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;wBAClD,IAAI,SAAS,GAAG,WAAK,CAAC,QAAQ,CAAS,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBACtE,IAAI,aAAa,GAAG,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC;wBAC1C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACzC,IAAI,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;4BAC3B,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;4BAC3D,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;gCAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;4BAE1E,OAAO,aAAa,IAAI,SAAS;gCAChC,SAAS,CAAC,cAAc,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC;4BAE/C,SAAS,CAAC,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;wBAC/D,CAAC;wBAED,OAAO,aAAa,GAAG,SAAS;4BAC/B,SAAS,CAAC,cAAc,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC;wBAE/C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;4BACtC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gCAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC;oBACrE,CAAC;oBACD,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC/D,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9E,CAAC;YAGD,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChB,IAAI,QAAQ,GAAG,IAAI,mBAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACpD,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,IAAI,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC7B,IAAI,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACtD,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC5E,IAAI,OAAK,GAAG,IAAI,WAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBAChD,OAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACpE,OAAK,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;oBAC1E,OAAK,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;oBAC7E,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,OAAK,CAAC,CAAC;gBACxC,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9E,CAAC;YAED,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACnE,CAAC;YAED,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,eAAS,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,gCAAS,GAAT,UAAW,GAAQ,EAAE,QAAuB,EAAE,UAAkB;YAC/D,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAC,MAAM,CAAC;YACvB,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC;gBAC3B,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACjC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACzE,IAAI,KAAK,GAAkB,GAAG,CAAC,KAAK,CAAC;gBACrC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,CAAC;QACF,CAAC;QAED,+BAAQ,GAAR,UAAU,GAAQ,EAAE,IAAY,EAAE,YAAiB;YAClD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;QAC3D,CAAC;QAEM,gCAAmB,GAA1B,UAA4B,GAAW;YACtC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC;gBAAC,MAAM,CAAC,eAAS,CAAC,MAAM,CAAC;YAC7C,EAAE,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC;gBAAC,MAAM,CAAC,eAAS,CAAC,QAAQ,CAAC;YACjD,EAAE,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC;gBAAC,MAAM,CAAC,eAAS,CAAC,QAAQ,CAAC;YACjD,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC;gBAAC,MAAM,CAAC,eAAS,CAAC,MAAM,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,yBAAuB,GAAK,CAAC,CAAC;QAC/C,CAAC;QAEM,mCAAsB,GAA7B,UAA+B,GAAW;YACzC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,EAAE,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC;gBAAC,MAAM,CAAC,kBAAY,CAAC,KAAK,CAAC;YAC9C,EAAE,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC;gBAAC,MAAM,CAAC,kBAAY,CAAC,OAAO,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,4BAA0B,GAAK,CAAC,CAAC;QAClD,CAAC;QAEM,kCAAqB,GAA5B,UAA8B,GAAW;YACxC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC;gBAAC,MAAM,CAAC,iBAAW,CAAC,MAAM,CAAC;YAC/C,EAAE,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC;gBAAC,MAAM,CAAC,iBAAW,CAAC,KAAK,CAAC;YAC7C,EAAE,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC;gBAAC,MAAM,CAAC,iBAAW,CAAC,OAAO,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,4BAA0B,GAAK,CAAC,CAAC;QAClD,CAAC;QAEM,iCAAoB,GAA3B,UAA6B,GAAW;YACvC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,EAAE,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC;gBAAC,MAAM,CAAC,gBAAU,CAAC,OAAO,CAAC;YAChD,EAAE,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC;gBAAC,MAAM,CAAC,gBAAU,CAAC,KAAK,CAAC;YAC5C,EAAE,CAAC,CAAC,GAAG,IAAI,YAAY,CAAC;gBAAC,MAAM,CAAC,gBAAU,CAAC,UAAU,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,0BAAwB,GAAK,CAAC,CAAC;QAChD,CAAC;QAEM,oCAAuB,GAA9B,UAA+B,GAAW;YACzC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC;gBAAC,MAAM,CAAC,mBAAa,CAAC,MAAM,CAAC;YACjD,EAAE,CAAC,CAAC,GAAG,IAAI,iBAAiB,CAAC;gBAAC,MAAM,CAAC,mBAAa,CAAC,eAAe,CAAC;YACnE,EAAE,CAAC,CAAC,GAAG,IAAI,wBAAwB,CAAC;gBAAC,MAAM,CAAC,mBAAa,CAAC,sBAAsB,CAAC;YACjF,EAAE,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC;gBAAC,MAAM,CAAC,mBAAa,CAAC,OAAO,CAAC;YACnD,EAAE,CAAC,CAAC,GAAG,IAAI,qBAAqB,CAAC;gBAAC,MAAM,CAAC,mBAAa,CAAC,mBAAmB,CAAC;YAC3E,MAAM,IAAI,KAAK,CAAC,6BAA2B,GAAK,CAAC,CAAC;QACnD,CAAC;QACF,mBAAC;IAAD,CAAC,AAtuBD,IAsuBC;IAtuBY,kBAAY,eAsuBxB,CAAA;IAED;QAKC,oBAAa,IAAoB,EAAE,IAAY,EAAE,SAAiB,EAAE,MAAc;YACjF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,CAAC;QACF,iBAAC;IAAD,CAAC,AAXD,IAWC;AACF,CAAC,EArvBM,KAAK,KAAL,KAAK,QAqvBX;ACrvBD,IAAO,KAAK,CA6CX;AA7CD,WAAO,KAAK,EAAC,CAAC;IACb;QAIC,cAAa,IAAY;YAFzB,gBAAW,GAAG,IAAI,KAAK,EAAmB,CAAC;YAG1C,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QAED,4BAAa,GAAb,UAAe,SAAiB,EAAE,IAAY,EAAE,UAAsB;YACrE,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACtE,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,EAAE,CAAC,CAAC,SAAS,IAAI,WAAW,CAAC,MAAM,CAAC;gBAAC,WAAW,CAAC,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC;YACxE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAG,CAAC;YAC1D,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAC3C,CAAC;QAGD,4BAAa,GAAb,UAAe,SAAiB,EAAE,IAAY;YAC7C,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC7C,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC7C,CAAC;QAGD,wBAAS,GAAT,UAAW,QAAkB,EAAE,OAAa;YAC3C,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChD,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC1C,EAAE,CAAC,CAAC,cAAc,IAAI,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC9D,IAAI,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;oBAChD,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;wBAC5B,IAAI,cAAc,GAAc,UAAU,CAAC,GAAG,CAAC,CAAC;wBAChD,EAAE,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC;4BACtC,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;4BACpD,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;gCAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;4BACvD,KAAK,CAAC;wBACP,CAAC;oBACF,CAAC;gBACF,CAAC;gBACD,SAAS,EAAE,CAAC;YACb,CAAC;QACF,CAAC;QACF,WAAC;IAAD,CAAC,AA3CD,IA2CC;IA3CY,UAAI,OA2ChB,CAAA;AACF,CAAC,EA7CM,KAAK,KAAL,KAAK,QA6CX;AC7CD,IAAO,KAAK,CAsDX;AAtDD,WAAO,KAAK,EAAC,CAAC;IACb;QASC,cAAa,IAAc,EAAE,IAAU;YAFvC,uBAAkB,GAAG,IAAI,KAAK,EAAU,CAAC;YAGxC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,WAAK,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,WAAK,EAAE,CAAC;YAC7D,IAAI,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC;QAGD,4BAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACxB,CAAC;QAID,4BAAa,GAAb,UAAe,UAAsB;YACpC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC;gBAAC,MAAM,CAAC;YAC1C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC9C,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;QACpC,CAAC;QAED,gCAAiB,GAAjB,UAAmB,IAAY;YAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QACtD,CAAC;QAGD,gCAAiB,GAAjB;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;QACtD,CAAC;QAED,6BAAc,GAAd;YACC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;gBAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7E,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;gBACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,CAAC;gBACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACjG,CAAC;QACF,CAAC;QACF,WAAC;IAAD,CAAC,AApDD,IAoDC;IApDY,UAAI,OAoDhB,CAAA;AACF,CAAC,EAtDM,KAAK,KAAL,KAAK,QAsDX;ACtDD,IAAO,KAAK,CAmBX;AAnBD,WAAO,KAAK,EAAC,CAAC;IACb;QASC,kBAAa,KAAa,EAAE,IAAY,EAAE,QAAkB;YAL5D,UAAK,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAM7B,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACtD,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1B,CAAC;QACF,eAAC;IAAD,CAAC,AAjBD,IAiBC;IAjBY,cAAQ,WAiBpB,CAAA;AACF,CAAC,EAnBM,KAAK,KAAL,KAAK,QAmBX;ACnBD,IAAO,KAAK,CAqLX;AArLD,WAAO,KAAK,EAAC,CAAC;IACb;QAIC,sBAAa,SAAiB,EAAE,aAAoC;YAHpE,UAAK,GAAG,IAAI,KAAK,EAAoB,CAAC;YACtC,YAAO,GAAG,IAAI,KAAK,EAAsB,CAAC;YAGzC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACrC,CAAC;QAEO,2BAAI,GAAZ,UAAc,SAAiB,EAAE,aAAoC;YACpE,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAElD,IAAI,MAAM,GAAG,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,KAAK,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;YACjC,IAAI,IAAI,GAAoB,IAAI,CAAC;YACjC,OAAO,IAAI,EAAE,CAAC;gBACb,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC7B,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;oBAChB,KAAK,CAAC;gBACP,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;oBACpB,IAAI,GAAG,IAAI,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBAChB,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAAC;oBAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;oBAEjB,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAClC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBACjC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACzB,CAAC;oBAGD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACxB,IAAI,CAAC,SAAS,GAAG,aAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpD,IAAI,CAAC,SAAS,GAAG,aAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEpD,IAAI,SAAS,GAAE,MAAM,CAAC,SAAS,EAAE,CAAC;oBAClC,IAAI,CAAC,KAAK,GAAG,iBAAW,CAAC,WAAW,CAAC;oBACrC,IAAI,CAAC,KAAK,GAAG,iBAAW,CAAC,WAAW,CAAC;oBACrC,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC;wBACpB,IAAI,CAAC,KAAK,GAAG,iBAAW,CAAC,MAAM,CAAC;oBACjC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC;wBACzB,IAAI,CAAC,KAAK,GAAG,iBAAW,CAAC,MAAM,CAAC;oBACjC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;wBAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,iBAAW,CAAC,MAAM,CAAC;oBAE9C,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;oBACnC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;oBACxD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC;oBAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;oBAC7C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,MAAM,GAAsB,IAAI,kBAAkB,EAAE,CAAC;oBACzD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;oBACnB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;oBAEnB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,IAAI,MAAM,CAAC;oBAE7C,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACxB,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3B,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAE3B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACxB,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/B,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEhC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC1B,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;oBAC3B,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;wBACnB,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;wBACtC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;oBACvC,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;wBACrC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;oBACxC,CAAC;oBACD,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;oBACb,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;oBACb,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC/B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAEjC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAElC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BAElC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wBACzB,CAAC;oBACF,CAAC;oBAED,MAAM,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1C,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAE3C,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACxB,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEpC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;oBAE5C,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;oBAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3B,CAAC;YACF,CAAC;QACF,CAAC;QAED,iCAAU,GAAV,UAAY,IAAY;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;oBAClC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACxB,CAAC;YACF,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,8BAAO,GAAP;YACC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACjC,CAAC;QACF,CAAC;QACF,mBAAC;IAAD,CAAC,AAvHD,IAuHC;IAvHY,kBAAY,eAuHxB,CAAA;IAED;QAIC,4BAAa,IAAY;YAFzB,UAAK,GAAW,CAAC,CAAC;YAGjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;QAED,qCAAQ,GAAR;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACjC,CAAC;QAED,sCAAS,GAAT;YACC,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,KAAK,GAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,CAAC;QAED,sCAAS,GAAT,UAAW,KAAoB;YAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;YACjC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnB,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBACzC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;oBAAC,KAAK,CAAC;gBACvB,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC5D,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5C,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACd,CAAC;QACF,yBAAC;IAAD,CAAC,AArCD,IAqCC;IAED;QAAA;QASA,CAAC;QAAD,uBAAC;IAAD,CAAC,AATD,IASC;IATY,sBAAgB,mBAS5B,CAAA;IAED;QAAwC,sCAAa;QAArD;YAAwC,8BAAa;QAQrD,CAAC;QAAD,yBAAC;IAAD,CAAC,AARD,CAAwC,mBAAa,GAQpD;IARY,wBAAkB,qBAQ9B,CAAA;AACF,CAAC,EArLM,KAAK,KAAL,KAAK,QAqLX;ACrLD,IAAO,KAAK,CAqPX;AArPD,WAAO,KAAK,EAAC,CAAC;IACb;QAOC,6BAAa,IAA6B,EAAE,QAAkB;YAH9D,cAAS,GAAG,CAAC,CAAC;YAAC,iBAAY,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAC5D,SAAI,GAAG,IAAI,aAAO,EAAE,CAAC;YAGpB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;gBACzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QAED,mCAAK,GAAL;YACC,IAAI,CAAC,MAAM,EAAE,CAAC;QACf,CAAC;QAED,oCAAM,GAAN;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC3B,IAAI;oBACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAE5B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC3B,IAAI;oBACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,CAAC;QACF,CAAC;QAED,gDAAkB,GAAlB;YACC,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,eAAS,CAAC,MAAM,GAAG,CAAC,eAAS,CAAC,MAAM,CAAC;YACjF,IAAI,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YAC9D,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;YAC1D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;gBAErB,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;oBACnD,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,cAAc,CAAC;oBAC/D,EAAE,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,EAAE,CAAC;wBACpB,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBACpB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,eAAS,CAAC,EAAE,CAAC;wBAC1B,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBACpB,CAAC,IAAI,SAAS,CAAC;oBACf,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACzC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACrB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBACpE,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;oBACrD,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;oBACrD,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrD,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBACtC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;wBAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC5E,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACjD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBAClC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;wBAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC5E,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;oBAC3B,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC1B,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpF,EAAE,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,EAAE,CAAC;wBACpB,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBACpB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,eAAS,CAAC,EAAE,CAAC;wBAC1B,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBACpB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,QAAQ,CAAC;oBACvC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,CAAC;oBAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YACzC,CAAC;QACF,CAAC;QAED,gDAAkB,GAAlB;YACC,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,eAAS,CAAC,MAAM,GAAG,CAAC,eAAS,CAAC,MAAM,CAAC;YACjF,IAAI,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;YACrH,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;gBAErB,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;oBACnD,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,cAAc,CAAC;oBAC5C,EAAE,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,EAAE,CAAC;wBACpB,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBACpB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,eAAS,CAAC,EAAE,CAAC;wBAAC,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBAC/C,CAAC,IAAI,SAAS,CAAC;oBACf,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACzC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACrB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBACpE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC;oBACrC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC;oBACrC,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;oBACnF,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;oBAC/E,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBAChD,EAAE,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,EAAE,CAAC;wBACpB,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBACpB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,eAAS,CAAC,EAAE,CAAC;wBAAC,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBAC/C,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;oBAC3B,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,eAAS,CAAC,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,QAAQ,CAAC;oBACxE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,CAAC;oBAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YACzC,CAAC;QACF,CAAC;QAED,gDAAkB,GAAlB;YACC,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gBAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;YAC1D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;oBAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAEtD,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC9B,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;oBAC/D,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;oBAC1D,QAAQ,IAAI,CAAC,GAAG,SAAS,CAAC;gBAC3B,CAAC;gBAED,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;gBAC7B,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;oBACxD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;gBACzD,CAAC;gBAED,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBACjD,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC;wBAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,MAAM,CAAC;oBACjH,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC;wBAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,MAAM,CAAC;gBAClH,CAAC;gBAED,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC1B,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;oBACzD,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;oBAC1D,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,QAAQ,CAAC;gBAC7B,CAAC;gBAED,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrF,CAAC;QACF,CAAC;QAED,gDAAkB,GAAlB;YACC,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gBAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;YAC1D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;oBAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAEtD,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC9B,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC;oBAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;gBAE1F,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;gBAC7B,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;oBACpD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;gBACrD,CAAC;gBAED,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBACjD,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC;wBAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC/F,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC;wBAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAChG,CAAC;gBAED,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC1B,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;oBAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;gBAEjF,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrF,CAAC;QACF,CAAC;QAED,sCAAQ,GAAR;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,CAAC;QACF,0BAAC;IAAD,CAAC,AAnPD,IAmPC;IAnPY,yBAAmB,sBAmP/B,CAAA;AACF,CAAC,EArPM,KAAK,KAAL,KAAK,QAqPX;ACrPD,IAAO,KAAK,CAgBX;AAhBD,WAAO,KAAK,EAAC,CAAC;IACb;QAUC,iCAAa,IAAY;YARzB,UAAK,GAAG,CAAC,CAAC;YACV,UAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAE9B,cAAS,GAAG,CAAC,CAAC;YAAC,iBAAY,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAC5D,mBAAc,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAAC,iBAAY,GAAG,CAAC,CAAC;YAAC,iBAAY,GAAG,CAAC,CAAC;YAAC,iBAAY,GAAG,CAAC,CAAC;YACnG,aAAQ,GAAG,KAAK,CAAC;YACjB,UAAK,GAAG,KAAK,CAAC;YAGb,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,8BAAC;IAAD,CAAC,AAdD,IAcC;IAdY,6BAAuB,0BAcnC,CAAA;AACF,CAAC,EAhBM,KAAK,KAAL,KAAK,QAgBX;AChBD,IAAO,KAAK,CA+OX;AA/OD,WAAO,KAAK,EAAC,CAAC;IACb;QAAA;YACS,mBAAc,GAAG,IAAI,KAAK,EAAiB,CAAC;YAC5C,0BAAqB,GAAG,IAAI,KAAK,EAAiB,CAAC;YAEnD,iBAAY,GAAG,IAAI,KAAK,EAAU,CAAC;YACnC,mBAAc,GAAG,IAAI,KAAK,EAAW,CAAC;YACtC,cAAS,GAAG,IAAI,KAAK,EAAU,CAAC;YAEhC,gBAAW,GAAG,IAAI,UAAI,CAAgB;gBAC7C,MAAM,CAAC,IAAI,KAAK,EAAU,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEK,uBAAkB,GAAG,IAAI,UAAI,CAAgB;gBACpD,MAAM,CAAC,IAAI,KAAK,EAAU,CAAC;YAC5B,CAAC,CAAC,CAAC;QA+NJ,CAAC;QA7NO,kCAAW,GAAlB,UAAoB,aAAgC;YACnD,IAAI,QAAQ,GAAG,aAAa,CAAC;YAC7B,IAAI,WAAW,GAAG,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC;YAE5C,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;YAChC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;gBACnC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhB,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;YACpC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACrB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBAC1C,SAAS,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAE1E,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAErB,OAAO,WAAW,GAAG,CAAC,EAAE,CAAC;gBAExB,IAAI,QAAQ,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;gBAChD,OAAO,IAAI,EAAE,CAAC;oBACb,KAAK,EACL,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnB,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC/E,IAAI,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC/C,IAAI,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC/C,IAAI,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC/C,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,EAAE,IAAI,QAAQ,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC;4BACrF,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gCAAC,QAAQ,CAAC;4BAC7B,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;4BACzB,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;4BAC3C,EAAE,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gCAC3D,EAAE,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;oCAC3D,EAAE,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;wCAAC,KAAK,CAAC,KAAK,CAAC;gCACxE,CAAC;4BACF,CAAC;wBACF,CAAC;wBACD,KAAK,CAAC;oBACP,CAAC;oBAED,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;wBACf,GAAG,CAAC;4BACH,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gCAAC,KAAK,CAAC;4BACzB,CAAC,EAAE,CAAC;wBACL,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;wBAChB,KAAK,CAAC;oBACP,CAAC;oBAED,QAAQ,GAAG,CAAC,CAAC;oBACb,CAAC,GAAG,IAAI,CAAC;oBACT,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;gBACjC,CAAC;gBAGD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;gBAC7D,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;gBAC/C,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvB,WAAW,EAAE,CAAC;gBAEd,IAAI,aAAa,GAAG,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;gBACxD,IAAI,SAAS,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;gBACzC,SAAS,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACjG,SAAS,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC1F,CAAC;YAED,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC;gBACtB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YAED,MAAM,CAAC,SAAS,CAAC;QAClB,CAAC;QAED,gCAAS,GAAT,UAAW,aAA4B,EAAE,SAAwB;YAChE,IAAI,QAAQ,GAAG,aAAa,CAAC;YAC7B,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACzC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAE1B,IAAI,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACvD,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACvD,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;YAEjC,IAAI,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;YACtD,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAE1B,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACxC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAGnB,IAAI,YAAY,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC;YACvC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrD,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;gBACnF,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAG7C,IAAI,MAAM,GAAG,KAAK,CAAC;gBACnB,EAAE,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;oBACxB,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC3B,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBACxG,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5F,EAAE,CAAC,CAAC,QAAQ,IAAI,WAAW,IAAI,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC;wBACxD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACjB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACxB,MAAM,GAAG,IAAI,CAAC;oBACf,CAAC;gBACF,CAAC;gBAGD,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACb,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;wBACxB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC7B,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC5C,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;wBAC9B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC9C,CAAC;oBACD,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;oBACpC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;oBACnB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;oBAClD,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC1B,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxB,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC3D,YAAY,GAAG,EAAE,CAAC;gBACnB,CAAC;YACF,CAAC;YAED,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBACxB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7B,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC5C,CAAC;YAGD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvD,cAAc,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC1C,EAAE,CAAC,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,CAAC;oBAAC,QAAQ,CAAC;gBACzC,IAAI,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,SAAS,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAE1D,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC3B,IAAI,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvD,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnD,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC/C,IAAI,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAEvF,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;oBAC/B,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;wBAAC,QAAQ,CAAC;oBACtB,IAAI,YAAY,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC;oBAC7C,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;wBAAC,QAAQ,CAAC;oBACvC,IAAI,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBACtC,IAAI,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBACvC,IAAI,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBAErC,IAAI,SAAS,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;oBACnC,IAAI,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAE/E,EAAE,CAAC,CAAC,eAAe,IAAI,UAAU,IAAI,gBAAgB,IAAI,SAAS,CAAC;wBAAC,QAAQ,CAAC;oBAC7E,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBAChF,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC9E,EAAE,CAAC,CAAC,QAAQ,IAAI,OAAO,IAAI,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;wBAChD,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;wBACrB,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;wBACxB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACjB,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;wBACpC,SAAS,GAAG,KAAK,CAAC;wBAClB,SAAS,GAAG,KAAK,CAAC;wBAClB,KAAK,GAAG,EAAE,CAAC;wBACX,KAAK,GAAG,EAAE,CAAC;wBACX,EAAE,GAAG,CAAC,CAAC;oBACR,CAAC;gBACF,CAAC;YACF,CAAC;YAGD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrD,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC5B,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;oBACzB,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC/B,cAAc,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAA;oBACzC,qBAAqB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;oBAClC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC9C,CAAC;YACF,CAAC;YAED,MAAM,CAAC,cAAc,CAAC;QACvB,CAAC;QAEc,sBAAS,GAAxB,UAA0B,KAAa,EAAE,WAAmB,EAAE,QAA2B,EAAE,OAA0B;YACpH,IAAI,QAAQ,GAAG,OAAO,CAAC,CAAC,WAAW,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACrE,IAAI,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,EAC7H,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QAEc,yBAAY,GAA3B,UAA6B,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW;YACxG,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QACvE,CAAC;QAEc,oBAAO,GAAtB,UAAwB,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW;YACnG,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;YACnC,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,CAAC;QACF,mBAAC;IAAD,CAAC,AA7OD,IA6OC;IA7OY,kBAAY,eA6OxB,CAAA;AACF,CAAC,EA/OM,KAAK,KAAL,KAAK,QA+OX;AE/OD,IAAO,KAAK,CAkUX;AAlUD,WAAO,KAAK,EAAC,CAAC;IAKb;QAAA;YACC,UAAK,GAAG,IAAI,KAAK,EAAU,CAAC;QAmB7B,CAAC;QAjBA,oBAAG,GAAH,UAAK,KAAa;YACjB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YAClC,MAAM,CAAC,CAAC,QAAQ,CAAC;QAClB,CAAC;QAED,yBAAQ,GAAR,UAAU,KAAa;YACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC;QAC3C,CAAC;QAED,uBAAM,GAAN,UAAQ,KAAa;YACpB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;QACnC,CAAC;QAED,sBAAK,GAAL;YACC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,CAAC;QACF,aAAC;IAAD,CAAC,AApBD,IAoBC;IApBY,YAAM,SAoBlB,CAAA;IAUD;QAOC,eAAoB,CAAa,EAAS,CAAa,EAAS,CAAa,EAAS,CAAa;YAAtF,iBAAoB,GAApB,KAAoB;YAAE,iBAAoB,GAApB,KAAoB;YAAE,iBAAoB,GAApB,KAAoB;YAAE,iBAAoB,GAApB,KAAoB;YAA/E,MAAC,GAAD,CAAC,CAAY;YAAS,MAAC,GAAD,CAAC,CAAY;YAAS,MAAC,GAAD,CAAC,CAAY;YAAS,MAAC,GAAD,CAAC,CAAY;QACnG,CAAC;QAED,mBAAG,GAAH,UAAK,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;YAC9C,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,4BAAY,GAAZ,UAAc,CAAQ;YACrB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,6BAAa,GAAb,UAAe,GAAW;YACzB,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACjD,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;YAChD,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;YAChD,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;YAChD,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;YAC1E,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,mBAAG,GAAH,UAAK,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;YAC9C,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACZ,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,qBAAK,GAAL;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAzDa,WAAK,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,SAAG,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,WAAK,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,UAAI,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,aAAO,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAsD/C,YAAC;IAAD,CAAC,AA3DD,IA2DC;IA3DY,WAAK,QA2DjB,CAAA;IAED;QAAA;QAkCA,CAAC;QA1BO,eAAK,GAAZ,UAAc,KAAa,EAAE,GAAW,EAAE,GAAW;YACpD,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;gBAAC,MAAM,CAAC,GAAG,CAAC;YAC5B,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;gBAAC,MAAM,CAAC,GAAG,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAEM,gBAAM,GAAb,UAAe,OAAe;YAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAEM,gBAAM,GAAb,UAAe,OAAe;YAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAEM,gBAAM,GAAb,UAAe,KAAa;YAC3B,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QAEM,eAAK,GAAZ,UAAc,CAAS;YACtB,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;QAEM,cAAI,GAAX,UAAa,CAAS;YACrB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QAhCM,YAAE,GAAG,SAAS,CAAC;QACf,aAAG,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;QACvB,0BAAgB,GAAG,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC;QACtC,gBAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC;QACpC,0BAAgB,GAAG,SAAS,CAAC,EAAE,GAAG,GAAG,CAAC;QACtC,gBAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC;QA4B5C,gBAAC;IAAD,CAAC,AAlCD,IAkCC;IAlCY,eAAS,YAkCrB,CAAA;IAED;QAAA;QAqDA,CAAC;QAlDO,eAAS,GAAhB,UAAqB,MAAoB,EAAE,WAAmB,EAAE,IAAkB,EAAE,SAAiB,EAAE,WAAmB;YACzH,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,WAAW,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClF,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;QACF,CAAC;QAEM,kBAAY,GAAnB,UAAwB,KAAe,EAAE,IAAY,EAAE,KAAc;YAAd,qBAAc,GAAd,SAAc;YACpE,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;YAC3B,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC,KAAK,CAAC;YAClC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;YACpB,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;gBACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;oBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACvD,CAAC;YACD,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAEM,yBAAmB,GAA1B,UAA+B,KAAe,EAAE,IAAY,EAAE,KAAc;YAAd,qBAAc,GAAd,SAAc;YAC3E,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC,KAAK,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;QAEM,cAAQ,GAAf,UAAoB,IAAY,EAAE,YAAe;YAChD,IAAI,KAAK,GAAG,IAAI,KAAK,CAAI,IAAI,CAAC,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;gBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAEM,mBAAa,GAApB,UAAsB,IAAY;YACjC,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBACjC,MAAM,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;YAC9B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,IAAI,KAAK,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,CAAC;gBACpC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,CAAC,KAAK,CAAC;YACf,CAAC;QACF,CAAC;QAEM,mBAAa,GAApB,UAAsB,IAAY;YACjC,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBACjC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;YAC5B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,IAAI,KAAK,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,CAAC;gBACpC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,CAAC,KAAK,CAAC;YACf,CAAC;QACF,CAAC;QAEM,kBAAY,GAAnB,UAAqB,KAAoB;YACxC,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QACtE,CAAC;QAnDM,2BAAqB,GAAG,OAAM,CAAC,YAAY,CAAC,KAAK,WAAW,CAAC;QAoDrE,YAAC;IAAD,CAAC,AArDD,IAqDC;IArDY,WAAK,QAqDjB,CAAA;IAED;QAAA;QAOA,CAAC;QANO,mBAAQ,GAAf,UAAgB,QAAkB;YACjC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChD,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YACvI,CAAC;QACF,CAAC;QACF,iBAAC;IAAD,CAAC,AAPD,IAOC;IAPY,gBAAU,aAOtB,CAAA;IAED;QAIC,cAAa,YAAqB;YAH1B,UAAK,GAAG,IAAI,KAAK,EAAK,CAAC;YAI9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAClC,CAAC;QAED,qBAAM,GAAN;YACC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACvE,CAAC;QAED,mBAAI,GAAJ,UAAM,IAAO;YACZ,EAAE,CAAC,CAAE,IAAY,CAAC,KAAK,CAAC;gBAAE,IAAY,CAAC,KAAK,EAAE,CAAC;YAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QAED,sBAAO,GAAP,UAAS,KAAmB;YAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,EAAE,CAAC,CAAE,KAAK,CAAC,CAAC,CAAS,CAAC,KAAK,CAAC;oBAAE,KAAK,CAAC,CAAC,CAAS,CAAC,KAAK,EAAE,CAAC;gBACvD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC;QAED,oBAAK,GAAL;YACC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,CAAC;QACF,WAAC;IAAD,CAAC,AA3BD,IA2BC;IA3BY,UAAI,OA2BhB,CAAA;IAED;QACC,iBAAoB,CAAK,EAAS,CAAK;YAA1B,iBAAY,GAAZ,KAAY;YAAE,iBAAY,GAAZ,KAAY;YAAnB,MAAC,GAAD,CAAC,CAAI;YAAS,MAAC,GAAD,CAAC,CAAI;QACvC,CAAC;QAED,qBAAG,GAAH,UAAK,CAAS,EAAE,CAAS;YACxB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,wBAAM,GAAN;YACC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,2BAAS,GAAT;YACC,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACxB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;YACf,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QACF,cAAC;IAAD,CAAC,AAxBD,IAwBC;IAxBY,aAAO,UAwBnB,CAAA;IAED;QAAA;YACC,aAAQ,GAAG,KAAK,CAAC;YACjB,oBAAe,GAAG,CAAC,CAAC;YACpB,UAAK,GAAG,CAAC,CAAC;YACV,cAAS,GAAG,CAAC,CAAC;YAEN,aAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAC7B,eAAU,GAAG,CAAC,CAAC;YACf,cAAS,GAAG,CAAC,CAAC;QAiBvB,CAAC;QAfA,2BAAM,GAAN;YACC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;YACjC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC;YAC7B,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC;YAC7B,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC3D,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YAEpB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;gBACxD,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACrB,CAAC;QACF,CAAC;QACF,iBAAC;IAAD,CAAC,AAzBD,IAyBC;IAzBY,gBAAU,aAyBtB,CAAA;IAOD;QAOC,sBAAa,UAAuB;YAAvB,0BAAuB,GAAvB,eAAuB;YALpC,gBAAW,GAAG,CAAC,CAAC;YAChB,cAAS,GAAG,CAAC,CAAC;YACd,SAAI,GAAG,CAAC,CAAC;YACT,UAAK,GAAG,IAAI,CAAC;YAGZ,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAS,UAAU,CAAC,CAAC;QAC7C,CAAC;QAED,oCAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/C,CAAC;QAED,+BAAQ,GAAR,UAAU,KAAa;YACtB,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACzC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC;YACtC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YAChE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,8BAAO,GAAP;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;gBAC1B,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBAChB,IAAI,IAAI,GAAG,CAAC,CAAC;oBACb,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC7C,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACxB,CAAC;oBACD,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;oBACtC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACpB,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YAClB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,MAAM,CAAC,CAAC,CAAC;YACV,CAAC;QACF,CAAC;QACF,mBAAC;IAAD,CAAC,AAtCD,IAsCC;IAtCY,kBAAY,eAsCxB,CAAA;AACF,CAAC,EAlUM,KAAK,KAAL,KAAK,QAkUX;AClUD,IAAO,KAAK,CAQX;AARD,WAAO,KAAK;IAAC,IAAA,OAAO,CAQnB;IARY,WAAA,OAAO,EAAC,CAAC;QACrB;YAAkC,gCAAkB;YACnD,sBAAa,UAAuB;gBAAvB,0BAAuB,GAAvB,eAAuB;gBACnC,kBAAM,UAAC,KAAuB;oBAC7B,MAAM,CAAC,IAAI,sBAAc,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC,EAAE,UAAU,CAAC,CAAC;YAChB,CAAC;YACF,mBAAC;QAAD,CAAC,AAND,CAAkC,KAAK,CAAC,YAAY,GAMnD;QANY,oBAAY,eAMxB,CAAA;IACF,CAAC,EARY,OAAO,GAAP,aAAO,KAAP,aAAO,QAQnB;AAAD,CAAC,EARM,KAAK,KAAL,KAAK,QAQX;ACRD,IAAO,KAAK,CAuEX;AAvED,WAAO,KAAK;IAAC,IAAA,OAAO,CAuEnB;IAvEY,WAAA,OAAO,EAAC,CAAC;QACrB;YAUC,qBAAa,IAAgB,EAAE,WAA2B;gBAA3B,2BAA2B,GAA3B,mBAA2B;gBAJlD,mBAAc,GAAG,CAAC,CAAC;gBAEnB,kBAAa,GAAG,CAAC,CAAC;gBAGzB,EAAE,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,WAAW,CAAC,CAAC;gBAE3G,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;gBACvF,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;gBAC9D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACjB,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACrC,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;gBACtG,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC5B,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,KAAK,CAAC,0BAA0B,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC9F,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,0BAA0B,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC3F,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,0BAA0B,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBACxF,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpD,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC9B,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;gBACxB,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACrB,CAAC;YAED,2BAAK,GAAL;gBACC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YACxB,CAAC;YAED,2BAAK,GAAL,UAAO,QAA2B,EAAE,cAAsB,EAAE,OAA0B,EAAE,aAAqB,EAAE,CAAa;gBAAb,iBAAa,GAAb,KAAa;gBAC3H,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,WAAW,CAAC;gBAC/D,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACjC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;gBAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,GAAG,CAAC,CAAC,EAAC,CAAC,GAAG,cAAc,GAAG,CAAC;oBAC3B,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACtB,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnC,CAAC;gBACD,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBAExB,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;gBAChC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;oBAC9D,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;gBAC3C,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC;YACrC,CAAC;YAED,yBAAG,GAAH;gBACC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;gBACrC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;gBACzC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;gBAC1D,IAAI,GAAG,GAA0B,IAAI,CAAC,IAAI,CAAC,QAAS,CAAC;gBACrD,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC;gBAClC,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;gBACtC,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;gBACtD,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;gBACxB,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;YAC1C,CAAC;YAjEc,uBAAW,GAAG,CAAC,CAAC;YAkEhC,kBAAC;QAAD,CAAC,AArED,IAqEC;QArEY,mBAAW,cAqEvB,CAAA;IACF,CAAC,EAvEY,OAAO,GAAP,aAAO,KAAP,aAAO,QAuEnB;AAAD,CAAC,EAvEM,KAAK,KAAL,KAAK,QAuEX;ACvED,IAAO,KAAK,CA2IX;AA3ID,WAAO,KAAK;IAAC,IAAA,OAAO,CA2InB;IA3IY,WAAA,OAAO,EAAC,CAAC;QACrB;YAAkC,gCAAU;YAe3C,sBAAa,YAA0B;gBACtC,iBAAO,CAAC;gBAZT,YAAO,GAAW,GAAG,CAAC;gBAGd,YAAO,GAAqB,IAAI,sBAAgB,EAAE,CAAC;gBAKnD,aAAQ,GAAG,WAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACrC,cAAS,GAAG,IAAI,WAAK,EAAE,CAAC;gBAK/B,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAQ,CAAC,YAAY,CAAC,CAAC;gBAC3C,IAAI,QAAQ,GAAG,IAAI,wBAAkB,CAAC,YAAY,CAAC,CAAC;gBACpD,IAAI,CAAC,KAAK,GAAG,IAAI,oBAAc,CAAC,QAAQ,CAAC,CAAC;gBAE1C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC7D,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;gBACjC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC5B,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC;gBACzB,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAW,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;YAED,6BAAM,GAAN,UAAO,SAAiB;gBACvB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAE7B,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACxB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACtB,QAAQ,CAAC,oBAAoB,EAAE,CAAC;gBAEhC,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,CAAC;YAEO,qCAAc,GAAtB;gBACC,IAAI,QAAQ,GAAyB,IAAI,CAAC,QAAQ,CAAC;gBACnD,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,IAAI,cAAc,GAAG,CAAC,CAAC;gBACvB,IAAI,aAAa,GAAG,CAAC,CAAC;gBAEtB,IAAI,SAAS,GAAc,IAAI,CAAC;gBAChC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAE3B,IAAI,QAAQ,GAAsB,IAAI,CAAC,QAAQ,CAAC;gBAChD,IAAI,SAAS,GAAkB,IAAI,CAAC;gBACpC,IAAI,GAAG,GAAsB,IAAI,CAAC;gBAClC,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACxC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC3B,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClD,IAAI,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC;oBACrE,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBACxB,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACtC,IAAI,eAAe,GAAU,IAAI,CAAC;oBAClC,IAAI,OAAO,GAAmB,IAAI,CAAC;oBACnC,IAAI,SAAS,GAAG,CAAC,CAAC;oBAClB,EAAE,CAAC,CAAC,UAAU,YAAY,sBAAgB,CAAC,CAAC,CAAC;wBAC5C,IAAI,MAAM,GAAqB,UAAU,CAAC;wBAC1C,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC;wBAC/B,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACzB,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC;wBAC3B,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;wBAChE,SAAS,GAAG,YAAY,CAAC,cAAc,CAAC;wBACxC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;wBACjB,OAAO,GAAwC,MAAM,CAAC,MAAM,CAAC,YAAa,CAAC,OAAO,CAAC;oBACpF,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,YAAY,oBAAc,CAAC,CAAC,CAAC;wBACjD,IAAI,IAAI,GAAmB,UAAU,CAAC;wBACtC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;wBAC7B,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACzB,SAAS,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC;wBACzD,EAAE,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;4BACjC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;wBACjE,CAAC;wBACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;wBACtF,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC3B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;wBACf,OAAO,GAAwC,IAAI,CAAC,MAAM,CAAC,YAAa,CAAC,OAAO,CAAC;oBAClF,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,YAAY,wBAAkB,CAAC,CAAC,CAAC;wBACrD,IAAI,IAAI,GAAuB,CAAC,UAAU,CAAC,CAAC;wBAC5C,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC9B,QAAQ,CAAC;oBACV,CAAC;oBAAC,IAAI;wBAAC,QAAQ,CAAC;oBAEhB,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;wBACrB,EAAE,CAAC,CAAC,CAA2B,IAAI,CAAC,QAAS,CAAC,GAAG,CAAC,CAAC,CAAC;4BACnD,IAAI,GAAG,GAA4B,IAAI,CAAC,QAAQ,CAAC;4BACjD,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;4BAC1B,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxB,CAAC;wBAED,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAClC,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;wBACnC,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;wBAC3B,IAAI,KAAK,GAAG,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;wBAC9D,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC3B,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EACzD,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EACjD,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EACjD,KAAK,CAAC,CAAC;wBAQT,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;4BAC1B,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;4BACjG,IAAI,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;4BAC9C,IAAI,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;4BAChD,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,eAAe,CAAC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBACtG,CAAC;wBAAC,IAAI,CAAC,CAAC;4BACP,IAAI,KAAK,GAAG,QAAQ,CAAC;4BACrB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAC,GAAG,SAAS,EAAE,CAAC,GAAG,GAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gCACtE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gCACnB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gCACvB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gCACvB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gCACvB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gCACtB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;4BAC3B,CAAC;4BACD,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBACpE,CAAC;wBACD,CAAC,IAAI,OAAO,CAAC;oBACd,CAAC;gBACF,CAAC;gBAED,OAAO,CAAC,GAAG,EAAE,CAAC;YACf,CAAC;YA/HM,2BAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACpC,wBAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YA+HhC,mBAAC;QAAD,CAAC,AAzID,CAAkC,KAAK,CAAC,IAAI,GAyI3C;QAzIY,oBAAY,eAyIxB,CAAA;IACF,CAAC,EA3IY,OAAO,GAAP,aAAO,KAAP,aAAO,QA2InB;AAAD,CAAC,EA3IM,KAAK,KAAL,KAAK,QA2IX;AC3ID,IAAO,KAAK,CA0CX;AA1CD,WAAO,KAAK;IAAC,IAAA,OAAO,CA0CnB;IA1CY,WAAA,OAAO,EAAC,CAAC;QACrB;YAAoC,kCAAO;YAG1C,wBAAa,KAAuB;gBACnC,kBAAM,KAAK,CAAC,CAAC;gBACb,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;YACjC,CAAC;YAED,mCAAU,GAAV,UAAY,SAAwB,EAAE,SAAwB;gBAC7D,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBAC1E,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAC3E,CAAC;YAED,iCAAQ,GAAR,UAAU,KAAkB,EAAE,KAAkB;gBAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBAChE,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACjE,CAAC;YAED,gCAAO,GAAP;gBACC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC;YAEM,qCAAsB,GAA7B,UAA8B,MAAqB;gBAClD,EAAE,CAAC,CAAC,MAAM,KAAK,mBAAa,CAAC,MAAM,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC/D,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,mBAAa,CAAC,MAAM,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC;gBAChF,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,mBAAa,CAAC,mBAAmB,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC;gBAC9F,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,mBAAa,CAAC,mBAAmB,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC;gBAC9F,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,mBAAa,CAAC,oBAAoB,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC;gBAChG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,mBAAa,CAAC,OAAO,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;gBACtE,IAAI;oBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,MAAM,CAAC,CAAC;YAC3D,CAAC;YAEM,mCAAoB,GAA3B,UAA4B,IAAiB;gBAC5C,EAAE,CAAC,CAAC,IAAI,KAAK,iBAAW,CAAC,WAAW,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC;gBACvE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,iBAAW,CAAC,cAAc,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC;gBAClF,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,iBAAW,CAAC,MAAM,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;gBAClE,IAAI;oBAAC,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC;YACvD,CAAC;YACF,qBAAC;QAAD,CAAC,AAxCD,CAAoC,aAAO,GAwC1C;QAxCY,sBAAc,iBAwC1B,CAAA;IACF,CAAC,EA1CY,OAAO,GAAP,aAAO,KAAP,aAAO,QA0CnB;AAAD,CAAC,EA1CM,KAAK,KAAL,KAAK,QA0CX;AC1CD,IAAO,KAAK,CAQX;AARD,WAAO,KAAK;IAAC,IAAA,KAAK,CAQjB;IARY,WAAA,KAAK,EAAC,CAAC;QACnB;YAAkC,gCAAkB;YACnD,sBAAa,OAA6D,EAAE,UAAuB;gBAAvB,0BAAuB,GAAvB,eAAuB;gBAClG,kBAAM,UAAC,KAAuB;oBAC7B,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAClD,CAAC,EAAE,UAAU,CAAC,CAAC;YAChB,CAAC;YACF,mBAAC;QAAD,CAAC,AAND,CAAkC,KAAK,CAAC,YAAY,GAMnD;QANY,kBAAY,eAMxB,CAAA;IACF,CAAC,EARY,KAAK,GAAL,WAAK,KAAL,WAAK,QAQjB;AAAD,CAAC,EARM,KAAK,KAAL,KAAK,QAQX;ACRD,IAAO,KAAK,CAsDX;AAtDD,WAAO,KAAK;IAAC,IAAA,KAAK,CAsDjB;IAtDY,WAAA,KAAK,EAAC,CAAC;QACnB;YAgBC,qBAAa,aAAqB,EAAE,cAAsB;gBAf1D,aAAQ,GAAG,IAAI,aAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChC,cAAS,GAAG,IAAI,aAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAClC,OAAE,GAAG,IAAI,aAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1B,SAAI,GAAG,CAAC,CAAC;gBACT,QAAG,GAAG,GAAG,CAAC;gBACV,SAAI,GAAG,CAAC,CAAC;gBACT,kBAAa,GAAG,CAAC,CAAC;gBAClB,mBAAc,GAAG,CAAC,CAAC;gBACnB,mBAAc,GAAG,IAAI,aAAO,EAAE,CAAC;gBAC/B,0BAAqB,GAAG,IAAI,aAAO,EAAE,CAAC;gBACtC,eAAU,GAAG,IAAI,aAAO,EAAE,CAAC;gBAC3B,SAAI,GAAG,IAAI,aAAO,EAAE,CAAC;gBAEb,QAAG,GAAG,IAAI,aAAO,EAAE,CAAC;gBAG3B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;gBACnC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;gBACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,CAAC;YAED,4BAAM,GAAN;gBACC,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACjC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACrB,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;gBACzC,IAAI,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;gBACvD,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;gBAC/F,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,EACnE,IAAI,GAAG,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,EACzD,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBACpD,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACtC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC9B,qBAAqB,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;YAC3D,CAAC;YAED,mCAAa,GAAb,UAAe,YAAqB,EAAE,WAAmB,EAAE,YAAoB;gBAC9E,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,YAAY,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC9D,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;gBACnB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC;gBAClC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC;gBACnC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACjC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACxC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtC,MAAM,CAAC,YAAY,CAAC;YACrB,CAAC;YAED,iCAAW,GAAX,UAAY,aAAqB,EAAE,cAAsB;gBACxD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;gBACnC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;YACtC,CAAC;YACF,kBAAC;QAAD,CAAC,AApDD,IAoDC;QApDY,iBAAW,cAoDvB,CAAA;IACF,CAAC,EAtDY,KAAK,GAAL,WAAK,KAAL,WAAK,QAsDjB;AAAD,CAAC,EAtDM,KAAK,KAAL,KAAK,QAsDX;ACtDD,IAAO,KAAK,CAmEX;AAnED,WAAO,KAAK;IAAC,IAAA,KAAK,CAmEjB;IAnEY,WAAA,KAAK,EAAC,CAAC;QACnB;YAA+B,6BAAO;YAMrC,mBAAa,OAA6D,EAAE,KAAuB,EAAE,UAA2B;gBAA3B,0BAA2B,GAA3B,kBAA2B;gBAC/H,kBAAM,KAAK,CAAC,CAAC;gBALN,YAAO,GAAiB,IAAI,CAAC;gBAC7B,cAAS,GAAG,CAAC,CAAC;gBACd,eAAU,GAAG,KAAK,CAAC;gBAI1B,IAAI,CAAC,OAAO,GAAG,OAAO,YAAY,kCAA4B,GAAE,OAAO,GAAG,IAAI,kCAA4B,CAAC,OAAO,CAAC,CAAC;gBACpH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;gBAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YAED,8BAAU,GAAV,UAAY,SAAwB,EAAE,SAAwB;gBAC7D,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;gBAClE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;YACnE,CAAC;YAED,4BAAQ,GAAR,UAAU,KAAkB,EAAE,KAAkB;gBAC/C,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;gBAC1D,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC;YAED,0BAAM,GAAN,UAAQ,UAAmB;gBAC1B,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;gBAChD,CAAC;gBACD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjF,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;gBAClE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,kBAAkB,EAAE,UAAU,GAAG,EAAE,CAAC,oBAAoB,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;gBACzG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC;gBACrE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC;gBACrE,EAAE,CAAC,CAAC,UAAU,CAAC;oBAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;YAClD,CAAC;YAED,2BAAO,GAAP;gBACC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;YAED,wBAAI,GAAJ,UAAM,IAAgB;gBAAhB,oBAAgB,GAAhB,QAAgB;gBACrB,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;gBACrC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;YAED,0BAAM,GAAN;gBACC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/C,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACrC,CAAC;YAED,2BAAO,GAAP;gBACC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;YACF,gBAAC;QAAD,CAAC,AAjED,CAA+B,aAAO,GAiErC;QAjEY,eAAS,YAiErB,CAAA;IACF,CAAC,EAnEY,KAAK,GAAL,WAAK,KAAL,WAAK,QAmEjB;AAAD,CAAC,EAnEM,KAAK,KAAL,KAAK,QAmEX;ACnED,IAAO,KAAK,CA6LX;AA7LD,WAAO,KAAK;IAAC,IAAA,KAAK,CA6LjB;IA7LY,WAAA,KAAK,EAAC,CAAC;QACnB;YAWC,eAAa,OAAoB;gBATjC,UAAK,GAAG,CAAC,CAAC;gBACV,UAAK,GAAG,CAAC,CAAC;gBACV,eAAU,GAAG,KAAK,CAAC;gBACnB,cAAS,GAAU,IAAI,CAAC;gBACxB,gBAAW,GAAG,IAAI,UAAI,CAAoB;oBACzC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;gBAEK,cAAS,GAAG,IAAI,KAAK,EAAiB,CAAC;gBAE9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;gBACvB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YAEO,8BAAc,GAAtB,UAAuB,OAAoB;gBAA3C,iBAmJC;gBAlJA,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAC,EAAW;oBACjD,EAAE,CAAC,CAAC,EAAE,YAAY,UAAU,CAAC,CAAC,CAAC;wBAC9B,IAAI,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;wBAC3C,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;wBAC/B,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;wBAE9B,IAAI,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;wBAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC3C,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACzB,CAAC;wBAED,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;wBACf,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;wBACf,KAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBACxB,CAAC;gBACF,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAC,EAAW;oBACjD,EAAE,CAAC,CAAC,EAAE,YAAY,UAAU,CAAC,CAAC,CAAC;wBAC9B,IAAI,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;wBAC3C,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;wBAC/B,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;wBAE9B,IAAI,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;wBAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC3C,EAAE,CAAC,CAAC,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gCACrB,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC5B,CAAC;4BAAC,IAAI,CAAC,CAAC;gCACP,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC1B,CAAC;wBACF,CAAC;wBAED,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;wBACf,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;oBAChB,CAAC;gBACF,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAC,EAAW;oBAC/C,EAAE,CAAC,CAAC,EAAE,YAAY,UAAU,CAAC,CAAC,CAAC;wBAC9B,IAAI,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;wBAC3C,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;wBAC/B,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;wBAE9B,IAAI,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;wBAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC3C,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACvB,CAAC;wBAED,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;wBACf,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;wBACf,KAAI,CAAC,UAAU,GAAG,KAAK,CAAC;oBACzB,CAAC;gBACF,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,UAAC,EAAc;oBACrD,EAAE,CAAC,CAAC,KAAI,CAAC,SAAS,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC;oBAEnC,IAAI,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC;oBAChC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACzC,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBACvB,IAAI,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;wBAC3C,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;wBAClC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;wBACjC,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;wBAC3C,KAAI,CAAC,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;wBAC7C,KAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;wBACrB,KAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;wBACrB,KAAK,CAAC;oBACP,CAAC;oBAED,IAAI,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;oBAC/B,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,SAAS,CAAC,MAAM,EAAE,GAAC,EAAE,EAAE,CAAC;wBAC3C,SAAS,CAAC,GAAC,CAAC,CAAC,IAAI,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACvD,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACnE,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC9B,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC9B,KAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBACvB,EAAE,CAAC,cAAc,EAAE,CAAC;gBACrB,CAAC,EAAE,KAAK,CAAC,CAAC;gBACV,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAC,EAAc;oBACnD,IAAI,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC;oBAChC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACzC,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBACvB,EAAE,CAAC,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;4BACpD,IAAI,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;4BAC3C,IAAI,CAAC,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;4BACrD,IAAI,CAAC,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;4BACpD,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC;4BACtC,IAAI,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;4BAC/B,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,SAAS,CAAC,MAAM,EAAE,GAAC,EAAE,EAAE,CAAC;gCAC3C,SAAS,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BACvB,CAAC;4BACD,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;4BACnC,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;4BACf,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;4BACf,KAAI,CAAC,UAAU,GAAG,KAAK,CAAC;4BACxB,KAAI,CAAC,SAAS,GAAG,IAAI,CAAC;4BACtB,KAAK,CAAC;wBACP,CAAC;oBACF,CAAC;oBACD,EAAE,CAAC,cAAc,EAAE,CAAC;gBACrB,CAAC,EAAE,KAAK,CAAC,CAAC;gBACV,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAC,EAAc;oBACtD,IAAI,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC;oBAChC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACzC,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBACvB,EAAE,CAAC,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;4BACpD,IAAI,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;4BAC3C,IAAI,CAAC,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;4BACrD,IAAI,CAAC,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;4BACpD,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC;4BACtC,IAAI,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;4BAC/B,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,SAAS,CAAC,MAAM,EAAE,GAAC,EAAE,EAAE,CAAC;gCAC3C,SAAS,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BACvB,CAAC;4BACD,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;4BACnC,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;4BACf,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;4BACf,KAAI,CAAC,UAAU,GAAG,KAAK,CAAC;4BACxB,KAAI,CAAC,SAAS,GAAG,IAAI,CAAC;4BACtB,KAAK,CAAC;wBACP,CAAC;oBACF,CAAC;oBACD,EAAE,CAAC,cAAc,EAAE,CAAC;gBACrB,CAAC,EAAE,KAAK,CAAC,CAAC;gBACV,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAC,EAAc;oBACpD,EAAE,CAAC,CAAC,KAAI,CAAC,SAAS,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC;oBAEnC,IAAI,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC;oBAChC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACzC,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBACvB,EAAE,CAAC,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;4BACpD,IAAI,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;4BAC3C,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;4BAClC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;4BAEjC,IAAI,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;4BAC/B,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,SAAS,CAAC,MAAM,EAAE,GAAC,EAAE,EAAE,CAAC;gCAC3C,SAAS,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC5B,CAAC;4BACD,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;4BACpC,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClC,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClC,KAAK,CAAC;wBACP,CAAC;oBACF,CAAC;oBACD,EAAE,CAAC,cAAc,EAAE,CAAC;gBACrB,CAAC,EAAE,KAAK,CAAC,CAAC;YACX,CAAC;YAED,2BAAW,GAAX,UAAY,QAAuB;gBAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;YAED,8BAAc,GAAd,UAAe,QAAuB;gBACrC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC3C,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACd,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YACF,YAAC;QAAD,CAAC,AA/KD,IA+KC;QA/KY,WAAK,QA+KjB,CAAA;QAED;YACC,eAAmB,UAAkB,EAAS,CAAS,EAAS,CAAS;gBAAtD,eAAU,GAAV,UAAU,CAAQ;gBAAS,MAAC,GAAD,CAAC,CAAQ;gBAAS,MAAC,GAAD,CAAC,CAAQ;YACzE,CAAC;YACF,YAAC;QAAD,CAAC,AAHD,IAGC;QAHY,WAAK,QAGjB,CAAA;IAQF,CAAC,EA7LY,KAAK,GAAL,WAAK,KAAL,WAAK,QA6LjB;AAAD,CAAC,EA7LM,KAAK,KAAL,KAAK,QA6LX;AC7LD,IAAO,KAAK,CA0GX;AA1GD,WAAO,KAAK;IAAC,IAAA,KAAK,CA0GjB;IA1GY,WAAA,KAAK,EAAC,CAAC;QACnB;YAqBC,uBAAa,QAAuB;gBAb5B,SAAI,GAAc,IAAI,CAAC;gBACvB,YAAO,GAAc,IAAI,CAAC;gBAC1B,UAAK,GAAG,CAAC,CAAC;gBACV,YAAO,GAAG,CAAC,CAAC;gBACZ,eAAU,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC5C,oBAAe,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBAClD,cAAS,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC9B,cAAS,GAAG,CAAC,CAAC;gBAOrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAEzB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAE7B,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC;oBAEpC,IAAI,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;oBAE1D,aAAa,CAAC,OAAO,GAAG,IAAI,KAAK,EAAE,CAAC;oBACpC,aAAa,CAAC,OAAO,CAAC,GAAG,GAAG,aAAa,CAAC,eAAe,CAAC;oBAC1D,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;wBAAC,aAAa,CAAC,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;oBAC/D,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,UAAC,EAAE;wBACjC,aAAa,CAAC,MAAM,EAAE,CAAC;oBACxB,CAAC,CAAA;oBAED,aAAa,CAAC,UAAU,GAAG,IAAI,KAAK,EAAE,CAAC;oBACvC,aAAa,CAAC,UAAU,CAAC,GAAG,GAAG,aAAa,CAAC,YAAY,CAAC;oBAC1D,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;wBAAC,aAAa,CAAC,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;oBAClE,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,UAAC,EAAE;wBACpC,aAAa,CAAC,MAAM,EAAE,CAAC;oBACxB,CAAC,CAAA;gBACF,CAAC;YACF,CAAC;YAED,4BAAI,GAAJ,UAAM,QAAgB;gBAAhB,wBAAgB,GAAhB,gBAAgB;gBACrB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC;oBAAC,MAAM,CAAC;gBAElE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;gBAC7D,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEvE,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC7B,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC7B,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAE7B,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACzE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrE,QAAQ,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC7C,QAAQ,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC/C,QAAQ,CAAC,MAAM,CAAC,gBAAU,CAAC,OAAO,CAAC,CAAC;gBAEpC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACf,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;oBAC9G,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;oBAC9B,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBAChF,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;wBAC/C,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;wBAC5C,MAAM,CAAC;oBACR,CAAC;oBACD,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC;oBAClD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAClD,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACzC,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACjB,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EACvF,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;oBACjE,QAAQ,CAAC,GAAG,EAAE,CAAC;gBAChB,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAE9C,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC;oBAAC,MAAM,CAAC;gBACtC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;oBACxB,IAAI,CAAC,IAAI,GAAG,IAAI,eAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;oBACnE,IAAI,CAAC,OAAO,GAAG,IAAI,eAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;gBAC1E,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE3B,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC;gBAC3C,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;gBAC7C,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC;gBACjD,IAAI,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;gBAEnD,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;gBACpE,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACjB,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBACzI,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,GAAG,CAAC,EAAE,aAAa,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAChN,QAAQ,CAAC,GAAG,EAAE,CAAC;gBAEf,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7C,CAAC;YAtGM,0BAAY,GAAG,CAAC,CAAC;YAET,oBAAM,GAAG,CAAC,CAAC;YACX,wBAAU,GAAqB,IAAI,CAAC;YACpC,qBAAO,GAAqB,IAAI,CAAC;YAYjC,0BAAY,GAAG,4lEAA4lE,CAAC;YAE5mE,6BAAe,GAAG,4lCAA4lC,CAAA;YAqF9nC,oBAAC;QAAD,CAAC,AAxGD,IAwGC;QAxGY,mBAAa,gBAwGzB,CAAA;IACF,CAAC,EA1GY,KAAK,GAAL,WAAK,KAAL,WAAK,QA0GjB;AAAD,CAAC,EA1GM,KAAK,KAAL,KAAK,QA0GX;AC1GD,IAAO,KAAK,CAsTX;AAtTD,WAAO,KAAK;IAAC,IAAA,KAAK,CAsTjB;IAtTY,WAAA,KAAK,EAAC,CAAC;QACN,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,EAAE,CAAC;QACT,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,EAAE,CAAC;QACT,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,EAAE,CAAC;QACT,SAAG,GAAG,EAAE,CAAC;QACT,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,EAAE,CAAC;QACT,SAAG,GAAG,EAAE,CAAC;QAEtB;YASC;gBARA,SAAI,GAAiB,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;gBAC1C,WAAM,GAAiB,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;gBAQ3C,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;YACZ,CAAC;YAED,qBAAG,GAAH,UAAK,MAAyB;gBAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,2BAAS,GAAT;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YAED,0BAAQ,GAAR;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,wBAAM,GAAN;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,KAAK,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC/G,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChH,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC3G,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,S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AG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CA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"} \ No newline at end of file diff --git a/spine-ts/build/spine-canvas.js b/spine-ts/build/spine-canvas.js index de611176a..65b5ba25c 100644 --- a/spine-ts/build/spine-canvas.js +++ b/spine-ts/build/spine-canvas.js @@ -4954,7 +4954,7 @@ var spine; this.readVertices(map, path, vertexCount << 1); var lengths = spine.Utils.newArray(vertexCount / 3, 0); for (var i = 0; i < map.lengths.length; i++) - lengths[i++] = map.lengths[i] * scale; + lengths[i] = map.lengths[i] * scale; path.lengths = lengths; var color = this.getValue(map, "color", null); if (color != null) diff --git a/spine-ts/build/spine-canvas.js.map b/spine-ts/build/spine-canvas.js.map index 04e273552..ed2135ad4 100644 --- a/spine-ts/build/spine-canvas.js.map +++ b/spine-ts/build/spine-canvas.js.map @@ -1 +1 @@ -{"version":3,"file":"spine-canvas.js","sourceRoot":"","sources":["../core/src/AssetManager.ts","../canvas/src/AssetManager.ts","../core/src/Texture.ts","../canvas/src/CanvasTexture.ts","../canvas/src/SkeletonRenderer.ts","../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts"],"names":[],"mappings":"AA8BA,IAAO,KAAK,CAiIX;AAjID,WAAO,KAAK,EAAC,CAAC;IACb;QAQC,sBAAa,aAA+C,EAAE,UAAuB;YAAvB,0BAAuB,GAAvB,eAAuB;YAL7E,WAAM,GAAa,EAAE,CAAC;YACtB,WAAM,GAAgB,EAAE,CAAC;YACzB,WAAM,GAAG,CAAC,CAAC;YACX,WAAM,GAAG,CAAC,CAAC;YAGlB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC9B,CAAC;QAED,+BAAQ,GAAR,UAAS,IAAY,EACpB,OAAoD,EACpD,KAAmD;YAFpD,iBAsBC;YArBA,uBAAoD,GAApD,cAAoD;YACpD,qBAAmD,GAAnD,YAAmD;YAEnD,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;YACnC,OAAO,CAAC,kBAAkB,GAAG;gBAC5B,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC/C,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;wBACnD,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;wBACzC,EAAE,CAAC,CAAC,OAAO,CAAC;4BAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;oBAClD,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAsB,IAAI,iBAAY,OAAO,CAAC,MAAM,UAAK,OAAO,CAAC,YAAc,CAAC;wBACpG,EAAE,CAAC,CAAC,KAAK,CAAC;4BAAC,KAAK,CAAC,IAAI,EAAE,wBAAsB,IAAI,iBAAY,OAAO,CAAC,MAAM,UAAK,OAAO,CAAC,YAAc,CAAC,CAAC;oBACzG,CAAC;oBACD,KAAI,CAAC,MAAM,EAAE,CAAC;oBACd,KAAI,CAAC,MAAM,EAAE,CAAC;gBACf,CAAC;YACF,CAAC,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,kCAAW,GAAX,UAAa,IAAY,EACxB,OAA+D,EAC/D,KAAmD;YAFpD,iBAsBC;YArBA,uBAA+D,GAA/D,cAA+D;YAC/D,qBAAmD,GAAnD,YAAmD;YAEnD,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;YAC9B,GAAG,CAAC,MAAM,GAAG,UAAC,EAAE;gBACf,IAAI,OAAO,GAAG,KAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACtC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;gBAC5B,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,EAAE,CAAC,CAAC,OAAO,CAAC;oBAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACjC,CAAC,CAAA;YACD,GAAG,CAAC,OAAO,GAAG,UAAC,EAAE;gBAChB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,yBAAuB,IAAM,CAAC;gBAClD,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,EAAE,CAAC,CAAC,KAAK,CAAC;oBAAC,KAAK,CAAC,IAAI,EAAE,yBAAuB,IAAM,CAAC,CAAC;YACvD,CAAC,CAAA;YACD,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,sCAAe,GAAf,UAAgB,IAAY,EAAE,IAAY,EACzC,OAA+D,EAC/D,KAAmD;YAFpD,iBAqBC;YApBA,uBAA+D,GAA/D,cAA+D;YAC/D,qBAAmD,GAAnD,YAAmD;YAEnD,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,MAAM,GAAG,UAAC,EAAE;gBACf,IAAI,OAAO,GAAG,KAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACtC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;gBAC5B,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,EAAE,CAAC,CAAC,OAAO,CAAC;oBAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACjC,CAAC,CAAA;YACD,GAAG,CAAC,OAAO,GAAG,UAAC,EAAE;gBAChB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,yBAAuB,IAAM,CAAC;gBAClD,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,EAAE,CAAC,CAAC,KAAK,CAAC;oBAAC,KAAK,CAAC,IAAI,EAAE,yBAAuB,IAAM,CAAC,CAAC;YACvD,CAAC,CAAA;YACD,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,0BAAG,GAAH,UAAK,IAAY;YAChB,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,6BAAM,GAAN,UAAQ,IAAY;YACnB,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAO,KAAM,CAAC,OAAO,CAAC;gBAAO,KAAM,CAAC,OAAO,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,gCAAS,GAAT;YACC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC7B,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7B,EAAE,CAAC,CAAO,KAAM,CAAC,OAAO,CAAC;oBAAO,KAAM,CAAC,OAAO,EAAE,CAAC;YAClD,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAClB,CAAC;QAED,wCAAiB,GAAjB;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACzB,CAAC;QAED,gCAAS,GAAT;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QAED,gCAAS,GAAT;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QAED,8BAAO,GAAP;YACC,IAAI,CAAC,SAAS,EAAE,CAAC;QAClB,CAAC;QAED,gCAAS,GAAT;YACC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5C,CAAC;QAED,gCAAS,GAAT;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QACF,mBAAC;IAAD,CAAC,AA/HD,IA+HC;IA/HY,kBAAY,eA+HxB,CAAA;AACF,CAAC,EAjIM,KAAK,KAAL,KAAK,QAiIX;;;;;;AC/HD,IAAO,KAAK,CAMX;AAND,WAAO,KAAK;IAAC,IAAA,MAAM,CAMlB;IANY,WAAA,MAAM,EAAC,CAAC;QACpB;YAAkC,gCAAkB;YACnD,sBAAa,UAAuB;gBAAvB,0BAAuB,GAAvB,eAAuB;gBACnC,kBAAM,UAAC,KAAuB,IAAO,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACnG,CAAC;YACF,mBAAC;QAAD,CAAC,AAJD,CAAkC,KAAK,CAAC,YAAY,GAInD;QAJY,mBAAY,eAIxB,CAAA;IACF,CAAC,EANY,MAAM,GAAN,YAAM,KAAN,YAAM,QAMlB;AAAD,CAAC,EANM,KAAK,KAAL,KAAK,QAMX;ACRD,IAAO,KAAK,CAgEX;AAhED,WAAO,KAAK,EAAC,CAAC;IACb;QAGC,iBAAa,KAAuB;YACnC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACrB,CAAC;QAED,0BAAQ,GAAR;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QAMa,wBAAgB,GAA9B,UAAgC,IAAY;YAC3C,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC5B,KAAK,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;gBAC7C,KAAK,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;gBAC3C,KAAK,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;gBAC3C,KAAK,sBAAsB,EAAE,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAC;gBACvE,KAAK,qBAAqB,EAAE,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC;gBACrE,KAAK,qBAAqB,EAAE,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC;gBACrE,KAAK,oBAAoB,EAAE,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC;gBACnE,SAAS,MAAM,IAAI,KAAK,CAAC,4BAA0B,IAAM,CAAC,CAAC;YAC5D,CAAC;QACF,CAAC;QAEa,sBAAc,GAA5B,UAA8B,IAAY;YACzC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC5B,KAAK,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC;gBACzD,KAAK,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;gBACnD,KAAK,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;gBACzC,SAAS,MAAM,IAAI,KAAK,CAAC,0BAAwB,IAAM,CAAC,CAAC;YAC1D,CAAC;QACF,CAAC;QACF,cAAC;IAAD,CAAC,AApCD,IAoCC;IApCqB,aAAO,UAoC5B,CAAA;IAED,WAAY,aAAa;QACxB,0DAAc,CAAA;QACd,wDAAa,CAAA;QACb,wDAAa,CAAA;QACb,oFAA2B,CAAA;QAC3B,kFAA0B,CAAA;QAC1B,kFAA0B,CAAA;QAC1B,gFAAyB,CAAA;IAC1B,CAAC,EARW,mBAAa,KAAb,mBAAa,QAQxB;IARD,IAAY,aAAa,GAAb,mBAQX,CAAA;IAED,WAAY,WAAW;QACtB,qEAAsB,CAAA;QACtB,+DAAmB,CAAA;QACnB,qDAAc,CAAA;IACf,CAAC,EAJW,iBAAW,KAAX,iBAAW,QAItB;IAJD,IAAY,WAAW,GAAX,iBAIX,CAAA;IAED;QAAA;YAEC,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YACb,OAAE,GAAG,CAAC,CAAC;YAAC,OAAE,GAAG,CAAC,CAAC;YACf,UAAK,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YACtB,WAAM,GAAG,KAAK,CAAC;YACf,YAAO,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YACzB,kBAAa,GAAG,CAAC,CAAC;YAAC,mBAAc,GAAG,CAAC,CAAC;QACvC,CAAC;QAAD,oBAAC;IAAD,CAAC,AARD,IAQC;IARY,mBAAa,gBAQzB,CAAA;AACF,CAAC,EAhEM,KAAK,KAAL,KAAK,QAgEX;AC9DD,IAAO,KAAK,CAUX;AAVD,WAAO,KAAK;IAAC,IAAA,MAAM,CAUlB;IAVY,WAAA,MAAM,EAAC,CAAC;QACpB;YAAmC,iCAAO;YACzC,uBAAa,KAAuB;gBACnC,kBAAM,KAAK,CAAC,CAAC;YACd,CAAC;YAED,kCAAU,GAAV,UAAY,SAAwB,EAAE,SAAwB,IAAI,CAAC;YACnE,gCAAQ,GAAR,UAAU,KAAkB,EAAE,KAAkB,IAAI,CAAC;YACrD,+BAAO,GAAP,cAAa,CAAC;YACf,oBAAC;QAAD,CAAC,AARD,CAAmC,aAAO,GAQzC;QARY,oBAAa,gBAQzB,CAAA;IACF,CAAC,EAVY,MAAM,GAAN,YAAM,KAAN,YAAM,QAUlB;AAAD,CAAC,EAVM,KAAK,KAAL,KAAK,QAUX;ACZD,IAAO,KAAK,CAkRX;AAlRD,WAAO,KAAK;IAAC,IAAA,MAAM,CAkRlB;IAlRY,WAAA,MAAM,EAAC,CAAC;QACpB;YAWC,0BAAa,OAAiC;gBALvC,sBAAiB,GAAG,KAAK,CAAC;gBAC1B,mBAAc,GAAG,KAAK,CAAC;gBACtB,aAAQ,GAAG,WAAK,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;gBACzC,cAAS,GAAG,IAAI,WAAK,EAAE,CAAC;gBAG/B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC;YACpB,CAAC;YAED,+BAAI,GAAJ,UAAM,QAAkB;gBACvB,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACzD,IAAI;oBAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;YAEO,qCAAU,GAAlB,UAAoB,QAAkB;gBACrC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;gBACnB,IAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;gBAEnC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;oBAAC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC;gBAEnD,GAAG,CAAC,IAAI,EAAE,CAAC;gBACX,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClD,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBACxB,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACtC,IAAI,gBAAgB,GAAqB,IAAI,CAAC;oBAC9C,IAAI,MAAM,GAAuB,IAAI,CAAC;oBACtC,IAAI,KAAK,GAAqB,IAAI,CAAC;oBAEnC,EAAE,CAAC,CAAC,UAAU,YAAY,sBAAgB,CAAC,CAAC,CAAC;wBAC5C,gBAAgB,GAAqB,UAAU,CAAC;wBAChD,MAAM,GAAuB,gBAAgB,CAAC,MAAM,CAAC;wBACrD,KAAK,GAAmB,MAAM,CAAC,OAAQ,CAAC,QAAQ,EAAE,CAAC;oBACpD,CAAC;oBAAC,IAAI;wBAAC,QAAQ,CAAC;oBAEhB,IAAI,UAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAClC,IAAI,aAAa,GAAG,UAAQ,CAAC,KAAK,CAAC;oBACnC,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC3B,IAAI,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC;oBACzC,IAAI,KAAK,GAAG,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;oBAC1D,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC3B,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,EACtD,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,EAC7C,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,EAC7C,KAAK,CAAC,CAAC;oBAER,IAAI,GAAG,GAAqB,UAAU,CAAC;oBACvC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACrB,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;oBACrB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;oBACtB,GAAG,CAAC,IAAI,EAAE,CAAC;oBACX,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;oBACxE,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1D,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;oBAChD,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;oBAChD,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC5B,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC9B,IAAI,CAAC,GAAG,CAAC,CAAC;wBACV,CAAC,GAAG,CAAC,CAAC;wBACN,CAAC,GAAG,CAAC,CAAC;wBACN,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC1B,CAAC;oBACD,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACjB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC9B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAClE,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC;oBAK3B,CAAC;oBACD,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC3D,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;wBAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACpD,GAAG,CAAC,OAAO,EAAE,CAAC;gBACf,CAAC;gBAED,GAAG,CAAC,OAAO,EAAE,CAAC;YACf,CAAC;YAEO,wCAAa,GAArB,UAAuB,QAAkB;gBACxC,IAAI,SAAS,GAAc,IAAI,CAAC;gBAEhC,IAAI,QAAQ,GAAsB,IAAI,CAAC,QAAQ,CAAC;gBAChD,IAAI,SAAS,GAAkB,IAAI,CAAC;gBACpC,IAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;gBAEnC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClD,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBACxB,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACtC,IAAI,OAAO,GAAqB,IAAI,CAAC;oBACrC,IAAI,MAAM,GAAuB,IAAI,CAAC;oBACtC,EAAE,CAAC,CAAC,UAAU,YAAY,sBAAgB,CAAC,CAAC,CAAC;wBAC5C,IAAI,gBAAgB,GAAqB,UAAU,CAAC;wBACpD,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;wBACrE,SAAS,GAAG,gBAAgB,CAAC,cAAc,CAAC;wBAC5C,MAAM,GAAuB,gBAAgB,CAAC,MAAM,CAAC;wBACrD,OAAO,GAAmB,MAAM,CAAC,OAAQ,CAAC,QAAQ,EAAE,CAAC;oBAEtD,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,YAAY,oBAAc,CAAC,CAAC,CAAC;wBACjD,IAAI,IAAI,GAAmB,UAAU,CAAC;wBACtC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;wBACvD,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC3B,OAAO,GAAwB,IAAI,CAAC,MAAM,CAAC,YAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAC7E,CAAC;oBAAC,IAAI;wBAAC,QAAQ,CAAC;oBAEhB,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;wBACrB,IAAI,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBACxC,EAAE,CAAC,CAAC,aAAa,IAAI,SAAS,CAAC,CAAC,CAAC;4BAChC,SAAS,GAAG,aAAa,CAAC;wBAC3B,CAAC;wBAED,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;wBAEnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAE,CAAC,EAAE,CAAC;4BAC5C,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAE5E,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAC3F,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAC3F,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAE3F,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;4BAE3E,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;gCACzB,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC;gCAC1B,GAAG,CAAC,SAAS,EAAE,CAAC;gCAChB,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gCACnB,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gCACnB,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gCACnB,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gCACnB,GAAG,CAAC,MAAM,EAAE,CAAC;4BACd,CAAC;wBACF,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YAIO,uCAAY,GAApB,UAAqB,GAAqB,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EACtF,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAC9C,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;gBACjD,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;gBAEnB,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC;gBAChB,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC;gBACjB,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC;gBAChB,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC;gBACjB,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC;gBAChB,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC;gBAEjB,GAAG,CAAC,SAAS,EAAE,CAAC;gBAChB,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACnB,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACnB,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACnB,GAAG,CAAC,SAAS,EAAE,CAAC;gBAEhB,EAAE,IAAI,EAAE,CAAC;gBACT,EAAE,IAAI,EAAE,CAAC;gBACT,EAAE,IAAI,EAAE,CAAC;gBACT,EAAE,IAAI,EAAE,CAAC;gBAET,EAAE,IAAI,EAAE,CAAC;gBACT,EAAE,IAAI,EAAE,CAAC;gBACT,EAAE,IAAI,EAAE,CAAC;gBACT,EAAE,IAAI,EAAE,CAAC;gBAET,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAC,EAAE,GAAG,EAAE,GAAC,EAAE,CAAC,EAG7B,CAAC,GAAG,CAAC,EAAE,GAAC,EAAE,GAAG,EAAE,GAAC,EAAE,CAAC,GAAG,GAAG,EACzB,CAAC,GAAG,CAAC,EAAE,GAAC,EAAE,GAAG,EAAE,GAAC,EAAE,CAAC,GAAG,GAAG,EACzB,CAAC,GAAG,CAAC,EAAE,GAAC,EAAE,GAAG,EAAE,GAAC,EAAE,CAAC,GAAG,GAAG,EACzB,CAAC,GAAG,CAAC,EAAE,GAAC,EAAE,GAAG,EAAE,GAAC,EAAE,CAAC,GAAG,GAAG,EAGzB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAC,EAAE,GAAG,CAAC,GAAC,EAAE,EACpB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAC,EAAE,GAAG,CAAC,GAAC,EAAE,CAAC;gBAErB,GAAG,CAAC,IAAI,EAAE,CAAC;gBACX,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACX,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzB,GAAG,CAAC,OAAO,EAAE,CAAC;YACf,CAAC;YAEO,gDAAqB,GAA7B,UAA8B,IAAU,EAAE,MAAwB,EAAE,GAAY;gBAC/E,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAClC,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACnC,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC3B,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC/B,IAAI,KAAK,GAAG,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;gBAC1D,IAAI,UAAU,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;gBACjC,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3B,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,UAAU,EAChE,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,UAAU,EAC1D,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,UAAU,EAC1D,KAAK,CAAC,CAAC;gBAEX,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBAEvF,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC7B,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;gBAErB,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,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"} \ No newline at end of file +{"version":3,"file":"spine-canvas.js","sourceRoot":"","sources":["../core/src/AssetManager.ts","../canvas/src/AssetManager.ts","../core/src/Texture.ts","../canvas/src/CanvasTexture.ts","../canvas/src/SkeletonRenderer.ts","../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts"],"names":[],"mappings":"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AC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEvC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,sBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,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"} \ No newline at end of file diff --git a/spine-ts/build/spine-core.js b/spine-ts/build/spine-core.js index f6f58f957..f77494397 100644 --- a/spine-ts/build/spine-core.js +++ b/spine-ts/build/spine-core.js @@ -4634,7 +4634,7 @@ var spine; this.readVertices(map, path, vertexCount << 1); var lengths = spine.Utils.newArray(vertexCount / 3, 0); for (var i = 0; i < map.lengths.length; i++) - lengths[i++] = map.lengths[i] * scale; + lengths[i] = map.lengths[i] * scale; path.lengths = lengths; var color = this.getValue(map, "color", null); if (color != null) diff --git a/spine-ts/build/spine-core.js.map b/spine-ts/build/spine-core.js.map index 1fbedfd63..297547421 100644 --- a/spine-ts/build/spine-core.js.map +++ b/spine-ts/build/spine-core.js.map @@ -1 +1 @@ -{"version":3,"file":"spine-core.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"spine-core.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/spine-ts/build/spine-threejs.js b/spine-ts/build/spine-threejs.js index b5adf0960..e176d88ce 100644 --- a/spine-ts/build/spine-threejs.js +++ b/spine-ts/build/spine-threejs.js @@ -4634,7 +4634,7 @@ var spine; this.readVertices(map, path, vertexCount << 1); var lengths = spine.Utils.newArray(vertexCount / 3, 0); for (var i = 0; i < map.lengths.length; i++) - lengths[i++] = map.lengths[i] * scale; + lengths[i] = map.lengths[i] * scale; path.lengths = lengths; var color = this.getValue(map, "color", null); if (color != null) diff --git a/spine-ts/build/spine-threejs.js.map b/spine-ts/build/spine-threejs.js.map index db6c25b37..af490031c 100644 --- a/spine-ts/build/spine-threejs.js.map +++ b/spine-ts/build/spine-threejs.js.map @@ -1 +1 @@ -{"version":3,"file":"spine-threejs.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../threejs/src/AssetManager.ts","../threejs/src/MeshBatcher.ts","../threejs/src/SkeletonMesh.ts","../threejs/src/ThreeJsTexture.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"spine-threejs.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../threejs/src/AssetManager.ts","../threejs/src/MeshBatcher.ts","../threejs/src/SkeletonMesh.ts","../threejs/src/ThreeJsTexture.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/spine-ts/build/spine-webgl.js b/spine-ts/build/spine-webgl.js index 6a05b82e7..647bb4cd0 100644 --- a/spine-ts/build/spine-webgl.js +++ b/spine-ts/build/spine-webgl.js @@ -4634,7 +4634,7 @@ var spine; this.readVertices(map, path, vertexCount << 1); var lengths = spine.Utils.newArray(vertexCount / 3, 0); for (var i = 0; i < map.lengths.length; i++) - lengths[i++] = map.lengths[i] * scale; + lengths[i] = map.lengths[i] * scale; path.lengths = lengths; var color = this.getValue(map, "color", null); if (color != null) diff --git a/spine-ts/build/spine-webgl.js.map b/spine-ts/build/spine-webgl.js.map index 6fcd6ca29..19fbd61c8 100644 --- a/spine-ts/build/spine-webgl.js.map +++ b/spine-ts/build/spine-webgl.js.map @@ -1 +1 @@ -{"version":3,"file":"spine-webgl.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts"],"names":[],"mappings":"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AAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChH,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC3G,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG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CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,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"} \ No newline at end of file +{"version":3,"file":"spine-webgl.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts"],"names":[],"mappings":";;;;;AA8BA,IAAO,KAAK,CAulCX;AAvlCD,WAAO,KAAK,EAAC,CAAC;IACb;QAKC,mBAAa,IAAY,EAAE,SAA0B,EAAE,QAAgB;YACtE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACpE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1B,CAAC;QAED,yBAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,IAAa,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACpJ,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAElE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;gBACtB,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;oBAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;YAC7C,CAAC;YAED,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC/C,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACpF,CAAC;QAEM,sBAAY,GAAnB,UAAqB,MAAyB,EAAE,MAAc,EAAE,IAAgB;YAAhB,oBAAgB,GAAhB,QAAgB;YAC/E,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YAC3B,IAAI,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC;YACzB,OAAO,IAAI,EAAE,CAAC;gBACb,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,MAAM,CAAC;oBAC1C,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC;gBACnB,IAAI;oBACH,IAAI,GAAG,OAAO,CAAC;gBAChB,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC;oBAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;gBACzC,OAAO,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACF,CAAC;QAEM,sBAAY,GAAnB,UAAqB,MAAyB,EAAE,MAAc,EAAE,IAAY;YAC3E,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI;gBAChE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QACF,gBAAC;IAAD,CAAC,AA9CD,IA8CC;IA9CY,eAAS,YA8CrB,CAAA;IAOD,WAAY,YAAY;QACvB,mDAAM,CAAA;QAAE,yDAAS,CAAA;QAAE,iDAAK,CAAA;QAAE,iDAAK,CAAA;QAC/B,2DAAU,CAAA;QAAE,iDAAK,CAAA;QAAE,mDAAM,CAAA;QACzB,iDAAK,CAAA;QAAE,yDAAS,CAAA;QAChB,+DAAY,CAAA;QAAE,8EAAmB,CAAA;QACjC,oFAAsB,CAAA;QAAE,kFAAqB,CAAA;QAAE,0EAAiB,CAAA;QAChE,wDAAQ,CAAA;IACT,CAAC,EAPW,kBAAY,KAAZ,kBAAY,QAOvB;IAPD,IAAY,YAAY,GAAZ,kBAOX,CAAA;IAED;QAQC,uBAAa,UAAkB;YAC9B,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,UAAU,CAAC,CAAC;YAC9E,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QACjF,CAAC;QAED,qCAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC;QAC3D,CAAC;QAED,iCAAS,GAAT,UAAW,UAAkB;YAC5B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;QAC5E,CAAC;QAED,kCAAU,GAAV,UAAY,UAAkB;YAC7B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;QAC7E,CAAC;QAED,oCAAY,GAAZ,UAAc,UAAkB;YAC/B,IAAI,KAAK,GAAG,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC;YACnD,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YAC7D,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YAC9D,EAAE,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC;gBAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;YAChE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;QAC7B,CAAC;QAKD,gCAAQ,GAAR,UAAU,UAAkB,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW;YAC/E,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;YACnE,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YACjF,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;YACrD,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;YAE7F,IAAI,CAAC,GAAG,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC;YAC/C,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;YAEnC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/D,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBAClB,GAAG,IAAI,IAAI,CAAC;gBACZ,GAAG,IAAI,IAAI,CAAC;gBACZ,IAAI,IAAI,KAAK,CAAC;gBACd,IAAI,IAAI,KAAK,CAAC;gBACd,CAAC,IAAI,GAAG,CAAC;gBACT,CAAC,IAAI,GAAG,CAAC;YACV,CAAC;QACF,CAAC;QAED,uCAAe,GAAf,UAAiB,UAAkB,EAAE,OAAe;YACnD,OAAO,GAAG,eAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACzC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,CAAC,GAAG,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC;YAC/C,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACrB,EAAE,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC,OAAO,CAAC;YACjD,EAAE,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC;gBAAC,MAAM,CAAC,CAAC,CAAC;YAC5C,CAAC,EAAE,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1E,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACd,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;oBAClB,IAAI,KAAK,SAAQ,EAAE,KAAK,SAAQ,CAAC;oBACjC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;wBAChB,KAAK,GAAG,CAAC,CAAC;wBACV,KAAK,GAAG,CAAC,CAAC;oBACX,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACtB,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvB,CAAC;oBACD,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;gBAC1E,CAAC;YACF,CAAC;YACD,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;QApFM,oBAAM,GAAG,CAAC,CAAC;QAAQ,qBAAO,GAAG,CAAC,CAAC;QAAQ,oBAAM,GAAG,CAAC,CAAC;QAClD,yBAAW,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAsFjC,oBAAC;IAAD,CAAC,AAxFD,IAwFC;IAxFqB,mBAAa,gBAwFlC,CAAA;IAED;QAAoC,kCAAa;QAQhD,wBAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,sCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACrD,CAAC;QAGD,iCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,OAAe;YAC1D,UAAU,KAAK,CAAC,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;QAC7D,CAAC;QAED,8BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAClD,MAAM,CAAC;YACR,CAAC;YAED,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5D,EAAE,CAAC,CAAC,SAAS,CAAC;oBACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;gBACnG,IAAI,CAAC,CAAC;oBACL,IAAI,GAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAClG,GAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,GAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;oBAC1D,IAAI,CAAC,QAAQ,IAAI,GAAC,GAAG,KAAK,CAAC;gBAC5B,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAGD,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;YACzE,IAAI,YAAY,GAAG,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;YAChE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,EAClD,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YAElF,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;YAC/D,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YAC1D,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC;YAC/B,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACf,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC;YAChD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC3C,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBACzD,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,KAAK,CAAC;YAC5B,CAAC;QACF,CAAC;QA7DM,sBAAO,GAAG,CAAC,CAAC;QACZ,wBAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,4BAAa,GAAG,CAAC,CAAC,CAAC;QAC1C,uBAAQ,GAAG,CAAC,CAAC;QA4DrB,qBAAC;IAAD,CAAC,AA/DD,CAAoC,aAAa,GA+DhD;IA/DY,oBAAc,iBA+D1B,CAAA;IAED;QAAuC,qCAAa;QAQnD,2BAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3E,CAAC;QAED,yCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACxD,CAAC;QAGD,oCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,CAAS,EAAE,CAAS;YAC/D,UAAU,IAAI,iBAAiB,CAAC,OAAO,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC;QAED,iCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBACrB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtB,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACjB,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC/D,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACrD,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACtD,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAC5E,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAC7C,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAC7C,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,iBAAiB,CAAC,OAAO,GAAG,CAAC,EACvE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAErF,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACzD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;YAC1D,CAAC;YACD,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAClC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAC7C,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YAC9C,CAAC;QACF,CAAC;QA3DM,yBAAO,GAAG,CAAC,CAAC;QACZ,2BAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,wBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,wBAAM,GAAG,CAAC,CAAC,CAAC;QACvD,mBAAC,GAAG,CAAC,CAAC;QAAQ,mBAAC,GAAG,CAAC,CAAC;QA0D5B,wBAAC;IAAD,CAAC,AA7DD,CAAuC,aAAa,GA6DnD;IA7DY,uBAAiB,oBA6D7B,CAAA;IAED;QAAmC,iCAAiB;QACnD,uBAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;QACnB,CAAC;QAED,qCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACpD,CAAC;QAED,6BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAChC,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACjB,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3D,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBACpE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YACrE,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxE,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,aAAa,CAAC,OAAO,GAAG,CAAC,EACnE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAEjF,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC7E,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAC9E,CAAC;YACD,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACjB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBACnB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBACtB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBACvB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;oBACjB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;gBAClB,CAAC;gBAED,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACvC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxC,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACxC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACzC,CAAC;gBACD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;gBACpC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;YACrC,CAAC;QACF,CAAC;QACF,oBAAC;IAAD,CAAC,AA7DD,CAAmC,iBAAiB,GA6DnD;IA7DY,mBAAa,gBA6DzB,CAAA;IAED;QAAmC,iCAAiB;QACnD,uBAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;QACnB,CAAC;QAED,qCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACpD,CAAC;QAED,6BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAChC,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACjB,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3D,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACjD,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YAClD,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxE,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,aAAa,CAAC,OAAO,GAAG,CAAC,EACnE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAEjF,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxD,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;YACzD,CAAC;YACD,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC;YAC5C,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;gBAC5D,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;YAC7D,CAAC;QACF,CAAC;QACF,oBAAC;IAAD,CAAC,AA7CD,CAAmC,iBAAiB,GA6CnD;IA7CY,mBAAa,gBA6CzB,CAAA;IAED;QAAmC,iCAAa;QAQ/C,uBAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACvE,CAAC;QAED,qCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACpD,CAAC;QAGD,gCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;YACrF,UAAU,IAAI,aAAa,CAAC,OAAO,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,CAAC;QAED,6BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAC/B,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACrC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACrC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACrC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxE,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,aAAa,CAAC,OAAO,GAAG,CAAC,EACnE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAEjF,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACrD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACrD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACrD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;YACtD,CAAC;YACD,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;gBACd,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,CAAC;gBACL,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YACvG,CAAC;QACF,CAAC;QAhEM,qBAAO,GAAG,CAAC,CAAC;QACZ,uBAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,oBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,oBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,oBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,oBAAM,GAAG,CAAC,CAAC,CAAC;QAC/F,eAAC,GAAG,CAAC,CAAC;QAAQ,eAAC,GAAG,CAAC,CAAC;QAAQ,eAAC,GAAG,CAAC,CAAC;QAAQ,eAAC,GAAG,CAAC,CAAC;QA+DxD,oBAAC;IAAD,CAAC,AAlED,CAAmC,aAAa,GAkE/C;IAlEY,mBAAa,gBAkEzB,CAAA;IAED;QAAsC,oCAAa;QASlD,0BAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC1E,CAAC;QAED,wCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,CAAC;QAGD,mCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;YACzH,UAAU,IAAI,gBAAgB,CAAC,OAAO,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QACpD,CAAC;QAED,gCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAClD,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACvD,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC9D,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACxC,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC1C,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC1C,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC3E,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC5C,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC5C,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC5C,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC5C,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC9C,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC9C,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,GAAG,CAAC,EACtE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAEpF,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxD,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;gBAC3D,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;gBAC3D,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;YAC5D,CAAC;YACD,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACnC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC1B,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxC,CAAC;gBACD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;gBACtG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;YAClF,CAAC;QACF,CAAC;QAtFM,wBAAO,GAAG,CAAC,CAAC;QACZ,0BAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,uBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,uBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,uBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,uBAAM,GAAG,CAAC,CAAC,CAAC;QAC/F,wBAAO,GAAG,CAAC,CAAC,CAAC;QAAQ,wBAAO,GAAG,CAAC,CAAC,CAAC;QAAQ,wBAAO,GAAG,CAAC,CAAC,CAAC;QACvD,kBAAC,GAAG,CAAC,CAAC;QAAQ,kBAAC,GAAG,CAAC,CAAC;QAAQ,kBAAC,GAAG,CAAC,CAAC;QAAQ,kBAAC,GAAG,CAAC,CAAC;QAAQ,mBAAE,GAAG,CAAC,CAAC;QAAQ,mBAAE,GAAG,CAAC,CAAC;QAAQ,mBAAE,GAAG,CAAC,CAAC;QAoFrG,uBAAC;IAAD,CAAC,AAxFD,CAAsC,aAAa,GAwFlD;IAxFY,sBAAgB,mBAwF5B,CAAA;IAED;QAKC,4BAAa,UAAkB;YAC9B,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,KAAK,CAAS,UAAU,CAAC,CAAC;QACtD,CAAC;QAED,0CAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACzD,CAAC;QAED,0CAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3B,CAAC;QAGD,qCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,cAAsB;YACjE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC;QACnD,CAAC;QAED,kCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YACrI,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC;gBAC5B,IAAI,gBAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;gBAC9C,IAAI,CAAC,aAAa,CAAC,gBAAc,IAAI,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAc,CAAC,CAAC,CAAC;gBAC3G,MAAM,CAAC;YACR,CAAC;YAED,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,gBAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;oBAC9C,IAAI,CAAC,aAAa,CAAC,gBAAc,IAAI,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAc,CAAC,CAAC,CAAC;gBAC5G,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACrC,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAChC,IAAI;gBACH,UAAU,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAE1D,IAAI,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACtD,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;iBAC5B,aAAa,CAAC,cAAc,IAAI,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;QACzG,CAAC;QACF,yBAAC;IAAD,CAAC,AAnDD,IAmDC;IAnDY,wBAAkB,qBAmD9B,CAAA;IAED;QAAoC,kCAAa;QAMhD,wBAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,KAAK,CAAoB,UAAU,CAAC,CAAC;QAC/D,CAAC;QAED,sCAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACrD,CAAC;QAGD,iCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,QAA2B;YACtE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;QAC3C,CAAC;QAED,8BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,IAAI,GAAS,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,cAAc,GAAe,IAAI,CAAC,aAAa,EAAE,CAAC;YACtD,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,YAAY,sBAAgB,CAAC,IAAI,CAAoB,cAAe,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE9H,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,aAAa,GAAkB,IAAI,CAAC,kBAAkB,CAAC;YAC3D,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,WAAK,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;gBACpD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,IAAI,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAE1C,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,IAAI,WAAW,IAAI,CAAC,SAAS,CAAC;gBAAC,KAAK,GAAG,CAAC,CAAC;YACjE,IAAI,QAAQ,GAAkB,WAAK,CAAC,YAAY,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YAE7E,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,IAAI,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACpD,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,WAAK,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;gBAC5D,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACtB,IAAI,gBAAgB,GAAG,cAAkC,CAAC;oBAC1D,EAAE,CAAC,CAAC,gBAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;wBAEpC,IAAI,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC;wBAC9C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;4BACtC,IAAI,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;4BAC7B,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;wBACzD,CAAC;oBACF,CAAC;oBAAC,IAAI,CAAC,CAAC;wBAEP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;4BACnC,QAAQ,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBACxC,CAAC;gBACF,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;wBACnC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBACzD,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAGD,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACjD,IAAI,YAAY,GAAG,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YAExG,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBAC3B,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;gBACzD,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACtB,IAAI,gBAAgB,GAAG,cAAkC,CAAC;gBAC1D,EAAE,CAAC,CAAC,gBAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;oBAEpC,IAAI,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC;oBAC9C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;wBACrD,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;oBACnF,CAAC;gBACF,CAAC;gBAAC,IAAI,CAAC,CAAC;oBAEP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;wBAC3B,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC;oBACnE,CAAC;gBACF,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBAC3B,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAClF,CAAC;YACF,CAAC;QACF,CAAC;QACF,qBAAC;IAAD,CAAC,AArGD,CAAoC,aAAa,GAqGhD;IArGY,oBAAc,iBAqG1B,CAAA;IAED;QAIC,uBAAa,UAAkB;YAC9B,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAQ,UAAU,CAAC,CAAC;QAC5C,CAAC;QAED,qCAAa,GAAb;YACC,MAAM,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,CAAC;QAED,qCAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3B,CAAC;QAGD,gCAAQ,GAAR,UAAU,UAAkB,EAAE,KAAY;YACzC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;QACjC,CAAC;QAGD,6BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC;YAChC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAEpC,EAAE,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC3F,QAAQ,GAAG,CAAC,CAAC,CAAC;YACf,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;gBAC7C,MAAM,CAAC;YACR,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE7B,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,EAAE,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,KAAK,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC;gBACL,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACjD,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC;oBAClB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC;wBAAC,KAAK,CAAC;oBAC1C,KAAK,EAAE,CAAC;gBACT,CAAC;YACF,CAAC;YACD,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,UAAU,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE;gBAC1D,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC;QACF,oBAAC;IAAD,CAAC,AAlDD,IAkDC;IAlDY,mBAAa,gBAkDzB,CAAA;IAED;QAIC,2BAAa,UAAkB;YAC9B,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,KAAK,CAAgB,UAAU,CAAC,CAAC;QACxD,CAAC;QAED,yCAAa,GAAb;YACC,MAAM,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC;QACrC,CAAC;QAED,yCAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3B,CAAC;QAID,oCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,SAAwB;YACnE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;QACzC,CAAC;QAED,iCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,SAAS,GAAgB,QAAQ,CAAC,SAAS,CAAC;YAChD,IAAI,KAAK,GAAgB,QAAQ,CAAC,KAAK,CAAC;YACxC,EAAE,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC;gBAC5B,WAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACjF,MAAM,CAAC;YACR,CAAC;YAED,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,WAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAChG,MAAM,CAAC;YACR,CAAC;YAED,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACrC,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3B,IAAI;gBACH,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAElD,IAAI,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACnD,EAAE,CAAC,CAAC,qBAAqB,IAAI,IAAI,CAAC;gBACjC,WAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,CAAC,CAAC;gBACL,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAC3D,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;QACF,CAAC;QACF,wBAAC;IAAD,CAAC,AApDD,IAoDC;IApDY,uBAAiB,oBAoD7B,CAAA;IAED;QAA0C,wCAAa;QAQtD,8BAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9E,CAAC;QAED,4CAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,YAAY,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACnE,CAAC;QAGD,uCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,GAAW,EAAE,aAAqB;YAC7E,UAAU,IAAI,oBAAoB,CAAC,OAAO,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,oBAAoB,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC;QAC/E,CAAC;QAED,oCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAiB,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9E,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;oBACrC,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC1D,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAClE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBAC7H,UAAU,CAAC,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa;0BACjE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;gBACrE,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBACnG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;wBAAC,UAAU,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;gBAC7G,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAGD,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC/E,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,oBAAoB,CAAC,OAAO,GAAG,CAAC,EAC1E,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YAExF,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACf,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACxI,UAAU,CAAC,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;YACjI,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC9G,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;oBAAC,UAAU,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;YACrG,CAAC;QACF,CAAC;QA7DM,4BAAO,GAAG,CAAC,CAAC;QACZ,8BAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,6BAAQ,GAAG,CAAC,CAAC,CAAC;QAAQ,wCAAmB,GAAG,CAAC,CAAC,CAAC;QACtE,wBAAG,GAAG,CAAC,CAAC;QAAQ,mCAAc,GAAG,CAAC,CAAC;QA4D3C,2BAAC;IAAD,CAAC,AA/DD,CAA0C,aAAa,GA+DtD;IA/DY,0BAAoB,uBA+DhC,CAAA;IAED;QAAiD,+CAAa;QAQ7D,qCAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;QACrF,CAAC;QAED,mDAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,mBAAmB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC;QACjF,CAAC;QAGD,8CAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,SAAiB,EAAE,YAAoB,EAAE,QAAgB,EAAE,QAAgB;YACtH,UAAU,IAAI,2BAA2B,CAAC,OAAO,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,2BAA2B,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,2BAA2B,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC;YAC/E,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;QACxE,CAAC;QAED,2CAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,UAAU,GAAwB,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACnG,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;oBAC3B,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;oBACtC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;oBACzC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACpC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACrC,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,MAAM,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;YACpD,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACzE,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;gBAC7D,SAAS,GAAG,MAAM,CAAC,CAAC,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;gBACnE,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;gBAC3D,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;YAC5D,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,2BAA2B,CAAC,OAAO,CAAC,CAAC;gBACtF,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;gBACjE,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;gBACvE,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;gBAC/D,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;gBAC/D,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,2BAA2B,CAAC,OAAO,GAAG,CAAC,EACjF,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAE/F,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;gBAClF,SAAS,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC;gBAC3F,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC;gBAC/E,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC;YAChF,CAAC;YACD,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;gBAC3B,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;gBAC1E,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;gBACtF,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;gBACtE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YACvE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,UAAU,CAAC,SAAS,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;gBAChE,UAAU,CAAC,YAAY,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;gBACzE,UAAU,CAAC,QAAQ,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;gBAC7D,UAAU,CAAC,QAAQ,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YAC9D,CAAC;QACF,CAAC;QA5EM,mCAAO,GAAG,CAAC,CAAC;QACZ,qCAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,uCAAW,GAAG,CAAC,CAAC,CAAC;QAAQ,0CAAc,GAAG,CAAC,CAAC,CAAC;QAAQ,sCAAU,GAAG,CAAC,CAAC,CAAC;QAAQ,sCAAU,GAAG,CAAC,CAAC,CAAC;QACpH,kCAAM,GAAG,CAAC,CAAC;QAAQ,qCAAS,GAAG,CAAC,CAAC;QAAQ,iCAAK,GAAG,CAAC,CAAC;QAAQ,iCAAK,GAAG,CAAC,CAAC;QA2E7E,kCAAC;IAAD,CAAC,AA9ED,CAAiD,aAAa,GA8E7D;IA9EY,iCAA2B,8BA8EvC,CAAA;IAED;QAAoD,kDAAa;QAShE,wCAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;QACxF,CAAC;QAED,sDAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,sBAAsB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC/E,CAAC;QAGD,iDAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,KAAa;YACxD,UAAU,IAAI,8BAA8B,CAAC,OAAO,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,8BAA8B,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QACxE,CAAC;QAED,8CAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAmB,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACpF,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC9D,MAAM,CAAC;YACR,CAAC;YAED,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;gBAC1E,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;YAC9E,IAAI,CAAC,CAAC;gBAEL,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,8BAA8B,CAAC,OAAO,CAAC,CAAC;gBACzF,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;gBACrE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,8BAA8B,CAAC,OAAO,GAAG,CAAC,EACpF,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,8BAA8B,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAElG,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,8BAA8B,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC;YACzF,CAAC;YACD,EAAE,CAAC,CAAC,SAAS,CAAC;gBACb,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YAChG,IAAI;gBACH,UAAU,CAAC,QAAQ,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAClE,CAAC;QAjDM,sCAAO,GAAG,CAAC,CAAC;QACZ,wCAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,yCAAU,GAAG,CAAC,CAAC,CAAC;QACvC,oCAAK,GAAG,CAAC,CAAC;QAgDlB,qCAAC;IAAD,CAAC,AAnDD,CAAoD,aAAa,GAmDhE;IAnDY,oCAA8B,iCAmD1C,CAAA;IAED;QAAmD,iDAA8B;QAChF,uCAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;QACnB,CAAC;QAED,qDAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,qBAAqB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC9E,CAAC;QAED,6CAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAmB,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACpF,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC5D,MAAM,CAAC;YACR,CAAC;YAED,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;gBACzE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAC;YAC5E,IAAI,CAAC,CAAC;gBAEL,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,6BAA6B,CAAC,OAAO,CAAC,CAAC;gBACxF,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAC;gBACnE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,6BAA6B,CAAC,OAAO,GAAG,CAAC,EACnF,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,6BAA6B,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAEjG,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,6BAA6B,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC;YACtF,CAAC;YAED,EAAE,CAAC,CAAC,SAAS,CAAC;gBACb,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YAC5F,IAAI;gBACH,UAAU,CAAC,OAAO,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QAC/D,CAAC;QACF,oCAAC;IAAD,CAAC,AApCD,CAAmD,8BAA8B,GAoChF;IApCY,mCAA6B,gCAoCzC,CAAA;IAED;QAA+C,6CAAa;QAS3D,mCAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,UAAU,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACnF,CAAC;QAED,iDAAa,GAAb;YACC,MAAM,CAAC,CAAC,YAAY,CAAC,iBAAiB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC1E,CAAC;QAGD,4CAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,SAAiB,EAAE,YAAoB;YAClF,UAAU,IAAI,yBAAyB,CAAC,OAAO,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,yBAAyB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,yBAAyB,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC;QAC9E,CAAC;QAED,yCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,SAAkB,EAAE,SAAkB;YAC1I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAmB,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEpF,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;oBACjD,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;gBACxD,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,MAAM,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;gBACvE,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;YAC9E,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEP,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC;gBACpF,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;gBAC/D,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;gBACrE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,yBAAyB,CAAC,OAAO,GAAG,CAAC,EAC/E,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAE7F,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;gBAChF,SAAS,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC;YAC1F,CAAC;YAED,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACf,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;gBAChG,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;YAC7G,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,UAAU,CAAC,SAAS,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;gBAChE,UAAU,CAAC,YAAY,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;YAC1E,CAAC;QACF,CAAC;QA7DM,iCAAO,GAAG,CAAC,CAAC;QACZ,mCAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,qCAAW,GAAG,CAAC,CAAC,CAAC;QAAQ,wCAAc,GAAG,CAAC,CAAC,CAAC;QACpE,gCAAM,GAAG,CAAC,CAAC;QAAQ,mCAAS,GAAG,CAAC,CAAC;QA4DzC,gCAAC;IAAD,CAAC,AA/DD,CAA+C,aAAa,GA+D3D;IA/DY,+BAAyB,4BA+DrC,CAAA;AACF,CAAC,EAvlCM,KAAK,KAAL,KAAK,QAulCX;ACvlCD,IAAO,KAAK,CA6wBX;AA7wBD,WAAO,KAAK,EAAC,CAAC;IACb;QAmBC,wBAAa,IAAwB;YAXrC,WAAM,GAAG,IAAI,KAAK,EAAc,CAAC;YACjC,WAAM,GAAG,IAAI,KAAK,EAAS,CAAC;YAC5B,cAAS,GAAG,IAAI,KAAK,EAA2B,CAAC;YACjD,UAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;YAC7B,gBAAW,GAAG,IAAI,YAAM,EAAE,CAAC;YAC3B,aAAQ,GAAG,IAAI,KAAK,EAAc,CAAC;YACnC,sBAAiB,GAAG,KAAK,CAAC;YAC1B,cAAS,GAAG,CAAC,CAAC;YAEd,mBAAc,GAAG,IAAI,UAAI,CAAa,cAAM,OAAA,IAAI,UAAU,EAAE,EAAhB,CAAgB,CAAC,CAAC;YAG7D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QAED,+BAAM,GAAN,UAAQ,KAAa;YACpB,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC;YACxB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,IAAI,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;oBAAC,QAAQ,CAAC;gBAE9B,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC;gBAClD,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;gBAE1C,IAAI,YAAY,GAAG,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC;gBAE7C,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;oBACvB,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC;oBAC9B,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;wBAAC,QAAQ,CAAC;oBAChC,YAAY,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;oBAC9B,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;gBACnB,CAAC;gBAED,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBACxB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;oBAElB,IAAI,QAAQ,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC9C,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;wBACnB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;wBACf,IAAI,CAAC,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;wBACnD,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC;wBAClC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC/B,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;4BAChC,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC;4BAC7B,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;wBACxB,CAAC;wBACD,QAAQ,CAAC;oBACV,CAAC;gBACF,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;oBAChF,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;oBACjB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACxB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC1B,QAAQ,CAAC;gBACV,CAAC;gBACD,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;oBAEzE,IAAI,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;oBAC9B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;oBAC1B,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC;wBACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACrB,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;oBACxB,CAAC;gBACF,CAAC;gBAED,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC;YACnC,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAED,yCAAgB,GAAhB,UAAkB,EAAc,EAAE,KAAa;YAC9C,IAAI,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YAE9B,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAGlD,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3E,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC1B,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;oBAChC,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;oBACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC;gBACD,MAAM,CAAC,QAAQ,CAAC;YACjB,CAAC;YAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;YACpC,IAAI,CAAC,SAAS,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;YACzC,EAAE,CAAC,OAAO,IAAI,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,8BAAK,GAAL,UAAO,QAAkB;YACxB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;gBAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAEtD,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,IAAI,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;oBAAC,QAAQ,CAAC;gBACnD,OAAO,GAAG,IAAI,CAAC;gBAGf,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;gBACxB,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;oBAC9B,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAChD,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;oBACtE,GAAG,GAAG,CAAC,CAAC;gBAGT,IAAI,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBACtF,IAAI,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;gBACvD,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;gBAC5C,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACd,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,aAAa,EAAE,EAAE,EAAE;wBACxC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACtF,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;oBAExC,IAAI,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,CAAC;oBACvD,EAAE,CAAC,CAAC,UAAU,CAAC;wBAAC,WAAK,CAAC,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,aAAa,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;oBACxF,IAAI,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;oBAElD,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC;wBAC3C,IAAI,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;wBAC7B,EAAE,CAAC,CAAC,QAAQ,YAAY,oBAAc,CAAC,CAAC,CAAC;4BACxC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,IAAI,CAAC,EACpI,UAAU,CAAC,CAAC;wBACd,CAAC;wBAAC,IAAI;4BACL,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBACvH,CAAC;gBACF,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBACzC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,OAAO,CAAC,iBAAiB,GAAG,aAAa,CAAC;gBAC1C,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;YAC3C,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,OAAO,CAAC;QAChB,CAAC;QAED,wCAAe,GAAf,UAAiB,EAAc,EAAE,QAAkB;YAClD,IAAI,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;gBAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAElE,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC;gBACvB,GAAG,GAAG,CAAC,CAAC;YACT,IAAI,CAAC,CAAC;gBACL,GAAG,GAAG,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC;gBAClC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;oBAAC,GAAG,GAAG,CAAC,CAAC;YACtB,CAAC;YAED,IAAI,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YAC5D,IAAI,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC5F,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAChF,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;YACpD,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YACzC,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACrC,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAEzC,IAAI,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,CAAC;YACpD,EAAE,CAAC,CAAC,UAAU,CAAC;gBAAC,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YACrF,IAAI,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAE/C,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,cAAc,EAAE,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;YAC1F,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1B,KAAK,cAAc,CAAC,UAAU;wBAC7B,KAAK,GAAG,KAAK,CAAC;wBACd,KAAK,GAAG,QAAQ,CAAC;wBACjB,KAAK,CAAC;oBACP,KAAK,cAAc,CAAC,KAAK;wBACxB,KAAK,GAAG,IAAI,CAAC;wBACb,KAAK,GAAG,QAAQ,CAAC;wBACjB,KAAK,CAAC;oBACP,KAAK,cAAc,CAAC,GAAG;wBACtB,KAAK,GAAG,IAAI,CAAC;wBACb,KAAK,GAAG,QAAQ,CAAC;wBACjB,KAAK,CAAC;oBACP;wBACC,KAAK,GAAG,IAAI,CAAC;wBACb,KAAK,GAAG,QAAQ,CAAC;wBACjB,IAAI,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;wBAC/B,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;wBAC9D,KAAK,CAAC;gBACP,CAAC;gBACD,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;gBACzB,EAAE,CAAC,CAAC,QAAQ,YAAY,oBAAc,CAAC;oBACtC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;gBAClH,IAAI,CAAC,CAAC;oBACL,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBACZ,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,QAAQ,YAAY,wBAAkB,CAAC;4BAAC,QAAQ,CAAC;wBACrE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,QAAQ,YAAY,uBAAiB,CAAC;4BAAC,QAAQ,CAAC;oBACnE,CAAC;oBACD,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBACpF,CAAC;YACF,CAAC;YAED,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC;YACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;YAEpC,MAAM,CAAC,GAAG,CAAC;QACZ,CAAC;QAED,4CAAmB,GAAnB,UAAqB,QAAkB,EAAE,QAAkB,EAAE,IAAY,EAAE,KAAa,EAAE,SAAkB,EAC3G,iBAAgC,EAAE,CAAS,EAAE,UAAmB;YAEhE,EAAE,CAAC,CAAC,UAAU,CAAC;gBAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAEzC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC7D,MAAM,CAAC;YACR,CAAC;YAED,IAAI,cAAc,GAAG,QAA0B,CAAC;YAChD,IAAI,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;YACnC,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACpD,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAClD,MAAM,CAAC;YACR,CAAC;YAED,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAc,CAAC,OAAO,CAAC,CAAC;gBAC1D,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAc,CAAC,aAAa,CAAC,CAAC;YAChF,IAAI,CAAC,CAAC;gBAEL,IAAI,KAAK,GAAG,eAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,oBAAc,CAAC,OAAO,CAAC,CAAC;gBACzE,IAAI,YAAY,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAc,CAAC,aAAa,CAAC,CAAC;gBAChE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,EAC5D,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,oBAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAElF,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAc,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;gBAC5D,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBAC5D,EAAE,GAAG,YAAY,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACtD,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YAC7D,CAAC;YAGD,IAAI,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACxD,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;YAC9B,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;gBACf,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBAChE,IAAI,SAAS,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC;gBAChC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;oBAChB,SAAS,GAAG,CAAC,CAAC;oBACd,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;oBACjC,QAAQ,GAAG,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrC,CAAC;gBACD,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,IAAI,CAAC,CAAC;gBAE7C,EAAE,CAAC,CAAC,eAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,eAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAEtF,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;wBAAC,SAAS,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAC9E,GAAG,GAAG,OAAO,CAAC;gBACf,CAAC;gBACD,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,GAAG,CAAC;gBAC3C,EAAE,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC;oBAAC,KAAK,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC/D,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YAC9B,CAAC;YACD,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YAChC,EAAE,IAAI,KAAK,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAC5E,CAAC;QAED,oCAAW,GAAX,UAAa,KAAiB,EAAE,aAAqB;YACpD,IAAI,cAAc,GAAG,KAAK,CAAC,cAAc,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YAC7E,IAAI,QAAQ,GAAG,YAAY,GAAG,cAAc,CAAC;YAC7C,IAAI,gBAAgB,GAAG,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;YAGlD,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YAC7B,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnB,IAAI,OAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,OAAK,CAAC,IAAI,GAAG,gBAAgB,CAAC;oBAAC,KAAK,CAAC;gBACzC,EAAE,CAAC,CAAC,OAAK,CAAC,IAAI,GAAG,YAAY,CAAC;oBAAC,QAAQ,CAAC;gBACxC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,OAAK,CAAC,CAAC;YAChC,CAAC;YAGD,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,gBAAgB,GAAG,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;kBAC7D,CAAC,aAAa,IAAI,YAAY,IAAI,KAAK,CAAC,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC1E,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;YAGD,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnB,IAAI,OAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,OAAK,CAAC,IAAI,GAAG,cAAc,CAAC;oBAAC,QAAQ,CAAC;gBAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,CAAC;QACF,CAAC;QAED,oCAAW,GAAX;YACC,IAAI,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAChC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACjD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,gBAAgB,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAED,mCAAU,GAAV,UAAY,UAAkB;YAC7B,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC;YAC7C,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACtC,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC;YAE5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAExB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAE1B,IAAI,KAAK,GAAG,OAAO,CAAC;YACpB,OAAO,IAAI,EAAE,CAAC;gBACb,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;gBAC5B,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;oBAAC,KAAK,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;gBACxB,KAAK,GAAG,IAAI,CAAC;YACd,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAEvC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAED,mCAAU,GAAV,UAAY,KAAa,EAAE,OAAmB,EAAE,SAAkB;YACjE,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;YAE7B,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;gBAClB,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC1C,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;gBAC1B,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;gBAGpB,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;oBACnD,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;gBAExE,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;YACnC,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,qCAAY,GAAZ,UAAc,UAAkB,EAAE,aAAqB,EAAE,IAAa;YACrE,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YACpE,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,aAAa,CAAC,CAAC;YAChF,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC3D,CAAC;QAED,yCAAgB,GAAhB,UAAkB,UAAkB,EAAE,SAAoB,EAAE,IAAa;YACxE,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACpE,IAAI,SAAS,GAAG,IAAI,CAAC;YACrB,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC7C,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;gBACrB,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEjC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;oBAC7C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACxB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC1B,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;oBAC7B,SAAS,GAAG,KAAK,CAAC;gBACnB,CAAC;gBAAC,IAAI;oBACL,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,qCAAY,GAAZ,UAAc,UAAkB,EAAE,aAAqB,EAAE,IAAa,EAAE,KAAa;YACpF,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YACpE,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,aAAa,CAAC,CAAC;YAChF,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAClE,CAAC;QAED,yCAAgB,GAAhB,UAAkB,UAAkB,EAAE,SAAoB,EAAE,IAAa,EAAE,KAAa;YACvF,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAEpE,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;gBAClB,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI;oBACvB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC;YAED,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAE/D,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;gBAClB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;oBACvD,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;wBACjB,KAAK,IAAI,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;oBAC3G,IAAI;wBACH,KAAK,GAAG,CAAC,CAAC;gBACZ,CAAC;YACF,CAAC;YAED,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,0CAAiB,GAAjB,UAAmB,UAAkB,EAAE,WAAmB;YACzD,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YACpF,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;YAChC,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,0CAAiB,GAAjB,UAAmB,UAAkB,EAAE,WAAmB,EAAE,KAAa;YACxE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;gBAAC,KAAK,IAAI,WAAW,CAAC;YACrC,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3F,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;YAChC,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,2CAAkB,GAAlB,UAAoB,WAAmB;YACtC,IAAI,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAChC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpD,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC7B,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;oBAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAC9E,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,gBAAgB,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAED,sCAAa,GAAb,UAAe,KAAa;YAC3B,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1D,WAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7E,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,mCAAU,GAAV,UAAY,UAAkB,EAAE,SAAoB,EAAE,IAAa,EAAE,IAAgB;YACpF,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YACzC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;YAC9B,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YAElB,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;YACzB,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC;YAC9B,KAAK,CAAC,kBAAkB,GAAG,CAAC,CAAC;YAE7B,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;YACzB,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC;YACxC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YACzB,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;YAE7B,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;YACpB,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YACrB,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YACzB,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;YAClC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;YAEpB,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;YACzB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;YAClB,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACnF,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,oCAAW,GAAX,UAAa,KAAiB;YAC7B,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACtB,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC;gBACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAClB,CAAC;YACD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,2CAAkB,GAAlB;YACC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAE/B,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,WAAW,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAE7B,IAAI,SAAS,GAAe,IAAI,CAAC;YACjC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpD,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC3B,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;oBACnB,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;oBACxD,SAAS,GAAG,KAAK,CAAC;gBACnB,CAAC;YACF,CAAC;QACF,CAAC;QAED,mCAAU,GAAV,UAAY,UAAkB;YAC7B,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QAED,oCAAW,GAAX,UAAa,QAAiC;YAC7C,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAGD,uCAAc,GAAd,UAAgB,QAAiC;YAChD,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7C,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;gBAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,uCAAc,GAAd;YACC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,CAAC;QAED,mDAA0B,GAA1B;YACC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QA/hBM,6BAAc,GAAG,IAAI,eAAS,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACjD,yBAAU,GAAG,CAAC,CAAC;QACf,oBAAK,GAAG,CAAC,CAAC;QACV,kBAAG,GAAG,CAAC,CAAC;QACR,sBAAO,GAAG,CAAC,CAAC;QA4hBpB,qBAAC;IAAD,CAAC,AAjiBD,IAiiBC;IAjiBY,oBAAc,iBAiiB1B,CAAA;IAED;QAAA;YAUC,iBAAY,GAAG,IAAI,KAAK,EAAU,CAAC;YACnC,mBAAc,GAAG,IAAI,KAAK,EAAc,CAAC;YACzC,sBAAiB,GAAG,IAAI,KAAK,EAAU,CAAC;QA6EzC,CAAC;QA3EA,0BAAK,GAAL;YACC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QACnC,CAAC;QAED,oCAAe,GAAf,UAAiB,EAAc,EAAE,aAAgC,EAAE,WAAmB;YACrF,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC;gBAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;YACnH,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC;gBAAC,aAAa,CAAC,GAAG,EAAE,CAAC;YAEpC,IAAI,QAAQ,GAAG,aAAa,CAAC;YAC7B,IAAI,YAAY,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5C,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YACzC,IAAI,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;YACrD,IAAI,YAAY,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YACzE,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/B,IAAI,cAAc,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;YAE7E,KAAK,EACL,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;gBACtC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACxB,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC;gBAC7C,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;oBAC1C,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC;gBACxC,IAAI,CAAC,CAAC;oBACL,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,YAAY,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;wBAC3C,IAAI,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;wBACzB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;4BAC5B,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;gCAC3B,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC;gCACzC,cAAc,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gCAC1B,QAAQ,CAAC,KAAK,CAAC;4BAChB,CAAC;wBACF,CAAC;oBACF,CAAC;oBACD,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC;gBACtC,CAAC;YACF,CAAC;YACD,MAAM,CAAC,SAAS,CAAC;QAClB,CAAC;QAED,gCAAW,GAAX,UAAa,EAAU;YACtB,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YACzC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC/C,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,qCAAgB,GAAhB;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACf,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;gBACvD,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;gBAC9C,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;YAC1D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1E,CAAC;QAED,qCAAgB,GAAhB,UAAiB,aAAqB;YACrC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YACnC,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC;QACxC,CAAC;QAED,+BAAU,GAAV;YACC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;QAClE,CAAC;QAED,4CAAuB,GAAvB;YACC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QACnC,CAAC;QACF,iBAAC;IAAD,CAAC,AAzFD,IAyFC;IAzFY,gBAAU,aAyFtB,CAAA;IAED;QAKC,oBAAY,SAAyB;YAJrC,YAAO,GAAe,EAAE,CAAC;YACzB,kBAAa,GAAG,KAAK,CAAC;YAIrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC5B,CAAC;QAED,0BAAK,GAAL,UAAO,KAAiB;YACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC;QACzC,CAAC;QAED,8BAAS,GAAT,UAAW,KAAiB;YAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,wBAAG,GAAH,UAAK,KAAiB;YACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC;QACzC,CAAC;QAED,4BAAO,GAAP,UAAS,KAAiB;YACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,6BAAQ,GAAR,UAAU,KAAiB;YAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,0BAAK,GAAL,UAAO,KAAiB,EAAE,KAAY;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,0BAAK,GAAL;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;gBAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAE1B,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC3B,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YAEzC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAc,CAAC;gBACnC,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAe,CAAC;gBACzC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBACf,KAAK,SAAS,CAAC,KAAK;wBACnB,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBAChF,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;gCAAC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACrD,KAAK,CAAC;oBACP,KAAK,SAAS,CAAC,SAAS;wBACvB,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;4BAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wBACxF,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;gCAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wBAC7D,KAAK,CAAC;oBACP,KAAK,SAAS,CAAC,GAAG;wBACjB,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;4BAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC5E,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;gCAAC,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAElD,KAAK,SAAS,CAAC,OAAO;wBACrB,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;4BAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBACpF,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;gCAAC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBACzD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC1C,KAAK,CAAC;oBACP,KAAK,SAAS,CAAC,QAAQ;wBACtB,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;4BAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBACtF,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;gCAAC,SAAS,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBAC3D,KAAK,CAAC;oBACP,KAAK,SAAS,CAAC,KAAK;wBACnB,IAAI,OAAK,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAU,CAAC;wBACtC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,OAAK,CAAC,CAAC;wBACvF,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;gCAAC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAK,CAAC,CAAC;wBAC5D,KAAK,CAAC;gBACP,CAAC;YACF,CAAC;YACD,IAAI,CAAC,KAAK,EAAE,CAAC;YAEb,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC5B,CAAC;QAED,0BAAK,GAAL;YACC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,CAAC;QACF,iBAAC;IAAD,CAAC,AA/FD,IA+FC;IA/FY,gBAAU,aA+FtB,CAAA;IAED,WAAY,SAAS;QACpB,2CAAK,CAAA;QAAE,mDAAS,CAAA;QAAE,uCAAG,CAAA;QAAE,+CAAO,CAAA;QAAE,iDAAQ,CAAA;QAAE,2CAAK,CAAA;IAChD,CAAC,EAFW,eAAS,KAAT,eAAS,QAEpB;IAFD,IAAY,SAAS,GAAT,eAEX,CAAA;IAwBD;QAAA;QAkBA,CAAC;QAjBA,sCAAK,GAAL,UAAO,KAAiB;QACxB,CAAC;QAED,0CAAS,GAAT,UAAW,KAAiB;QAC5B,CAAC;QAED,oCAAG,GAAH,UAAK,KAAiB;QACtB,CAAC;QAED,wCAAO,GAAP,UAAS,KAAiB;QAC1B,CAAC;QAED,yCAAQ,GAAR,UAAU,KAAiB;QAC3B,CAAC;QAED,sCAAK,GAAL,UAAO,KAAiB,EAAE,KAAY;QACtC,CAAC;QACF,6BAAC;IAAD,CAAC,AAlBD,IAkBC;IAlBqB,4BAAsB,yBAkB3C,CAAA;AACF,CAAC,EA7wBM,KAAK,KAAL,KAAK,QA6wBX;AC7wBD,IAAO,KAAK,CAgCX;AAhCD,WAAO,KAAK,EAAC,CAAC;IACb;QAKC,4BAAa,YAA0B;YAHvC,uBAAkB,GAAgB,EAAG,CAAC;YACtC,eAAU,GAAG,CAAC,CAAC;YAGd,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC1E,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAClC,CAAC;QAED,mCAAM,GAAN,UAAQ,QAAgB,EAAE,MAAc,EAAE,QAAgB;YACzD,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACrD,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,QAAQ,CAAC,CAAC;YACtE,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACjD,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,MAAM,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;QAED,uCAAU,GAAV,UAAY,IAAe,EAAE,EAAa,EAAE,QAAgB;YAC3D,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACtD,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;YAC9B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QACzC,CAAC;QAED,mCAAM,GAAN,UAAQ,IAAe,EAAE,EAAa;YACrC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;YAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,KAAK,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACtD,CAAC;QACF,yBAAC;IAAD,CAAC,AA9BD,IA8BC;IA9BY,wBAAkB,qBA8B9B,CAAA;AACF,CAAC,EAhCM,KAAK,KAAL,KAAK,QAgCX;AChCD,IAAO,KAAK,CAiIX;AAjID,WAAO,KAAK,EAAC,CAAC;IACb;QAQC,sBAAa,aAA+C,EAAE,UAAuB;YAAvB,0BAAuB,GAAvB,eAAuB;YAL7E,WAAM,GAAa,EAAE,CAAC;YACtB,WAAM,GAAgB,EAAE,CAAC;YACzB,WAAM,GAAG,CAAC,CAAC;YACX,WAAM,GAAG,CAAC,CAAC;YAGlB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC9B,CAAC;QAED,+BAAQ,GAAR,UAAS,IAAY,EACpB,OAAoD,EACpD,KAAmD;YAFpD,iBAsBC;YArBA,uBAAoD,GAApD,cAAoD;YACpD,qBAAmD,GAAnD,YAAmD;YAEnD,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;YACnC,OAAO,CAAC,kBAAkB,GAAG;gBAC5B,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC/C,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;wBACnD,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;wBACzC,EAAE,CAAC,CAAC,OAAO,CAAC;4BAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;oBAClD,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAsB,IAAI,iBAAY,OAAO,CAAC,MAAM,UAAK,OAAO,CAAC,YAAc,CAAC;wBACpG,EAAE,CAAC,CAAC,KAAK,CAAC;4BAAC,KAAK,CAAC,IAAI,EAAE,wBAAsB,IAAI,iBAAY,OAAO,CAAC,MAAM,UAAK,OAAO,CAAC,YAAc,CAAC,CAAC;oBACzG,CAAC;oBACD,KAAI,CAAC,MAAM,EAAE,CAAC;oBACd,KAAI,CAAC,MAAM,EAAE,CAAC;gBACf,CAAC;YACF,CAAC,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,kCAAW,GAAX,UAAa,IAAY,EACxB,OAA+D,EAC/D,KAAmD;YAFpD,iBAsBC;YArBA,uBAA+D,GAA/D,cAA+D;YAC/D,qBAAmD,GAAnD,YAAmD;YAEnD,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;YAC9B,GAAG,CAAC,MAAM,GAAG,UAAC,EAAE;gBACf,IAAI,OAAO,GAAG,KAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACtC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;gBAC5B,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,EAAE,CAAC,CAAC,OAAO,CAAC;oBAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACjC,CAAC,CAAA;YACD,GAAG,CAAC,OAAO,GAAG,UAAC,EAAE;gBAChB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,yBAAuB,IAAM,CAAC;gBAClD,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,EAAE,CAAC,CAAC,KAAK,CAAC;oBAAC,KAAK,CAAC,IAAI,EAAE,yBAAuB,IAAM,CAAC,CAAC;YACvD,CAAC,CAAA;YACD,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,sCAAe,GAAf,UAAgB,IAAY,EAAE,IAAY,EACzC,OAA+D,EAC/D,KAAmD;YAFpD,iBAqBC;YApBA,uBAA+D,GAA/D,cAA+D;YAC/D,qBAAmD,GAAnD,YAAmD;YAEnD,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,MAAM,GAAG,UAAC,EAAE;gBACf,IAAI,OAAO,GAAG,KAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACtC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;gBAC5B,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,EAAE,CAAC,CAAC,OAAO,CAAC;oBAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACjC,CAAC,CAAA;YACD,GAAG,CAAC,OAAO,GAAG,UAAC,EAAE;gBAChB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,yBAAuB,IAAM,CAAC;gBAClD,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,EAAE,CAAC,CAAC,KAAK,CAAC;oBAAC,KAAK,CAAC,IAAI,EAAE,yBAAuB,IAAM,CAAC,CAAC;YACvD,CAAC,CAAA;YACD,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,0BAAG,GAAH,UAAK,IAAY;YAChB,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,6BAAM,GAAN,UAAQ,IAAY;YACnB,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAO,KAAM,CAAC,OAAO,CAAC;gBAAO,KAAM,CAAC,OAAO,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,gCAAS,GAAT;YACC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC7B,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7B,EAAE,CAAC,CAAO,KAAM,CAAC,OAAO,CAAC;oBAAO,KAAM,CAAC,OAAO,EAAE,CAAC;YAClD,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAClB,CAAC;QAED,wCAAiB,GAAjB;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACzB,CAAC;QAED,gCAAS,GAAT;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QAED,gCAAS,GAAT;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QAED,8BAAO,GAAP;YACC,IAAI,CAAC,SAAS,EAAE,CAAC;QAClB,CAAC;QAED,gCAAS,GAAT;YACC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5C,CAAC;QAED,gCAAS,GAAT;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QACF,mBAAC;IAAD,CAAC,AA/HD,IA+HC;IA/HY,kBAAY,eA+HxB,CAAA;AACF,CAAC,EAjIM,KAAK,KAAL,KAAK,QAiIX;ACjID,IAAO,KAAK,CA8CX;AA9CD,WAAO,KAAK,EAAC,CAAC;IACb;QAGC,+BAAa,KAAmB;YAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,CAAC;QAGD,mDAAmB,GAAnB,UAAqB,IAAU,EAAE,IAAY,EAAE,IAAY;YAC1D,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACzC,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,IAAI,GAAG,uBAAuB,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;YACjH,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;YAC7B,IAAI,UAAU,GAAG,IAAI,sBAAgB,CAAC,IAAI,CAAC,CAAC;YAC5C,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,CAAC,UAAU,CAAC;QACnB,CAAC;QAGD,iDAAiB,GAAjB,UAAmB,IAAU,EAAE,IAAY,EAAE,IAAY;YACxD,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACzC,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,IAAI,GAAG,qBAAqB,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;YAC/G,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;YAC7B,IAAI,UAAU,GAAG,IAAI,oBAAc,CAAC,IAAI,CAAC,CAAC;YAC1C,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;YAC3B,MAAM,CAAC,UAAU,CAAC;QACnB,CAAC;QAGD,wDAAwB,GAAxB,UAA0B,IAAU,EAAE,IAAY;YACjD,MAAM,CAAC,IAAI,2BAAqB,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAGD,iDAAiB,GAAjB,UAAmB,IAAU,EAAE,IAAY;YAC1C,MAAM,CAAC,IAAI,oBAAc,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,kDAAkB,GAAlB,UAAmB,IAAU,EAAE,IAAY;YAC1C,MAAM,CAAC,IAAI,qBAAe,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,qDAAqB,GAArB,UAAsB,IAAU,EAAE,IAAY;YAC7C,MAAM,CAAC,IAAI,wBAAkB,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QACF,4BAAC;IAAD,CAAC,AA5CD,IA4CC;IA5CY,2BAAqB,wBA4CjC,CAAA;AACF,CAAC,EA9CM,KAAK,KAAL,KAAK,QA8CX;AC9CD,IAAO,KAAK,CAuFX;AAvFD,WAAO,KAAK,EAAC,CAAC;IACb;QAGC,oBAAa,IAAY;YACxB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,iBAAC;IAAD,CAAC,AAPD,IAOC;IAPqB,gBAAU,aAO/B,CAAA;IAED;QAA+C,oCAAU;QAKxD,0BAAa,IAAY;YACxB,kBAAM,IAAI,CAAC,CAAC;YAHb,wBAAmB,GAAG,CAAC,CAAC;QAIxB,CAAC;QAOD,+CAAoB,GAApB,UAAsB,IAAU,EAAE,KAAa,EAAE,KAAa,EAAE,aAAgC,EAAE,MAAc,EAAE,MAAc;YAC/H,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;YACvC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClC,IAAI,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC1C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;gBACnB,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;oBAAC,QAAQ,GAAG,WAAW,CAAC;gBACnD,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACrB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBACnD,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,KAAK,EAAE,GAAC,IAAI,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;oBAChE,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,GAAC,GAAG,CAAC,CAAC,CAAC;oBAC3C,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;oBACvC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC5C,CAAC;gBACD,MAAM,CAAC;YACR,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;YACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACX,IAAI,IAAI,CAAC,CAAC;YACX,CAAC;YACD,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;YACnC,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC7B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;oBAC3D,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;oBACnB,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;oBACnB,CAAC,IAAI,CAAC,CAAC;oBACP,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC3B,IAAI,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACrE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;wBACzD,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;oBAC1D,CAAC;oBACD,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACtB,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC3B,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,MAAM,GAAG,WAAW,CAAC;gBACzB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;oBAC1E,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;oBACnB,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;oBACnB,CAAC,IAAI,CAAC,CAAC;oBACP,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;wBACnC,IAAI,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACjG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;wBACzD,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;oBAC1D,CAAC;oBACD,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACtB,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC3B,CAAC;YACF,CAAC;QACF,CAAC;QAGD,sCAAW,GAAX,UAAa,gBAAkC;YAC9C,MAAM,CAAC,IAAI,IAAI,gBAAgB,CAAC;QACjC,CAAC;QACF,uBAAC;IAAD,CAAC,AA5ED,CAA+C,UAAU,GA4ExD;IA5EqB,sBAAgB,mBA4ErC,CAAA;AACF,CAAC,EAvFM,KAAK,KAAL,KAAK,QAuFX;AEvFD,IAAO,KAAK,CAIX;AAJD,WAAO,KAAK,EAAC,CAAC;IACb,WAAY,cAAc;QACzB,uDAAM,CAAA;QAAE,iEAAW,CAAA;QAAE,mDAAI,CAAA;QAAE,+DAAU,CAAA;QAAE,mDAAI,CAAA;QAAE,qDAAK,CAAA;IACnD,CAAC,EAFW,oBAAc,KAAd,oBAAc,QAEzB;IAFD,IAAY,cAAc,GAAd,oBAEX,CAAA;AACF,CAAC,EAJM,KAAK,KAAL,KAAK,QAIX;ACJD,IAAO,KAAK,CAQX;AARD,WAAO,KAAK,EAAC,CAAC;IACb;QAA2C,yCAAgB;QAG1D,+BAAa,IAAY;YACxB,kBAAM,IAAI,CAAC,CAAC;YAHb,UAAK,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAI9B,CAAC;QACF,4BAAC;IAAD,CAAC,AAND,CAA2C,sBAAgB,GAM1D;IANY,2BAAqB,wBAMjC,CAAA;AACF,CAAC,EARM,KAAK,KAAL,KAAK,QAQX;ACRD,IAAO,KAAK,CAWX;AAXD,WAAO,KAAK,EAAC,CAAC;IACb;QAAwC,sCAAgB;QAMvD,4BAAa,IAAY;YACxB,kBAAM,IAAI,CAAC,CAAC;YAHb,UAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAInD,CAAC;QACF,yBAAC;IAAD,CAAC,AATD,CAAwC,sBAAgB,GASvD;IATY,wBAAkB,qBAS9B,CAAA;AACF,CAAC,EAXM,KAAK,KAAL,KAAK,QAWX;ACXD,IAAO,KAAK,CAkEX;AAlED,WAAO,KAAK,EAAC,CAAC;IACb;QAAoC,kCAAgB;QAWnD,wBAAa,IAAY;YACxB,kBAAM,IAAI,CAAC,CAAC;YAPb,UAAK,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAG9B,kBAAa,GAAG,KAAK,CAAC;YACtB,cAAS,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAIlC,CAAC;QAED,kCAAS,GAAT;YACC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;YACxC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;gBACzB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACV,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;YACpB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClB,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC3B,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC;gBAAC,IAAI,CAAC,GAAG,GAAG,WAAK,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9G,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACnB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;oBACtC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;gBACjD,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBAClC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;gBAC5C,CAAC;YACF,CAAC;QACF,CAAC;QAED,oCAAW,GAAX,UAAa,gBAAkC;YAC9C,MAAM,CAAC,IAAI,IAAI,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,IAAI,gBAAgB,CAAC,CAAC;QAChG,CAAC;QAED,sCAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACxB,CAAC;QAGD,sCAAa,GAAb,UAAe,UAA0B;YACxC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;gBAC9B,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;gBACpC,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,CAAC;gBAC1D,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;gBACtC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;gBACtC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;gBACxC,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,CAAA;YAC1D,CAAC;QACF,CAAC;QACF,qBAAC;IAAD,CAAC,AA/DD,CAAoC,sBAAgB,GA+DnD;IA/DY,oBAAc,iBA+D1B,CAAA;AAEF,CAAC,EAlEM,KAAK,KAAL,KAAK,QAkEX;AClED,IAAO,KAAK,CAUX;AAVD,WAAO,KAAK,EAAC,CAAC;IACb;QAAoC,kCAAgB;QAKnD,wBAAa,IAAY;YACxB,kBAAM,IAAI,CAAC,CAAC;YAJb,WAAM,GAAG,KAAK,CAAC;YAAC,kBAAa,GAAG,KAAK,CAAC;YACtC,UAAK,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAI9B,CAAC;QACF,qBAAC;IAAD,CAAC,AARD,CAAoC,sBAAgB,GAQnD;IARY,oBAAc,iBAQ1B,CAAA;AACF,CAAC,EAVM,KAAK,KAAL,KAAK,QAUX;ACVD,IAAO,KAAK,CAsBX;AAtBD,WAAO,KAAK,EAAC,CAAC;IACb;QAAqC,mCAAgB;QAIpD,yBAAa,IAAY;YACxB,kBAAM,IAAI,CAAC,CAAC;YAHb,UAAK,GAAG,IAAI,WAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAIpC,CAAC;QAED,8CAAoB,GAApB,UAAsB,IAAU,EAAE,KAAc;YAC/C,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1D,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1D,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,8CAAoB,GAApB,UAAsB,IAAU;YAC/B,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjF,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;QAC5C,CAAC;QACF,sBAAC;IAAD,CAAC,AApBD,CAAqC,sBAAgB,GAoBpD;IApBY,qBAAe,kBAoB3B,CAAA;AACF,CAAC,EAtBM,KAAK,KAAL,KAAK,QAsBX;ACtBD,IAAO,KAAK,CAkJX;AAlJD,WAAO,KAAK,EAAC,CAAC;IACb;QAAsC,oCAAU;QA0D/C,0BAAa,IAAW;YACvB,kBAAM,IAAI,CAAC,CAAC;YAbb,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAAC,UAAK,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAC1E,UAAK,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAM9B,WAAM,GAAG,WAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAChC,QAAG,GAAG,WAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAE7B,cAAS,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAIlC,CAAC;QAED,uCAAY,GAAZ;YACC,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;YACxE,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1E,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC;YAChF,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC;YACjF,IAAI,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC;YACxD,IAAI,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC;YACzD,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;YAC5C,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,SAAS,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACtC,IAAI,SAAS,GAAG,MAAM,GAAG,GAAG,CAAC;YAC7B,IAAI,SAAS,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACtC,IAAI,SAAS,GAAG,MAAM,GAAG,GAAG,CAAC;YAC7B,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACxC,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC;YAC/B,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACxC,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC;YAC/B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC;YACrD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC;YACrD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC;YACtD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC;YACtD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC;YACvD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC;YACvD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC;YACtD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC;QACvD,CAAC;QAED,oCAAS,GAAT,UAAW,MAAqB;YAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACnB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;YACpB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;YACpB,CAAC;QACF,CAAC;QAED,+CAAoB,GAApB,UAAsB,IAAU,EAAE,aAAgC,EAAE,MAAc,EAAE,MAAc;YACjG,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACrC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;YAE7B,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YACtD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1D,MAAM,IAAI,MAAM,CAAC;YAEjB,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YACtD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1D,MAAM,IAAI,MAAM,CAAC;YAEjB,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YACtD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1D,MAAM,IAAI,MAAM,CAAC;YAEjB,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YACtD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3D,CAAC;QA9IM,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QAER,mBAAE,GAAG,CAAC,CAAC;QACP,mBAAE,GAAG,CAAC,CAAC;QACP,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QACR,oBAAG,GAAG,CAAC,CAAC;QACR,mBAAE,GAAG,CAAC,CAAC;QACP,mBAAE,GAAG,CAAC,CAAC;QAEP,mBAAE,GAAG,CAAC,CAAC;QACP,mBAAE,GAAG,CAAC,CAAC;QACP,oBAAG,GAAG,EAAE,CAAC;QACT,oBAAG,GAAG,EAAE,CAAC;QACT,oBAAG,GAAG,EAAE,CAAC;QACT,oBAAG,GAAG,EAAE,CAAC;QACT,mBAAE,GAAG,EAAE,CAAC;QACR,mBAAE,GAAG,EAAE,CAAC;QAER,mBAAE,GAAG,EAAE,CAAC;QACR,mBAAE,GAAG,EAAE,CAAC;QACR,oBAAG,GAAG,EAAE,CAAC;QACT,oBAAG,GAAG,EAAE,CAAC;QACT,oBAAG,GAAG,EAAE,CAAC;QACT,oBAAG,GAAG,EAAE,CAAC;QACT,mBAAE,GAAG,EAAE,CAAC;QACR,mBAAE,GAAG,EAAE,CAAC;QAER,mBAAE,GAAG,EAAE,CAAC;QACR,mBAAE,GAAG,EAAE,CAAC;QACR,oBAAG,GAAG,EAAE,CAAC;QACT,oBAAG,GAAG,EAAE,CAAC;QACT,oBAAG,GAAG,EAAE,CAAC;QACT,oBAAG,GAAG,EAAE,CAAC;QACT,mBAAE,GAAG,EAAE,CAAC;QACR,mBAAE,GAAG,EAAE,CAAC;QAoGhB,uBAAC;IAAD,CAAC,AAhJD,CAAsC,gBAAU,GAgJ/C;IAhJY,sBAAgB,mBAgJ5B,CAAA;AACF,CAAC,EAlJM,KAAK,KAAL,KAAK,QAkJX;AClJD,IAAO,KAAK,CAOX;AAPD,WAAO,KAAK,EAAC,CAAC;IACb,WAAY,SAAS;QACpB,6CAAM,CAAA;QACN,iDAAQ,CAAA;QACR,iDAAQ,CAAA;QACR,6CAAM,CAAA;IACP,CAAC,EALW,eAAS,KAAT,eAAS,QAKpB;IALD,IAAY,SAAS,GAAT,eAKX,CAAA;AACF,CAAC,EAPM,KAAK,KAAL,KAAK,QAOX;ACPD,IAAO,KAAK,CA8QX;AA9QD,WAAO,KAAK,EAAC,CAAC;IACb;QAeC,cAAa,IAAc,EAAE,QAAkB,EAAE,MAAY;YAX7D,aAAQ,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC7B,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAC3E,OAAE,GAAG,CAAC,CAAC;YAAC,OAAE,GAAG,CAAC,CAAC;YAAC,cAAS,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAClF,iBAAY,GAAG,KAAK,CAAC;YAErB,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YACzB,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAEzB,WAAM,GAAG,KAAK,CAAC;YAId,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC;QAGD,qBAAM,GAAN;YACC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClH,CAAC;QAGD,mCAAoB,GAApB;YACC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClH,CAAC;QAGD,uCAAwB,GAAxB,UAA0B,CAAS,EAAE,CAAS,EAAE,QAAgB,EAAE,MAAc,EAAE,MAAc,EAAE,MAAc,EAAE,MAAc;YAC/H,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACZ,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACZ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAEzB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;gBACpB,IAAI,SAAS,GAAG,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC;gBACvC,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;gBACtD,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;gBAC9C,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;gBACtD,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;gBAC9C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC7B,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBACpB,CAAC,GAAG,CAAC,CAAC,CAAC;oBACP,EAAE,GAAG,CAAC,EAAE,CAAC;oBACT,EAAE,GAAG,CAAC,EAAE,CAAC;gBACV,CAAC;gBACD,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBACpB,CAAC,GAAG,CAAC,CAAC,CAAC;oBACP,EAAE,GAAG,CAAC,EAAE,CAAC;oBACT,EAAE,GAAG,CAAC,EAAE,CAAC;gBACV,CAAC;gBACD,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACZ,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACZ,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACZ,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACZ,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC7B,MAAM,CAAC;YACR,CAAC;YAED,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YAE9C,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBAClC,KAAK,mBAAa,CAAC,MAAM,EAAE,CAAC;oBAC3B,IAAI,SAAS,GAAG,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC;oBACvC,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBACtD,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;oBAC9C,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBACtD,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;oBAC9C,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,MAAM,CAAC;gBACR,CAAC;gBACD,KAAK,mBAAa,CAAC,eAAe,EAAE,CAAC;oBACpC,IAAI,SAAS,GAAG,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC;oBACvC,IAAI,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBACtD,IAAI,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;oBAC9C,IAAI,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBACtD,IAAI,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;oBAC9C,KAAK,CAAC;gBACP,CAAC;gBACD,KAAK,mBAAa,CAAC,sBAAsB,EAAE,CAAC;oBAC3C,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC1B,IAAI,GAAG,GAAG,CAAC,CAAC;oBACZ,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;wBAChB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;wBACpC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;wBACZ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;wBACZ,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;oBAC7C,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,EAAE,GAAG,CAAC,CAAC;wBACP,EAAE,GAAG,CAAC,CAAC;wBACP,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;oBAClD,CAAC;oBACD,IAAI,EAAE,GAAG,QAAQ,GAAG,MAAM,GAAG,GAAG,CAAC;oBACjC,IAAI,EAAE,GAAG,QAAQ,GAAG,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC;oBACtC,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;oBACvC,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;oBACvC,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;oBACvC,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;oBACvC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,KAAK,CAAC;gBACP,CAAC;gBACD,KAAK,mBAAa,CAAC,OAAO,CAAC;gBAC3B,KAAK,mBAAa,CAAC,mBAAmB,EAAE,CAAC;oBACxC,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACrC,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACrC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;oBAC7B,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;oBAC7B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBACrC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;wBAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC3B,EAAE,IAAI,CAAC,CAAC;oBACR,EAAE,IAAI,CAAC,CAAC;oBACR,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBACjC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACzC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;oBAC3C,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBAChD,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;oBAC3C,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBAChD,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,mBAAa,CAAC,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;wBACvI,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;wBACjB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;oBAClB,CAAC;oBACD,MAAM,CAAC;gBACR,CAAC;YACD,CAAC;YACD,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAClB,CAAC;QACF,CAAC;QAED,6BAAc,GAAd;YACC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,CAAC;QAED,gCAAiB,GAAjB;YACC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;QACtD,CAAC;QAED,gCAAiB,GAAjB;YACC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;QACtD,CAAC;QAED,6BAAc,GAAd;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,6BAAc,GAAd;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;QAMD,qCAAsB,GAAtB;YACC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;gBACtB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;gBACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;gBAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;gBACnH,MAAM,CAAC;YACR,CAAC;YACD,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAClC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACvE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;YAC1C,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;YAC1C,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;YAClB,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;YAClB,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;YAClB,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;YAClB,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YACnC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YACnC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YACnC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5C,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;gBAC3B,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBAC5B,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;gBAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;gBACrE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;YACxD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;YAC7D,CAAC;QACF,CAAC;QAED,2BAAY,GAAZ,UAAc,KAAc;YAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACzD,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YAC5C,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,2BAAY,GAAZ,UAAc,KAAc;YAC3B,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAC7B,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAChD,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAED,mCAAoB,GAApB,UAAsB,aAAqB;YAC1C,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACjF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;QAChG,CAAC;QAED,mCAAoB,GAApB,UAAsB,aAAqB;YAC1C,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACjF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;QAChG,CAAC;QAED,0BAAW,GAAX,UAAa,OAAe;YAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrE,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC3B,CAAC;QACF,WAAC;IAAD,CAAC,AA5QD,IA4QC;IA5QY,UAAI,OA4QhB,CAAA;AACF,CAAC,EA9QM,KAAK,KAAL,KAAK,QA8QX;AC9QD,IAAO,KAAK,CAqBX;AArBD,WAAO,KAAK,EAAC,CAAC;IACb;QAQC,kBAAa,KAAa,EAAE,IAAY,EAAE,MAAgB;YAH1D,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YAC3E,kBAAa,GAAG,aAAa,CAAC,MAAM,CAAC;YAGpC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACtD,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,CAAC;QACF,eAAC;IAAD,CAAC,AAfD,IAeC;IAfY,cAAQ,WAepB,CAAA;IAED,WAAY,aAAa;QACxB,qDAAM,CAAA;QAAE,uEAAe,CAAA;QAAE,qFAAsB,CAAA;QAAE,uDAAO,CAAA;QAAE,+EAAmB,CAAA;IAC9E,CAAC,EAFW,mBAAa,KAAb,mBAAa,QAExB;IAFD,IAAY,aAAa,GAAb,mBAEX,CAAA;AACF,CAAC,EArBM,KAAK,KAAL,KAAK,QAqBX;AErBD,IAAO,KAAK,CAcX;AAdD,WAAO,KAAK,EAAC,CAAC;IACb;QAOC,eAAa,IAAY,EAAE,IAAe;YACzC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,YAAC;IAAD,CAAC,AAZD,IAYC;IAZY,WAAK,QAYjB,CAAA;AACF,CAAC,EAdM,KAAK,KAAL,KAAK,QAcX;ACdD,IAAO,KAAK,CAWX;AAXD,WAAO,KAAK,EAAC,CAAC;IACb;QAMC,mBAAa,IAAY;YACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,gBAAC;IAAD,CAAC,AATD,IASC;IATY,eAAS,YASrB,CAAA;AACF,CAAC,EAXM,KAAK,KAAL,KAAK,QAWX;ACXD,IAAO,KAAK,CAyLX;AAzLD,WAAO,KAAK,EAAC,CAAC;IACb;QAOC,sBAAa,IAAsB,EAAE,QAAkB;YAHvD,QAAG,GAAG,CAAC,CAAC;YACR,kBAAa,GAAG,CAAC,CAAC;YAGjB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAExC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;gBACzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QAED,+BAAQ,GAAR;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,CAAC;QAED,4BAAK,GAAL;YACC,IAAI,CAAC,MAAM,EAAE,CAAC;QACf,CAAC;QAED,6BAAM,GAAN;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBACvB,KAAK,CAAC;oBACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC9D,KAAK,CAAC;gBACP,KAAK,CAAC;oBACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC5F,KAAK,CAAC;YACP,CAAC;QACF,CAAC;QAID,6BAAM,GAAN,UAAQ,IAAU,EAAE,OAAe,EAAE,OAAe,EAAE,KAAa;YAClE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;gBAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACtD,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;YACnD,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACrF,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YACvF,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBAAC,UAAU,IAAI,GAAG,CAAC;YACxC,EAAE,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC;gBACpB,UAAU,IAAI,GAAG,CAAC;YACnB,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC;gBAAC,UAAU,IAAI,GAAG,CAAC;YAC9C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,GAAG,UAAU,GAAG,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAC5H,IAAI,CAAC,OAAO,CAAC,CAAC;QAChB,CAAC;QAKD,6BAAM,GAAN,UAAQ,MAAY,EAAE,KAAW,EAAE,OAAe,EAAE,OAAe,EAAE,OAAe,EAAE,KAAa;YAClG,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,KAAK,CAAC,oBAAoB,EAAE,CAAC;gBAC7B,MAAM,CAAC;YACR,CAAC;YACD,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gBAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;YAC1D,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;gBAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;YACxD,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;YACpG,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAC7B,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACb,GAAG,GAAG,CAAC,GAAG,CAAC;gBACX,GAAG,GAAG,GAAG,CAAC;gBACV,EAAE,GAAG,CAAC,CAAC,CAAC;YACT,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,GAAG,GAAG,CAAC,CAAC;gBACR,EAAE,GAAG,CAAC,CAAC;YACR,CAAC;YACD,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACb,GAAG,GAAG,CAAC,GAAG,CAAC;gBACX,EAAE,GAAG,CAAC,EAAE,CAAC;YACV,CAAC;YACD,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACb,GAAG,GAAG,CAAC,GAAG,CAAC;gBACX,GAAG,GAAG,GAAG,CAAC;YACX,CAAC;YAAC,IAAI;gBACL,GAAG,GAAG,CAAC,CAAC;YACT,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;YACpG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC;YACtC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACR,EAAE,GAAG,CAAC,CAAC;gBACP,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC7B,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;gBACd,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtC,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;YACvC,CAAC;YACD,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;YACvB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACT,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACT,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACT,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACT,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;YAC/E,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;YACnE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;YACpB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;YACnE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACpF,KAAK,EACL,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACP,EAAE,IAAI,GAAG,CAAC;gBACV,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACZ,GAAG,GAAG,CAAC,CAAC,CAAC;gBACV,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;oBAAC,GAAG,GAAG,CAAC,CAAC;gBAC1B,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC9B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;gBAClB,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACnD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;gBACb,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;gBACb,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC5E,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBACrC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBACpC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACzB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACZ,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrB,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACnB,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBAClB,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC9C,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACjB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;wBACpC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC3B,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;wBACzC,KAAK,CAAC,KAAK,CAAC;oBACb,CAAC;gBACF,CAAC;gBACD,IAAI,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;gBAClF,IAAI,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;gBACjE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;gBACxB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACjB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACzB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACpB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAClB,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;wBACjB,QAAQ,GAAG,CAAC,CAAC;wBACb,OAAO,GAAG,CAAC,CAAC;wBACZ,IAAI,GAAG,CAAC,CAAC;wBACT,IAAI,GAAG,CAAC,CAAC;oBACV,CAAC;oBACD,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;wBACjB,QAAQ,GAAG,CAAC,CAAC;wBACb,OAAO,GAAG,CAAC,CAAC;wBACZ,IAAI,GAAG,CAAC,CAAC;wBACT,IAAI,GAAG,CAAC,CAAC;oBACV,CAAC;gBACF,CAAC;gBACD,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACnC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC3C,EAAE,GAAG,QAAQ,GAAG,OAAO,CAAC;gBACzB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC3C,EAAE,GAAG,QAAQ,GAAG,OAAO,CAAC;gBACzB,CAAC;YACF,CAAC;YACD,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;YACjC,IAAI,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;YAChC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC;YACnD,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC;gBACZ,EAAE,IAAI,GAAG,CAAC;YACX,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;gBAAC,EAAE,IAAI,GAAG,CAAC;YAC9B,MAAM,CAAC,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACrG,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC;YAC3B,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,QAAQ,CAAC;YAC1E,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC;gBACZ,EAAE,IAAI,GAAG,CAAC;YACX,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;gBAAC,EAAE,IAAI,GAAG,CAAC;YAC9B,KAAK,CAAC,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3H,CAAC;QACF,mBAAC;IAAD,CAAC,AAvLD,IAuLC;IAvLY,kBAAY,eAuLxB,CAAA;AACF,CAAC,EAzLM,KAAK,KAAL,KAAK,QAyLX;ACzLD,IAAO,KAAK,CAaX;AAbD,WAAO,KAAK,EAAC,CAAC;IACb;QAQC,0BAAa,IAAY;YANzB,UAAK,GAAG,CAAC,CAAC;YACV,UAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAE9B,kBAAa,GAAG,CAAC,CAAC;YAClB,QAAG,GAAG,CAAC,CAAC;YAGP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,uBAAC;IAAD,CAAC,AAXD,IAWC;IAXY,sBAAgB,mBAW5B,CAAA;AACF,CAAC,EAbM,KAAK,KAAL,KAAK,QAaX;ACbD,IAAO,KAAK,CAgXX;AAhXD,WAAO,KAAK,EAAC,CAAC;IACb;QAYC,wBAAa,IAAwB,EAAE,QAAkB;YANzD,aAAQ,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAAC,cAAS,GAAG,CAAC,CAAC;YAAC,iBAAY,GAAG,CAAC,CAAC;YAE3D,WAAM,GAAG,IAAI,KAAK,EAAU,CAAC;YAAC,cAAS,GAAG,IAAI,KAAK,EAAU,CAAC;YAC9D,UAAK,GAAG,IAAI,KAAK,EAAU,CAAC;YAAC,WAAM,GAAG,IAAI,KAAK,EAAU,CAAC;YAAC,YAAO,GAAG,IAAI,KAAK,EAAU,CAAC;YACzF,aAAQ,GAAG,IAAI,KAAK,EAAU,CAAC;YAG9B,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAChD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,CAAC;QAED,8BAAK,GAAL;YACC,IAAI,CAAC,MAAM,EAAE,CAAC;QACf,CAAC;QAED,+BAAM,GAAN;YACC,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC7C,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,YAAY,oBAAc,CAAC,CAAC;gBAAC,MAAM,CAAC;YAEpD,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACjE,IAAI,SAAS,GAAG,YAAY,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC;YACzD,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC;YAElC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,IAAI,aAAa,GAAG,WAAW,IAAI,iBAAW,CAAC,MAAM,CAAC;YACtD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACjC,IAAI,QAAQ,GAAG,UAAU,IAAI,gBAAU,CAAC,OAAO,EAAE,KAAK,GAAG,UAAU,IAAI,gBAAU,CAAC,UAAU,CAAC;YAC7F,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;YACtF,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,MAAM,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAkB,IAAI,CAAC;YACzF,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC3B,EAAE,CAAC,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC;gBAC5B,EAAE,CAAC,CAAC,KAAK,CAAC;oBAAC,OAAO,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACjE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;oBAC7C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC;oBACvF,IAAI,QAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtC,EAAE,CAAC,CAAC,KAAK,CAAC;wBAAC,OAAO,CAAC,CAAC,CAAC,GAAG,QAAM,CAAC;oBAC/B,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC,GAAG,QAAM,GAAG,WAAW,CAAC;gBACxF,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;oBACnC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;YACtB,CAAC;YAED,IAAI,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAiB,UAAU,EAAE,WAAW,EAAE,QAAQ,EAC3F,IAAI,CAAC,YAAY,IAAI,kBAAY,CAAC,OAAO,EAAE,WAAW,IAAI,iBAAW,CAAC,OAAO,CAAC,CAAC;YAChF,IAAI,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACrF,IAAI,GAAG,GAAG,KAAK,CAAC;YAChB,EAAE,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC;gBACvB,GAAG,GAAG,UAAU,IAAI,gBAAU,CAAC,KAAK,CAAC;YACtC,IAAI,CAAC,CAAC;gBACL,GAAG,GAAG,KAAK,CAAC;gBACZ,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACzB,cAAc,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,eAAS,CAAC,MAAM,GAAG,CAAC,eAAS,CAAC,MAAM,CAAC;YACpF,CAAC;YACD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnD,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;gBACpD,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;gBACpD,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,KAAK,EAAE,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC3E,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACX,IAAI,QAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBACxB,EAAE,CAAC,CAAC,QAAM,IAAI,CAAC,CAAC,CAAC,CAAC;wBACjB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,QAAM,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;wBACpE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;wBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACb,CAAC;gBACF,CAAC;gBACD,KAAK,GAAG,CAAC,CAAC;gBACV,KAAK,GAAG,CAAC,CAAC;gBACV,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACZ,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;oBAC5E,EAAE,CAAC,CAAC,QAAQ,CAAC;wBACZ,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtB,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;wBAC3B,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtB,IAAI;wBACH,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACxB,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACtB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACT,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAClB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAClB,IAAI,QAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;wBAC9B,KAAK,IAAI,CAAC,QAAM,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;wBACzD,KAAK,IAAI,CAAC,QAAM,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;oBAC1D,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,CAAC,IAAI,cAAc,CAAC;oBACrB,CAAC;oBACD,EAAE,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,EAAE,CAAC;wBACpB,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBACpB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,eAAS,CAAC,EAAE,CAAC;wBAC1B,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBACpB,CAAC,IAAI,SAAS,CAAC;oBACf,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC5B,CAAC;gBACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC3B,CAAC;QACF,CAAC;QAED,8CAAqB,GAArB,UAAuB,IAAoB,EAAE,WAAmB,EAAE,QAAiB,EAAE,eAAwB,EAC5G,cAAuB;YACvB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAkB,IAAI,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,cAAc,GAAG,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,cAAc,GAAG,CAAC,EAAE,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC;YAEhH,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBACzB,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC3B,UAAU,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,YAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;gBACrC,EAAE,CAAC,CAAC,eAAe,CAAC;oBAAC,QAAQ,IAAI,YAAU,CAAC;gBAC5C,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;oBACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;wBACnC,MAAM,CAAC,CAAC,CAAC,IAAI,YAAU,CAAC;gBAC1B,CAAC;gBACD,KAAK,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC1C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChE,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACtB,QAAQ,IAAI,KAAK,CAAC;oBAClB,IAAI,CAAC,GAAG,QAAQ,CAAC;oBAEjB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;wBACZ,CAAC,IAAI,YAAU,CAAC;wBAChB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAAC,CAAC,IAAI,YAAU,CAAC;wBAC3B,KAAK,GAAG,CAAC,CAAC;oBACX,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAClB,EAAE,CAAC,CAAC,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;4BACxC,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC;4BAClC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACtD,CAAC;wBACD,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBAC5C,QAAQ,CAAC;oBACV,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,YAAU,CAAC,CAAC,CAAC;wBAC3B,EAAE,CAAC,CAAC,SAAS,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;4BACvC,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC;4BACjC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACvE,CAAC;wBACD,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,YAAU,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBACxD,QAAQ,CAAC;oBACV,CAAC;oBAGD,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;wBACjB,IAAI,QAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;wBAC5B,EAAE,CAAC,CAAC,CAAC,GAAG,QAAM,CAAC;4BAAC,QAAQ,CAAC;wBACzB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;4BACd,CAAC,IAAI,QAAM,CAAC;wBACb,IAAI,CAAC,CAAC;4BACL,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;4BAC9B,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAM,GAAG,IAAI,CAAC,CAAC;wBAClC,CAAC;wBACD,KAAK,CAAC;oBACP,CAAC;oBACD,EAAE,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC;wBACxB,SAAS,GAAG,KAAK,CAAC;wBAClB,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC;4BACnC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;4BACtE,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACtD,CAAC;wBAAC,IAAI;4BACL,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACnE,CAAC;oBACD,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAC9G,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrC,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC;YACZ,CAAC;YAGD,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACZ,cAAc,IAAI,CAAC,CAAC;gBACpB,KAAK,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;gBACvD,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,cAAc,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtE,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,UAAU,EAAE,CAAC;gBACb,cAAc,IAAI,CAAC,CAAC;gBACpB,KAAK,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;gBACvD,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACnE,CAAC;YAGD,IAAI,MAAM,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACzD,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACrF,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;YACnF,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpD,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACf,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnB,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnB,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnB,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClB,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClB,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC;gBACrC,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC;gBACrC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;gBAC9C,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;gBAC9C,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;gBACxB,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;gBACxB,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;gBACpD,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;gBACpD,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC/C,GAAG,IAAI,IAAI,CAAC;gBACZ,GAAG,IAAI,IAAI,CAAC;gBACZ,IAAI,IAAI,KAAK,CAAC;gBACd,IAAI,IAAI,KAAK,CAAC;gBACd,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC/C,GAAG,IAAI,IAAI,CAAC;gBACZ,GAAG,IAAI,IAAI,CAAC;gBACZ,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC/C,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC;gBACpB,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC;gBACpB,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC/C,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;gBACvB,EAAE,GAAG,EAAE,CAAC;gBACR,EAAE,GAAG,EAAE,CAAC;YACT,CAAC;YACD,EAAE,CAAC,CAAC,eAAe,CAAC;gBAAC,QAAQ,IAAI,UAAU,CAAC;YAC5C,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;gBACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;oBACnC,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;YAC1B,CAAC;YAED,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7E,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,QAAQ,IAAI,KAAK,CAAC;gBAClB,IAAI,CAAC,GAAG,QAAQ,CAAC;gBAEjB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACZ,CAAC,IAAI,UAAU,CAAC;oBAChB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAAC,CAAC,IAAI,UAAU,CAAC;oBAC3B,KAAK,GAAG,CAAC,CAAC;gBACX,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;oBAC5C,QAAQ,CAAC;gBACV,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oBAC3B,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,UAAU,EAAE,KAAK,EAAE,cAAc,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;oBACzE,QAAQ,CAAC;gBACV,CAAC;gBAGD,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;oBACjB,IAAI,QAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC3B,EAAE,CAAC,CAAC,CAAC,GAAG,QAAM,CAAC;wBAAC,QAAQ,CAAC;oBACzB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;wBACd,CAAC,IAAI,QAAM,CAAC;oBACb,IAAI,CAAC,CAAC;wBACL,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;wBAC7B,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAM,GAAG,IAAI,CAAC,CAAC;oBAClC,CAAC;oBACD,KAAK,CAAC;gBACP,CAAC;gBAGD,EAAE,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC;oBACxB,SAAS,GAAG,KAAK,CAAC;oBAClB,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;oBACnB,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;oBACf,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACnB,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACpB,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACpB,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACpB,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACpB,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACnB,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACnB,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;oBACnC,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;oBACnC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;oBAC5C,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;oBAC5C,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;oBACxB,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;oBACxB,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;oBACnD,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;oBACnD,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC/C,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;oBAC1B,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;wBAC3B,GAAG,IAAI,IAAI,CAAC;wBACZ,GAAG,IAAI,IAAI,CAAC;wBACZ,IAAI,IAAI,KAAK,CAAC;wBACd,IAAI,IAAI,KAAK,CAAC;wBACd,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;wBAChD,QAAQ,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC;oBAC5B,CAAC;oBACD,GAAG,IAAI,IAAI,CAAC;oBACZ,GAAG,IAAI,IAAI,CAAC;oBACZ,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;oBAChD,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;oBAC1B,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC;oBACpB,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC;oBACpB,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;oBAChD,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;oBAC1B,OAAO,GAAG,CAAC,CAAC;gBACb,CAAC;gBAGD,CAAC,IAAI,WAAW,CAAC;gBACjB,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC;oBACnB,IAAI,QAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC/B,EAAE,CAAC,CAAC,CAAC,GAAG,QAAM,CAAC;wBAAC,QAAQ,CAAC;oBACzB,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;wBAChB,CAAC,IAAI,QAAM,CAAC;oBACb,IAAI,CAAC,CAAC;wBACL,IAAI,IAAI,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;wBACjC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAM,GAAG,IAAI,CAAC,CAAC;oBAC5C,CAAC;oBACD,KAAK,CAAC;gBACP,CAAC;gBACD,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/G,CAAC;YACD,MAAM,CAAC,GAAG,CAAC;QACZ,CAAC;QAED,0CAAiB,GAAjB,UAAmB,CAAS,EAAE,IAAmB,EAAE,CAAS,EAAE,GAAkB,EAAE,CAAS;YAC1F,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACzG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9B,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QAED,yCAAgB,GAAhB,UAAkB,CAAS,EAAE,IAAmB,EAAE,CAAS,EAAE,GAAkB,EAAE,CAAS;YACzF,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACzG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9B,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QAED,yCAAgB,GAAhB,UAAkB,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,EAAU,EAAE,EAAU,EAC9H,GAAkB,EAAE,CAAS,EAAE,QAAiB;YAChD,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,MAAM,CAAC;YACnC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;YAClE,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;YAC7D,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC;YACzG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACf,EAAE,CAAC,CAAC,QAAQ,CAAC;gBAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QACzH,CAAC;QAED,iCAAQ,GAAR;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,CAAC;QA5WM,mBAAI,GAAG,CAAC,CAAC,CAAC;QAAQ,qBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,oBAAK,GAAG,CAAC,CAAC,CAAC;QA6WzD,qBAAC;IAAD,CAAC,AA9WD,IA8WC;IA9WY,oBAAc,iBA8W1B,CAAA;AACF,CAAC,EAhXM,KAAK,KAAL,KAAK,QAgXX;AChXD,IAAO,KAAK,CA4BX;AA5BD,WAAO,KAAK,EAAC,CAAC;IACb;QAWC,4BAAa,IAAY;YATzB,UAAK,GAAG,CAAC,CAAC;YACV,UAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAS7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,yBAAC;IAAD,CAAC,AAdD,IAcC;IAdY,wBAAkB,qBAc9B,CAAA;IAED,WAAY,YAAY;QACvB,iDAAK,CAAA;QAAE,qDAAO,CAAA;IACf,CAAC,EAFW,kBAAY,KAAZ,kBAAY,QAEvB;IAFD,IAAY,YAAY,GAAZ,kBAEX,CAAA;IAED,WAAY,WAAW;QACtB,iDAAM,CAAA;QAAE,+CAAK,CAAA;QAAE,mDAAO,CAAA;IACvB,CAAC,EAFW,iBAAW,KAAX,iBAAW,QAEtB;IAFD,IAAY,WAAW,GAAX,iBAEX,CAAA;IAED,WAAY,UAAU;QACrB,iDAAO,CAAA;QAAE,6CAAK,CAAA;QAAE,uDAAU,CAAA;IAC3B,CAAC,EAFW,gBAAU,KAAV,gBAAU,QAErB;IAFD,IAAY,UAAU,GAAV,gBAEX,CAAA;AACF,CAAC,EA5BM,KAAK,KAAL,KAAK,QA4BX;AC5BD,IAAO,KAAK,CA2JX;AA3JD,WAAO,KAAK,EAAC,CAAC;IACb;QAMC,gBAAY,QAAgB;YAJ5B,WAAM,GAAG,IAAI,KAAK,EAAU,CAAC;YAC7B,WAAM,GAAa,EAAE,CAAC;YAIrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1B,CAAC;QAED,uBAAM,GAAN;YACC,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;gBAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,CAAC,CAAC;QACV,CAAC;QACF,aAAC;IAAD,CAAC,AAfD,IAeC;IAED;QAOC,4BAAa,UAAuB;YAAvB,0BAAuB,GAAvB,eAAuB;YAL5B,iBAAY,GAAgB,EAAE,CAAC;YAC/B,iBAAY,GAAgB,EAAE,CAAC;YAC/B,cAAS,GAAa,EAAE,CAAA;YACxB,WAAM,GAAgB,EAAE,CAAC;YAGhC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC9B,CAAC;QAEO,uCAAU,GAAlB,UAAmB,QAAgB,EAAE,aAA+C,EAAE,IAAY;YACjG,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC/C,EAAE,CAAC,CAAC,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC;gBACzD,YAAY,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;YAC5C,CAAC;YACD,EAAE,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC;gBAAC,YAAY,CAAC,aAAa,GAAG,aAAa,CAAC;YACvE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAI/B,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBACtC,MAAM,CAAC,KAAK,CAAC;YACd,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;QACF,CAAC;QAED,qCAAQ,GAAR,UAAS,QAAgB,EAAE,IAAY;YAAvC,iBAeC;YAdA,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAAC,MAAM,CAAC;YACnD,IAAI,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;YACnC,OAAO,CAAC,kBAAkB,GAAG;gBAC5B,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC/C,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;wBACnD,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;oBAC7C,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAsB,IAAI,iBAAY,OAAO,CAAC,MAAM,UAAK,OAAO,CAAC,YAAc,CAAC;oBACrG,CAAC;gBACF,CAAC;YACF,CAAC,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,qCAAQ,GAAR,UAAS,QAAgB,EAAE,IAAY;YAAvC,iBAeC;YAdA,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAAC,MAAM,CAAC;YACnD,IAAI,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;YACnC,OAAO,CAAC,kBAAkB,GAAG;gBAC5B,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC/C,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;wBACnD,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;oBACzD,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAsB,IAAI,iBAAY,OAAO,CAAC,MAAM,UAAK,OAAO,CAAC,YAAc,CAAC;oBACrG,CAAC;gBACF,CAAC;YACF,CAAC,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,wCAAW,GAAX,UAAa,QAAgB,EAAE,aAA+C,EAAE,IAAY;YAA5F,iBAaC;YAZA,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE5D,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC;YACf,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;YAC9B,GAAG,CAAC,MAAM,GAAG,UAAC,EAAE;gBACf,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;YAC5B,CAAC,CAAA;YACD,GAAG,CAAC,OAAO,GAAG,UAAC,EAAE;gBAChB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,yBAAuB,IAAM,CAAC;YACnD,CAAC,CAAA;QACF,CAAC;QAED,gCAAG,GAAH,UAAK,QAAgB,EAAE,IAAY;YAClC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC/C,EAAE,CAAC,CAAC,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACrE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAEO,+CAAkB,GAA1B,UAA2B,YAAoB;YAC9C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrD,IAAI,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAClC,IAAI,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACtC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;oBAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBACpC,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,CAAC;wBAAC,QAAQ,CAAC;oBAC1D,EAAE,CAAC,CAAC,QAAQ,YAAY,gBAAgB,CAAC,CAAC,CAAC;wBAC1C,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,aAAa,CAAmB,QAAQ,CAAC,CAAC;oBACpF,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;oBACtC,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAED,8CAAiB,GAAjB,UAAmB,QAAgB;YAClC,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC/C,EAAE,CAAC,CAAC,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACrE,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YACtC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QAE5D,CAAC;QAiBD,oCAAO,GAAP;QAEA,CAAC;QAED,sCAAS,GAAT;YACC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5C,CAAC;QAED,sCAAS,GAAT;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QACF,yBAAC;IAAD,CAAC,AAxID,IAwIC;IAxIY,wBAAkB,qBAwI9B,CAAA;AACF,CAAC,EA3JM,KAAK,KAAL,KAAK,QA2JX;AC3JD,IAAO,KAAK,CA8dX;AA9dD,WAAO,KAAK,EAAC,CAAC;IACb;QAgBC,kBAAa,IAAkB;YAR/B,iBAAY,GAAG,IAAI,KAAK,EAAa,CAAC;YACtC,qBAAgB,GAAG,IAAI,KAAK,EAAa,CAAC;YAG1C,SAAI,GAAG,CAAC,CAAC;YACT,UAAK,GAAG,KAAK,CAAC;YAAC,UAAK,GAAG,KAAK,CAAC;YAC7B,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YAGZ,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YAEjB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,IAAI,SAAM,CAAC;gBACf,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC;oBAC3B,IAAI,GAAG,IAAI,UAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,CAAC;oBACL,IAAI,QAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC/C,IAAI,GAAG,IAAI,UAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAM,CAAC,CAAC;oBACxC,QAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YAED,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,EAAQ,CAAC;YACnC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC/C,IAAI,IAAI,GAAG,IAAI,UAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YAED,IAAI,CAAC,aAAa,GAAG,IAAI,KAAK,EAAgB,CAAC;YAC/C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpD,IAAI,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,kBAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;YACnE,CAAC;YAED,IAAI,CAAC,oBAAoB,GAAG,IAAI,KAAK,EAAuB,CAAC;YAC7D,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3D,IAAI,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,yBAAmB,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAC;YACxF,CAAC;YAED,IAAI,CAAC,eAAe,GAAG,IAAI,KAAK,EAAkB,CAAC;YACnD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,IAAI,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBACjD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,oBAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC;YACzE,CAAC;YAED,IAAI,CAAC,KAAK,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC;QAED,8BAAW,GAAX;YACC,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YACpC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;YAEjC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;YAGzB,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,IAAI,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACrD,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,IAAI,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC;YACrH,IAAI,eAAe,GAAG,OAAO,GAAG,cAAc,GAAG,SAAS,CAAC;YAE3D,KAAK,EACL,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;oBACrC,IAAI,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;oBACnC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;wBAClC,QAAQ,CAAC,KAAK,CAAC;oBAChB,CAAC;gBACF,CAAC;gBACD,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC;oBAC5C,IAAI,UAAU,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;oBAC1C,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;wBACzC,QAAQ,CAAC,KAAK,CAAC;oBAChB,CAAC;gBACF,CAAC;gBACD,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC;oBACvC,IAAI,UAAU,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;oBACrC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;wBACpC,QAAQ,CAAC,KAAK,CAAC;oBAChB,CAAC;gBACF,CAAC;YACF,CAAC;YAED,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QAED,mCAAgB,GAAhB,UAAkB,UAAwB;YACzC,IAAI,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEtB,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;YACnC,IAAI,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEtB,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAChD,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjF,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEnC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QACnD,CAAC;QAED,qCAAkB,GAAlB,UAAoB,UAA0B;YAC7C,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC;YAC7B,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YACzF,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC;gBACvE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC/E,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACrD,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAE5E,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACtC,EAAE,CAAC,CAAC,UAAU,YAAY,oBAAc,CAAC;gBAAC,IAAI,CAAC,gCAAgC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAEtG,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;YACnC,IAAI,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;YACnC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE;gBACjC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEnC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE;gBACjC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACzC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE;gBACjC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,0CAAuB,GAAvB,UAAyB,UAA+B;YACvD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAEjC,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;YACnC,IAAI,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;YACnC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpC,IAAI,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC5B,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjF,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEnC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE;gBACpC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC1C,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE;gBACpC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAChC,CAAC;QAED,+CAA4B,GAA5B,UAA8B,IAAU,EAAE,SAAiB,EAAE,QAAc;YAC1E,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC9C,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;gBAAC,MAAM,CAAC;YACzB,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,gCAAgC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;YACnE,CAAC;QACF,CAAC;QAED,mDAAgC,GAAhC,UAAkC,UAAsB,EAAE,QAAc;YACvE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,YAAY,oBAAc,CAAC,CAAC;gBAAC,MAAM,CAAC;YACpD,IAAI,SAAS,GAAoB,UAAW,CAAC,KAAK,CAAC;YACnD,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAI,CAAC,CAAC;gBACL,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;oBAC7B,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBACxC,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;wBAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;oBACjC,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAED,2BAAQ,GAAR,UAAU,IAAU;YACnB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC;YACxB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;gBAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED,4BAAS,GAAT,UAAW,KAAkB;YAC5B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;oBAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACrB,CAAC;QACF,CAAC;QAGD,uCAAoB,GAApB;YACC,IAAI,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC7C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzD,IAAI,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAS,CAAC;gBACvC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAC1B,CAAC;YACD,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YACpC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACjD,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,CAAC;QAGD,iCAAc,GAAd;YACC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC5B,CAAC;QAGD,sCAAmB,GAAnB;YACC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;YAE3B,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,IAAI,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAClC,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;gBACzD,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;YACtC,CAAC;YAED,IAAI,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACrD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7D,IAAI,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;gBAC3B,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACtC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC5C,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACpC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrC,CAAC;YAED,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxD,IAAI,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;gBAC3B,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACpC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAClC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACtC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7C,CAAC;QACF,CAAC;QAED,sCAAmB,GAAnB;YACC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,WAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3D,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;QAC5B,CAAC;QAGD,8BAAW,GAAX;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QAGD,2BAAQ,GAAR,UAAU,QAAgB;YACzB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;YAC7C,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,gCAAa,GAAb,UAAe,QAAgB;YAC9B,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QAGD,2BAAQ,GAAR,UAAU,QAAgB;YACzB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;YAC7C,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,gCAAa,GAAb,UAAe,QAAgB;YAC9B,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QAID,gCAAa,GAAb,UAAe,QAAgB;YAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QAMD,0BAAO,GAAP,UAAS,OAAa;YACrB,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;gBACrB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;oBACrB,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,CAAC;oBACL,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;oBACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,MAAI,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;wBACpC,EAAE,CAAC,CAAC,MAAI,IAAI,IAAI,CAAC,CAAC,CAAC;4BAClB,IAAI,UAAU,GAAe,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,MAAI,CAAC,CAAC;4BAC5D,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;gCAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;wBACxD,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACrB,CAAC;QAGD,sCAAmB,GAAnB,UAAqB,QAAgB,EAAE,cAAsB;YAC5D,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAC;QAC9E,CAAC;QAGD,gCAAa,GAAb,UAAe,SAAiB,EAAE,cAAsB;YACvD,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;gBACvB,IAAI,UAAU,GAAe,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;gBAChF,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;oBAAC,MAAM,CAAC,UAAU,CAAC;YAC3C,CAAC;YACD,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YACzG,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,gCAAa,GAAb,UAAe,QAAgB,EAAE,cAAsB;YACtD,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC;oBAChC,IAAI,UAAU,GAAe,IAAI,CAAC;oBAClC,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC;wBAC5B,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;wBACnD,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;4BACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,cAAc,GAAG,cAAc,GAAG,QAAQ,CAAC,CAAC;oBACzF,CAAC;oBACD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;oBAC/B,MAAM,CAAC;gBACR,CAAC;YACF,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;QAChD,CAAC;QAGD,mCAAgB,GAAhB,UAAkB,cAAsB;YACvC,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,IAAI,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBACpC,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC;oBAAC,MAAM,CAAC,YAAY,CAAC;YACnE,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,0CAAuB,GAAvB,UAAyB,cAAsB;YAC9C,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACrD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7D,IAAI,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACzC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC;oBAAC,MAAM,CAAC,UAAU,CAAC;YAC/D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,qCAAkB,GAAlB,UAAoB,cAAsB;YACzC,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxD,IAAI,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACpC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC;oBAAC,MAAM,CAAC,UAAU,CAAC;YAC/D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAMD,4BAAS,GAAT,UAAW,MAAe,EAAE,IAAa,EAAE,IAAmB;YAC7D,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC9D,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;YACvI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClD,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,cAAc,GAAG,CAAC,CAAC;gBACvB,IAAI,QAAQ,GAAsB,IAAI,CAAC;gBACvC,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,EAAE,CAAC,CAAC,UAAU,YAAY,sBAAgB,CAAC,CAAC,CAAC;oBAC5C,cAAc,GAAG,CAAC,CAAC;oBACnB,QAAQ,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;oBACpC,UAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChF,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,YAAY,oBAAc,CAAC,CAAC,CAAC;oBACjD,IAAI,IAAI,GAAoB,UAAW,CAAC;oBACxC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC;oBAC1C,QAAQ,GAAG,WAAK,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;oBACvD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpE,CAAC;gBACD,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC;oBACtB,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;wBACzD,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC3C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC1B,CAAC;gBACF,CAAC;YACF,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,yBAAM,GAAN,UAAQ,KAAa;YACpB,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC;QACpB,CAAC;QACF,eAAC;IAAD,CAAC,AA5dD,IA4dC;IA5dY,cAAQ,WA4dpB,CAAA;AACF,CAAC,EA9dM,KAAK,KAAL,KAAK,QA8dX;AC9dD,IAAO,KAAK,CAgLX;AAhLD,WAAO,KAAK,EAAC,CAAC;IACb;QAAA;YACC,SAAI,GAAG,CAAC,CAAC;YAAC,SAAI,GAAG,CAAC,CAAC;YAAC,SAAI,GAAG,CAAC,CAAC;YAAC,SAAI,GAAG,CAAC,CAAC;YACvC,kBAAa,GAAG,IAAI,KAAK,EAAyB,CAAC;YACnD,aAAQ,GAAG,IAAI,KAAK,EAAqB,CAAC;YAClC,gBAAW,GAAG,IAAI,UAAI,CAAoB;gBACjD,MAAM,CAAC,WAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QAuKJ,CAAC;QArKA,+BAAM,GAAN,UAAQ,QAAkB,EAAE,UAAmB;YAC9C,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC3B,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;YAE7B,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YACzB,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9B,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YAEpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,EAAE,CAAC,CAAC,UAAU,YAAY,2BAAqB,CAAC,CAAC,CAAC;oBACjD,IAAI,WAAW,GAAG,UAAmC,CAAC;oBACtD,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAEhC,IAAI,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;oBACnC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC;wBACvD,OAAO,GAAG,WAAK,CAAC,aAAa,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;oBAChE,CAAC;oBACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACvB,WAAW,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,mBAAmB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC3F,CAAC;YACF,CAAC;YAED,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;gBACrC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;gBACrC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;gBACrC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;YACtC,CAAC;QACF,CAAC;QAED,oCAAW,GAAX;YACC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;YACvI,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,QAAQ,GAAG,OAAO,CAAC;gBACvB,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;oBACxD,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACrB,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC1B,CAAC;YACF,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QAGD,0CAAiB,GAAjB,UAAmB,CAAS,EAAE,CAAS;YACtC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;QAC7E,CAAC;QAGD,8CAAqB,GAArB,UAAuB,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;YACpE,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;gBACxH,MAAM,CAAC,KAAK,CAAC;YACd,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;YAC7B,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACtC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;YACzB,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAC7B,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACtC,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACzB,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAGD,+CAAsB,GAAtB,UAAwB,MAAsB;YAC7C,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACjH,CAAC;QAID,sCAAa,GAAb,UAAe,CAAS,EAAE,CAAS;YAClC,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC9C,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAChF,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,6CAAoB,GAApB,UAAsB,OAA0B,EAAE,CAAS,EAAE,CAAS;YACrE,IAAI,QAAQ,GAAG,OAAO,CAAC;YACvB,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAExB,IAAI,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnC,IAAI,OAAO,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC/B,IAAI,KAAK,GAAG,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;gBACpC,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChE,IAAI,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC3B,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;wBAAC,MAAM,GAAG,CAAC,MAAM,CAAC;gBACzG,CAAC;gBACD,SAAS,GAAG,EAAE,CAAC;YAChB,CAAC;YACD,MAAM,CAAC,MAAM,CAAC;QACf,CAAC;QAKD,0CAAiB,GAAjB,UAAmB,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;YAChE,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC9C,EAAE,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAC9F,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAGD,iDAAwB,GAAxB,UAA0B,OAA0B,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;YACnG,IAAI,QAAQ,GAAG,OAAO,CAAC;YACvB,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAExB,IAAI,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAC;YAC1C,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YAC7B,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACjD,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnC,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBAC7B,IAAI,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAC;gBAC1C,IAAI,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;gBACnD,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;gBACjD,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;oBACnD,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;gBACnH,CAAC;gBACD,EAAE,GAAG,EAAE,CAAC;gBACR,EAAE,GAAG,EAAE,CAAC;YACT,CAAC;YACD,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAGD,mCAAU,GAAV,UAAY,WAAkC;YAC7C,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACxE,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACpD,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,iCAAQ,GAAR;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,CAAC;QAED,kCAAS,GAAT;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,CAAC;QACF,qBAAC;IAAD,CAAC,AA7KD,IA6KC;IA7KY,oBAAc,iBA6K1B,CAAA;AAEF,CAAC,EAhLM,KAAK,KAAL,KAAK,QAgLX;AChLD,IAAO,KAAK,CAiTX;AAjTD,WAAO,KAAK,EAAC,CAAC;IACb;QAAA;YACS,iBAAY,GAAG,IAAI,kBAAY,EAAE,CAAC;YAClC,oBAAe,GAAG,IAAI,KAAK,EAAU,CAAC;YACtC,eAAU,GAAG,IAAI,KAAK,EAAU,CAAC;YACzC,oBAAe,GAAG,IAAI,KAAK,EAAU,CAAC;YACtC,qBAAgB,GAAG,IAAI,KAAK,EAAU,CAAC;YAC/B,YAAO,GAAG,IAAI,KAAK,EAAU,CAAC;QAySvC,CAAC;QApSA,oCAAS,GAAT,UAAW,IAAU,EAAE,IAAwB;YAC9C,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAE3B,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;YACjC,IAAI,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACtD,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,gBAAgB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YAChD,IAAI,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;YAC5I,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,GAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzD,IAAI,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAClC,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;YAED,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAChC,CAAC;QAED,0CAAe,GAAf,UAAiB,IAAU;YAC1B,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC;gBAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7F,CAAC;QAED,kCAAO,GAAP;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC;YACxC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,CAAC;QAED,qCAAU,GAAV;YACC,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;QACpC,CAAC;QAED,wCAAa,GAAb,UAAe,QAA2B,EAAE,cAAsB,EAAE,SAA4B,EAAE,eAAuB,EAAE,GAAsB,EAChJ,KAAY,EAAE,IAAW,EAAE,QAAiB;YAE5C,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACzE,IAAI,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC7C,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACrC,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YACjD,IAAI,UAAU,GAAG,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC;YAEnC,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3B,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5B,KAAK,EACL,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,IAAI,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBACjE,IAAI,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAEvD,YAAY,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBACjE,IAAI,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAEvD,YAAY,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBACjE,IAAI,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAEvD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxC,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC;oBAC/B,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;wBAChE,IAAI,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC;wBACzC,EAAE,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC;4BAAC,QAAQ,CAAC;wBACpC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;wBAC3D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBAEvC,IAAI,eAAe,GAAG,gBAAgB,IAAI,CAAC,CAAC;wBAC5C,IAAI,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;wBACtC,IAAI,oBAAoB,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,GAAG,eAAe,GAAG,UAAU,CAAC,CAAC;wBACvG,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,gBAAgB,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;4BACjD,IAAI,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BACzD,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAC5B,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;4BAChC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACtC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;4BAC7B,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;4BAChC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;4BAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4BAClB,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;4BACvD,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;4BACvD,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gCACd,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gCACrC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gCACrC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gCACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACvC,CAAC;4BACD,CAAC,IAAI,UAAU,CAAC;wBACjB,CAAC;wBAED,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;wBAC5B,IAAI,qBAAqB,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;wBACtG,eAAe,EAAE,CAAC;wBAClB,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC;4BAC7C,qBAAqB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;4BACjC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;4BAC5C,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;4BAChD,CAAC,IAAI,CAAC,CAAC;wBACR,CAAC;wBACD,KAAK,IAAI,eAAe,GAAG,CAAC,CAAC;oBAE9B,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,IAAI,oBAAoB,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;wBACzF,oBAAoB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;wBAC7B,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;wBACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;wBACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;wBACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;wBACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;wBACtC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;4BACf,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BAEjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAElC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;wBACnC,CAAC;wBAAC,IAAI,CAAC,CAAC;4BACP,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACrC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACrC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BAEtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BAEtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;wBACvC,CAAC;wBAED,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;wBAC5B,IAAI,qBAAqB,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC9E,qBAAqB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;wBACjC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;wBAC3C,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;wBAC3C,KAAK,IAAI,CAAC,CAAC;wBACX,QAAQ,CAAC,KAAK,CAAC;oBAChB,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAID,+BAAI,GAAJ,UAAM,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,YAA2B,EAAE,MAAqB;YAC/H,IAAI,cAAc,GAAG,MAAM,CAAC;YAC5B,IAAI,OAAO,GAAG,KAAK,CAAC;YAGpB,IAAI,KAAK,GAAkB,IAAI,CAAC;YAChC,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClC,KAAK,GAAG,MAAM,CAAC;gBACf,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YACvB,CAAC;YAAC,IAAI;gBACL,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;YAEtB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAElB,IAAI,gBAAgB,GAAG,YAAY,CAAC;YACpC,IAAI,oBAAoB,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACnD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,IAAI,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjE,IAAI,MAAM,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvE,IAAI,MAAM,GAAG,KAAK,GAAG,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;gBAErD,IAAI,aAAa,GAAG,KAAK,CAAC;gBAC1B,IAAI,mBAAmB,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;gBACxE,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,mBAAmB,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;oBACpD,IAAI,MAAM,GAAG,aAAa,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC/D,IAAI,OAAO,GAAG,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACrE,IAAI,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC1E,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACjE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;4BACX,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACrB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACrB,QAAQ,CAAC;wBACV,CAAC;wBAED,IAAI,EAAE,GAAG,OAAO,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC;wBACjD,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;wBAC3G,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;oBAC5C,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBAClB,IAAI,EAAE,GAAG,OAAO,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC;wBACjD,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;wBAC3G,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACrB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACtB,CAAC;oBACD,OAAO,GAAG,IAAI,CAAC;gBAChB,CAAC;gBAED,EAAE,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;oBAClC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC1B,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEvB,EAAE,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC;oBAAC,KAAK,CAAC;gBACrC,IAAI,IAAI,GAAG,MAAM,CAAC;gBAClB,MAAM,GAAG,KAAK,CAAC;gBACf,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,KAAK,GAAG,IAAI,CAAC;YACd,CAAC;YAED,EAAE,CAAC,CAAC,cAAc,IAAI,MAAM,CAAC,CAAC,CAAC;gBAC9B,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAChD,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;YAAC,IAAI;gBACL,cAAc,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAEnD,MAAM,CAAC,OAAO,CAAC;QAChB,CAAC;QAEa,8BAAa,GAA3B,UAA6B,OAA0B;YACtD,IAAI,QAAQ,GAAG,OAAO,CAAC;YACvB,IAAI,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;YAEpC,IAAI,IAAI,GAAG,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;YACvI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAClB,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtB,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtB,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtB,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;YAC/B,CAAC;YACD,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBAAC,MAAM,CAAC;YAErB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpF,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;gBACtB,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC9B,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACtC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACpB,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACF,CAAC;QACF,uBAAC;IAAD,CAAC,AA/SD,IA+SC;IA/SY,sBAAgB,mBA+S5B,CAAA;AACF,CAAC,EAjTM,KAAK,KAAL,KAAK,QAiTX;ACjTD,IAAO,KAAK,CA2HX;AA3HD,WAAO,KAAK,EAAC,CAAC;IACb;QAAA;YAEC,UAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAC9B,UAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAC9B,UAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAE1B,WAAM,GAAG,IAAI,KAAK,EAAa,CAAC;YAChC,eAAU,GAAG,IAAI,KAAK,EAAa,CAAC;YACpC,kBAAa,GAAG,IAAI,KAAK,EAAoB,CAAC;YAC9C,yBAAoB,GAAG,IAAI,KAAK,EAA2B,CAAC;YAC5D,oBAAe,GAAG,IAAI,KAAK,EAAsB,CAAC;YAKlD,QAAG,GAAG,CAAC,CAAC;QA0GT,CAAC;QAvGA,+BAAQ,GAAR,UAAU,QAAgB;YACzB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;YACxC,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,oCAAa,GAAb,UAAe,QAAgB;YAC9B,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QAED,+BAAQ,GAAR,UAAU,QAAgB;YACzB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;YACxC,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,oCAAa,GAAb,UAAe,QAAgB;YAC9B,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QAED,+BAAQ,GAAR,UAAU,QAAgB;YACzB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC;YACxC,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,gCAAS,GAAT,UAAW,aAAqB;YAC/B,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC5E,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,IAAI,OAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC,CAAC,OAAK,CAAC,IAAI,IAAI,aAAa,CAAC;oBAAC,MAAM,CAAC,OAAK,CAAC;YAC/C,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,oCAAa,GAAb,UAAe,aAAqB;YACnC,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC5E,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACjC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnD,IAAI,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC9B,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,aAAa,CAAC;oBAAC,MAAM,CAAC,SAAS,CAAC;YACvD,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,uCAAgB,GAAhB,UAAkB,cAAsB;YACvC,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,IAAI,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAClC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,cAAc,CAAC;oBAAC,MAAM,CAAC,UAAU,CAAC;YAC1D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,8CAAuB,GAAvB,UAAyB,cAAsB;YAC9C,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACrD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7D,IAAI,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACzC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,cAAc,CAAC;oBAAC,MAAM,CAAC,UAAU,CAAC;YAC1D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,yCAAkB,GAAlB,UAAoB,cAAsB;YACzC,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxD,IAAI,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACpC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,cAAc,CAAC;oBAAC,MAAM,CAAC,UAAU,CAAC;YAC1D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,8CAAuB,GAAvB,UAAyB,kBAA0B;YAClD,EAAE,CAAC,CAAC,kBAAkB,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACtF,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACrD,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,kBAAkB,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QACF,mBAAC;IAAD,CAAC,AAzHD,IAyHC;IAzHY,kBAAY,eAyHxB,CAAA;AACF,CAAC,EA3HM,KAAK,KAAL,KAAK,QA2HX;AC3HD,IAAO,KAAK,CAqvBX;AArvBD,WAAO,KAAK,EAAC,CAAC;IACb;QAKC,sBAAa,gBAAkC;YAH/C,UAAK,GAAG,CAAC,CAAC;YACF,iBAAY,GAAG,IAAI,KAAK,EAAc,CAAC;YAG9C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC1C,CAAC;QAED,uCAAgB,GAAhB,UAAkB,IAAkB;YACnC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,YAAY,GAAG,IAAI,kBAAY,EAAE,CAAC;YACtC,IAAI,IAAI,GAAG,OAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAG/D,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChC,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC;gBACzB,YAAY,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;gBACrC,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC;gBACzC,YAAY,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;gBACvC,YAAY,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;gBACzC,YAAY,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;gBACnC,YAAY,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC;YAC9C,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAE5B,IAAI,QAAM,GAAa,IAAI,CAAC;oBAC5B,IAAI,UAAU,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAChE,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;wBACxB,QAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;wBAC3C,EAAE,CAAC,CAAC,QAAM,IAAI,IAAI,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,UAAU,CAAC,CAAC;oBAC7E,CAAC;oBACD,IAAI,IAAI,GAAG,IAAI,cAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,QAAM,CAAC,CAAC;oBACzE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC1D,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAChD,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAEzG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC5B,IAAI,QAAQ,GAAW,OAAO,CAAC,IAAI,CAAC;oBACpC,IAAI,QAAQ,GAAW,OAAO,CAAC,IAAI,CAAC;oBACpC,IAAI,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC/C,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,QAAQ,CAAC,CAAC;oBAC1E,IAAI,IAAI,GAAG,IAAI,cAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAEvE,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC1D,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAEnD,IAAI,IAAI,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBACxD,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;wBAClB,IAAI,CAAC,SAAS,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACvC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBACpC,CAAC;oBAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;oBACjE,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAC7F,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACb,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,IAAI,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC/B,IAAI,IAAI,GAAG,IAAI,sBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBACpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;oBAEtD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACrD,IAAI,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAC3C,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,QAAQ,CAAC,CAAC;wBACpE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC;oBAED,IAAI,UAAU,GAAW,aAAa,CAAC,MAAM,CAAC;oBAC9C,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAChD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,UAAU,CAAC,CAAC;oBAEpF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjF,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBAElD,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvC,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAChD,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACtC,IAAI,IAAI,GAAG,IAAI,6BAAuB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC3D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;oBAEtD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACrD,IAAI,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAC3C,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,QAAQ,CAAC,CAAC;wBACtF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC;oBAED,IAAI,UAAU,GAAW,aAAa,CAAC,MAAM,CAAC;oBAC9C,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAChD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,UAAU,CAAC,CAAC;oBAEtG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;oBAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;oBAChE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAClE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC5D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAE9D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;oBACpE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAE5D,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9C,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACf,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3C,IAAI,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACjC,IAAI,IAAI,GAAG,IAAI,wBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBACtD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;oBAEtD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACrD,IAAI,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAC3C,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,QAAQ,CAAC,CAAC;wBACtF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC;oBAED,IAAI,UAAU,GAAW,aAAa,CAAC,MAAM,CAAC;oBAC9C,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAChD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,UAAU,CAAC,CAAC;oBAEtF,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;oBACjH,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAC7G,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;oBAC3G,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAClE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAC5D,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,kBAAY,CAAC,KAAK,CAAC;wBAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;oBACpE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;oBAC1D,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,iBAAW,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,iBAAW,CAAC,KAAK,CAAC;wBAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;oBAC3G,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;oBAEpE,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzC,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChB,GAAG,CAAC,CAAC,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBACjC,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;oBAClC,IAAI,IAAI,GAAG,IAAI,UAAI,CAAC,QAAQ,CAAC,CAAC;oBAC9B,GAAG,CAAC,CAAC,IAAI,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;wBAC9B,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;wBACrD,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;wBACpE,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAChC,GAAG,CAAC,CAAC,IAAI,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC;4BAC/B,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;4BACnG,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;gCAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;wBAC9E,CAAC;oBACF,CAAC;oBACD,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9B,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;wBAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC7D,CAAC;YACF,CAAC;YAGD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1D,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtC,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,IAAI,GAAG,YAAY,CAAC,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvG,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;gBACxE,IAAI,QAAM,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;gBACzE,EAAE,CAAC,CAAC,QAAM,IAAI,IAAI,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;gBACnF,UAAU,CAAC,IAAI,CAAC,aAAa,CAAkB,QAAM,CAAC,CAAC;gBACvD,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAG7B,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACjB,GAAG,CAAC,CAAC,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBACnC,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACtC,IAAI,IAAI,GAAG,IAAI,eAAS,CAAC,SAAS,CAAC,CAAC;oBACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;oBACzD,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBACrB,GAAG,CAAC,CAAC,IAAI,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC3C,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;oBAClD,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;gBAC/D,CAAC;YACF,CAAC;YAED,MAAM,CAAC,YAAY,CAAC;QACrB,CAAC;QAED,qCAAc,GAAd,UAAgB,GAAQ,EAAE,IAAU,EAAE,SAAiB,EAAE,IAAY,EAAE,YAA0B;YAChG,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAExC,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEhD,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACd,KAAK,QAAQ,EAAE,CAAC;oBACf,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC5C,IAAI,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBACzE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;oBAChC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;oBACnB,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC9C,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC9C,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAChD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAChD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBACpD,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;oBACjC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;oBAEnC,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBACtD,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAErD,MAAM,CAAC,YAAY,EAAE,CAAC;oBACtB,MAAM,CAAC,MAAM,CAAC;gBACf,CAAC;gBACD,KAAK,aAAa,EAAE,CAAC;oBACpB,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACrE,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;oBAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;oBAClD,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBACtD,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAClD,MAAM,CAAC,GAAG,CAAC;gBACZ,CAAC;gBACD,KAAK,MAAM,CAAC;gBACZ,KAAK,YAAY,EAAE,CAAC;oBACnB,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC5C,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBACrE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;oBAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;oBAEjB,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC9C,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAEnD,IAAI,QAAM,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBACxD,EAAE,CAAC,CAAC,QAAM,IAAI,IAAI,CAAC,CAAC,CAAC;wBACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;wBACxD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,EAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,QAAM,CAAC,CAAC,CAAC;wBAC3G,MAAM,CAAC,IAAI,CAAC;oBACb,CAAC;oBAED,IAAI,GAAG,GAAkB,GAAG,CAAC,GAAG,CAAC;oBACjC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;oBACzC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;oBAC/B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;oBACrB,IAAI,CAAC,SAAS,EAAE,CAAC;oBAEjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBACpD,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBACD,KAAK,MAAM,EAAE,CAAC;oBACb,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC/D,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;oBAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAClD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;oBAE/D,IAAI,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;oBAClC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;oBAE/C,IAAI,OAAO,GAAkB,WAAK,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBAChE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE;wBAC1C,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;oBAEvB,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBACtD,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACnD,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;gBACD,KAAK,OAAO,EAAE,CAAC;oBACd,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACjE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;oBAC/B,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC7C,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC7C,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAEnD,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC9C,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACpD,MAAM,CAAC,KAAK,CAAC;gBACd,CAAC;gBACD,KAAK,UAAU,EAAE,CAAC;oBACjB,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACnE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC;oBAE9B,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;oBAC1C,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;wBACjB,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;wBACtC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,GAAG,CAAC,CAAC;wBACzE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACrB,CAAC;oBAED,IAAI,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;oBAClC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;oBAE/C,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBACtD,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACnD,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC;YACF,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,mCAAY,GAAZ,UAAc,GAAQ,EAAE,UAA4B,EAAE,cAAsB;YAC3E,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,UAAU,CAAC,mBAAmB,GAAG,cAAc,CAAC;YAChD,IAAI,QAAQ,GAAkB,GAAG,CAAC,QAAQ,CAAC;YAC3C,EAAE,CAAC,CAAC,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBACvC,IAAI,cAAc,GAAG,WAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAClD,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;wBAC9C,cAAc,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;gBAC7B,CAAC;gBACD,UAAU,CAAC,QAAQ,GAAG,cAAc,CAAC;gBACrC,MAAM,CAAC;YACR,CAAC;YACD,IAAI,OAAO,GAAG,IAAI,KAAK,EAAU,CAAC;YAClC,IAAI,KAAK,GAAG,IAAI,KAAK,EAAU,CAAC;YAChC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC7C,IAAI,SAAS,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;oBACtC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;oBACtC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YACD,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;YACzB,UAAU,CAAC,QAAQ,GAAG,WAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;QAED,oCAAa,GAAb,UAAe,GAAQ,EAAE,IAAY,EAAE,YAA0B;YAChE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,SAAS,GAAG,IAAI,KAAK,EAAY,CAAC;YACtC,IAAI,QAAQ,GAAG,CAAC,CAAC;YAGjB,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACf,GAAG,CAAC,CAAC,IAAI,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;oBAChC,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAClC,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACrD,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;oBACpE,GAAG,CAAC,CAAC,IAAI,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC;wBAClC,IAAI,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;wBACxC,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC;4BAClC,IAAI,QAAQ,GAAG,IAAI,wBAAkB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BAC1D,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;4BAC/D,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC9E,CAAC;wBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC;4BACpC,IAAI,QAAQ,GAAG,IAAI,mBAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACrD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,IAAI,KAAK,GAAG,IAAI,WAAK,EAAE,CAAC;gCACxB,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gCACpC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;gCACjF,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,mBAAa,CAAC,OAAO,CAAC,CAAC,CAAC;wBAExG,CAAC;wBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,IAAI,UAAU,CAAC,CAAC,CAAC;4BACvC,IAAI,QAAQ,GAAG,IAAI,sBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACxD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,IAAI,KAAK,GAAG,IAAI,WAAK,EAAE,CAAC;gCACxB,IAAI,IAAI,GAAG,IAAI,WAAK,EAAE,CAAC;gCACvB,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gCACpC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gCAClC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gCACzG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,sBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;wBAE3G,CAAC;wBAAC,IAAI;4BACL,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,YAAY,GAAG,IAAI,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;oBAC/F,CAAC;gBACF,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACf,GAAG,CAAC,CAAC,IAAI,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;oBAChC,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAClC,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACrD,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;oBACpE,GAAG,CAAC,CAAC,IAAI,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC;wBAClC,IAAI,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;wBACxC,EAAE,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC;4BAC/B,IAAI,QAAQ,GAAG,IAAI,oBAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACtD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gCAC7D,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,oBAAc,CAAC,OAAO,CAAC,CAAC,CAAC;wBAEzG,CAAC;wBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,KAAK,WAAW,IAAI,YAAY,KAAK,OAAO,IAAI,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC;4BACjG,IAAI,QAAQ,GAAsB,IAAI,CAAC;4BACvC,IAAI,aAAa,GAAG,CAAC,CAAC;4BACtB,EAAE,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC;gCAC5B,QAAQ,GAAG,IAAI,mBAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BAClD,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC;gCACjC,QAAQ,GAAG,IAAI,mBAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BAClD,IAAI,CAAC,CAAC;gCACL,QAAQ,GAAG,IAAI,uBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gCACrD,aAAa,GAAG,KAAK,CAAC;4BACvB,CAAC;4BACD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gCAC7E,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC;gCACnF,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,uBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;wBAE5G,CAAC;wBAAC,IAAI;4BACL,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,YAAY,GAAG,IAAI,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;oBAC/F,CAAC;gBACF,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACZ,GAAG,CAAC,CAAC,IAAI,cAAc,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBACnC,IAAI,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;oBAC3C,IAAI,UAAU,GAAG,YAAY,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;oBAC/D,IAAI,QAAQ,GAAG,IAAI,0BAAoB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;oBAC9D,QAAQ,CAAC,iBAAiB,GAAG,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC5E,IAAI,UAAU,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC/C,IAAI,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;wBAChC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,EAC7E,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACzD,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;wBAC/C,UAAU,EAAE,CAAC;oBACd,CAAC;oBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,0BAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC/G,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;gBACnB,GAAG,CAAC,CAAC,IAAI,cAAc,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC1C,IAAI,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;oBAClD,IAAI,UAAU,GAAG,YAAY,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;oBACtE,IAAI,QAAQ,GAAG,IAAI,iCAA2B,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;oBACrE,QAAQ,CAAC,wBAAwB,GAAG,YAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC1F,IAAI,UAAU,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC/C,IAAI,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;wBAChC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,EACnF,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC7H,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;wBAC/C,UAAU,EAAE,CAAC;oBACd,CAAC;oBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAC3B,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,iCAA2B,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzF,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACf,GAAG,CAAC,CAAC,IAAI,cAAc,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtC,IAAI,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;oBAC9C,IAAI,KAAK,GAAG,YAAY,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;oBACjE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,cAAc,CAAC,CAAC;oBACjF,IAAI,IAAI,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oBAC/C,GAAG,CAAC,CAAC,IAAI,YAAY,IAAI,aAAa,CAAC,CAAC,CAAC;wBACxC,IAAI,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;wBAC9C,EAAE,CAAC,CAAC,YAAY,KAAK,UAAU,IAAI,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC;4BAC/D,IAAI,QAAQ,GAAmC,IAAI,CAAC;4BACpD,IAAI,aAAa,GAAG,CAAC,CAAC;4BACtB,EAAE,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC;gCAChC,QAAQ,GAAG,IAAI,mCAA6B,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gCACjE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,iBAAW,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,iBAAW,CAAC,KAAK,CAAC;oCAAC,aAAa,GAAG,KAAK,CAAC;4BAC5G,CAAC;4BAAC,IAAI,CAAC,CAAC;gCACP,QAAQ,GAAG,IAAI,oCAA8B,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gCAClE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,kBAAY,CAAC,KAAK,CAAC;oCAAC,aAAa,GAAG,KAAK,CAAC;4BACpE,CAAC;4BACD,QAAQ,CAAC,mBAAmB,GAAG,KAAK,CAAC;4BACrC,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;gCACvG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAC3B,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,oCAA8B,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC5F,CAAC;wBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC;4BACnC,IAAI,QAAQ,GAAG,IAAI,+BAAyB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACjE,QAAQ,CAAC,mBAAmB,GAAG,KAAK,CAAC;4BACrC,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,EACnF,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;gCAC7C,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAC3B,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,+BAAyB,CAAC,OAAO,CAAC,CAAC,CAAC;wBACvF,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YAGD,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChB,GAAG,CAAC,CAAC,IAAI,UAAU,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;oBACnC,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBACvC,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAC7C,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,UAAU,CAAC,CAAC;oBACnE,GAAG,CAAC,CAAC,IAAI,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC;wBAChC,IAAI,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;wBAClC,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;wBACrD,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;4BAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;wBACxE,GAAG,CAAC,CAAC,IAAI,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC;4BAClC,IAAI,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;4BACxC,IAAI,UAAU,GAAqB,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;4BAC/E,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;gCAAC,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;4BAC5F,IAAI,QAAQ,GAAG,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC;4BACxC,IAAI,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;4BACnC,IAAI,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;4BAExE,IAAI,QAAQ,GAAG,IAAI,oBAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACtD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAC/B,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;4BAEjC,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC7C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,IAAI,MAAM,SAAmB,CAAC;gCAC9B,IAAI,aAAa,GAAkB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;gCAC7E,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC;oCACzB,MAAM,GAAG,QAAQ,GAAG,WAAK,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;gCAClE,IAAI,CAAC,CAAC;oCACL,MAAM,GAAG,WAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;oCAC3C,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oCACzD,WAAK,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;oCACvE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;wCAChB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;4CAC3D,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;oCACrB,CAAC;oCACD,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;wCACf,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE;4CACpC,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAC3B,CAAC;gCACF,CAAC;gCAED,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gCACrD,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;4BACd,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC9E,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YAGD,IAAI,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC;YAClC,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC;gBAAC,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC;YACzD,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC3B,IAAI,QAAQ,GAAG,IAAI,uBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAC3D,IAAI,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC1C,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/C,IAAI,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;oBACpC,IAAI,SAAS,GAAkB,IAAI,CAAC;oBACpC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;oBAC3D,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;wBACrB,SAAS,GAAG,WAAK,CAAC,QAAQ,CAAS,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;wBAClD,IAAI,SAAS,GAAG,WAAK,CAAC,QAAQ,CAAS,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBACtE,IAAI,aAAa,GAAG,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC;wBAC1C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACzC,IAAI,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;4BAC3B,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;4BAC3D,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;gCAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;4BAE1E,OAAO,aAAa,IAAI,SAAS;gCAChC,SAAS,CAAC,cAAc,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC;4BAE/C,SAAS,CAAC,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;wBAC/D,CAAC;wBAED,OAAO,aAAa,GAAG,SAAS;4BAC/B,SAAS,CAAC,cAAc,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC;wBAE/C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;4BACtC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gCAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC;oBACrE,CAAC;oBACD,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC/D,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9E,CAAC;YAGD,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChB,IAAI,QAAQ,GAAG,IAAI,mBAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACpD,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,IAAI,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC7B,IAAI,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACtD,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC5E,IAAI,OAAK,GAAG,IAAI,WAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBAChD,OAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACpE,OAAK,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;oBAC1E,OAAK,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;oBAC7E,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,OAAK,CAAC,CAAC;gBACxC,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9E,CAAC;YAED,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACnE,CAAC;YAED,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,eAAS,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,gCAAS,GAAT,UAAW,GAAQ,EAAE,QAAuB,EAAE,UAAkB;YAC/D,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAC,MAAM,CAAC;YACvB,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC;gBAC3B,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACjC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACzE,IAAI,KAAK,GAAkB,GAAG,CAAC,KAAK,CAAC;gBACrC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,CAAC;QACF,CAAC;QAED,+BAAQ,GAAR,UAAU,GAAQ,EAAE,IAAY,EAAE,YAAiB;YAClD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;QAC3D,CAAC;QAEM,gCAAmB,GAA1B,UAA4B,GAAW;YACtC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC;gBAAC,MAAM,CAAC,eAAS,CAAC,MAAM,CAAC;YAC7C,EAAE,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC;gBAAC,MAAM,CAAC,eAAS,CAAC,QAAQ,CAAC;YACjD,EAAE,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC;gBAAC,MAAM,CAAC,eAAS,CAAC,QAAQ,CAAC;YACjD,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC;gBAAC,MAAM,CAAC,eAAS,CAAC,MAAM,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,yBAAuB,GAAK,CAAC,CAAC;QAC/C,CAAC;QAEM,mCAAsB,GAA7B,UAA+B,GAAW;YACzC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,EAAE,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC;gBAAC,MAAM,CAAC,kBAAY,CAAC,KAAK,CAAC;YAC9C,EAAE,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC;gBAAC,MAAM,CAAC,kBAAY,CAAC,OAAO,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,4BAA0B,GAAK,CAAC,CAAC;QAClD,CAAC;QAEM,kCAAqB,GAA5B,UAA8B,GAAW;YACxC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC;gBAAC,MAAM,CAAC,iBAAW,CAAC,MAAM,CAAC;YAC/C,EAAE,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC;gBAAC,MAAM,CAAC,iBAAW,CAAC,KAAK,CAAC;YAC7C,EAAE,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC;gBAAC,MAAM,CAAC,iBAAW,CAAC,OAAO,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,4BAA0B,GAAK,CAAC,CAAC;QAClD,CAAC;QAEM,iCAAoB,GAA3B,UAA6B,GAAW;YACvC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,EAAE,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC;gBAAC,MAAM,CAAC,gBAAU,CAAC,OAAO,CAAC;YAChD,EAAE,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC;gBAAC,MAAM,CAAC,gBAAU,CAAC,KAAK,CAAC;YAC5C,EAAE,CAAC,CAAC,GAAG,IAAI,YAAY,CAAC;gBAAC,MAAM,CAAC,gBAAU,CAAC,UAAU,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,0BAAwB,GAAK,CAAC,CAAC;QAChD,CAAC;QAEM,oCAAuB,GAA9B,UAA+B,GAAW;YACzC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC;gBAAC,MAAM,CAAC,mBAAa,CAAC,MAAM,CAAC;YACjD,EAAE,CAAC,CAAC,GAAG,IAAI,iBAAiB,CAAC;gBAAC,MAAM,CAAC,mBAAa,CAAC,eAAe,CAAC;YACnE,EAAE,CAAC,CAAC,GAAG,IAAI,wBAAwB,CAAC;gBAAC,MAAM,CAAC,mBAAa,CAAC,sBAAsB,CAAC;YACjF,EAAE,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC;gBAAC,MAAM,CAAC,mBAAa,CAAC,OAAO,CAAC;YACnD,EAAE,CAAC,CAAC,GAAG,IAAI,qBAAqB,CAAC;gBAAC,MAAM,CAAC,mBAAa,CAAC,mBAAmB,CAAC;YAC3E,MAAM,IAAI,KAAK,CAAC,6BAA2B,GAAK,CAAC,CAAC;QACnD,CAAC;QACF,mBAAC;IAAD,CAAC,AAtuBD,IAsuBC;IAtuBY,kBAAY,eAsuBxB,CAAA;IAED;QAKC,oBAAa,IAAoB,EAAE,IAAY,EAAE,SAAiB,EAAE,MAAc;YACjF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,CAAC;QACF,iBAAC;IAAD,CAAC,AAXD,IAWC;AACF,CAAC,EArvBM,KAAK,KAAL,KAAK,QAqvBX;ACrvBD,IAAO,KAAK,CA6CX;AA7CD,WAAO,KAAK,EAAC,CAAC;IACb;QAIC,cAAa,IAAY;YAFzB,gBAAW,GAAG,IAAI,KAAK,EAAmB,CAAC;YAG1C,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QAED,4BAAa,GAAb,UAAe,SAAiB,EAAE,IAAY,EAAE,UAAsB;YACrE,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACtE,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,EAAE,CAAC,CAAC,SAAS,IAAI,WAAW,CAAC,MAAM,CAAC;gBAAC,WAAW,CAAC,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC;YACxE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAG,CAAC;YAC1D,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAC3C,CAAC;QAGD,4BAAa,GAAb,UAAe,SAAiB,EAAE,IAAY;YAC7C,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC7C,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC7C,CAAC;QAGD,wBAAS,GAAT,UAAW,QAAkB,EAAE,OAAa;YAC3C,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChD,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC1C,EAAE,CAAC,CAAC,cAAc,IAAI,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC9D,IAAI,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;oBAChD,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;wBAC5B,IAAI,cAAc,GAAc,UAAU,CAAC,GAAG,CAAC,CAAC;wBAChD,EAAE,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC;4BACtC,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;4BACpD,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;gCAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;4BACvD,KAAK,CAAC;wBACP,CAAC;oBACF,CAAC;gBACF,CAAC;gBACD,SAAS,EAAE,CAAC;YACb,CAAC;QACF,CAAC;QACF,WAAC;IAAD,CAAC,AA3CD,IA2CC;IA3CY,UAAI,OA2ChB,CAAA;AACF,CAAC,EA7CM,KAAK,KAAL,KAAK,QA6CX;AC7CD,IAAO,KAAK,CAsDX;AAtDD,WAAO,KAAK,EAAC,CAAC;IACb;QASC,cAAa,IAAc,EAAE,IAAU;YAFvC,uBAAkB,GAAG,IAAI,KAAK,EAAU,CAAC;YAGxC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,WAAK,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,WAAK,EAAE,CAAC;YAC7D,IAAI,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC;QAGD,4BAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACxB,CAAC;QAID,4BAAa,GAAb,UAAe,UAAsB;YACpC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC;gBAAC,MAAM,CAAC;YAC1C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC9C,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;QACpC,CAAC;QAED,gCAAiB,GAAjB,UAAmB,IAAY;YAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QACtD,CAAC;QAGD,gCAAiB,GAAjB;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;QACtD,CAAC;QAED,6BAAc,GAAd;YACC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;gBAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7E,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;gBACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,CAAC;gBACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACjG,CAAC;QACF,CAAC;QACF,WAAC;IAAD,CAAC,AApDD,IAoDC;IApDY,UAAI,OAoDhB,CAAA;AACF,CAAC,EAtDM,KAAK,KAAL,KAAK,QAsDX;ACtDD,IAAO,KAAK,CAmBX;AAnBD,WAAO,KAAK,EAAC,CAAC;IACb;QASC,kBAAa,KAAa,EAAE,IAAY,EAAE,QAAkB;YAL5D,UAAK,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAM7B,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACtD,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1B,CAAC;QACF,eAAC;IAAD,CAAC,AAjBD,IAiBC;IAjBY,cAAQ,WAiBpB,CAAA;AACF,CAAC,EAnBM,KAAK,KAAL,KAAK,QAmBX;ACnBD,IAAO,KAAK,CAgEX;AAhED,WAAO,KAAK,EAAC,CAAC;IACb;QAGC,iBAAa,KAAuB;YACnC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACrB,CAAC;QAED,0BAAQ,GAAR;YACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QAMa,wBAAgB,GAA9B,UAAgC,IAAY;YAC3C,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC5B,KAAK,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;gBAC7C,KAAK,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;gBAC3C,KAAK,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;gBAC3C,KAAK,sBAAsB,EAAE,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAC;gBACvE,KAAK,qBAAqB,EAAE,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC;gBACrE,KAAK,qBAAqB,EAAE,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC;gBACrE,KAAK,oBAAoB,EAAE,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC;gBACnE,SAAS,MAAM,IAAI,KAAK,CAAC,4BAA0B,IAAM,CAAC,CAAC;YAC5D,CAAC;QACF,CAAC;QAEa,sBAAc,GAA5B,UAA8B,IAAY;YACzC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC5B,KAAK,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC;gBACzD,KAAK,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;gBACnD,KAAK,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;gBACzC,SAAS,MAAM,IAAI,KAAK,CAAC,0BAAwB,IAAM,CAAC,CAAC;YAC1D,CAAC;QACF,CAAC;QACF,cAAC;IAAD,CAAC,AApCD,IAoCC;IApCqB,aAAO,UAoC5B,CAAA;IAED,WAAY,aAAa;QACxB,0DAAc,CAAA;QACd,wDAAa,CAAA;QACb,wDAAa,CAAA;QACb,oFAA2B,CAAA;QAC3B,kFAA0B,CAAA;QAC1B,kFAA0B,CAAA;QAC1B,gFAAyB,CAAA;IAC1B,CAAC,EARW,mBAAa,KAAb,mBAAa,QAQxB;IARD,IAAY,aAAa,GAAb,mBAQX,CAAA;IAED,WAAY,WAAW;QACtB,qEAAsB,CAAA;QACtB,+DAAmB,CAAA;QACnB,qDAAc,CAAA;IACf,CAAC,EAJW,iBAAW,KAAX,iBAAW,QAItB;IAJD,IAAY,WAAW,GAAX,iBAIX,CAAA;IAED;QAAA;YAEC,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YACb,OAAE,GAAG,CAAC,CAAC;YAAC,OAAE,GAAG,CAAC,CAAC;YACf,UAAK,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YACtB,WAAM,GAAG,KAAK,CAAC;YACf,YAAO,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YACzB,kBAAa,GAAG,CAAC,CAAC;YAAC,mBAAc,GAAG,CAAC,CAAC;QACvC,CAAC;QAAD,oBAAC;IAAD,CAAC,AARD,IAQC;IARY,mBAAa,gBAQzB,CAAA;AACF,CAAC,EAhEM,KAAK,KAAL,KAAK,QAgEX;AChED,IAAO,KAAK,CAqLX;AArLD,WAAO,KAAK,EAAC,CAAC;IACb;QAIC,sBAAa,SAAiB,EAAE,aAAoC;YAHpE,UAAK,GAAG,IAAI,KAAK,EAAoB,CAAC;YACtC,YAAO,GAAG,IAAI,KAAK,EAAsB,CAAC;YAGzC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACrC,CAAC;QAEO,2BAAI,GAAZ,UAAc,SAAiB,EAAE,aAAoC;YACpE,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAElD,IAAI,MAAM,GAAG,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,KAAK,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;YACjC,IAAI,IAAI,GAAoB,IAAI,CAAC;YACjC,OAAO,IAAI,EAAE,CAAC;gBACb,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC7B,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;oBAChB,KAAK,CAAC;gBACP,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;oBACpB,IAAI,GAAG,IAAI,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBAChB,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAAC;oBAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;oBAEjB,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAClC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBACjC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACzB,CAAC;oBAGD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACxB,IAAI,CAAC,SAAS,GAAG,aAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpD,IAAI,CAAC,SAAS,GAAG,aAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEpD,IAAI,SAAS,GAAE,MAAM,CAAC,SAAS,EAAE,CAAC;oBAClC,IAAI,CAAC,KAAK,GAAG,iBAAW,CAAC,WAAW,CAAC;oBACrC,IAAI,CAAC,KAAK,GAAG,iBAAW,CAAC,WAAW,CAAC;oBACrC,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC;wBACpB,IAAI,CAAC,KAAK,GAAG,iBAAW,CAAC,MAAM,CAAC;oBACjC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC;wBACzB,IAAI,CAAC,KAAK,GAAG,iBAAW,CAAC,MAAM,CAAC;oBACjC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;wBAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,iBAAW,CAAC,MAAM,CAAC;oBAE9C,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;oBACnC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;oBACxD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC;oBAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;oBAC7C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,MAAM,GAAsB,IAAI,kBAAkB,EAAE,CAAC;oBACzD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;oBACnB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;oBAEnB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,IAAI,MAAM,CAAC;oBAE7C,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACxB,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3B,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAE3B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACxB,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/B,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEhC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC1B,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;oBAC3B,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;wBACnB,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;wBACtC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;oBACvC,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;wBACrC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;oBACxC,CAAC;oBACD,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;oBACb,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;oBACb,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC/B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAEjC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAElC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BAElC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wBACzB,CAAC;oBACF,CAAC;oBAED,MAAM,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1C,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAE3C,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACxB,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEpC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;oBAE5C,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;oBAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3B,CAAC;YACF,CAAC;QACF,CAAC;QAED,iCAAU,GAAV,UAAY,IAAY;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;oBAClC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACxB,CAAC;YACF,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,8BAAO,GAAP;YACC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACjC,CAAC;QACF,CAAC;QACF,mBAAC;IAAD,CAAC,AAvHD,IAuHC;IAvHY,kBAAY,eAuHxB,CAAA;IAED;QAIC,4BAAa,IAAY;YAFzB,UAAK,GAAW,CAAC,CAAC;YAGjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;QAED,qCAAQ,GAAR;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACjC,CAAC;QAED,sCAAS,GAAT;YACC,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,KAAK,GAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,CAAC;QAED,sCAAS,GAAT,UAAW,KAAoB;YAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;YACjC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnB,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBACzC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;oBAAC,KAAK,CAAC;gBACvB,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC5D,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5C,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACd,CAAC;QACF,yBAAC;IAAD,CAAC,AArCD,IAqCC;IAED;QAAA;QASA,CAAC;QAAD,uBAAC;IAAD,CAAC,AATD,IASC;IATY,sBAAgB,mBAS5B,CAAA;IAED;QAAwC,sCAAa;QAArD;YAAwC,8BAAa;QAQrD,CAAC;QAAD,yBAAC;IAAD,CAAC,AARD,CAAwC,mBAAa,GAQpD;IARY,wBAAkB,qBAQ9B,CAAA;AACF,CAAC,EArLM,KAAK,KAAL,KAAK,QAqLX;ACrLD,IAAO,KAAK,CAqPX;AArPD,WAAO,KAAK,EAAC,CAAC;IACb;QAOC,6BAAa,IAA6B,EAAE,QAAkB;YAH9D,cAAS,GAAG,CAAC,CAAC;YAAC,iBAAY,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAC5D,SAAI,GAAG,IAAI,aAAO,EAAE,CAAC;YAGpB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;gBACzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QAED,mCAAK,GAAL;YACC,IAAI,CAAC,MAAM,EAAE,CAAC;QACf,CAAC;QAED,oCAAM,GAAN;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC3B,IAAI;oBACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAE5B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC3B,IAAI;oBACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,CAAC;QACF,CAAC;QAED,gDAAkB,GAAlB;YACC,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,eAAS,CAAC,MAAM,GAAG,CAAC,eAAS,CAAC,MAAM,CAAC;YACjF,IAAI,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YAC9D,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;YAC1D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;gBAErB,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;oBACnD,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,cAAc,CAAC;oBAC/D,EAAE,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,EAAE,CAAC;wBACpB,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBACpB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,eAAS,CAAC,EAAE,CAAC;wBAC1B,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBACpB,CAAC,IAAI,SAAS,CAAC;oBACf,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACzC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACrB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBACpE,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;oBACrD,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;oBACrD,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrD,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBACtC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;wBAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC5E,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACjD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBAClC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;wBAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC5E,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;oBAC3B,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC1B,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpF,EAAE,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,EAAE,CAAC;wBACpB,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBACpB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,eAAS,CAAC,EAAE,CAAC;wBAC1B,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBACpB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,QAAQ,CAAC;oBACvC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,CAAC;oBAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YACzC,CAAC;QACF,CAAC;QAED,gDAAkB,GAAlB;YACC,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,eAAS,CAAC,MAAM,GAAG,CAAC,eAAS,CAAC,MAAM,CAAC;YACjF,IAAI,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;YACrH,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;gBAErB,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;oBACnD,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,cAAc,CAAC;oBAC5C,EAAE,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,EAAE,CAAC;wBACpB,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBACpB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,eAAS,CAAC,EAAE,CAAC;wBAAC,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBAC/C,CAAC,IAAI,SAAS,CAAC;oBACf,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACzC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACrB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBACpE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC;oBACrC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC;oBACrC,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;oBACnF,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;oBAC/E,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBAChD,EAAE,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,EAAE,CAAC;wBACpB,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBACpB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,eAAS,CAAC,EAAE,CAAC;wBAAC,CAAC,IAAI,eAAS,CAAC,GAAG,CAAC;oBAC/C,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;oBAC3B,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,eAAS,CAAC,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,QAAQ,CAAC;oBACxE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,CAAC;oBAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YACzC,CAAC;QACF,CAAC;QAED,gDAAkB,GAAlB;YACC,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gBAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;YAC1D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;oBAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAEtD,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC9B,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;oBAC/D,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;oBAC1D,QAAQ,IAAI,CAAC,GAAG,SAAS,CAAC;gBAC3B,CAAC;gBAED,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;gBAC7B,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;oBACxD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;gBACzD,CAAC;gBAED,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBACjD,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC;wBAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,MAAM,CAAC;oBACjH,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC;wBAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,MAAM,CAAC;gBAClH,CAAC;gBAED,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC1B,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;oBACzD,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;oBAC1D,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,QAAQ,CAAC;gBAC7B,CAAC;gBAED,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrF,CAAC;QACF,CAAC;QAED,gDAAkB,GAAlB;YACC,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gBAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;YAC1D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;oBAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAEtD,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC9B,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC;oBAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;gBAE1F,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;gBAC7B,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;oBACpD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;gBACrD,CAAC;gBAED,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBACjD,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC;wBAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC/F,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC;wBAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAChG,CAAC;gBAED,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC1B,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;oBAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;gBAEjF,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrF,CAAC;QACF,CAAC;QAED,sCAAQ,GAAR;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,CAAC;QACF,0BAAC;IAAD,CAAC,AAnPD,IAmPC;IAnPY,yBAAmB,sBAmP/B,CAAA;AACF,CAAC,EArPM,KAAK,KAAL,KAAK,QAqPX;ACrPD,IAAO,KAAK,CAgBX;AAhBD,WAAO,KAAK,EAAC,CAAC;IACb;QAUC,iCAAa,IAAY;YARzB,UAAK,GAAG,CAAC,CAAC;YACV,UAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAE9B,cAAS,GAAG,CAAC,CAAC;YAAC,iBAAY,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC;YAC5D,mBAAc,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAAC,iBAAY,GAAG,CAAC,CAAC;YAAC,iBAAY,GAAG,CAAC,CAAC;YAAC,iBAAY,GAAG,CAAC,CAAC;YACnG,aAAQ,GAAG,KAAK,CAAC;YACjB,UAAK,GAAG,KAAK,CAAC;YAGb,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,8BAAC;IAAD,CAAC,AAdD,IAcC;IAdY,6BAAuB,0BAcnC,CAAA;AACF,CAAC,EAhBM,KAAK,KAAL,KAAK,QAgBX;AChBD,IAAO,KAAK,CA+OX;AA/OD,WAAO,KAAK,EAAC,CAAC;IACb;QAAA;YACS,mBAAc,GAAG,IAAI,KAAK,EAAiB,CAAC;YAC5C,0BAAqB,GAAG,IAAI,KAAK,EAAiB,CAAC;YAEnD,iBAAY,GAAG,IAAI,KAAK,EAAU,CAAC;YACnC,mBAAc,GAAG,IAAI,KAAK,EAAW,CAAC;YACtC,cAAS,GAAG,IAAI,KAAK,EAAU,CAAC;YAEhC,gBAAW,GAAG,IAAI,UAAI,CAAgB;gBAC7C,MAAM,CAAC,IAAI,KAAK,EAAU,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEK,uBAAkB,GAAG,IAAI,UAAI,CAAgB;gBACpD,MAAM,CAAC,IAAI,KAAK,EAAU,CAAC;YAC5B,CAAC,CAAC,CAAC;QA+NJ,CAAC;QA7NO,kCAAW,GAAlB,UAAoB,aAAgC;YACnD,IAAI,QAAQ,GAAG,aAAa,CAAC;YAC7B,IAAI,WAAW,GAAG,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC;YAE5C,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;YAChC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;gBACnC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhB,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;YACpC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACrB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBAC1C,SAAS,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAE1E,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAErB,OAAO,WAAW,GAAG,CAAC,EAAE,CAAC;gBAExB,IAAI,QAAQ,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;gBAChD,OAAO,IAAI,EAAE,CAAC;oBACb,KAAK,EACL,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnB,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC/E,IAAI,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC/C,IAAI,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC/C,IAAI,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC/C,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,EAAE,IAAI,QAAQ,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC;4BACrF,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gCAAC,QAAQ,CAAC;4BAC7B,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;4BACzB,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;4BAC3C,EAAE,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gCAC3D,EAAE,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;oCAC3D,EAAE,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;wCAAC,KAAK,CAAC,KAAK,CAAC;gCACxE,CAAC;4BACF,CAAC;wBACF,CAAC;wBACD,KAAK,CAAC;oBACP,CAAC;oBAED,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;wBACf,GAAG,CAAC;4BACH,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gCAAC,KAAK,CAAC;4BACzB,CAAC,EAAE,CAAC;wBACL,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;wBAChB,KAAK,CAAC;oBACP,CAAC;oBAED,QAAQ,GAAG,CAAC,CAAC;oBACb,CAAC,GAAG,IAAI,CAAC;oBACT,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;gBACjC,CAAC;gBAGD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;gBAC7D,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;gBAC/C,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvB,WAAW,EAAE,CAAC;gBAEd,IAAI,aAAa,GAAG,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;gBACxD,IAAI,SAAS,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;gBACzC,SAAS,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACjG,SAAS,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC1F,CAAC;YAED,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC;gBACtB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YAED,MAAM,CAAC,SAAS,CAAC;QAClB,CAAC;QAED,gCAAS,GAAT,UAAW,aAA4B,EAAE,SAAwB;YAChE,IAAI,QAAQ,GAAG,aAAa,CAAC;YAC7B,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACzC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAE1B,IAAI,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACvD,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACvD,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;YAEjC,IAAI,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;YACtD,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAE1B,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACxC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAGnB,IAAI,YAAY,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC;YACvC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrD,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;gBACnF,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAG7C,IAAI,MAAM,GAAG,KAAK,CAAC;gBACnB,EAAE,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;oBACxB,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC3B,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBACxG,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5F,EAAE,CAAC,CAAC,QAAQ,IAAI,WAAW,IAAI,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC;wBACxD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACjB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACxB,MAAM,GAAG,IAAI,CAAC;oBACf,CAAC;gBACF,CAAC;gBAGD,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACb,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;wBACxB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC7B,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC5C,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;wBAC9B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC9C,CAAC;oBACD,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;oBACpC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;oBACnB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;oBAClD,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC1B,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxB,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC3D,YAAY,GAAG,EAAE,CAAC;gBACnB,CAAC;YACF,CAAC;YAED,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBACxB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7B,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC5C,CAAC;YAGD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvD,cAAc,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC1C,EAAE,CAAC,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,CAAC;oBAAC,QAAQ,CAAC;gBACzC,IAAI,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,SAAS,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAE1D,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC3B,IAAI,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvD,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnD,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC/C,IAAI,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAEvF,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;oBAC/B,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;wBAAC,QAAQ,CAAC;oBACtB,IAAI,YAAY,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC;oBAC7C,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;wBAAC,QAAQ,CAAC;oBACvC,IAAI,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBACtC,IAAI,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBACvC,IAAI,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBAErC,IAAI,SAAS,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;oBACnC,IAAI,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAE/E,EAAE,CAAC,CAAC,eAAe,IAAI,UAAU,IAAI,gBAAgB,IAAI,SAAS,CAAC;wBAAC,QAAQ,CAAC;oBAC7E,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBAChF,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC9E,EAAE,CAAC,CAAC,QAAQ,IAAI,OAAO,IAAI,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;wBAChD,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;wBACrB,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;wBACxB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACjB,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;wBACpC,SAAS,GAAG,KAAK,CAAC;wBAClB,SAAS,GAAG,KAAK,CAAC;wBAClB,KAAK,GAAG,EAAE,CAAC;wBACX,KAAK,GAAG,EAAE,CAAC;wBACX,EAAE,GAAG,CAAC,CAAC;oBACR,CAAC;gBACF,CAAC;YACF,CAAC;YAGD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrD,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC5B,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;oBACzB,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC/B,cAAc,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAA;oBACzC,qBAAqB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;oBAClC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC9C,CAAC;YACF,CAAC;YAED,MAAM,CAAC,cAAc,CAAC;QACvB,CAAC;QAEc,sBAAS,GAAxB,UAA0B,KAAa,EAAE,WAAmB,EAAE,QAA2B,EAAE,OAA0B;YACpH,IAAI,QAAQ,GAAG,OAAO,CAAC,CAAC,WAAW,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACrE,IAAI,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,EAC7H,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QAEc,yBAAY,GAA3B,UAA6B,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW;YACxG,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QACvE,CAAC;QAEc,oBAAO,GAAtB,UAAwB,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW;YACnG,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;YACnC,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,CAAC;QACF,mBAAC;IAAD,CAAC,AA7OD,IA6OC;IA7OY,kBAAY,eA6OxB,CAAA;AACF,CAAC,EA/OM,KAAK,KAAL,KAAK,QA+OX;AE/OD,IAAO,KAAK,CAkUX;AAlUD,WAAO,KAAK,EAAC,CAAC;IAKb;QAAA;YACC,UAAK,GAAG,IAAI,KAAK,EAAU,CAAC;QAmB7B,CAAC;QAjBA,oBAAG,GAAH,UAAK,KAAa;YACjB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YAClC,MAAM,CAAC,CAAC,QAAQ,CAAC;QAClB,CAAC;QAED,yBAAQ,GAAR,UAAU,KAAa;YACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC;QAC3C,CAAC;QAED,uBAAM,GAAN,UAAQ,KAAa;YACpB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;QACnC,CAAC;QAED,sBAAK,GAAL;YACC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,CAAC;QACF,aAAC;IAAD,CAAC,AApBD,IAoBC;IApBY,YAAM,SAoBlB,CAAA;IAUD;QAOC,eAAoB,CAAa,EAAS,CAAa,EAAS,CAAa,EAAS,CAAa;YAAtF,iBAAoB,GAApB,KAAoB;YAAE,iBAAoB,GAApB,KAAoB;YAAE,iBAAoB,GAApB,KAAoB;YAAE,iBAAoB,GAApB,KAAoB;YAA/E,MAAC,GAAD,CAAC,CAAY;YAAS,MAAC,GAAD,CAAC,CAAY;YAAS,MAAC,GAAD,CAAC,CAAY;YAAS,MAAC,GAAD,CAAC,CAAY;QACnG,CAAC;QAED,mBAAG,GAAH,UAAK,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;YAC9C,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,4BAAY,GAAZ,UAAc,CAAQ;YACrB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,6BAAa,GAAb,UAAe,GAAW;YACzB,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACjD,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;YAChD,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;YAChD,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;YAChD,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;YAC1E,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,mBAAG,GAAH,UAAK,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;YAC9C,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACZ,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,qBAAK,GAAL;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAzDa,WAAK,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,SAAG,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,WAAK,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,UAAI,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,aAAO,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAsD/C,YAAC;IAAD,CAAC,AA3DD,IA2DC;IA3DY,WAAK,QA2DjB,CAAA;IAED;QAAA;QAkCA,CAAC;QA1BO,eAAK,GAAZ,UAAc,KAAa,EAAE,GAAW,EAAE,GAAW;YACpD,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;gBAAC,MAAM,CAAC,GAAG,CAAC;YAC5B,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;gBAAC,MAAM,CAAC,GAAG,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAEM,gBAAM,GAAb,UAAe,OAAe;YAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAEM,gBAAM,GAAb,UAAe,OAAe;YAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAEM,gBAAM,GAAb,UAAe,KAAa;YAC3B,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QAEM,eAAK,GAAZ,UAAc,CAAS;YACtB,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;QAEM,cAAI,GAAX,UAAa,CAAS;YACrB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QAhCM,YAAE,GAAG,SAAS,CAAC;QACf,aAAG,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;QACvB,0BAAgB,GAAG,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC;QACtC,gBAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC;QACpC,0BAAgB,GAAG,SAAS,CAAC,EAAE,GAAG,GAAG,CAAC;QACtC,gBAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC;QA4B5C,gBAAC;IAAD,CAAC,AAlCD,IAkCC;IAlCY,eAAS,YAkCrB,CAAA;IAED;QAAA;QAqDA,CAAC;QAlDO,eAAS,GAAhB,UAAqB,MAAoB,EAAE,WAAmB,EAAE,IAAkB,EAAE,SAAiB,EAAE,WAAmB;YACzH,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,WAAW,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClF,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;QACF,CAAC;QAEM,kBAAY,GAAnB,UAAwB,KAAe,EAAE,IAAY,EAAE,KAAc;YAAd,qBAAc,GAAd,SAAc;YACpE,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;YAC3B,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC,KAAK,CAAC;YAClC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;YACpB,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;gBACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;oBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACvD,CAAC;YACD,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAEM,yBAAmB,GAA1B,UAA+B,KAAe,EAAE,IAAY,EAAE,KAAc;YAAd,qBAAc,GAAd,SAAc;YAC3E,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC,KAAK,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;QAEM,cAAQ,GAAf,UAAoB,IAAY,EAAE,YAAe;YAChD,IAAI,KAAK,GAAG,IAAI,KAAK,CAAI,IAAI,CAAC,CAAC;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;gBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAEM,mBAAa,GAApB,UAAsB,IAAY;YACjC,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBACjC,MAAM,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;YAC9B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,IAAI,KAAK,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,CAAC;gBACpC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,CAAC,KAAK,CAAC;YACf,CAAC;QACF,CAAC;QAEM,mBAAa,GAApB,UAAsB,IAAY;YACjC,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBACjC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;YAC5B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,IAAI,KAAK,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,CAAC;gBACpC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,CAAC,KAAK,CAAC;YACf,CAAC;QACF,CAAC;QAEM,kBAAY,GAAnB,UAAqB,KAAoB;YACxC,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QACtE,CAAC;QAnDM,2BAAqB,GAAG,OAAM,CAAC,YAAY,CAAC,KAAK,WAAW,CAAC;QAoDrE,YAAC;IAAD,CAAC,AArDD,IAqDC;IArDY,WAAK,QAqDjB,CAAA;IAED;QAAA;QAOA,CAAC;QANO,mBAAQ,GAAf,UAAgB,QAAkB;YACjC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChD,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YACvI,CAAC;QACF,CAAC;QACF,iBAAC;IAAD,CAAC,AAPD,IAOC;IAPY,gBAAU,aAOtB,CAAA;IAED;QAIC,cAAa,YAAqB;YAH1B,UAAK,GAAG,IAAI,KAAK,EAAK,CAAC;YAI9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAClC,CAAC;QAED,qBAAM,GAAN;YACC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACvE,CAAC;QAED,mBAAI,GAAJ,UAAM,IAAO;YACZ,EAAE,CAAC,CAAE,IAAY,CAAC,KAAK,CAAC;gBAAE,IAAY,CAAC,KAAK,EAAE,CAAC;YAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QAED,sBAAO,GAAP,UAAS,KAAmB;YAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,EAAE,CAAC,CAAE,KAAK,CAAC,CAAC,CAAS,CAAC,KAAK,CAAC;oBAAE,KAAK,CAAC,CAAC,CAAS,CAAC,KAAK,EAAE,CAAC;gBACvD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC;QAED,oBAAK,GAAL;YACC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,CAAC;QACF,WAAC;IAAD,CAAC,AA3BD,IA2BC;IA3BY,UAAI,OA2BhB,CAAA;IAED;QACC,iBAAoB,CAAK,EAAS,CAAK;YAA1B,iBAAY,GAAZ,KAAY;YAAE,iBAAY,GAAZ,KAAY;YAAnB,MAAC,GAAD,CAAC,CAAI;YAAS,MAAC,GAAD,CAAC,CAAI;QACvC,CAAC;QAED,qBAAG,GAAH,UAAK,CAAS,EAAE,CAAS;YACxB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,wBAAM,GAAN;YACC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,2BAAS,GAAT;YACC,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACxB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;YACf,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QACF,cAAC;IAAD,CAAC,AAxBD,IAwBC;IAxBY,aAAO,UAwBnB,CAAA;IAED;QAAA;YACC,aAAQ,GAAG,KAAK,CAAC;YACjB,oBAAe,GAAG,CAAC,CAAC;YACpB,UAAK,GAAG,CAAC,CAAC;YACV,cAAS,GAAG,CAAC,CAAC;YAEN,aAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAC7B,eAAU,GAAG,CAAC,CAAC;YACf,cAAS,GAAG,CAAC,CAAC;QAiBvB,CAAC;QAfA,2BAAM,GAAN;YACC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;YACjC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC;YAC7B,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC;YAC7B,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC3D,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YAEpB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;gBACxD,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACrB,CAAC;QACF,CAAC;QACF,iBAAC;IAAD,CAAC,AAzBD,IAyBC;IAzBY,gBAAU,aAyBtB,CAAA;IAOD;QAOC,sBAAa,UAAuB;YAAvB,0BAAuB,GAAvB,eAAuB;YALpC,gBAAW,GAAG,CAAC,CAAC;YAChB,cAAS,GAAG,CAAC,CAAC;YACd,SAAI,GAAG,CAAC,CAAC;YACT,UAAK,GAAG,IAAI,CAAC;YAGZ,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAS,UAAU,CAAC,CAAC;QAC7C,CAAC;QAED,oCAAa,GAAb;YACC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/C,CAAC;QAED,+BAAQ,GAAR,UAAU,KAAa;YACtB,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACzC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC;YACtC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YAChE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,8BAAO,GAAP;YACC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;gBAC1B,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBAChB,IAAI,IAAI,GAAG,CAAC,CAAC;oBACb,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC7C,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACxB,CAAC;oBACD,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;oBACtC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACpB,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YAClB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,MAAM,CAAC,CAAC,CAAC;YACV,CAAC;QACF,CAAC;QACF,mBAAC;IAAD,CAAC,AAtCD,IAsCC;IAtCY,kBAAY,eAsCxB,CAAA;AACF,CAAC,EAlUM,KAAK,KAAL,KAAK,QAkUX;AClUD,IAAO,KAAK,CAQX;AARD,WAAO,KAAK;IAAC,IAAA,KAAK,CAQjB;IARY,WAAA,KAAK,EAAC,CAAC;QACnB;YAAkC,gCAAkB;YACnD,sBAAa,OAA6D,EAAE,UAAuB;gBAAvB,0BAAuB,GAAvB,eAAuB;gBAClG,kBAAM,UAAC,KAAuB;oBAC7B,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAClD,CAAC,EAAE,UAAU,CAAC,CAAC;YAChB,CAAC;YACF,mBAAC;QAAD,CAAC,AAND,CAAkC,KAAK,CAAC,YAAY,GAMnD;QANY,kBAAY,eAMxB,CAAA;IACF,CAAC,EARY,KAAK,GAAL,WAAK,KAAL,WAAK,QAQjB;AAAD,CAAC,EARM,KAAK,KAAL,KAAK,QAQX;ACRD,IAAO,KAAK,CAsDX;AAtDD,WAAO,KAAK;IAAC,IAAA,KAAK,CAsDjB;IAtDY,WAAA,KAAK,EAAC,CAAC;QACnB;YAgBC,qBAAa,aAAqB,EAAE,cAAsB;gBAf1D,aAAQ,GAAG,IAAI,aAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChC,cAAS,GAAG,IAAI,aAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAClC,OAAE,GAAG,IAAI,aAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1B,SAAI,GAAG,CAAC,CAAC;gBACT,QAAG,GAAG,GAAG,CAAC;gBACV,SAAI,GAAG,CAAC,CAAC;gBACT,kBAAa,GAAG,CAAC,CAAC;gBAClB,mBAAc,GAAG,CAAC,CAAC;gBACnB,mBAAc,GAAG,IAAI,aAAO,EAAE,CAAC;gBAC/B,0BAAqB,GAAG,IAAI,aAAO,EAAE,CAAC;gBACtC,eAAU,GAAG,IAAI,aAAO,EAAE,CAAC;gBAC3B,SAAI,GAAG,IAAI,aAAO,EAAE,CAAC;gBAEb,QAAG,GAAG,IAAI,aAAO,EAAE,CAAC;gBAG3B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;gBACnC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;gBACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,CAAC;YAED,4BAAM,GAAN;gBACC,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACjC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACrB,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;gBACzC,IAAI,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;gBACvD,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;gBAC/F,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,EACnE,IAAI,GAAG,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,EACzD,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBACpD,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACtC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC9B,qBAAqB,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;YAC3D,CAAC;YAED,mCAAa,GAAb,UAAe,YAAqB,EAAE,WAAmB,EAAE,YAAoB;gBAC9E,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,YAAY,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC9D,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;gBACnB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC;gBAClC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC;gBACnC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACjC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACxC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtC,MAAM,CAAC,YAAY,CAAC;YACrB,CAAC;YAED,iCAAW,GAAX,UAAY,aAAqB,EAAE,cAAsB;gBACxD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;gBACnC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;YACtC,CAAC;YACF,kBAAC;QAAD,CAAC,AApDD,IAoDC;QApDY,iBAAW,cAoDvB,CAAA;IACF,CAAC,EAtDY,KAAK,GAAL,WAAK,KAAL,WAAK,QAsDjB;AAAD,CAAC,EAtDM,KAAK,KAAL,KAAK,QAsDX;ACtDD,IAAO,KAAK,CAmEX;AAnED,WAAO,KAAK;IAAC,IAAA,KAAK,CAmEjB;IAnEY,WAAA,KAAK,EAAC,CAAC;QACnB;YAA+B,6BAAO;YAMrC,mBAAa,OAA6D,EAAE,KAAuB,EAAE,UAA2B;gBAA3B,0BAA2B,GAA3B,kBAA2B;gBAC/H,kBAAM,KAAK,CAAC,CAAC;gBALN,YAAO,GAAiB,IAAI,CAAC;gBAC7B,cAAS,GAAG,CAAC,CAAC;gBACd,eAAU,GAAG,KAAK,CAAC;gBAI1B,IAAI,CAAC,OAAO,GAAG,OAAO,YAAY,kCAA4B,GAAE,OAAO,GAAG,IAAI,kCAA4B,CAAC,OAAO,CAAC,CAAC;gBACpH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;gBAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YAED,8BAAU,GAAV,UAAY,SAAwB,EAAE,SAAwB;gBAC7D,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;gBAClE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;YACnE,CAAC;YAED,4BAAQ,GAAR,UAAU,KAAkB,EAAE,KAAkB;gBAC/C,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;gBAC1D,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC;YAED,0BAAM,GAAN,UAAQ,UAAmB;gBAC1B,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;gBAChD,CAAC;gBACD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjF,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;gBAClE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,kBAAkB,EAAE,UAAU,GAAG,EAAE,CAAC,oBAAoB,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;gBACzG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC;gBACrE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC;gBACrE,EAAE,CAAC,CAAC,UAAU,CAAC;oBAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;YAClD,CAAC;YAED,2BAAO,GAAP;gBACC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;YAED,wBAAI,GAAJ,UAAM,IAAgB;gBAAhB,oBAAgB,GAAhB,QAAgB;gBACrB,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;gBACrC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;YAED,0BAAM,GAAN;gBACC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/C,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACrC,CAAC;YAED,2BAAO,GAAP;gBACC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;YACF,gBAAC;QAAD,CAAC,AAjED,CAA+B,aAAO,GAiErC;QAjEY,eAAS,YAiErB,CAAA;IACF,CAAC,EAnEY,KAAK,GAAL,WAAK,KAAL,WAAK,QAmEjB;AAAD,CAAC,EAnEM,KAAK,KAAL,KAAK,QAmEX;ACnED,IAAO,KAAK,CA6LX;AA7LD,WAAO,KAAK;IAAC,IAAA,KAAK,CA6LjB;IA7LY,WAAA,KAAK,EAAC,CAAC;QACnB;YAWC,eAAa,OAAoB;gBATjC,UAAK,GAAG,CAAC,CAAC;gBACV,UAAK,GAAG,CAAC,CAAC;gBACV,eAAU,GAAG,KAAK,CAAC;gBACnB,cAAS,GAAU,IAAI,CAAC;gBACxB,gBAAW,GAAG,IAAI,UAAI,CAAoB;oBACzC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;gBAEK,cAAS,GAAG,IAAI,KAAK,EAAiB,CAAC;gBAE9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;gBACvB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YAEO,8BAAc,GAAtB,UAAuB,OAAoB;gBAA3C,iBAmJC;gBAlJA,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAC,EAAW;oBACjD,EAAE,CAAC,CAAC,EAAE,YAAY,UAAU,CAAC,CAAC,CAAC;wBAC9B,IAAI,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;wBAC3C,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;wBAC/B,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;wBAE9B,IAAI,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;wBAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC3C,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACzB,CAAC;wBAED,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;wBACf,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;wBACf,KAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBACxB,CAAC;gBACF,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAC,EAAW;oBACjD,EAAE,CAAC,CAAC,EAAE,YAAY,UAAU,CAAC,CAAC,CAAC;wBAC9B,IAAI,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;wBAC3C,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;wBAC/B,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;wBAE9B,IAAI,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;wBAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC3C,EAAE,CAAC,CAAC,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gCACrB,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC5B,CAAC;4BAAC,IAAI,CAAC,CAAC;gCACP,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC1B,CAAC;wBACF,CAAC;wBAED,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;wBACf,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;oBAChB,CAAC;gBACF,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAC,EAAW;oBAC/C,EAAE,CAAC,CAAC,EAAE,YAAY,UAAU,CAAC,CAAC,CAAC;wBAC9B,IAAI,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;wBAC3C,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;wBAC/B,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;wBAE9B,IAAI,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;wBAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC3C,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACvB,CAAC;wBAED,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;wBACf,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;wBACf,KAAI,CAAC,UAAU,GAAG,KAAK,CAAC;oBACzB,CAAC;gBACF,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,UAAC,EAAc;oBACrD,EAAE,CAAC,CAAC,KAAI,CAAC,SAAS,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC;oBAEnC,IAAI,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC;oBAChC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACzC,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBACvB,IAAI,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;wBAC3C,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;wBAClC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;wBACjC,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;wBAC3C,KAAI,CAAC,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;wBAC7C,KAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;wBACrB,KAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;wBACrB,KAAK,CAAC;oBACP,CAAC;oBAED,IAAI,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;oBAC/B,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,SAAS,CAAC,MAAM,EAAE,GAAC,EAAE,EAAE,CAAC;wBAC3C,SAAS,CAAC,GAAC,CAAC,CAAC,IAAI,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACvD,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACnE,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC9B,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC9B,KAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBACvB,EAAE,CAAC,cAAc,EAAE,CAAC;gBACrB,CAAC,EAAE,KAAK,CAAC,CAAC;gBACV,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAC,EAAc;oBACnD,IAAI,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC;oBAChC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACzC,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBACvB,EAAE,CAAC,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;4BACpD,IAAI,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;4BAC3C,IAAI,CAAC,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;4BACrD,IAAI,CAAC,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;4BACpD,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC;4BACtC,IAAI,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;4BAC/B,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,SAAS,CAAC,MAAM,EAAE,GAAC,EAAE,EAAE,CAAC;gCAC3C,SAAS,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BACvB,CAAC;4BACD,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;4BACnC,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;4BACf,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;4BACf,KAAI,CAAC,UAAU,GAAG,KAAK,CAAC;4BACxB,KAAI,CAAC,SAAS,GAAG,IAAI,CAAC;4BACtB,KAAK,CAAC;wBACP,CAAC;oBACF,CAAC;oBACD,EAAE,CAAC,cAAc,EAAE,CAAC;gBACrB,CAAC,EAAE,KAAK,CAAC,CAAC;gBACV,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAC,EAAc;oBACtD,IAAI,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC;oBAChC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACzC,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBACvB,EAAE,CAAC,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;4BACpD,IAAI,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;4BAC3C,IAAI,CAAC,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;4BACrD,IAAI,CAAC,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;4BACpD,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC;4BACtC,IAAI,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;4BAC/B,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,SAAS,CAAC,MAAM,EAAE,GAAC,EAAE,EAAE,CAAC;gCAC3C,SAAS,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BACvB,CAAC;4BACD,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;4BACnC,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;4BACf,KAAI,CAAC,KAAK,GAAG,CAAC,CAAC;4BACf,KAAI,CAAC,UAAU,GAAG,KAAK,CAAC;4BACxB,KAAI,CAAC,SAAS,GAAG,IAAI,CAAC;4BACtB,KAAK,CAAC;wBACP,CAAC;oBACF,CAAC;oBACD,EAAE,CAAC,cAAc,EAAE,CAAC;gBACrB,CAAC,EAAE,KAAK,CAAC,CAAC;gBACV,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAC,EAAc;oBACpD,EAAE,CAAC,CAAC,KAAI,CAAC,SAAS,IAAI,IAAI,CAAC;wBAAC,MAAM,CAAC;oBAEnC,IAAI,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC;oBAChC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACzC,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBACvB,EAAE,CAAC,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;4BACpD,IAAI,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;4BAC3C,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;4BAClC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;4BAEjC,IAAI,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;4BAC/B,GAAG,CAAC,CAAC,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,SAAS,CAAC,MAAM,EAAE,GAAC,EAAE,EAAE,CAAC;gCAC3C,SAAS,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC5B,CAAC;4BACD,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;4BACpC,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClC,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClC,KAAK,CAAC;wBACP,CAAC;oBACF,CAAC;oBACD,EAAE,CAAC,cAAc,EAAE,CAAC;gBACrB,CAAC,EAAE,KAAK,CAAC,CAAC;YACX,CAAC;YAED,2BAAW,GAAX,UAAY,QAAuB;gBAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;YAED,8BAAc,GAAd,UAAe,QAAuB;gBACrC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC3C,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACd,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YACF,YAAC;QAAD,CAAC,AA/KD,IA+KC;QA/KY,WAAK,QA+KjB,CAAA;QAED;YACC,eAAmB,UAAkB,EAAS,CAAS,EAAS,CAAS;gBAAtD,eAAU,GAAV,UAAU,CAAQ;gBAAS,MAAC,GAAD,CAAC,CAAQ;gBAAS,MAAC,GAAD,CAAC,CAAQ;YACzE,CAAC;YACF,YAAC;QAAD,CAAC,AAHD,IAGC;QAHY,WAAK,QAGjB,CAAA;IAQF,CAAC,EA7LY,KAAK,GAAL,WAAK,KAAL,WAAK,QA6LjB;AAAD,CAAC,EA7LM,KAAK,KAAL,KAAK,QA6LX;AC7LD,IAAO,KAAK,CA0GX;AA1GD,WAAO,KAAK;IAAC,IAAA,KAAK,CA0GjB;IA1GY,WAAA,KAAK,EAAC,CAAC;QACnB;YAqBC,uBAAa,QAAuB;gBAb5B,SAAI,GAAc,IAAI,CAAC;gBACvB,YAAO,GAAc,IAAI,CAAC;gBAC1B,UAAK,GAAG,CAAC,CAAC;gBACV,YAAO,GAAG,CAAC,CAAC;gBACZ,eAAU,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC5C,oBAAe,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBAClD,cAAS,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC9B,cAAS,GAAG,CAAC,CAAC;gBAOrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAEzB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAE7B,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC;oBAEpC,IAAI,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;oBAE1D,aAAa,CAAC,OAAO,GAAG,IAAI,KAAK,EAAE,CAAC;oBACpC,aAAa,CAAC,OAAO,CAAC,GAAG,GAAG,aAAa,CAAC,eAAe,CAAC;oBAC1D,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;wBAAC,aAAa,CAAC,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;oBAC/D,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,UAAC,EAAE;wBACjC,aAAa,CAAC,MAAM,EAAE,CAAC;oBACxB,CAAC,CAAA;oBAED,aAAa,CAAC,UAAU,GAAG,IAAI,KAAK,EAAE,CAAC;oBACvC,aAAa,CAAC,UAAU,CAAC,GAAG,GAAG,aAAa,CAAC,YAAY,CAAC;oBAC1D,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;wBAAC,aAAa,CAAC,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;oBAClE,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,UAAC,EAAE;wBACpC,aAAa,CAAC,MAAM,EAAE,CAAC;oBACxB,CAAC,CAAA;gBACF,CAAC;YACF,CAAC;YAED,4BAAI,GAAJ,UAAM,QAAgB;gBAAhB,wBAAgB,GAAhB,gBAAgB;gBACrB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC;oBAAC,MAAM,CAAC;gBAElE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;gBAC7D,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEvE,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC7B,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC7B,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAE7B,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACzE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrE,QAAQ,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC7C,QAAQ,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC/C,QAAQ,CAAC,MAAM,CAAC,gBAAU,CAAC,OAAO,CAAC,CAAC;gBAEpC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACf,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;oBAC9G,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;oBAC9B,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBAChF,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;wBAC/C,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;wBAC5C,MAAM,CAAC;oBACR,CAAC;oBACD,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC;oBAClD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAClD,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACzC,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACjB,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EACvF,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;oBACjE,QAAQ,CAAC,GAAG,EAAE,CAAC;gBAChB,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAE9C,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC;oBAAC,MAAM,CAAC;gBACtC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;oBACxB,IAAI,CAAC,IAAI,GAAG,IAAI,eAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;oBACnE,IAAI,CAAC,OAAO,GAAG,IAAI,eAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;gBAC1E,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE3B,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC;gBAC3C,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;gBAC7C,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC;gBACjD,IAAI,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;gBAEnD,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;gBACpE,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACjB,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBACzI,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,GAAG,CAAC,EAAE,aAAa,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAChN,QAAQ,CAAC,GAAG,EAAE,CAAC;gBAEf,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7C,CAAC;YAtGM,0BAAY,GAAG,CAAC,CAAC;YAET,oBAAM,GAAG,CAAC,CAAC;YACX,wBAAU,GAAqB,IAAI,CAAC;YACpC,qBAAO,GAAqB,IAAI,CAAC;YAYjC,0BAAY,GAAG,4lEAA4lE,CAAC;YAE5mE,6BAAe,GAAG,4lCAA4lC,CAAA;YAqF9nC,oBAAC;QAAD,CAAC,AAxGD,IAwGC;QAxGY,mBAAa,gBAwGzB,CAAA;IACF,CAAC,EA1GY,KAAK,GAAL,WAAK,KAAL,WAAK,QA0GjB;AAAD,CAAC,EA1GM,KAAK,KAAL,KAAK,QA0GX;AC1GD,IAAO,KAAK,CAsTX;AAtTD,WAAO,KAAK;IAAC,IAAA,KAAK,CAsTjB;IAtTY,WAAA,KAAK,EAAC,CAAC;QACN,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,EAAE,CAAC;QACT,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,EAAE,CAAC;QACT,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,EAAE,CAAC;QACT,SAAG,GAAG,EAAE,CAAC;QACT,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,CAAC,CAAC;QACR,SAAG,GAAG,EAAE,CAAC;QACT,SAAG,GAAG,EAAE,CAAC;QAEtB;YASC;gBARA,SAAI,GAAiB,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;gBAC1C,WAAM,GAAiB,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;gBAQ3C,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;YACZ,CAAC;YAED,qBAAG,GAAH,UAAK,MAAyB;gBAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,2BAAS,GAAT;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YAED,0BAAQ,GAAR;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,wBAAM,GAAN;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,KAAK,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC/G,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChH,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC3G,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC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CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,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"} \ No newline at end of file diff --git a/spine-ts/build/spine-widget.js b/spine-ts/build/spine-widget.js index b0f3a08eb..5d3c54dab 100644 --- a/spine-ts/build/spine-widget.js +++ b/spine-ts/build/spine-widget.js @@ -4634,7 +4634,7 @@ var spine; this.readVertices(map, path, vertexCount << 1); var lengths = spine.Utils.newArray(vertexCount / 3, 0); for (var i = 0; i < map.lengths.length; i++) - lengths[i++] = map.lengths[i] * scale; + lengths[i] = map.lengths[i] * scale; path.lengths = lengths; var color = this.getValue(map, "color", null); if (color != null) diff --git a/spine-ts/build/spine-widget.js.map b/spine-ts/build/spine-widget.js.map index 3a24e7291..55c1e00cb 100644 --- a/spine-ts/build/spine-widget.js.map +++ b/spine-ts/build/spine-widget.js.map @@ -1 +1 @@ -{"version":3,"file":"spine-widget.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts","../widget/src/Widget.ts"],"names":[],"mappings":"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AAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChH,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC3G,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG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CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,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"} \ No newline at end of file +{"version":3,"file":"spine-widget.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/Constraint.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts","../widget/src/Widget.ts"],"names":[],"mappings":"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AAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAChH,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC9E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBACxF,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBAC3G,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC;sBACzG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC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CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,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"} \ No newline at end of file diff --git a/spine-ts/core/src/SkeletonJson.ts b/spine-ts/core/src/SkeletonJson.ts index 21004c788..1388a442b 100644 --- a/spine-ts/core/src/SkeletonJson.ts +++ b/spine-ts/core/src/SkeletonJson.ts @@ -324,7 +324,7 @@ module spine { let lengths: Array = Utils.newArray(vertexCount / 3, 0); for (let i = 0; i < map.lengths.length; i++) - lengths[i++] = map.lengths[i] * scale; + lengths[i] = map.lengths[i] * scale; path.lengths = lengths; let color: string = this.getValue(map, "color", null); From ef408344befe48195970c2c1501ffcb1a9a9a8f6 Mon Sep 17 00:00:00 2001 From: John Date: Wed, 7 Jun 2017 08:00:24 +0800 Subject: [PATCH 13/17] [unity] SpineAttributeDrawers menu item methods. --- .../Editor/SpineAttributeDrawers.cs | 74 +++++++++++++++++-- 1 file changed, 68 insertions(+), 6 deletions(-) diff --git a/spine-unity/Assets/spine-unity/Editor/SpineAttributeDrawers.cs b/spine-unity/Assets/spine-unity/Editor/SpineAttributeDrawers.cs index a01a4cf1a..82bb77b14 100644 --- a/spine-unity/Assets/spine-unity/Editor/SpineAttributeDrawers.cs +++ b/spine-unity/Assets/spine-unity/Editor/SpineAttributeDrawers.cs @@ -60,7 +60,7 @@ namespace Spine.Unity.Editor { noneLabel.image = image; return noneLabel; } - + protected T TargetAttribute { get { return (T)attribute; } } protected SerializedProperty SerializedProperty { get; private set; } @@ -155,7 +155,7 @@ namespace Spine.Unity.Editor { for (int i = 0; i < data.Slots.Count; i++) { string name = data.Slots.Items[i].Name; if (name.StartsWith(targetAttribute.startsWith, StringComparison.Ordinal)) { - + if (targetAttribute.containsBoundingBoxes) { int slotIndex = i; var attachments = new List(); @@ -192,6 +192,28 @@ namespace Spine.Unity.Editor { protected override Texture2D Icon { get { return SpineEditorUtilities.Icons.skin; } } + public static void GetSkinMenuItems (SkeletonData data, List animationNames, List menuItems, bool includeNone = true) { + if (data == null) return; + + var skins = data.Skins; + + animationNames.Clear(); + menuItems.Clear(); + + var icon = SpineEditorUtilities.Icons.skin; + + if (includeNone) { + animationNames.Add(""); + menuItems.Add(new GUIContent(NoneString, icon)); + } + + foreach (var s in skins) { + var skinName = s.Name; + animationNames.Add(skinName); + menuItems.Add(new GUIContent(skinName, icon)); + } + } + protected override void PopulateMenu (GenericMenu menu, SerializedProperty property, SpineSkin targetAttribute, SkeletonData data) { menu.AddDisabledItem(new GUIContent(skeletonDataAsset.name)); menu.AddSeparator(""); @@ -207,9 +229,29 @@ namespace Spine.Unity.Editor { [CustomPropertyDrawer(typeof(SpineAnimation))] public class SpineAnimationDrawer : SpineTreeItemDrawerBase { - + protected override Texture2D Icon { get { return SpineEditorUtilities.Icons.animation; } } + public static void GetAnimationMenuItems (SkeletonData data, List animationNames, List menuItems, bool includeNone = true) { + if (data == null) return; + + var animations = data.Animations; + + animationNames.Clear(); + menuItems.Clear(); + + if (includeNone) { + animationNames.Add(""); + menuItems.Add(new GUIContent(NoneString, SpineEditorUtilities.Icons.animation)); + } + + foreach (var a in animations) { + var animationName = a.Name; + animationNames.Add(animationName); + menuItems.Add(new GUIContent(animationName, SpineEditorUtilities.Icons.animation)); + } + } + protected override void PopulateMenu (GenericMenu menu, SerializedProperty property, SpineAnimation targetAttribute, SkeletonData data) { var animations = skeletonDataAsset.GetAnimationStateData().SkeletonData.Animations; @@ -230,6 +272,26 @@ namespace Spine.Unity.Editor { protected override Texture2D Icon { get { return SpineEditorUtilities.Icons.userEvent; } } + public static void GetEventMenuItems (SkeletonData data, List eventNames, List menuItems, bool includeNone = true) { + if (data == null) return; + + var animations = data.Events; + + eventNames.Clear(); + menuItems.Clear(); + + if (includeNone) { + eventNames.Add(""); + menuItems.Add(new GUIContent(NoneString, SpineEditorUtilities.Icons.userEvent)); + } + + foreach (var a in animations) { + var animationName = a.Name; + eventNames.Add(animationName); + menuItems.Add(new GUIContent(animationName, SpineEditorUtilities.Icons.userEvent)); + } + } + protected override void PopulateMenu (GenericMenu menu, SerializedProperty property, SpineEvent targetAttribute, SkeletonData data) { var events = skeletonDataAsset.GetSkeletonData(false).Events; @@ -325,7 +387,7 @@ namespace Spine.Unity.Editor { validSkins.Add(currentSkin); else validSkins.Add(data.Skins.Items[0]); - + } else { foreach (Skin skin in data.Skins) if (skin != null) validSkins.Add(skin); @@ -398,7 +460,7 @@ namespace Spine.Unity.Editor { [CustomPropertyDrawer(typeof(SpineBone))] public class SpineBoneDrawer : SpineTreeItemDrawerBase { - + protected override Texture2D Icon { get { return SpineEditorUtilities.Icons.bone; } } protected override void PopulateMenu (GenericMenu menu, SerializedProperty property, SpineBone targetAttribute, SkeletonData data) { @@ -428,7 +490,7 @@ namespace Spine.Unity.Editor { EditorGUI.LabelField(position, "ERROR:", "May only apply to type string"); return; } - + string atlasAssetFieldName = TargetAttribute.atlasAssetField; if (string.IsNullOrEmpty(atlasAssetFieldName)) atlasAssetFieldName = "atlasAsset"; From b2c0034dbf180f3fff55c2770219037f92d35e38 Mon Sep 17 00:00:00 2001 From: pharan Date: Wed, 7 Jun 2017 08:09:24 +0800 Subject: [PATCH 14/17] [unity] SlotBlendModes module. --- .../spine-unity/Modules/SlotBlendModes.meta | 9 ++ .../Modules/SlotBlendModes/Editor.meta | 9 ++ .../Editor/SlotBlendModesEditor.cs | 47 ++++++ .../Editor/SlotBlendModesEditor.cs.meta | 12 ++ .../SlotBlendModes/SkeletonPMAMultiply.mat | 43 +++++ .../SkeletonPMAMultiply.mat.meta | 9 ++ .../SlotBlendModes/SkeletonPMAScreen.mat | 43 +++++ .../SlotBlendModes/SkeletonPMAScreen.mat.meta | 9 ++ .../Modules/SlotBlendModes/SlotBlendModes.cs | 152 ++++++++++++++++++ .../SlotBlendModes/SlotBlendModes.cs.meta | 16 ++ .../Spine-Skeleton-PMA-Multiply.shader | 101 ++++++++++++ .../Spine-Skeleton-PMA-Multiply.shader.meta | 9 ++ .../Spine-Skeleton-PMA-Screen.shader | 99 ++++++++++++ .../Spine-Skeleton-PMA-Screen.shader.meta | 9 ++ 14 files changed, 567 insertions(+) create mode 100644 spine-unity/Assets/spine-unity/Modules/SlotBlendModes.meta create mode 100644 spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Editor.meta create mode 100644 spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Editor/SlotBlendModesEditor.cs create mode 100644 spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Editor/SlotBlendModesEditor.cs.meta create mode 100644 spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SkeletonPMAMultiply.mat create mode 100644 spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SkeletonPMAMultiply.mat.meta create mode 100644 spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SkeletonPMAScreen.mat create mode 100644 spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SkeletonPMAScreen.mat.meta create mode 100644 spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SlotBlendModes.cs create mode 100644 spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SlotBlendModes.cs.meta create mode 100644 spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Spine-Skeleton-PMA-Multiply.shader create mode 100644 spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Spine-Skeleton-PMA-Multiply.shader.meta create mode 100644 spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Spine-Skeleton-PMA-Screen.shader create mode 100644 spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Spine-Skeleton-PMA-Screen.shader.meta diff --git a/spine-unity/Assets/spine-unity/Modules/SlotBlendModes.meta b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes.meta new file mode 100644 index 000000000..c3ef039c0 --- /dev/null +++ b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: dfdd78a071ca1a04bb64c6cc41e14aa0 +folderAsset: yes +timeCreated: 1496447038 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Editor.meta b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Editor.meta new file mode 100644 index 000000000..80a6cfcf3 --- /dev/null +++ b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1ad4318c20ec5674a9f4d7f786afd681 +folderAsset: yes +timeCreated: 1496449217 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Editor/SlotBlendModesEditor.cs b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Editor/SlotBlendModesEditor.cs new file mode 100644 index 000000000..199ca484d --- /dev/null +++ b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Editor/SlotBlendModesEditor.cs @@ -0,0 +1,47 @@ +/****************************************************************************** + * Spine Runtimes Software License v2.5 + * + * Copyright (c) 2013-2016, Esoteric Software + * All rights reserved. + * + * You are granted a perpetual, non-exclusive, non-sublicensable, and + * non-transferable license to use, install, execute, and perform the Spine + * Runtimes software and derivative works solely for personal or internal + * use. Without the written permission of Esoteric Software (see Section 2 of + * the Spine Software License Agreement), you may not (a) modify, translate, + * adapt, or develop new applications using the Spine Runtimes or otherwise + * create derivative works or improvements of the Spine Runtimes or (b) remove, + * delete, alter, or obscure any trademarks or any copyright, trademark, patent, + * or other intellectual property or proprietary rights notices on or in the + * Software, including any copy thereof. Redistributions in binary or source + * form must include this license and terms. + * + * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, OR LOSS OF + * USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +using UnityEngine; +using UnityEditor; +using Spine.Unity.Modules; + +namespace Spine.Unity.Editor { + using Editor = UnityEditor.Editor; + + public class SlotBlendModesEditor : Editor { + + [MenuItem("CONTEXT/SkeletonRenderer/Add Slot Blend Modes Component")] + static void AddSlotBlendModesComponent (MenuCommand command) { + var skeletonRenderer = (SkeletonRenderer)command.context; + skeletonRenderer.gameObject.AddComponent(); + } + } +} + diff --git a/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Editor/SlotBlendModesEditor.cs.meta b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Editor/SlotBlendModesEditor.cs.meta new file mode 100644 index 000000000..21d0e26fe --- /dev/null +++ b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Editor/SlotBlendModesEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cbec7dc66dca80a419477536c23b7a0d +timeCreated: 1496449255 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SkeletonPMAMultiply.mat b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SkeletonPMAMultiply.mat new file mode 100644 index 000000000..28c90c143 --- /dev/null +++ b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SkeletonPMAMultiply.mat @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SkeletonPMAMultiply + m_Shader: {fileID: 4800000, guid: 8bdcdc7ee298e594a9c20c61d25c33b6, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: + second: 0 + - first: + name: _Cutoff + second: 0.1 + m_Colors: + - first: + name: + second: {r: 0, g: 2.018574, b: 1e-45, a: 0.000007110106} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SkeletonPMAMultiply.mat.meta b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SkeletonPMAMultiply.mat.meta new file mode 100644 index 000000000..c8c803849 --- /dev/null +++ b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SkeletonPMAMultiply.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 53bf0ab317d032d418cf1252d68f51df +timeCreated: 1496447909 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SkeletonPMAScreen.mat b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SkeletonPMAScreen.mat new file mode 100644 index 000000000..601f987ed --- /dev/null +++ b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SkeletonPMAScreen.mat @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: SkeletonPMAScreen + m_Shader: {fileID: 4800000, guid: 4e8caa36c07aacf4ab270da00784e4d9, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: + second: 0 + - first: + name: _Cutoff + second: 0.1 + m_Colors: + - first: + name: + second: {r: 0, g: 2.018574, b: 1e-45, a: 0.000007121922} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SkeletonPMAScreen.mat.meta b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SkeletonPMAScreen.mat.meta new file mode 100644 index 000000000..6a1a749da --- /dev/null +++ b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SkeletonPMAScreen.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 73f0f46d3177c614baf0fa48d646a9be +timeCreated: 1496447909 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SlotBlendModes.cs b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SlotBlendModes.cs new file mode 100644 index 000000000..632494380 --- /dev/null +++ b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SlotBlendModes.cs @@ -0,0 +1,152 @@ +/****************************************************************************** + * Spine Runtimes Software License v2.5 + * + * Copyright (c) 2013-2016, Esoteric Software + * All rights reserved. + * + * You are granted a perpetual, non-exclusive, non-sublicensable, and + * non-transferable license to use, install, execute, and perform the Spine + * Runtimes software and derivative works solely for personal or internal + * use. Without the written permission of Esoteric Software (see Section 2 of + * the Spine Software License Agreement), you may not (a) modify, translate, + * adapt, or develop new applications using the Spine Runtimes or otherwise + * create derivative works or improvements of the Spine Runtimes or (b) remove, + * delete, alter, or obscure any trademarks or any copyright, trademark, patent, + * or other intellectual property or proprietary rights notices on or in the + * Software, including any copy thereof. Redistributions in binary or source + * form must include this license and terms. + * + * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, OR LOSS OF + * USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +using System.Collections.Generic; +using UnityEngine; + +namespace Spine.Unity.Modules { + + [DisallowMultipleComponent] + public class SlotBlendModes : MonoBehaviour { + + #region Internal Material Dictionary + public struct MaterialTexturePair { + public Texture2D texture2D; + public Material material; + } + + static Dictionary materialTable; + internal static Dictionary MaterialTable { + get { + if (materialTable == null) materialTable = new Dictionary(); + return materialTable; + } + } + + internal static Material GetMaterialFor (Material materialSource, Texture2D texture) { + if (materialSource == null || texture == null) return null; + + var mt = SlotBlendModes.MaterialTable; + Material m; + var key = new MaterialTexturePair { material = materialSource, texture2D = texture }; + if (!mt.TryGetValue(key, out m)) { + m = new Material(materialSource); + m.name = "(Clone)" + texture.name + "-" + materialSource.name; + m.mainTexture = texture; + mt[key] = m; + } + + return m; + } + #endregion + + #region Inspector + public Material multiplyMaterialSource; + public Material screenMaterialSource; + + Texture2D texture; + #endregion + + public bool Applied { get; private set; } + + void Start () { + if (!Applied) Apply(); + } + + void OnDestroy () { + if (Applied) Remove(); + } + + public void Apply () { + GetTexture(); + if (texture == null) return; + + var skeletonRenderer = GetComponent(); + if (skeletonRenderer == null) return; + + var slotMaterials = skeletonRenderer.CustomSlotMaterials; + + foreach (var s in skeletonRenderer.Skeleton.Slots) { + switch (s.data.blendMode) { + case BlendMode.Multiply: + if (multiplyMaterialSource != null) slotMaterials[s] = GetMaterialFor(multiplyMaterialSource, texture); + break; + case BlendMode.Screen: + if (screenMaterialSource != null) slotMaterials[s] = GetMaterialFor(screenMaterialSource, texture); + break; + } + } + + Applied = true; + skeletonRenderer.LateUpdate(); + } + + public void Remove () { + GetTexture(); + if (texture == null) return; + + var skeletonRenderer = GetComponent(); + if (skeletonRenderer == null) return; + + var slotMaterials = skeletonRenderer.CustomSlotMaterials; + + foreach (var s in skeletonRenderer.Skeleton.Slots) { + Material m = null; + + switch (s.data.blendMode) { + case BlendMode.Multiply: + if (slotMaterials.TryGetValue(s, out m) && Material.ReferenceEquals(m, GetMaterialFor(multiplyMaterialSource, texture))) + slotMaterials.Remove(s); + break; + case BlendMode.Screen: + if (slotMaterials.TryGetValue(s, out m) && Material.ReferenceEquals(m, GetMaterialFor(screenMaterialSource, texture))) + slotMaterials.Remove(s); + break; + } + } + + Applied = false; + skeletonRenderer.LateUpdate(); + } + + public void GetTexture () { + if (texture == null) { + var sr = GetComponent(); if (sr == null) return; + var sda = sr.skeletonDataAsset; if (sda == null) return; + var aa = sda.atlasAssets[0]; if (aa == null) return; + var am = aa.materials[0]; if (am == null) return; + texture = am.mainTexture as Texture2D; + } + } + + + } +} + diff --git a/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SlotBlendModes.cs.meta b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SlotBlendModes.cs.meta new file mode 100644 index 000000000..6750f1105 --- /dev/null +++ b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/SlotBlendModes.cs.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: f1f8243645ba2e74aa3564bd956eed89 +timeCreated: 1496794038 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: + - multiplyMaterialSource: {fileID: 2100000, guid: 53bf0ab317d032d418cf1252d68f51df, + type: 2} + - screenMaterialSource: {fileID: 2100000, guid: 73f0f46d3177c614baf0fa48d646a9be, + type: 2} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Spine-Skeleton-PMA-Multiply.shader b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Spine-Skeleton-PMA-Multiply.shader new file mode 100644 index 000000000..26126be06 --- /dev/null +++ b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Spine-Skeleton-PMA-Multiply.shader @@ -0,0 +1,101 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +// Spine/Skeleton PMA Multiply +// - single color multiply tint +// - unlit +// - Premultiplied alpha Multiply blending +// - No depth, no backface culling, no fog. +// - ShadowCaster pass + +Shader "Spine/Skeleton PMA Multiply" { + Properties { + _Color ("Tint Color", Color) = (1,1,1,1) + [NoScaleOffset] _MainTex ("MainTex", 2D) = "black" {} + _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 + } + + SubShader { + Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } + LOD 100 + + Fog { Mode Off } + Cull Off + ZWrite Off + Blend DstColor OneMinusSrcAlpha + Lighting Off + + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #include "UnityCG.cginc" + uniform sampler2D _MainTex; + uniform float4 _Color; + + struct VertexInput { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + float4 vertexColor : COLOR; + }; + + struct VertexOutput { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float4 vertexColor : COLOR; + }; + + VertexOutput vert (VertexInput v) { + VertexOutput o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = v.uv; + o.vertexColor = v.vertexColor * float4(_Color.rgb * _Color.a, _Color.a); // Combine a PMA version of _Color with vertexColor. + return o; + } + + float4 frag (VertexOutput i) : COLOR { + float4 texColor = tex2D(_MainTex, i.uv); + return (texColor * i.vertexColor); + } + ENDCG + } + + Pass { + Name "Caster" + Tags { "LightMode"="ShadowCaster" } + Offset 1, 1 + + ZWrite On + ZTest LEqual + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_shadowcaster + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + struct v2f { + V2F_SHADOW_CASTER; + float2 uv : TEXCOORD1; + }; + + uniform float4 _MainTex_ST; + + v2f vert (appdata_base v) { + v2f o; + TRANSFER_SHADOW_CASTER(o) + o.uv = TRANSFORM_TEX(v.texcoord, _MainTex); + return o; + } + + uniform sampler2D _MainTex; + uniform fixed _Cutoff; + + float4 frag (v2f i) : COLOR { + fixed4 texcol = tex2D(_MainTex, i.uv); + clip(texcol.a - _Cutoff); + SHADOW_CASTER_FRAGMENT(i) + } + ENDCG + } + } +} \ No newline at end of file diff --git a/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Spine-Skeleton-PMA-Multiply.shader.meta b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Spine-Skeleton-PMA-Multiply.shader.meta new file mode 100644 index 000000000..f3119889b --- /dev/null +++ b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Spine-Skeleton-PMA-Multiply.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8bdcdc7ee298e594a9c20c61d25c33b6 +timeCreated: 1496446742 +licenseType: Free +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Spine-Skeleton-PMA-Screen.shader b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Spine-Skeleton-PMA-Screen.shader new file mode 100644 index 000000000..d97397036 --- /dev/null +++ b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Spine-Skeleton-PMA-Screen.shader @@ -0,0 +1,99 @@ +// Spine/Skeleton PMA Multiply +// - single color multiply tint +// - unlit +// - Premultiplied alpha Multiply blending +// - No depth, no backface culling, no fog. +// - ShadowCaster pass + +Shader "Spine/Skeleton PMA Screen" { + Properties { + _Color ("Tint Color", Color) = (1,1,1,1) + [NoScaleOffset] _MainTex ("MainTex", 2D) = "black" {} + _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 + } + + SubShader { + Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } + LOD 100 + + Fog { Mode Off } + Cull Off + ZWrite Off + Blend One OneMinusSrcColor + Lighting Off + + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #include "UnityCG.cginc" + uniform sampler2D _MainTex; + uniform float4 _Color; + + struct VertexInput { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + float4 vertexColor : COLOR; + }; + + struct VertexOutput { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float4 vertexColor : COLOR; + }; + + VertexOutput vert (VertexInput v) { + VertexOutput o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = v.uv; + o.vertexColor = v.vertexColor * float4(_Color.rgb * _Color.a, _Color.a); // Combine a PMA version of _Color with vertexColor. + return o; + } + + float4 frag (VertexOutput i) : COLOR { + float4 texColor = tex2D(_MainTex, i.uv); + return (texColor * i.vertexColor); + } + ENDCG + } + + Pass { + Name "Caster" + Tags { "LightMode"="ShadowCaster" } + Offset 1, 1 + + ZWrite On + ZTest LEqual + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_shadowcaster + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + struct v2f { + V2F_SHADOW_CASTER; + float2 uv : TEXCOORD1; + }; + + uniform float4 _MainTex_ST; + + v2f vert (appdata_base v) { + v2f o; + TRANSFER_SHADOW_CASTER(o) + o.uv = TRANSFORM_TEX(v.texcoord, _MainTex); + return o; + } + + uniform sampler2D _MainTex; + uniform fixed _Cutoff; + + float4 frag (v2f i) : COLOR { + fixed4 texcol = tex2D(_MainTex, i.uv); + clip(texcol.a - _Cutoff); + SHADOW_CASTER_FRAGMENT(i) + } + ENDCG + } + } +} \ No newline at end of file diff --git a/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Spine-Skeleton-PMA-Screen.shader.meta b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Spine-Skeleton-PMA-Screen.shader.meta new file mode 100644 index 000000000..173ff6a26 --- /dev/null +++ b/spine-unity/Assets/spine-unity/Modules/SlotBlendModes/Spine-Skeleton-PMA-Screen.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4e8caa36c07aacf4ab270da00784e4d9 +timeCreated: 1496448787 +licenseType: Free +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: From e0a398bfc5c05ddde7b83d86f50caf499a2377c6 Mon Sep 17 00:00:00 2001 From: pharan Date: Wed, 7 Jun 2017 08:09:45 +0800 Subject: [PATCH 15/17] [unity] Handle skinless SkeletonGraphic. --- .../Modules/SkeletonGraphic/Editor/SkeletonGraphicInspector.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/Editor/SkeletonGraphicInspector.cs b/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/Editor/SkeletonGraphicInspector.cs index 55a8beb9d..5f95f924e 100644 --- a/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/Editor/SkeletonGraphicInspector.cs +++ b/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/Editor/SkeletonGraphicInspector.cs @@ -196,7 +196,7 @@ namespace Spine.Unity.Editor { graphic.MeshGenerator.settings.zSpacing = SpineEditorUtilities.defaultZSpacing; graphic.Initialize(false); - graphic.Skeleton.SetSkin(skin); + if (skin != null) graphic.Skeleton.SetSkin(skin); graphic.initialSkinName = skin.Name; graphic.Skeleton.UpdateWorldTransform(); graphic.UpdateMesh(); From 714f010006bf22382276e31a15b18685c34ed7d7 Mon Sep 17 00:00:00 2001 From: pharan Date: Sat, 10 Jun 2017 06:41:20 +0800 Subject: [PATCH 16/17] [csharp] Minor changes to Attachments for 3.6 --- spine-csharp/src/Attachments/MeshAttachment.cs | 4 ++-- spine-csharp/src/Attachments/PointAttachment.cs | 4 ++-- spine-csharp/src/Attachments/RegionAttachment.cs | 2 +- spine-csharp/src/Attachments/VertexAttachment.cs | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/spine-csharp/src/Attachments/MeshAttachment.cs b/spine-csharp/src/Attachments/MeshAttachment.cs index 5d1ba4a34..fe0ca29a4 100644 --- a/spine-csharp/src/Attachments/MeshAttachment.cs +++ b/spine-csharp/src/Attachments/MeshAttachment.cs @@ -52,8 +52,8 @@ namespace Spine { public float B { get { return b; } set { b = value; } } public float A { get { return a; } set { a = value; } } - public String Path { get; set; } - public Object RendererObject { get; set; } + public string Path { get; set; } + public object RendererObject; //public Object RendererObject { get; set; } public float RegionU { get; set; } public float RegionV { get; set; } public float RegionU2 { get; set; } diff --git a/spine-csharp/src/Attachments/PointAttachment.cs b/spine-csharp/src/Attachments/PointAttachment.cs index 0fbe8dd6b..b74d51f28 100644 --- a/spine-csharp/src/Attachments/PointAttachment.cs +++ b/spine-csharp/src/Attachments/PointAttachment.cs @@ -46,8 +46,8 @@ namespace Spine { : base(name) { } - public void ComputeWorldPosition (Bone bone, float x, float y, out float ox, out float oy) { - bone.LocalToWorld(x, y, out ox, out oy); + public void ComputeWorldPosition (Bone bone, out float ox, out float oy) { + bone.LocalToWorld(this.x, this.y, out ox, out oy); } public float ComputeWorldRotation (Bone bone) { diff --git a/spine-csharp/src/Attachments/RegionAttachment.cs b/spine-csharp/src/Attachments/RegionAttachment.cs index bd0c5179f..e5e1064ae 100644 --- a/spine-csharp/src/Attachments/RegionAttachment.cs +++ b/spine-csharp/src/Attachments/RegionAttachment.cs @@ -61,7 +61,7 @@ namespace Spine { public float A { get { return a; } set { a = value; } } public string Path { get; set; } - public object RendererObject { get; set; } + public object RendererObject; //public object RendererObject { get; set; } public float RegionOffsetX { get { return regionOffsetX; } set { regionOffsetX = value; } } public float RegionOffsetY { get { return regionOffsetY; } set { regionOffsetY = value; } } // Pixels stripped from the bottom left, unrotated. public float RegionWidth { get { return regionWidth; } set { regionWidth = value; } } diff --git a/spine-csharp/src/Attachments/VertexAttachment.cs b/spine-csharp/src/Attachments/VertexAttachment.cs index 1ffa33137..23c502e9d 100644 --- a/spine-csharp/src/Attachments/VertexAttachment.cs +++ b/spine-csharp/src/Attachments/VertexAttachment.cs @@ -57,7 +57,7 @@ namespace Spine { /// The number of entries between the value pairs written. public void ComputeWorldVertices (Slot slot, int start, int count, float[] worldVertices, int offset, int stride = 2) { count = offset + (count >> 1) * stride; - Skeleton skeleton = slot.Skeleton; + Skeleton skeleton = slot.bone.skeleton; var deformArray = slot.attachmentVertices; float[] vertices = this.vertices; int[] bones = this.bones; From 354ef48a6463354af57868fccd29a32f2e3715ca Mon Sep 17 00:00:00 2001 From: pharan Date: Sat, 10 Jun 2017 06:50:29 +0800 Subject: [PATCH 17/17] [csharp] Fix IkConstraint fix port. https://github.com/EsotericSoftware/spine-runtimes/commit/73cb6299de2a66d587ecac8ae73a316f0f9da488 --- spine-csharp/src/IkConstraint.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spine-csharp/src/IkConstraint.cs b/spine-csharp/src/IkConstraint.cs index 25488aa15..900b84870 100644 --- a/spine-csharp/src/IkConstraint.cs +++ b/spine-csharp/src/IkConstraint.cs @@ -183,7 +183,7 @@ namespace Spine { float maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; c = -a * l1 / (aa - bb); if (c >= -1 && c <= 1) { - float angle = (float)Math.Acos(c); + c = (float)Math.Acos(c); x = a * (float)Math.Cos(c) + l1; y = b * (float)Math.Sin(c); d = x * x + y * y;